Documentation
¶
Index ¶
Constants ¶
const DefaultMembraneVersion = "v0.22.0"
//go:embed membraneversion.txt var DefaultMembraneVersion string TODO delete this later
Variables ¶
var DefaultOTELCollectorVersion string
Functions ¶
This section is empty.
Types ¶
type BaseComputeConfig ¶ added in v1.16.0
type BaseComputeConfig struct {
Type string `yaml:"type"`
}
Config shared by all compute types
type BaseConfig ¶ added in v1.16.0
type Collection ¶
type Collection struct{}
type Compute ¶
type Compute interface {
ImageTagName(s *Project, provider string) string
Unit() *ComputeUnit
Workers() int
}
type ComputeUnit ¶
type Config ¶
type Config struct {
BaseConfig `yaml:",inline"`
ConcreteHandlers []*HandlerConfig `yaml:"-"`
}
func ConfigFromProjectPath ¶ added in v1.4.0
ConfigFromProjectPath - loads the config nitric.yaml file from the project path, defaults to the current working directory
type Container ¶
type Container struct {
Dockerfile string `yaml:"dockerfile"`
Args []string `yaml:"args,omitempty"`
ComputeUnit `yaml:",inline"`
}
func (*Container) ImageTagName ¶
ImageTagName returns the default image tag for a source image built from this function provider the provider name (e.g. aws), used to uniquely identify builds for specific providers
func (*Container) Unit ¶
func (c *Container) Unit() *ComputeUnit
type Function ¶
type Function struct {
// The location of the function handler
Handler string `yaml:"handler"`
ComputeUnit `yaml:",inline"`
// The number of workers this function contains
WorkerCount int
}
func (*Function) ImageTagName ¶
ImageTagName returns the default image tag for a source image built from this function provider the provider name (e.g. aws), used to uniquely identify builds for specific providers
func (*Function) RelativeHandlerPath ¶
func (*Function) Unit ¶
func (f *Function) Unit() *ComputeUnit
type HandlerConfig ¶ added in v1.16.0
type HandlerConfig struct {
BaseComputeConfig
Match string
}
type Project ¶
type Project struct {
Dir string `yaml:"-"`
Name string `yaml:"name"`
Functions map[string]Function `yaml:"functions,omitempty"`
Collections map[string]Collection `yaml:"collections,omitempty"`
Containers map[string]Container `yaml:"containers,omitempty"`
Buckets map[string]Bucket `yaml:"buckets,omitempty"`
Topics map[string]Topic `yaml:"topics,omitempty"`
Queues map[string]Queue `yaml:"queues,omitempty"`
Schedules map[string]Schedule `yaml:"schedules,omitempty"`
ApiDocs map[string]*openapi3.T `yaml:"-"`
SecurityDefinitions map[string]map[string]*v1.ApiSecurityDefinition `yaml:"-"`
Apis map[string]string `yaml:"apis,omitempty"`
// TODO: Not currently supported by nitric.yaml configuration (but is technically definable using the proto model)
// We may want to decouple the definition from contracts at a later stage
// but re-using the contract here provides us a serializable entity with no
// repetition/redefinition
// NOTE: if we want to use the proto definition here we would need support for yaml parsing to use customisable tags
Policies []*v1.PolicyResource `yaml:"-"`
Secrets map[string]Secret `yaml:"secrets,omitempty"`
}
func FromConfig ¶
func New ¶
func New(config BaseConfig) *Project
type Schedule ¶
type Schedule struct {
Expression string `yaml:"expression"`
// The Topic to be targeted for schedule
Target ScheduleTarget `yaml:"target"`
Event ScheduleEvent `yaml:"event"`
}
type ScheduleEvent ¶
type ScheduleEvent struct {
PayloadType string `yaml:"payloadType"`
Payload map[string]interface{} `yaml:"payload,omitempty"`
}
A subset of a NitricEvent excluding it's requestId This will be generated based on the scedule