project

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Mar 18, 2022 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultMembraneVersion string

Functions

This section is empty.

Types

type Bucket

type Bucket struct{}

type Collection

type Collection struct{}

type Compute

type Compute interface {
	ImageTagName(s *Project, provider string) string
	Unit() *ComputeUnit
	Workers() int
}

type ComputeUnit

type ComputeUnit struct {
	Name string `yaml:"-"`

	// Triggers used to invoke this compute unit, e.g. Topic Subscriptions
	Triggers Triggers `yaml:"triggers,omitempty"`

	// The memory of the compute instance in MB
	Memory int `yaml:"memory,omitempty"`

	// The minimum number of instances to keep alive
	MinScale int `yaml:"minScale,omitempty"`

	// The maximum number of instances to scale to
	MaxScale int `yaml:"maxScale,omitempty"`
}

type Config

type Config struct {
	Name     string   `yaml:"name"`
	Dir      string   `yaml:"-"`
	Handlers []string `yaml:"handlers"`
}

func ConfigFromFile

func ConfigFromFile() (*Config, error)

Assume the project is in the currentDirectory

func (*Config) ToFile

func (p *Config) ToFile() error

type Container

type Container struct {
	Dockerfile string   `yaml:"dockerfile"`
	Args       []string `yaml:"args,omitempty"`

	ComputeUnit `yaml:",inline"`
}

func (*Container) ImageTagName

func (c *Container) ImageTagName(s *Project, provider string) string

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

func (*Container) Workers

func (c *Container) Workers() int

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 FunctionFromHandler

func FunctionFromHandler(h, stackDir string) Function

func (*Function) ImageTagName

func (f *Function) ImageTagName(s *Project, provider string) string

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 (f *Function) RelativeHandlerPath(s *Project) (string, error)

func (*Function) Unit

func (f *Function) Unit() *ComputeUnit

func (*Function) VersionString

func (f *Function) VersionString(s *Project) string

func (*Function) Workers

func (c *Function) Workers() int

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:"-"`
	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 FromConfig(p *Config) (*Project, error)

func FromFile

func FromFile(name string) (*Project, error)

func New

func New(config *Config) *Project

func (*Project) Computes

func (s *Project) Computes() []Compute

func (*Project) ToFile

func (s *Project) ToFile(file string) error

type Queue

type Queue struct{}

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

type ScheduleTarget

type ScheduleTarget struct {
	Type string `yaml:"type"` // TODO(Angus) check type: 'topic'; // ; | "queue"
	Name string `yaml:"name"`
}

type Secret

type Secret struct{}

type Topic

type Topic struct{}

type Triggers

type Triggers struct {
	Topics []string `yaml:"topics,omitempty"`
}

Jump to

Keyboard shortcuts

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