schema

package
v0.1.6 Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2019 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func EnrichWithData

func EnrichWithData(data map[string]string, override map[string]string) map[string]string

func ProcessData

func ProcessData(data map[string]string, arguments Arguments) map[string]string

func ProcessString

func ProcessString(check string, arguments Arguments) string

Types

type Arguments

type Arguments struct {
	Config           string
	Environment      string
	ForceDeploy      bool
	GlobalConfig     string
	LogLevel         string
	NoDeploy         bool
	NoUpload         bool
	TerraformCommand string
}

type CanHandleFunc

type CanHandleFunc func(resourceType string) bool

type PrepareSessionFunc

type PrepareSessionFunc func(terralessConfig TerralessConfig)

type ProcessUploadFunc

type ProcessUploadFunc func(config TerralessConfig, upload TerralessUpload)

type Provider

type Provider struct {
	CanHandle      CanHandleFunc
	PrepareSession PrepareSessionFunc
	ProcessUpload  ProcessUploadFunc
}

type TerralessActiveProvider

type TerralessActiveProvider struct {
	Team      string              `yaml:"Team"`
	Providers []TerralessProvider `yaml:"Providers"`
}

type TerralessAuthorizer

type TerralessAuthorizer struct {
	Type string `yaml:"Type"`
}

type TerralessBackend

type TerralessBackend struct {
	Data     map[string]string `yaml:"Data"`
	Name     string            `yaml:"Name"`
	Provider string            `yaml:"Provider"`
	Type     string            `yaml:"Type"`
}

type TerralessCertificate

type TerralessCertificate struct {
	Aliases   []string `yaml:"Aliases"`
	Domain    string   `yaml:"Domain"`
	Type      string   `yaml:"Type"`
	Providers []string `yaml:"Providers"`
	ZoneId    string   `yaml:"ZoneId"`

	// only for rendering template
	ProjectName   string
	TerraformName string
}

type TerralessCloudfront

type TerralessCloudfront struct {
	Aliases        []string                   `yaml:"Aliases"`
	Caching        TerralessCloudfrontCaching `yaml:"Caching"`
	Certificate    string                     `yaml:"Certificate"`
	Domain         string                     `yaml:"Domain"`
	LoggingEnabled bool                       `yaml:"LoggingEnabled"`
	PriceClass     string                     `yaml:"PriceClass"`
}

type TerralessCloudfrontCaching

type TerralessCloudfrontCaching struct {
	DefaultTTL int `yaml:"DefaultTTL"`
	MinTTL     int `yaml:"MinTTL"`
	MaxTTL     int `yaml:"MaxTTL"`
}

type TerralessConfig

type TerralessConfig struct {
	Backend      TerralessBackend
	Certificates map[string]TerralessCertificate
	Functions    map[string]TerralessFunction
	Package      TerralessPackage
	ProjectName  string
	Providers    map[string]TerralessProvider
	Settings     TerralessSettings
	SourcePath   string
	TargetPath   string
	Uploads      []TerralessUpload

	// only for rendering template
	HasProvider map[string]bool
	Runtimes    []string
}

func BuildTerralessConfig

func BuildTerralessConfig(globalCfg TerralessGlobalConfig, projectCfg TerralessProjectConfig, arguments Arguments) TerralessConfig

func (TerralessConfig) Validate

func (cfg TerralessConfig) Validate()

type TerralessCors

type TerralessCors struct {
	Headers []string `yaml:"Headers"`
	Origin  string   `yaml:"Origin"`
}

type TerralessData

type TerralessData struct {
	ActiveProviders    map[string]TerralessProvider
	Arguments          Arguments
	Config             TerralessConfig
	TerralessProviders []Provider
}

type TerralessFunction

type TerralessFunction struct {
	Description string                   `yaml:"Description"`
	Environment map[string]string        `yaml:"Environment"`
	Events      []TerralessFunctionEvent `yaml:"Events"`
	Handler     string                   `yaml:"Handler"`
	MemorySize  int                      `yaml:"MemorySize"`
	RoleArn     string                   `yaml:"RoleArn"`
	Runtime     string                   `yaml:"Runtime"`
	Timeout     int                      `yaml:"Timeout"`

	// only for rendering template
	FunctionName      string
	RenderEnvironment bool
}

type TerralessFunctionEvent

type TerralessFunctionEvent struct {
	Authorizer TerralessAuthorizer `yaml:"Authorizer"`
	Arn        string              `yaml:"Arn"`
	Cors       TerralessCors       `yaml:"Cors"`
	Method     string              `yaml:"Method"`
	Path       string              `yaml:"Path"`
	Rate       string              `yaml:"Rate"`
	Route      string              `yaml:"Route"`
	Type       string              `yaml:"Type"`

	// only for rendering template
	FunctionName string
}

type TerralessGlobalConfig

type TerralessGlobalConfig struct {
	Backends []TerralessBackend `yaml:"Backends"`
	Teams    []TerralessTeam    `yaml:"Teams"`
	Uploads  []TerralessUpload  `yaml:"Uploads"`
}

type TerralessPackage

type TerralessPackage struct {
	SourceDir  string `yaml:"SourceDir"`
	OutputPath string
}

type TerralessProjectConfig

type TerralessProjectConfig struct {
	ActiveProviders []TerralessActiveProvider       `yaml:"ActiveProviders"`
	Backend         TerralessBackend                `yaml:"Backend"`
	Certificates    map[string]TerralessCertificate `yaml:"Certificates"`
	Functions       map[string]TerralessFunction    `yaml:"Functions"`
	Package         TerralessPackage                `yaml:"Package"`
	ProjectName     string                          `yaml:"ProjectName"`
	Settings        TerralessSettings               `yaml:"Settings"`
	SourcePath      string                          `yaml:"SourcePath"`
	TargetPath      string                          `yaml:"TargetPath"`
	Uploads         []TerralessUpload               `yaml:"Uploads"`

	// only for rendering template
	HasProvider map[string]bool
	Runtimes    []string
	TeamData    map[string]map[string]string
}

func (*TerralessProjectConfig) Validate

type TerralessProvider

type TerralessProvider struct {
	Data  map[string]string `yaml:"Data"`
	Name  string            `yaml:"Name"`
	Roles []string          `yaml:"Roles"`
	Type  string            `yaml:"Type"`
}

type TerralessSettings

type TerralessSettings struct {
	AutoSignIn bool   `yaml:"AutoSignIn"`
	Runtime    string `yaml:"Runtime"`
}

type TerralessTeam

type TerralessTeam struct {
	Data      map[string]string   `yaml:"Data"`
	Name      string              `yaml:"Name"`
	Providers []TerralessProvider `yaml:"Providers"`
}

type TerralessType

type TerralessType struct {
	Data map[string]string `yaml:"Data"`
	Name string            `yaml:"Name"`
	Type string            `yaml:"Type"`
}

type TerralessUpload

type TerralessUpload struct {
	Bucket     string              `yaml:"Bucket"`
	Cloudfront TerralessCloudfront `yaml:"Cloudfront"`
	Provider   string              `yaml:"Provider"`
	Region     string              `yaml:"Region"`
	Source     string              `yaml:"Source"`
	Target     string              `yaml:"Target"`
	Type       string              `yaml:"Type"`

	// only for rendering template
	Certificate      TerralessCertificate
	LambdaAtEdgeFile string
	OwnCertificate   bool
	ProjectName      string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳