Documentation ¶
Index ¶
- Constants
- func CloudAddExpGetAtt(tpl *gocf.Template, p Plugin, ref CloudRef, att CloudAtt)
- func CloudAddExpRef(tpl *gocf.Template, p Plugin, ref CloudRef)
- func CloudGetDefaultTags(name string) *[]gotags.Tag
- func CloudGetStackName(p Plugin) string
- func CloudGetTaskDefinitionKeyValuePairs(m map[string]string) *[]goecs.TaskDefinition_KeyValuePair
- func LocalGetContainerName(p Plugin, additionalParts ...string) string
- func NewAssumeRolePolicyDocument(service string) interface{}
- func NewPolicyDocument(statements ...*PolicyStatement) interface{}
- type API
- type APICloudMetadata
- type APIConfig
- type APIConfigCloud
- type APIConfigFunc
- type APIConfigLocal
- type APIDependencies
- type APIEventHookFunc
- type APILocalMetadata
- type App
- type AppConfig
- func (c *AppConfig) GetBuildDirPath(additionalParts ...string) string
- func (c *AppConfig) GetBuildDirPathForPlugin(p Plugin, additionalParts ...string) string
- func (c *AppConfig) GetConfigDirPath(additionalParts ...string) string
- func (c *AppConfig) GetConfigDirPathForPlugin(p Plugin, additionalParts ...string) string
- func (c *AppConfig) MustValidate()
- type Bucket
- type BucketCloudMetadata
- type BucketConfig
- type BucketConfigCloud
- type BucketConfigFunc
- type BucketConfigLocal
- type BucketDependencies
- type BucketEventHookFunc
- type BucketLocalMetadata
- type Certificate
- type CertificateCloudMetadata
- type CertificateConfig
- type CertificateConfigCloud
- type CertificateConfigFunc
- type CertificateDependencies
- type CertificateEventHookFunc
- type CloudAtt
- type CloudExports
- type CloudRef
- type CloudStage
- type CloudStageConfig
- type Event
- type Function
- type FunctionBuilder
- type FunctionCloudMetadata
- type FunctionConfig
- type FunctionConfigCloud
- type FunctionConfigFunc
- type FunctionConfigLocal
- type FunctionDependencies
- type FunctionEventHookFunc
- type FunctionLocalMetadata
- type Hasura
- type HasuraCloudMetadata
- type HasuraConfig
- type HasuraConfigCloud
- type HasuraConfigFunc
- type HasuraConfigJWT
- type HasuraConfigLocal
- type HasuraDependencies
- type HasuraEventHookFunc
- type HasuraLocalMetadata
- type ImageRepository
- type ImageRepositoryCloudMetadata
- type ImageRepositoryConfig
- type ImageRepositoryConfigCloud
- type ImageRepositoryConfigFunc
- type ImageRepositoryConfigTaggedImagesPolicy
- type ImageRepositoryConfigUntaggedImagesPolicy
- type ImageRepositoryDependencies
- type ImageRepositoryEventHookFunc
- type ImageRepositoryLocalMetadata
- type LoadBalancer
- type LoadBalancerCloudMetadata
- type LoadBalancerConfig
- type LoadBalancerConfigFunc
- type LoadBalancerDependencies
- type LoadBalancerEventHookFunc
- type LocalStage
- type LocalStageConfig
- type Mail
- type MailConfig
- type MailConfigFunc
- type MailConfigLocal
- type MailDependencies
- type MailEventHookFunc
- type MailLocalMetadata
- type Network
- type NetworkCloudMetadata
- type NetworkConfig
- type NetworkConfigFunc
- type NetworkDependencies
- type NetworkEventHookFunc
- type OtherDependencies
- type Plugin
- type PolicyStatement
- func (s *PolicyStatement) AddActions(actions ...string) *PolicyStatement
- func (s *PolicyStatement) AddResources(resources ...string) *PolicyStatement
- func (s *PolicyStatement) Build() interface{}
- func (s *PolicyStatement) SetAnyRootAccountPrincipal() *PolicyStatement
- func (s *PolicyStatement) SetCurrentRootAccountPrincipal() *PolicyStatement
- func (s *PolicyStatement) SetServicePrincipal(service string) *PolicyStatement
- func (s *PolicyStatement) SetWildcardPrincipal() *PolicyStatement
- type Postgres
- type PostgresCloudMetadata
- type PostgresConfig
- type PostgresConfigCloud
- type PostgresConfigFunc
- type PostgresConfigLocal
- type PostgresDependencies
- type PostgresEventHookFunc
- type PostgresLocalMetadata
- type PostgresProxy
- type PostgresProxyCloudMetadata
- type PostgresProxyConfig
- type PostgresProxyConfigFunc
- type PostgresProxyDependencies
- type PostgresProxyEventHookFunc
- type PostgresProxyLocalMetadata
- type Stage
- type StageConfig
- type StageMode
- type StageTarget
Constants ¶
const ( APIPluginDisplayName = "API" APIPluginName = "api" APIRefAPI = CloudRef("api") APIRefPermission = CloudRef("perm") APIRefDomainName = CloudRef("dn") APIRefRecordSet = CloudRef("rs") APIRefStage = CloudRef("stg") APIRefAPIMapping = CloudRef("dnmap") APIRefIntegration = CloudRef("intg") APIAttAPIEndpoint = CloudAtt("ApiEndpoint") APIAttRegionalDomainName = CloudAtt("RegionalDomainName") APIAttRegionalHostedZoneID = CloudAtt("RegionalHostedZoneId") )
API constants.
const ( BucketPluginDisplayName = "Bucket" BucketPluginName = "bucket" BucketRefBucket = CloudRef("b") BucketRefBucketPolicyPublic = CloudRef("bp-pub") BucketAttARN = CloudAtt("Arn") BucketAttDomainName = CloudAtt("DomainName") BucketAttDualStackDomainName = CloudAtt("DualStackDomainName") BucketAttRegionalDomainName = CloudAtt("RegionalDomainName") )
Bucket constants.
const ( CertificatePluginDisplayName = "Certificate" CertificatePluginName = "certificate" CertificateRefCertificate = CloudRef("c") )
Certificate constants.
const ( FunctionPluginDisplayName = "Function" FunctionPluginName = "function" FunctionRefRole = CloudRef("r") FunctionRefLogGroup = CloudRef("lg") FunctionRefFunction = CloudRef("f") FunctionAttARN = CloudAtt("Arn") FunctionAttRoleID = CloudAtt("RoleId") FunctionHandlerFileName = "handler" FunctionPackageFileName = "function.zip" )
Function constants.
const ( HasuraPluginDisplayName = "Hasura" HasuraPluginName = "hasura" HasuraRefLogGroup = CloudRef("lg") HasuraRefRoleExecution = CloudRef("r-ex") HasuraRefRoleTask = CloudRef("r-tk") HasuraRefTaskDefinition = CloudRef("td") HasuraRefTargetGroup = CloudRef("tg") HasuraRefListenerRule = CloudRef("lr") HasuraRefCluster = CloudRef("cl") HasuraRefService = CloudRef("svc") HasuraRefRecordSet = CloudRef("rs") HasuraAttARN = CloudAtt("Arn") HasuraAttName = CloudAtt("Name") HasuraAttRoleID = CloudAtt("RoleId") HasuraAttRuleARN = CloudAtt("RuleArn") HasuraAttTargetGroupFullName = CloudAtt("TargetGroupFullName") HasuraAttTargetGroupName = CloudAtt("TargetGroupName") )
Hasura constants.
const ( ImageRepositoryPluginDisplayName = "ImageRepository" ImageRepositoryPluginName = "image-repository" ImageRepositoryRefRepository = CloudRef("r") ImageRepositoryAttARN = CloudAtt("Arn") ImageRepositoryAttRepositoryURI = CloudAtt("RepositoryUri") )
Image repository constants.
const ( LoadBalancerPluginDisplayName = "Load Balancer" LoadBalancerPluginName = "load-balancer" LoadBalancerRefLoadBalancer = CloudRef("lb") LoadBalancerRefListenerHTTP = CloudRef("l") LoadBalancerRefListenerHTTPS = CloudRef("l-s") LoadBalancerRefSecurityGroupIngressHTTP = CloudRef("sgi") LoadBalancerRefSecurityGroupIngressHTTPS = CloudRef("sgi-s") LoadBalancerAttCanonicalHostedZoneID = CloudAtt("CanonicalHostedZoneID") LoadBalancerAttDNSName = CloudAtt("DNSName") LoadBalancerAttLoadBalancerFullName = CloudAtt("LoadBalancerFullName") LoadBalancerAttLoadBalancerName = CloudAtt("LoadBalancerName") LoadBalancerAttListenerArn = CloudAtt("ListenerArn") )
Load balancer constants.
const ( MailPluginDisplayName = "Mail" MailPluginName = "mail" )
Mail constants.
const ( NetworkPluginDisplayName = "Network" NetworkPluginName = "network" NetworkRefVPC = CloudRef("v") NetworkRefInternetGateway = CloudRef("ig") NetworkRefVPCGatewayAttachment = CloudRef("vig") NetworkRefRouteTablePublic = CloudRef("rt-pub") NetworkRefRoutePublic = CloudRef("r-pub") NetworkRefSubnetPublicA = CloudRef("s-pub-a") NetworkRefSubnetRouteTableAssociationPublicA = CloudRef("srt-pub-a") NetworkRefSubnetPublicB = CloudRef("s-pub-b") NetworkRefSubnetRouteTableAssociationPublicB = CloudRef("srt-pub-b") NetworkRefEIPA = CloudRef("eip-a") NetworkRefNATGatewayA = CloudRef("ng-a") NetworkRefRouteTablePrivateA = CloudRef("rt-pri-a") NetworkRefRoutePrivateA = CloudRef("r-pri-a") NetworkRefSubnetPrivateA = CloudRef("s-pri-a") NetworkRefSubnetRouteTableAssociationPrivateA = CloudRef("s-rt-pri-a") NetworkRefEIPB = CloudRef("eip-b") NetworkRefNATGatewayB = CloudRef("ng-b") NetworkRefRouteTablePrivateB = CloudRef("rt-pri-b") NetworkRefRoutePrivateB = CloudRef("r-pri-b") NetworkRefSubnetPrivateB = CloudRef("s-pri-b") NetworkRefSubnetRouteTableAssociationPrivateB = CloudRef("srt-pri-b") NetworkRefSecurityGroup = CloudRef("sg") NetworkRefSecurityGroupIngress = CloudRef("sgi") NetworkAttAllocationID = CloudAtt("AllocationId") NetworkAttCIDRBlock = CloudAtt("CidrBlock") NetworkAttDefaultNetworkACL = CloudAtt("DefaultNetworkAcl") NetworkAttDefaultSecurityGroup = CloudAtt("DefaultSecurityGroup") NetworkAttGroupID = CloudAtt("GroupId") NetworkAttID = CloudAtt("Id") NetworkAttInternetGatewayID = CloudAtt("InternetGatewayId") NetworkAttNetworkACLAssociationID = CloudAtt("NetworkAclAssociationId") NetworkAttRouteTableID = CloudAtt("RouteTableId") NetworkAttSubnetID = CloudAtt("SubnetId") NetworkAttVPCID = CloudAtt("VpcId") CIDRAllDestinations = "0.0.0.0/0" CIDRVPC = "10.0.0.0/16" CIDRSubnetPublicA = "10.0.0.0/19" CIDRSubnetPublicB = "10.0.32.0/19" CIDRSubnetPrivateA = "10.0.64.0/19" CIDRSubnetPrivateB = "10.0.96.0/19" )
Network constants.
const ( PostgresPluginDisplayName = "Postgres" PostgresPluginName = "postgres" PostgresRefDBParameterGroup = CloudRef("pg") PostgresRefDBSubnetGroup = CloudRef("sg") PostgresRefLogGroup = CloudRef("lg") PostgresRefRoleMonitoring = CloudRef("r-mon") PostgresRefDBInstance = CloudRef("i") PostgresAttARN = CloudAtt("Arn") PostgresAttRoleID = CloudAtt("RoleId") PostgresAttEndpointAddress = CloudAtt("Endpoint.Address") PostgresAttEndpointPort = CloudAtt("Endpoint.Port") )
Postgres constants.
const ( PostgresProxyPluginDisplayName = "PostgresProxy" PostgresProxyPluginName = "postgres-proxy" PostgresProxyRefSecret = CloudRef("s") PostgresProxyRefRole = CloudRef("r") PostgresProxyRefLogGroup = CloudRef("lg") PostgresProxyRefDBProxy = CloudRef("p") PostgresProxyRefDBProxyTargetGroup = CloudRef("tg") PostgresProxyAttARN = CloudAtt("Arn") PostgresProxyAttRoleID = CloudAtt("RoleId") PostgresProxyAttDBProxyARN = CloudAtt("DBProxyArn") PostgresProxyAttEndpoint = CloudAtt("Endpoint") )
Postgres proxy constants.
const ( LocalAWSAccessKeyID = "aws-access-key-id" LocalAWSSecretAccessKey = "aws-secret-access-key" LocalPassword = "password" LocalSecret = "secret" )
Pseudo-secret values used for local services.
Variables ¶
This section is empty.
Functions ¶
func CloudAddExpGetAtt ¶
CloudAddExpGetAtt adds a get attribute export to the given template.
func CloudAddExpRef ¶
CloudAddExpRef adds a reference export to the given template.
func CloudGetDefaultTags ¶
CloudGetDefaultTags returns a set of default tags.
func CloudGetStackName ¶
CloudGetStackName generates a stack name for the given plugin.
func CloudGetTaskDefinitionKeyValuePairs ¶
func CloudGetTaskDefinitionKeyValuePairs(m map[string]string) *[]goecs.TaskDefinition_KeyValuePair
CloudGetTaskDefinitionKeyValuePairs converts a map of strings to a slice of TaskDefinition_KeyValuePair.
func LocalGetContainerName ¶
LocalGetContainerName generates a container name for the given plugin.
func NewAssumeRolePolicyDocument ¶
func NewAssumeRolePolicyDocument(service string) interface{}
NewAssumeRolePolicyDocument generates a new assume role policy document.
func NewPolicyDocument ¶
func NewPolicyDocument(statements ...*PolicyStatement) interface{}
NewPolicyDocument generates a new policy document.
Types ¶
type API ¶
type API interface { Plugin GetConfig() *APIConfig GetLocalMetadata() *APILocalMetadata GetCloudMetadata(require bool) *APICloudMetadata }
API describes an api.
func NewAPI ¶
func NewAPI(cfgFunc APIConfigFunc, deps *APIDependencies) API
NewAPI initializes a new API.
type APICloudMetadata ¶
type APICloudMetadata struct { Exports CloudExports URL *url.URL }
APICloudMetadata describes the api cloud metadata.
type APIConfig ¶
type APIConfig struct { Stage Stage `validate:"required"` Name string `validate:"required,resource-name"` RouteKeys []string `validate:"required"` Local *APIConfigLocal Cloud *APIConfigCloud EventHook APIEventHookFunc }
APIConfig describes the api config.
func (*APIConfig) MustValidate ¶
func (c *APIConfig) MustValidate(stageTarget StageTarget)
MustValidate validates the api config.
type APIConfigCloud ¶
type APIConfigCloud struct { DomainName string `validate:"required,fqdn"` CORSDomain string `validate:"required,fqdn"` }
APIConfigCloud describes part of the api config.
type APIConfigFunc ¶
type APIConfigFunc func(Stage, *APIDependencies) *APIConfig
APIConfigFunc returns the api config for a given Stage.
type APIConfigLocal ¶
type APIConfigLocal struct {
ExternalPort uint16 `validate:"required"`
}
APIConfigLocal describes part of the api config.
type APIDependencies ¶
type APIDependencies struct { Certificate Certificate `validate:"required"` Function Function `validate:"required"` OtherDependencies OtherDependencies }
APIDependencies describes the api dependencies.
func (*APIDependencies) MustValidate ¶
func (d *APIDependencies) MustValidate()
MustValidate validates the function dependencies.
type APIEventHookFunc ¶
APIEventHookFunc describes an api event hook.
type APILocalMetadata ¶
APILocalMetadata describes the api local metadata.
type App ¶
type App interface { GetConfig() *AppConfig GetOperations() opz.Operations GetSortedPlugins() [][]Plugin }
App describes an App.
type AppConfig ¶
type AppConfig struct { DisplayName string `validate:"required"` Name string `validate:"required,resource-name"` ConfigDirPath string `validate:"required,dir"` BuildDirPath string `validate:"required,parent-dir"` AWSConfig *aws.Config `validate:"required"` Plugins []Plugin `validate:"required"` }
AppConfig describes the app config.
func (*AppConfig) GetBuildDirPath ¶
GetBuildDirPath returns the build dir path.
func (*AppConfig) GetBuildDirPathForPlugin ¶
GetBuildDirPathForPlugin returns a build dir path for the given plugin.
func (*AppConfig) GetConfigDirPath ¶
GetConfigDirPath returns the config dir path.
func (*AppConfig) GetConfigDirPathForPlugin ¶
GetConfigDirPathForPlugin returns a config dir path for the given plugin.
func (*AppConfig) MustValidate ¶
func (c *AppConfig) MustValidate()
MustValidate validates the app config.
type Bucket ¶
type Bucket interface { Plugin GetConfig() *BucketConfig GetLocalMetadata() *BucketLocalMetadata GetCloudMetadata(require bool) *BucketCloudMetadata }
Bucket describes a bucket.
func NewBucket ¶
func NewBucket(cfgFunc BucketConfigFunc, deps *BucketDependencies) Bucket
NewBucket initializes a new Bucket.
type BucketCloudMetadata ¶
type BucketCloudMetadata struct { Exports CloudExports BucketName string BucketURL *url.URL }
BucketCloudMetadata describes the bucket cloud metadata.
func (*BucketCloudMetadata) GetName ¶
func (m *BucketCloudMetadata) GetName() string
GetName returns the bucket name.
type BucketConfig ¶
type BucketConfig struct { Stage Stage `validate:"required"` Name string `validate:"required,resource-name"` IsPublicAccessEnabled bool Local *BucketConfigLocal Cloud *BucketConfigCloud EventHook BucketEventHookFunc }
BucketConfig describes the bucket config.
func (*BucketConfig) MustValidate ¶
func (c *BucketConfig) MustValidate(stageTarget StageTarget)
MustValidate validates the bucket config.
type BucketConfigCloud ¶
type BucketConfigCloud struct { IsVersioningEnabled bool DeleteObjectsAfterDays *uint16 DeletePreviousObjectVersionsAfterDays *uint16 }
BucketConfigCloud describes part of the bucket config.
type BucketConfigFunc ¶
type BucketConfigFunc func(Stage, *BucketDependencies) *BucketConfig
BucketConfigFunc returns the bucket config for a given Stage.
type BucketConfigLocal ¶
type BucketConfigLocal struct { ExternalPort uint16 `validate:"required"` ConsoleExternalPort uint16 `validate:"required"` }
BucketConfigLocal describes part of the bucket config.
type BucketDependencies ¶
type BucketDependencies struct {
OtherDependencies OtherDependencies
}
BucketDependencies describes the bucket dependencies.
func (*BucketDependencies) MustValidate ¶
func (d *BucketDependencies) MustValidate()
MustValidate validates the bucket dependencies.
type BucketEventHookFunc ¶
BucketEventHookFunc describes a bucket event hook.
type BucketLocalMetadata ¶
type BucketLocalMetadata struct { ContainerName string AccessKey string SecretKey string BucketName string ExternalURL *url.URL InternalURL *url.URL ConsoleExternalURL *url.URL }
BucketLocalMetadata describes the bucket local metadata.
type Certificate ¶
type Certificate interface { Plugin GetConfig() *CertificateConfig GetCloudMetadata(require bool) *CertificateCloudMetadata }
Certificate describes a certificate.
func NewCertificate ¶
func NewCertificate(cfgFunc CertificateConfigFunc, deps *CertificateDependencies) Certificate
NewCertificate initializes a new Certificate.
type CertificateCloudMetadata ¶
type CertificateCloudMetadata struct { Exports CloudExports ARN string }
CertificateCloudMetadata describes the certificate cloud metadata.
type CertificateConfig ¶
type CertificateConfig struct { Stage Stage `validate:"required"` Name string `validate:"required,resource-name"` Cloud *CertificateConfigCloud EventHook CertificateEventHookFunc }
CertificateConfig describes the certificate config.
func (*CertificateConfig) MustValidate ¶
func (c *CertificateConfig) MustValidate(stageTarget StageTarget)
MustValidate validates the certificate config.
type CertificateConfigCloud ¶
type CertificateConfigCloud struct { DomainName string `validate:"required"` HostedZoneID string `validate:"required"` }
CertificateConfigCloud describes part of the certificate config.
type CertificateConfigFunc ¶
type CertificateConfigFunc func(Stage, *CertificateDependencies) *CertificateConfig
CertificateConfigFunc returns the certificate for a given Stage.
type CertificateDependencies ¶
type CertificateDependencies struct {
OtherDependencies OtherDependencies
}
CertificateDependencies describes the certificate dependencies.
func (*CertificateDependencies) MustValidate ¶
func (d *CertificateDependencies) MustValidate()
MustValidate validates the certificate dependencies.
type CertificateEventHookFunc ¶
type CertificateEventHookFunc func(Certificate, Event, string)
CertificateEventHookFunc describes a certificate event hook.
type CloudExports ¶
type CloudExports interface { GetRef(ref CloudRef) string GetAtt(ref CloudRef, att CloudAtt) string }
CloudExports describes a set of cloud exports.
func NewCloudExports ¶
func NewCloudExports(stack *awscft.Stack) CloudExports
NewCloudExports initializes a new set of cloud exports.
type CloudRef ¶
type CloudRef string
CloudRef describes a cloud reference.
func (CloudRef) ExpAttName ¶
ExpAttName returns a name for an attribute export.
func (CloudRef) ExpRefName ¶
ExpRefName returns a name for a reference export.
type CloudStage ¶
type CloudStage interface { Stage GetCloudConfig() *CloudStageConfig GetArtifactsKeyPrefix(p Plugin, additionalParts ...string) string IsDeployed() bool Deploy() }
CloudStage describes a cloud Stage.
func NewCloudStage ¶
func NewCloudStage(cfg *CloudStageConfig) CloudStage
NewCloudStage initializes a new CloudStage.
type CloudStageConfig ¶
type CloudStageConfig struct { *StageConfig `validate:"required"` Name string `validate:"required,resource-name"` Version string `validate:"required"` Mode StageMode `validate:"required,oneof=prod staging"` }
CloudStageConfig describes the Stage cloud config.
func (*CloudStageConfig) MustValidate ¶
func (c *CloudStageConfig) MustValidate()
MustValidate validates the cloud stage config.
type Function ¶
type Function interface { Plugin GetConfig() *FunctionConfig GetDependencies() *FunctionDependencies GetLocalMetadata() *FunctionLocalMetadata GetCloudMetadata(require bool) *FunctionCloudMetadata }
Function describes a function.
func NewFunction ¶
func NewFunction(cfgFunc FunctionConfigFunc, deps *FunctionDependencies) Function
NewFunction initializes a new Function.
type FunctionBuilder ¶
type FunctionBuilder interface { GetLocalServiceConfigVolumes(p Function, buildDirPath string) []dctypes.ServiceVolumeConfig LocalBeforeCreateEventHook(p Function, buildDirPath string) GetCloudRuntime(p Function) string BuildCloudPackage(p Function, buildDirPath string) }
FunctionBuilder describes a function builder.
func NewGoFunctionBuilder ¶
func NewGoFunctionBuilder(workDirPath, packageName string, injectValues map[string]string) FunctionBuilder
NewGoFunctionBuilder initializes a new Go function builder.
type FunctionCloudMetadata ¶
type FunctionCloudMetadata struct { Exports CloudExports FunctionName string }
FunctionCloudMetadata describes the function cloud metadata.
func (*FunctionCloudMetadata) GetARN ¶
func (m *FunctionCloudMetadata) GetARN() string
GetARN returns the function ARN.
func (*FunctionCloudMetadata) GetName ¶
func (m *FunctionCloudMetadata) GetName() string
GetName returns the function name.
type FunctionConfig ¶
type FunctionConfig struct { Stage Stage `validate:"required"` Name string `validate:"required"` Builder FunctionBuilder `validate:"required"` TimeoutSeconds uint16 `validate:"required"` Environment map[string]string Local *FunctionConfigLocal Cloud *FunctionConfigCloud EventHook FunctionEventHookFunc }
FunctionConfig describes the function config.
func (*FunctionConfig) MustValidate ¶
func (c *FunctionConfig) MustValidate(stageTarget StageTarget)
MustValidate validates the function config.
type FunctionConfigCloud ¶
type FunctionConfigCloud struct { Memory int `validate:"required"` RolePolicies []goiam.Role_Policy }
FunctionConfigCloud describes part of the function config.
type FunctionConfigFunc ¶
type FunctionConfigFunc func(Stage, *FunctionDependencies) *FunctionConfig
FunctionConfigFunc returns the function config for a given Stage.
type FunctionConfigLocal ¶
FunctionConfigLocal describes part of the function config.
type FunctionDependencies ¶
type FunctionDependencies struct { ArtifactsBucket Bucket `validate:"required"` Network Network OtherDependencies OtherDependencies }
FunctionDependencies describes the function dependencies.
func (*FunctionDependencies) MustValidate ¶
func (d *FunctionDependencies) MustValidate()
MustValidate validates the function dependencies.
type FunctionEventHookFunc ¶
FunctionEventHookFunc describes a function event hook.
type FunctionLocalMetadata ¶
FunctionLocalMetadata describes the function local metadata.
type Hasura ¶
type Hasura interface { Plugin GetConfig() *HasuraConfig GetDependencies() *HasuraDependencies GetLocalMetadata() *HasuraLocalMetadata GetCloudMetadata(require bool) *HasuraCloudMetadata ApplyLocalMetadata() }
Hasura describes a hasura.
func NewHasura ¶
func NewHasura(cfgFunc HasuraConfigFunc, deps *HasuraDependencies) Hasura
NewHasura initializes a new Hasura.
type HasuraCloudMetadata ¶
type HasuraCloudMetadata struct { Exports CloudExports URL *url.URL }
HasuraCloudMetadata describes the hasura cloud metadata.
type HasuraConfig ¶
type HasuraConfig struct { Stage Stage `validate:"required"` EnableAllowList bool JWT *HasuraConfigJWT `validate:"required"` Environment map[string]string Local *HasuraConfigLocal Cloud *HasuraConfigCloud EventHook HasuraEventHookFunc }
HasuraConfig describes the hasura config.
func (*HasuraConfig) MustValidate ¶
func (c *HasuraConfig) MustValidate(stageTarget StageTarget)
MustValidate validates the hasura config.
type HasuraConfigCloud ¶
type HasuraConfigCloud struct { DomainName string `validate:"required"` Replicas int `validate:"required"` CPU int `validate:"required"` Memory int `validate:"required"` AdminSecret string `validate:"required,min=16"` CORSDomain *string }
HasuraConfigCloud describes part of the hasura config.
type HasuraConfigFunc ¶
type HasuraConfigFunc func(Stage, *HasuraDependencies) *HasuraConfig
HasuraConfigFunc returns the hasura config for a given Stage.
type HasuraConfigJWT ¶
type HasuraConfigJWT struct { PublicKey *rsa.PublicKey `validate:"required"` Issuer string `validate:"required"` Audience string `validate:"required"` }
HasuraConfigJWT describes part of the hasura config.
type HasuraConfigLocal ¶
type HasuraConfigLocal struct { ExternalPort uint16 `validate:"required"` ConsoleExternalPort uint16 `validate:"required"` ConsoleAPIExternalPort uint16 `validate:"required"` }
HasuraConfigLocal describes part of the hasura config.
type HasuraDependencies ¶
type HasuraDependencies struct { Certificate Certificate `validate:"required"` ImageRepository ImageRepository `validate:"required"` LoadBalancer LoadBalancer `validate:"required"` Network Network `validate:"required"` Postgres Postgres `validate:"required"` OtherDependencies OtherDependencies }
HasuraDependencies describes the hasura dependencies.
func (*HasuraDependencies) MustValidate ¶
func (d *HasuraDependencies) MustValidate()
MustValidate validates the hasura dependencies.
type HasuraEventHookFunc ¶
HasuraEventHookFunc describes a hasura event hook.
type HasuraLocalMetadata ¶
type HasuraLocalMetadata struct { ContainerName string ConsoleContainerName string AdminSecret string ExternalURL *url.URL InternalURL *url.URL ConsoleExternalURL *url.URL }
HasuraLocalMetadata describes the hasura local metadata.
type ImageRepository ¶
type ImageRepository interface { Plugin GetConfig() *ImageRepositoryConfig GetLocalMetadata() *ImageRepositoryLocalMetadata GetCloudMetadata(require bool) *ImageRepositoryCloudMetadata }
ImageRepository describes an image repository.
func NewImageRepository ¶
func NewImageRepository(cfgFunc ImageRepositoryConfigFunc, deps *ImageRepositoryDependencies) ImageRepository
NewImageRepository initializes a new ImageRepository.
type ImageRepositoryCloudMetadata ¶
type ImageRepositoryCloudMetadata struct { Exports CloudExports ImageName string }
ImageRepositoryCloudMetadata describes the image repository cloud metadata.
type ImageRepositoryConfig ¶
type ImageRepositoryConfig struct { Stage Stage `validate:"required"` Name string `validate:"required,resource-name"` Cloud *ImageRepositoryConfigCloud EventHook ImageRepositoryEventHookFunc }
ImageRepositoryConfig describes the image repository config.
func (*ImageRepositoryConfig) MustValidate ¶
func (c *ImageRepositoryConfig) MustValidate(stageTarget StageTarget)
MustValidate validates the image repository config.
type ImageRepositoryConfigCloud ¶
type ImageRepositoryConfigCloud struct { IsScanOnPushEnabled bool AreTagsMutable bool TaggedImagesPolicy *ImageRepositoryConfigTaggedImagesPolicy UntaggedImagesPolicy *ImageRepositoryConfigUntaggedImagesPolicy }
ImageRepositoryConfigCloud describes part of the image repository config.
type ImageRepositoryConfigFunc ¶
type ImageRepositoryConfigFunc func(Stage, *ImageRepositoryDependencies) *ImageRepositoryConfig
ImageRepositoryConfigFunc returns the image repository config for a given Stage.
type ImageRepositoryConfigTaggedImagesPolicy ¶
type ImageRepositoryConfigTaggedImagesPolicy struct { TagPrefixes []string `validate:"required"` MaximumCount int `validate:"required"` }
ImageRepositoryConfigTaggedImagesPolicy describes part of the image repository config.
type ImageRepositoryConfigUntaggedImagesPolicy ¶
type ImageRepositoryConfigUntaggedImagesPolicy struct {
DeleteAfterDays int `validate:"required"`
}
ImageRepositoryConfigUntaggedImagesPolicy describes part of the image repository config.
type ImageRepositoryDependencies ¶
type ImageRepositoryDependencies struct {
OtherDependencies OtherDependencies
}
ImageRepositoryDependencies describes the image repository dependencies.
func (*ImageRepositoryDependencies) MustValidate ¶
func (d *ImageRepositoryDependencies) MustValidate()
MustValidate validates the image repository dependencies.
type ImageRepositoryEventHookFunc ¶
type ImageRepositoryEventHookFunc func(ImageRepository, Event, string)
ImageRepositoryEventHookFunc describes a image repository event hook.
type ImageRepositoryLocalMetadata ¶
type ImageRepositoryLocalMetadata struct {
ImageName string
}
ImageRepositoryLocalMetadata describes the image repository local metadata.
type LoadBalancer ¶
type LoadBalancer interface { Plugin GetConfig() *LoadBalancerConfig GetDependencies() *LoadBalancerDependencies GetCloudMetadata(require bool) *LoadBalancerCloudMetadata }
LoadBalancer describes a load balancer.
func NewLoadBalancer ¶
func NewLoadBalancer(cfgFunc LoadBalancerConfigFunc, deps *LoadBalancerDependencies) LoadBalancer
NewLoadBalancer initializes a new LoadBalancer.
type LoadBalancerCloudMetadata ¶
type LoadBalancerCloudMetadata struct {
Exports CloudExports
}
LoadBalancerCloudMetadata describes the load balancer cloud metadata.
type LoadBalancerConfig ¶
type LoadBalancerConfig struct { Stage Stage `validate:"required"` EventHook LoadBalancerEventHookFunc }
LoadBalancerConfig describes the load balancer config.
func (*LoadBalancerConfig) MustValidate ¶
func (c *LoadBalancerConfig) MustValidate(_ StageTarget)
MustValidate validates the load balancer config.
type LoadBalancerConfigFunc ¶
type LoadBalancerConfigFunc func(Stage, *LoadBalancerDependencies) *LoadBalancerConfig
LoadBalancerConfigFunc returns the load balancer config for a given Stage.
type LoadBalancerDependencies ¶
type LoadBalancerDependencies struct { Certificate Certificate `validate:"required"` Network Network `validate:"required"` OtherDependencies OtherDependencies }
LoadBalancerDependencies describes the load balancer dependencies.
func (*LoadBalancerDependencies) MustValidate ¶
func (d *LoadBalancerDependencies) MustValidate()
MustValidate validates the load balancer dependencies.
type LoadBalancerEventHookFunc ¶
type LoadBalancerEventHookFunc func(LoadBalancer, Event, string)
LoadBalancerEventHookFunc describes a load balancer event hook.
type LocalStage ¶
type LocalStage interface { Stage GetLocalConfig() *LocalStageConfig GetServiceNetworkConfig() map[string]*dctypes.ServiceNetworkConfig Create() Destroy() }
LocalStage describes a local Stage.
func NewLocalStage ¶
func NewLocalStage(cfg *LocalStageConfig) LocalStage
NewLocalStage initializes a new LocalStage.
type LocalStageConfig ¶
type LocalStageConfig struct {
*StageConfig `validate:"required"`
}
LocalStageConfig describes the local Stage config.
func (*LocalStageConfig) MustValidate ¶
func (c *LocalStageConfig) MustValidate()
MustValidate validates the local stage config.
type Mail ¶
type Mail interface { Plugin GetConfig() *MailConfig GetDependencies() *MailDependencies GetLocalMetadata() *MailLocalMetadata }
Mail describes a mail.
func NewMail ¶
func NewMail(cfgFunc MailConfigFunc, deps *MailDependencies) Mail
NewMail initializes a new Mail.
type MailConfig ¶
type MailConfig struct { Stage Stage `validate:"required"` Local *MailConfigLocal EventHook MailEventHookFunc }
MailConfig describes the mail config.
func (*MailConfig) MustValidate ¶
func (c *MailConfig) MustValidate(stageTarget StageTarget)
MustValidate validates the mail config.
type MailConfigFunc ¶
type MailConfigFunc func(Stage, *MailDependencies) *MailConfig
MailConfigFunc returns the mail config for a given Stage.
type MailConfigLocal ¶
type MailConfigLocal struct { ExternalPort uint16 `validate:"required"` SMTPExternalPort uint16 `validate:"required"` }
MailConfigLocal describes part of the mail config.
type MailDependencies ¶
type MailDependencies struct {
OtherDependencies OtherDependencies
}
MailDependencies describes the mail dependencies.
func (*MailDependencies) MustValidate ¶
func (d *MailDependencies) MustValidate()
MustValidate validates the mail dependencies.
type MailEventHookFunc ¶
MailEventHookFunc describes a mail event hook.
type MailLocalMetadata ¶
type MailLocalMetadata struct { ContainerName string ExternalURL *url.URL InternalURL *url.URL ConsoleExternalURL *url.URL }
MailLocalMetadata describes the mail local metadata.
type Network ¶
type Network interface { Plugin GetConfig() *NetworkConfig GetCloudMetadata(require bool) *NetworkCloudMetadata }
Network describes a network.
func NewNetwork ¶
func NewNetwork(cfgFunc NetworkConfigFunc, deps *NetworkDependencies) Network
NewNetwork initializes a new Network.
type NetworkCloudMetadata ¶
type NetworkCloudMetadata struct {
Exports CloudExports
}
NetworkCloudMetadata describes the network cloud metadata.
type NetworkConfig ¶
type NetworkConfig struct { Stage Stage `validate:"required"` EventHook NetworkEventHookFunc }
NetworkConfig describes the network config.
func (*NetworkConfig) MustValidate ¶
func (c *NetworkConfig) MustValidate(_ StageTarget)
MustValidate validates the network config.
type NetworkConfigFunc ¶
type NetworkConfigFunc func(Stage, *NetworkDependencies) *NetworkConfig
NetworkConfigFunc returns the network config for a given Stage.
type NetworkDependencies ¶
type NetworkDependencies struct {
OtherDependencies OtherDependencies
}
NetworkDependencies describes the network dependencies.
func (*NetworkDependencies) MustValidate ¶
func (d *NetworkDependencies) MustValidate()
MustValidate validates the network dependencies.
type NetworkEventHookFunc ¶
NetworkEventHookFunc describes a network event hook.
type OtherDependencies ¶
type OtherDependencies []Plugin
OtherDependencies describes a set of unstructured dependencies.
type Plugin ¶
type Plugin interface { GetDisplayName() string GetName() string GetInstanceName() *string // nil for singleton Plugins GetDependenciesMap() map[Plugin]struct{} Configure(stage Stage) GetStage() Stage IsDeployed() bool UpdateLocalTemplate(tpl *dctypes.Config, buildDirPath string) GetCloudTemplate(buildDirPath string) *gocf.Template UpdateCloudMetadata(stack *awscft.Stack) EventHook(event Event, buildDirPath string) }
Plugin describes a plugin, i.e. a set of behaviors, tools, and components.
type PolicyStatement ¶
PolicyStatement describes a policy statement.
func NewPolicyStatement ¶
func NewPolicyStatement() *PolicyStatement
NewPolicyStatement initializes a new PolicyStatement.
func (*PolicyStatement) AddActions ¶
func (s *PolicyStatement) AddActions(actions ...string) *PolicyStatement
AddActions adds actions to the policy statement.
func (*PolicyStatement) AddResources ¶
func (s *PolicyStatement) AddResources(resources ...string) *PolicyStatement
AddResources adds resources to the policy statement.
func (*PolicyStatement) Build ¶
func (s *PolicyStatement) Build() interface{}
Build builds the policy statement.
func (*PolicyStatement) SetAnyRootAccountPrincipal ¶
func (s *PolicyStatement) SetAnyRootAccountPrincipal() *PolicyStatement
SetAnyRootAccountPrincipal sets any root account as principal on the policy statement.
func (*PolicyStatement) SetCurrentRootAccountPrincipal ¶
func (s *PolicyStatement) SetCurrentRootAccountPrincipal() *PolicyStatement
SetCurrentRootAccountPrincipal sets the current root account as principal on the policy statement.
func (*PolicyStatement) SetServicePrincipal ¶
func (s *PolicyStatement) SetServicePrincipal(service string) *PolicyStatement
SetServicePrincipal sets a service as principal on the policy statement.
func (*PolicyStatement) SetWildcardPrincipal ¶
func (s *PolicyStatement) SetWildcardPrincipal() *PolicyStatement
SetWildcardPrincipal sets a wildcard as principal on the policy statement.
type Postgres ¶
type Postgres interface { Plugin GetConfig() *PostgresConfig GetDependencies() *PostgresDependencies GetLocalMetadata() *PostgresLocalMetadata GetCloudMetadata(require bool) *PostgresCloudMetadata }
Postgres describes a postgres.
func NewPostgres ¶
func NewPostgres(cfgFunc PostgresConfigFunc, deps *PostgresDependencies) Postgres
NewPostgres initializes a new Postgres.
type PostgresCloudMetadata ¶
type PostgresCloudMetadata struct { Exports CloudExports URL *url.URL }
PostgresCloudMetadata describes the postgres cloud metadata.
type PostgresConfig ¶
type PostgresConfig struct { Stage Stage `validate:"required"` Local *PostgresConfigLocal Cloud *PostgresConfigCloud EventHook PostgresEventHookFunc }
PostgresConfig describes the postgres config.
func (*PostgresConfig) MustValidate ¶
func (c *PostgresConfig) MustValidate(stageTarget StageTarget)
MustValidate validates the postgres config.
type PostgresConfigCloud ¶
type PostgresConfigCloud struct { Password string `validate:"required,min=16"` AllocatedStorageGBs int `validate:"required,min=5"` InstanceClass string `validate:"required"` }
PostgresConfigCloud describes part of the postgres config.
type PostgresConfigFunc ¶
type PostgresConfigFunc func(Stage, *PostgresDependencies) *PostgresConfig
PostgresConfigFunc returns the postgres config for a given Stage.
type PostgresConfigLocal ¶
type PostgresConfigLocal struct { ExternalPort uint16 `validate:"required"` AdminExternalPort uint16 `validate:"required"` }
PostgresConfigLocal describes part of the postgres config.
type PostgresDependencies ¶
type PostgresDependencies struct { Network Network `validate:"required"` OtherDependencies OtherDependencies }
PostgresDependencies describes the postgres dependencies.
func (*PostgresDependencies) MustValidate ¶
func (d *PostgresDependencies) MustValidate()
MustValidate validates the postgres dependencies.
type PostgresEventHookFunc ¶
PostgresEventHookFunc describes a postgres event hook.
type PostgresLocalMetadata ¶
type PostgresLocalMetadata struct { ContainerName string ExternalURL *url.URL InternalURL *url.URL AdminConsoleExternalURL *url.URL }
PostgresLocalMetadata describes the postgres local metadata.
type PostgresProxy ¶
type PostgresProxy interface { Plugin GetConfig() *PostgresProxyConfig GetLocalMetadata() *PostgresProxyLocalMetadata GetCloudMetadata(require bool) *PostgresProxyCloudMetadata }
PostgresProxy describes a postgres proxy.
func NewPostgresProxy ¶
func NewPostgresProxy(cfgFunc PostgresProxyConfigFunc, deps *PostgresProxyDependencies) PostgresProxy
NewPostgresProxy initializes a new PostgresProxy.
type PostgresProxyCloudMetadata ¶
type PostgresProxyCloudMetadata struct { Exports CloudExports URL *url.URL }
PostgresProxyCloudMetadata describes the postgres proxy cloud metadata.
type PostgresProxyConfig ¶
type PostgresProxyConfig struct { Stage Stage `validate:"required"` EventHook PostgresProxyEventHookFunc }
PostgresProxyConfig describes the postgres proxy config.
func (*PostgresProxyConfig) MustValidate ¶
func (c *PostgresProxyConfig) MustValidate(_ StageTarget)
MustValidate validates the postgres proxy config.
type PostgresProxyConfigFunc ¶
type PostgresProxyConfigFunc func(Stage, *PostgresProxyDependencies) *PostgresProxyConfig
PostgresProxyConfigFunc returns the postgres proxy config for a given Stage.
type PostgresProxyDependencies ¶
type PostgresProxyDependencies struct { Network Network `validate:"required"` Postgres Postgres `validate:"required"` OtherDependencies []Plugin }
PostgresProxyDependencies describes the postgres proxy dependencies.
func (*PostgresProxyDependencies) MustValidate ¶
func (d *PostgresProxyDependencies) MustValidate()
MustValidate validates the postgres proxy dependencies.
type PostgresProxyEventHookFunc ¶
type PostgresProxyEventHookFunc func(PostgresProxy, Event, string)
PostgresProxyEventHookFunc describes a postgres proxy event hook.
type PostgresProxyLocalMetadata ¶
PostgresProxyLocalMetadata describes the postgres proxy local metadata.
type Stage ¶
type Stage interface { GetName() string GetTarget() StageTarget GetMode() StageMode GetConfig() *StageConfig AsCloudStage() CloudStage AsLocalStage() LocalStage }
Stage describes a Stage.
type StageConfig ¶
type StageConfig struct { App App `validate:"required"` CustomConfig interface{} }
StageConfig describes the common config for a stage.
type StageMode ¶
type StageMode string
StageMode describes a Stage mode.
func (StageMode) IsProduction ¶
IsProduction returns true if the Stage mode is Production.
func (StageMode) MustValidate ¶
func (s StageMode) MustValidate()
MustValidate validates the StageMode.
type StageTarget ¶
type StageTarget string
StageTarget describes a Stage target.
const ( Local StageTarget = "local" Cloud StageTarget = "cloud" )
Known Stage targets.
func (StageTarget) IsCloud ¶
func (s StageTarget) IsCloud() bool
IsCloud returns true if the Stage target is Cloud.
func (StageTarget) IsLocal ¶
func (s StageTarget) IsLocal() bool
IsLocal returns true if the Stage target is Local.
func (StageTarget) MustValidate ¶
func (s StageTarget) MustValidate()
MustValidate validates the StageTarget.
func (StageTarget) String ¶
func (s StageTarget) String() string
String implements the fmt.Stringer interface.
Source Files ¶
- app.go
- plugin.go
- plugin_api.go
- plugin_bucket.go
- plugin_certificate.go
- plugin_function.go
- plugin_function_builders.go
- plugin_hasura.go
- plugin_image_repository.go
- plugin_load_balancer.go
- plugin_mail.go
- plugin_network.go
- plugin_postgres.go
- plugin_postgres_proxy.go
- stage.go
- stage_cloud.go
- stage_local.go
- utils_cloud.go
- utils_local.go
- validation.go