schema

package
v0.1.14 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2019 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var HttpMethods = []string{"GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "ANY"}

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
	NoProviderGeneration bool
	NoUpload             bool
	TerraformCommand     string
}

type CanHandleFunc

type CanHandleFunc func(resourceType string) bool

type FunctionEvent added in v0.1.12

type FunctionEvent struct {
	FunctionName  string
	FunctionEvent TerralessFunctionEvent
}

type FunctionEvents added in v0.1.12

type FunctionEvents struct {
	Events map[string][]FunctionEvent
}

type PrepareSessionFunc

type PrepareSessionFunc func(terralessConfig TerralessConfig)

type ProcessUploadFunc

type ProcessUploadFunc func(terralessData TerralessData, upload TerralessUpload)

type Provider

type Provider struct {
	CanHandle                  CanHandleFunc
	PrepareSession             PrepareSessionFunc
	ProcessUpload              ProcessUploadFunc
	RenderAuthorizerTemplates  RenderAuthorizerTemplatesFunc
	RenderCertificateTemplates RenderCertificateTemplatesFunc
	RenderEndpointTemplates    RenderEndpointTemplatesFunc
	RenderFunctionTemplates    RenderFunctionTemplatesFunc
	RenderUploadTemplates      RenderUploadTemplatesFunc
}

type RenderAuthorizerTemplatesFunc added in v0.1.12

type RenderAuthorizerTemplatesFunc func(config TerralessConfig, buffer bytes.Buffer) bytes.Buffer

type RenderCertificateTemplatesFunc added in v0.1.12

type RenderCertificateTemplatesFunc func(config TerralessConfig, buffer bytes.Buffer) bytes.Buffer

type RenderEndpointTemplatesFunc added in v0.1.12

type RenderEndpointTemplatesFunc func(config TerralessConfig, buffer bytes.Buffer) bytes.Buffer

type RenderFunctionTemplatesFunc added in v0.1.12

type RenderFunctionTemplatesFunc func(resourceType string, functionEvents FunctionEvents, terralessData *TerralessData, buffer bytes.Buffer) bytes.Buffer

type RenderUploadTemplatesFunc added in v0.1.12

type RenderUploadTemplatesFunc func(currentConfig TerralessConfig, buffer bytes.Buffer) bytes.Buffer

type TerralessActiveProvider

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

type TerralessAuthorizer

type TerralessAuthorizer struct {
	AuthorizerType string   `yaml:"AuthorizerType"`
	Type           string   `yaml:"Type"`
	Name           string   `yaml:"Name"`
	ProviderArns   []string `yaml:"ProviderArns"`

	// only for rendering template
	TerraformName string
}

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 {
	Authorizers  map[string]TerralessAuthorizer
	Backend      TerralessBackend
	Certificates map[string]TerralessCertificate
	Endpoints    []TerralessEndpoint
	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 TerralessEndpoint added in v0.1.12

type TerralessEndpoint struct {
	Aliases     []string `yaml:"Aliases"`
	Certificate string   `yaml:"Certificate"`
	Domain      string   `yaml:"Domain"`
	Type        string   `yaml:"Type"`

	// only for rendering template
	TerralessCertificate TerralessCertificate
	TerraformName        string
}

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"`
	Type        string                   `yaml:"Type"`

	// only for rendering template
	AddApiGatewayPermission bool
	FunctionName            string
	ProjectName             string
	RenderEnvironment       bool
}

type TerralessFunctionEvent

type TerralessFunctionEvent struct {
	Authorizer string        `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
	Authorization       string
	AuthorizerId        string
	FunctionName        string
	Idx                 string
	ProjectName         string
	PathsRendered       map[string]string
	ResourceNameForPath 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 {
	Authorizers     map[string]TerralessAuthorizer  `yaml:"Authorizers"`
	ActiveProviders []TerralessActiveProvider       `yaml:"ActiveProviders"`
	Backend         TerralessBackend                `yaml:"Backend"`
	Certificates    map[string]TerralessCertificate `yaml:"Certificates"`
	Endpoints       []TerralessEndpoint             `yaml:"Endpoints"`
	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 🇻🇳