Documentation ¶
Index ¶
- Constants
- Variables
- func AliasKindStrings() []string
- func DatabaseConnectorToProto(value DatabaseConnector) *destpb.DatabaseConnector
- func DeadLetterNameForSubscriber(verb string) string
- func DeclToProto(value Decl) *destpb.Decl
- func EncodeComments(comments []string) string
- func EventToProto(value Event) *destpb.Event
- func GetProvisioned(root Node) map[string]Provisioned
- func Graph(s *Schema) map[RefKey]GraphNode
- func IngressPathComponentToProto(value IngressPathComponent) *destpb.IngressPathComponent
- func MetadataToProto(value Metadata) *destpb.Metadata
- func ModuleToBytes(m *Module) ([]byte, error)
- func Normalise[T Node](n T) T
- func Redact[T Node](n T) T
- func RequestResponseToJSONSchema(sch *Schema, ref Ref) (*jsonschema.Schema, error)
- func SortModuleDecls(module *Module)
- func TransformAliasedFields(sch *Schema, t Type, obj any, ...) error
- func TransformFromAliasedFields(ref *Ref, sch *Schema, request map[string]any) (map[string]any, error)
- func TransformToAliasedFields(ref *Ref, sch *Schema, request map[string]any) (map[string]any, error)
- func TypeName(v any) string
- func TypeToProto(value Type) *destpb.Type
- func ValidateJSONValue(fieldType Type, path path, value any, sch *Schema, opts ...EncodingOption) error
- func ValidateName(name string) bool
- func ValidateRequestMap(ref *Ref, path path, request map[string]any, sch *Schema, ...) error
- func ValueToProto(value Value) *destpb.Value
- func Visit(n Node, visit func(n Node, next func() error) error) error
- func VisitExcludingMetadataChildren(n Node, visit func(n Node, next func() error) error) error
- func VisitWithParent(n Node, parent Node, visit func(n Node, parent Node, next func() error) error) error
- type AWSIAMAuthDatabaseConnector
- type AliasKind
- func (i AliasKind) IsAAliasKind() bool
- func (i AliasKind) MarshalJSON() ([]byte, error)
- func (i AliasKind) MarshalText() ([]byte, error)
- func (i AliasKind) String() string
- func (x AliasKind) ToProto() destpb.AliasKind
- func (i *AliasKind) UnmarshalJSON(data []byte) error
- func (i *AliasKind) UnmarshalText(text []byte) error
- type Any
- type Array
- type Bool
- type Bytes
- type Config
- type DSNDatabaseConnector
- type Data
- type Database
- type DatabaseConnector
- type DatabaseRuntime
- type DatabaseRuntimeConnections
- type DatabaseRuntimeEvent
- type Decl
- type DeploymentActivatedEvent
- type DeploymentCreatedEvent
- type DeploymentDeactivatedEvent
- type DeploymentReplicasUpdatedEvent
- type DeploymentSchemaUpdatedEvent
- type EncodingOption
- type Enum
- type EnumVariant
- type Event
- type Field
- type Float
- type FromOffset
- type GraphNode
- type IngressPathComponent
- type IngressPathLiteral
- type IngressPathParameter
- type Int
- type IntValue
- type Map
- type Metadata
- type MetadataAlias
- type MetadataArtefact
- type MetadataCalls
- type MetadataConfig
- type MetadataCronJob
- type MetadataDatabases
- type MetadataEncoding
- type MetadataIngress
- type MetadataPartitions
- type MetadataPublisher
- type MetadataRetry
- type MetadataSQLColumn
- type MetadataSQLMigration
- type MetadataSQLQuery
- type MetadataSecrets
- type MetadataSubscriber
- type MetadataTypeMap
- type Module
- func Builtins() *Module
- func ModuleFromBytes(b []byte) (*Module, error)
- func ModuleFromProto(v *destpb.Module) (out *Module, err error)
- func ModuleFromProtoFile(filename string) (*Module, error)
- func ParseModule(filename string, r io.Reader) (*Module, error)
- func ParseModuleString(filename, input string) (*Module, error)
- func ValidatedModuleFromProto(v *schemapb.Module) (*Module, error)
- func (m *Module) AddData(data *Data) int
- func (m *Module) AddDecl(decl Decl)
- func (m *Module) AddDecls(decls []Decl)
- func (m *Module) Data() []*Data
- func (m *Module) Equals(other *Module) bool
- func (m *Module) GetName() string
- func (m *Module) GetProvisioned() ResourceSet
- func (m *Module) GetRuntime() *ModuleRuntime
- func (m *Module) Hash() (sha256.SHA256, error)
- func (m *Module) Imports() []string
- func (m *Module) IsExported() bool
- func (m *Module) ModRuntime() *ModuleRuntime
- func (m *Module) Position() Position
- func (m *Module) Resolve(ref Ref) *ModuleDecl
- func (m *Module) ResourceID() string
- func (m *Module) Scan(src any) error
- func (m *Module) String() string
- func (x *Module) ToProto() *destpb.Module
- func (m *Module) Validate() error
- func (m *Module) Value() (driver.Value, error)
- func (m *Module) Verbs() []*Verb
- type ModuleDecl
- type ModuleRuntime
- func (m *ModuleRuntime) GetDeployment() *ModuleRuntimeDeployment
- func (m *ModuleRuntime) GetScaling() *ModuleRuntimeScaling
- func (m *ModuleRuntime) ModDeployment() *ModuleRuntimeDeployment
- func (m *ModuleRuntime) ModScaling() *ModuleRuntimeScaling
- func (x *ModuleRuntime) ToProto() *destpb.ModuleRuntime
- type ModuleRuntimeBase
- type ModuleRuntimeDeployment
- type ModuleRuntimeEvent
- type ModuleRuntimeScaling
- type Named
- type Node
- type Optional
- type Position
- type Provisioned
- type ProvisionedResource
- type ProvisioningCreatedEvent
- type Redactable
- type Ref
- type RefKey
- type Resolver
- type ResourceSet
- type ResourceType
- type RetryParams
- type Schema
- func FromProto(s *schemapb.Schema) (*Schema, error)
- func MustValidate(schema *Schema) *Schema
- func Parse(filename string, r io.Reader) (*Schema, error)
- func ParseString(filename, input string) (*Schema, error)
- func SchemaFromProto(v *destpb.Schema) (out *Schema, err error)
- func ValidateModuleInSchema(schema *Schema, m optional.Option[*Module]) (*Schema, error)
- func (s *Schema) Hash() [sha256.Size]byte
- func (s *Schema) Module(name string) optional.Option[*Module]
- func (s *Schema) ModuleDependencies(module string) map[string]*Module
- func (s *Schema) Position() Position
- func (s *Schema) Resolve(ref *Ref) optional.Option[Decl]
- func (s *Schema) ResolveMonomorphised(ref *Ref) (*Data, error)
- func (s *Schema) ResolveRequestResponseType(ref *Ref) (Symbol, error)
- func (s *Schema) ResolveToType(ref *Ref, out Decl) error
- func (s *Schema) ResolveWithModule(ref *Ref) (optional.Option[Decl], optional.Option[*Module])
- func (s *Schema) String() string
- func (x *Schema) ToProto() *destpb.Schema
- func (s *Schema) Upsert(module *Module)
- func (s *Schema) Validate() (*Schema, error)
- type Scope
- type Scoped
- type Scopes
- type Secret
- type String
- type StringValue
- type Symbol
- type Time
- type Topic
- type TopicRuntime
- type TopicRuntimeEvent
- type Type
- type TypeAlias
- type TypeParameter
- type TypeValue
- type Unit
- type Value
- type Verb
- func (v *Verb) AddCall(verb *Ref)
- func (v *Verb) AddConfig(config *Ref)
- func (v *Verb) AddDatabase(db *Ref)
- func (v *Verb) AddSecret(secret *Ref)
- func (v *Verb) AddSubscription(sub *MetadataSubscriber)
- func (v *Verb) AddTopicPublish(topic *Ref)
- func (v *Verb) GetMetadataCronJob() optional.Option[*MetadataCronJob]
- func (v *Verb) GetMetadataIngress() optional.Option[*MetadataIngress]
- func (v *Verb) GetName() string
- func (v *Verb) GetProvisioned() ResourceSet
- func (v *Verb) GetQuery() (*MetadataSQLQuery, bool)
- func (v *Verb) IsExported() bool
- func (v *Verb) IsGenerated() bool
- func (v *Verb) Kind() VerbKind
- func (v *Verb) Position() Position
- func (v *Verb) ResourceID() string
- func (v *Verb) SortMetadata()
- func (v *Verb) String() string
- func (x *Verb) ToProto() *destpb.Verb
- type VerbKind
- type VerbRuntime
- type VerbRuntimeBase
- type VerbRuntimeEvent
- type VerbRuntimeSubscription
Constants ¶
const ( DefaultRetryCount = 10 MinBackoffLimitStr = "1s" MinBackoffLimit = 1 * time.Second DefaultMaxBackoff = 1 * time.Hour MaxBackoffLimitStr = "1d" MaxBackoffLimit = 24 * time.Hour )
const BuiltinsSource = `` /* 955-byte string literal not displayed */
BuiltinsSource is the schema source code for built-in types.
const MySQLDatabaseType = "mysql"
const PostgresDatabaseType = "postgres"
Variables ¶
var ErrNotFound = errors.New("not found")
var (
Lexer = lexer.MustSimple([]lexer.SimpleRule{
{Name: "EOL", Pattern: `[\r\n]`},
{Name: "SHA256", Pattern: `\b[A-za-z0-9]{64}\b`},
{Name: "Whitespace", Pattern: `\s+`},
{Name: "Ident", Pattern: `\b[a-zA-Z_][a-zA-Z0-9_]*\b`},
{Name: "Comment", Pattern: `//.*`},
{Name: "String", Pattern: `"(?:\\.|[^"])*"`},
{Name: "Number", Pattern: `[0-9]+(?:\.[0-9]+)?`},
{Name: "Punct", Pattern: `[%/\-\_:[\]{}<>()*+?.,\\^$|#~!\'@=]`},
})
)
Functions ¶
func AliasKindStrings ¶
func AliasKindStrings() []string
AliasKindStrings returns a slice of all String values of the enum
func DatabaseConnectorToProto ¶
func DatabaseConnectorToProto(value DatabaseConnector) *destpb.DatabaseConnector
DatabaseConnectorToProto converts a DatabaseConnector sum type to a protobuf message.
func DeadLetterNameForSubscriber ¶ added in v0.414.0
func DeclToProto ¶
DeclToProto converts a Decl sum type to a protobuf message.
func EncodeComments ¶
func EventToProto ¶ added in v0.434.0
EventToProto converts a Event sum type to a protobuf message.
func GetProvisioned ¶
func GetProvisioned(root Node) map[string]Provisioned
func IngressPathComponentToProto ¶
func IngressPathComponentToProto(value IngressPathComponent) *destpb.IngressPathComponent
IngressPathComponentToProto converts a IngressPathComponent sum type to a protobuf message.
func MetadataToProto ¶
MetadataToProto converts a Metadata sum type to a protobuf message.
func ModuleToBytes ¶
func Normalise ¶
func Normalise[T Node](n T) T
Normalise clones and normalises (zeroes) positional information in schema Nodes.
func Redact ¶
func Redact[T Node](n T) T
Redact clones n and recursively removes sensitive information from it.
Any node that implements the Redactable interface will have its Redact method called.
func RequestResponseToJSONSchema ¶
RequestResponseToJSONSchema converts the schema for a Verb request or response object to a JSON Schema.
It takes in the full schema in order to resolve and define references.
func SortModuleDecls ¶
func SortModuleDecls(module *Module)
SortModuleDecls sorts the declarations in a module.
func TransformAliasedFields ¶
func TypeName ¶
TypeName returns the name of a type as a string, stripping any package prefix and correctly handling Ref aliases.
func TypeToProto ¶
TypeToProto converts a Type sum type to a protobuf message.
func ValidateJSONValue ¶
func ValidateJSONValue(fieldType Type, path path, value any, sch *Schema, opts ...EncodingOption) error
ValidateJSONValue validates a given JSON value against the provided schema.
func ValidateRequestMap ¶
func ValidateRequestMap(ref *Ref, path path, request map[string]any, sch *Schema, opts ...EncodingOption) error
ValidateRequestMap validates a given JSON map against the provided schema.
func ValueToProto ¶
ValueToProto converts a Value sum type to a protobuf message.
func VisitExcludingMetadataChildren ¶
VisitExcludingMetadataChildren visits all nodes in the schema except the children of metadata nodes. This is used when generating external modules to avoid adding imports only referenced in the bodies of stubbed verbs.
Types ¶
type AWSIAMAuthDatabaseConnector ¶
type AWSIAMAuthDatabaseConnector struct { Pos Position `parser:"" protobuf:"1,optional"` Username string `parser:"" protobuf:"2"` Endpoint string `parser:"" protobuf:"3"` Database string `parser:"" protobuf:"4"` }
func AWSIAMAuthDatabaseConnectorFromProto ¶ added in v0.424.0
func AWSIAMAuthDatabaseConnectorFromProto(v *destpb.AWSIAMAuthDatabaseConnector) (out *AWSIAMAuthDatabaseConnector, err error)
func (*AWSIAMAuthDatabaseConnector) Position ¶
func (d *AWSIAMAuthDatabaseConnector) Position() Position
func (*AWSIAMAuthDatabaseConnector) String ¶
func (d *AWSIAMAuthDatabaseConnector) String() string
func (*AWSIAMAuthDatabaseConnector) ToProto ¶
func (x *AWSIAMAuthDatabaseConnector) ToProto() *destpb.AWSIAMAuthDatabaseConnector
type AliasKind ¶
type AliasKind int
AliasKind is the kind of alias.
func AliasKindFromProto ¶ added in v0.424.0
func AliasKindString ¶
AliasKindString retrieves an enum value from the enum constants string name. Throws an error if the param is not part of the enum.
func AliasKindValues ¶
func AliasKindValues() []AliasKind
AliasKindValues returns all values of the enum
func (AliasKind) IsAAliasKind ¶
IsAAliasKind returns "true" if the value is listed in the enum definition. "false" otherwise
func (AliasKind) MarshalJSON ¶
MarshalJSON implements the json.Marshaler interface for AliasKind
func (AliasKind) MarshalText ¶
MarshalText implements the encoding.TextMarshaler interface for AliasKind
func (*AliasKind) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaler interface for AliasKind
func (*AliasKind) UnmarshalText ¶
UnmarshalText implements the encoding.TextUnmarshaler interface for AliasKind
type Any ¶
type Array ¶
type Array struct { Pos Position `parser:"" protobuf:"1,optional"` Element Type `parser:"'[' @@ ']'" protobuf:"2"` }
func ArrayFromProto ¶ added in v0.424.0
type Bool ¶
type Bytes ¶
type Bytes struct { Pos Position `parser:"" protobuf:"1,optional"` Bytes bool `parser:"@'Bytes'" protobuf:"-"` }
func BytesFromProto ¶ added in v0.424.0
type Config ¶
type Config struct { Pos Position `parser:"" protobuf:"1,optional"` Comments []string `parser:"@Comment*" protobuf:"2"` Name string `parser:"'config' @Ident" protobuf:"3"` Type Type `parser:"@@" protobuf:"4"` }
func (*Config) IsExported ¶
type DSNDatabaseConnector ¶
type DSNDatabaseConnector struct { Pos Position `parser:"" protobuf:"1,optional"` DSN string `parser:"" protobuf:"2"` }
func DSNDatabaseConnectorFromProto ¶ added in v0.424.0
func DSNDatabaseConnectorFromProto(v *destpb.DSNDatabaseConnector) (out *DSNDatabaseConnector, err error)
func (*DSNDatabaseConnector) Position ¶
func (d *DSNDatabaseConnector) Position() Position
func (*DSNDatabaseConnector) String ¶
func (d *DSNDatabaseConnector) String() string
func (*DSNDatabaseConnector) ToProto ¶
func (x *DSNDatabaseConnector) ToProto() *destpb.DSNDatabaseConnector
type Data ¶
type Data struct { Pos Position `parser:"" protobuf:"1,optional"` Comments []string `parser:"@Comment*" protobuf:"2"` Export bool `parser:"@'export'?" protobuf:"3"` Name string `parser:"'data' @Ident" protobuf:"4"` TypeParameters []*TypeParameter `parser:"( '<' @@ (',' @@)* '>' )?" protobuf:"5"` Fields []*Field `parser:"'{' @@* '}'" protobuf:"6"` Metadata []Metadata `parser:"@@*" protobuf:"7"` }
A Data structure.
func (*Data) FieldByName ¶
func (*Data) IsExported ¶
func (*Data) Monomorphise ¶
Monomorphise this data type with the given type arguments.
If this data type has no type parameters, it will be returned as-is.
This will return a new Data structure with all type parameters replaced with the given types.
type Database ¶
type Database struct { Pos Position `parser:"" protobuf:"1,optional"` Runtime *DatabaseRuntime `parser:"" protobuf:"31634,optional"` Comments []string `parser:"@Comment*" protobuf:"2"` Type string `parser:"'database' @('postgres'|'mysql')" protobuf:"4"` Name string `parser:"@Ident" protobuf:"3"` Metadata []Metadata `parser:"@@*" protobuf:"5"` }
func (*Database) GetProvisioned ¶
func (d *Database) GetProvisioned() ResourceSet
func (*Database) IsExported ¶
func (*Database) ResourceID ¶
type DatabaseConnector ¶
type DatabaseConnector interface { Node // contains filtered or unexported methods }
func DatabaseConnectorFromProto ¶
func DatabaseConnectorFromProto(v *destpb.DatabaseConnector) (DatabaseConnector, error)
type DatabaseRuntime ¶
type DatabaseRuntime struct {
Connections *DatabaseRuntimeConnections `parser:"" protobuf:"1,optional"`
}
func DatabaseRuntimeFromProto ¶
func DatabaseRuntimeFromProto(v *destpb.DatabaseRuntime) (out *DatabaseRuntime, err error)
func (*DatabaseRuntime) Position ¶
func (d *DatabaseRuntime) Position() Position
func (*DatabaseRuntime) String ¶
func (d *DatabaseRuntime) String() string
func (*DatabaseRuntime) ToProto ¶
func (x *DatabaseRuntime) ToProto() *destpb.DatabaseRuntime
type DatabaseRuntimeConnections ¶
type DatabaseRuntimeConnections struct { Read DatabaseConnector `parser:"" protobuf:"1"` Write DatabaseConnector `parser:"" protobuf:"2"` }
func DatabaseRuntimeConnectionsFromProto ¶
func DatabaseRuntimeConnectionsFromProto(v *destpb.DatabaseRuntimeConnections) (out *DatabaseRuntimeConnections, err error)
func (*DatabaseRuntimeConnections) Position ¶
func (d *DatabaseRuntimeConnections) Position() Position
func (*DatabaseRuntimeConnections) String ¶
func (d *DatabaseRuntimeConnections) String() string
func (*DatabaseRuntimeConnections) ToProto ¶
func (x *DatabaseRuntimeConnections) ToProto() *destpb.DatabaseRuntimeConnections
type DatabaseRuntimeEvent ¶
type DatabaseRuntimeEvent struct { Module string `protobuf:"1"` ID string `protobuf:"2"` Connections *DatabaseRuntimeConnections `protobuf:"3"` }
func DatabaseRuntimeEventFromProto ¶
func DatabaseRuntimeEventFromProto(v *destpb.DatabaseRuntimeEvent) (out *DatabaseRuntimeEvent, err error)
func (*DatabaseRuntimeEvent) ToProto ¶
func (x *DatabaseRuntimeEvent) ToProto() *destpb.DatabaseRuntimeEvent
type Decl ¶
type Decl interface { Symbol GetName() string IsExported() bool // contains filtered or unexported methods }
Decl represents user-defined data types in the schema grammar.
type DeploymentActivatedEvent ¶ added in v0.434.0
type DeploymentActivatedEvent struct { Key key.Deployment `protobuf:"1"` ActivatedAt time.Time `protobuf:"2"` MinReplicas int `protobuf:"3"` }
func DeploymentActivatedEventFromProto ¶ added in v0.434.0
func DeploymentActivatedEventFromProto(v *destpb.DeploymentActivatedEvent) (out *DeploymentActivatedEvent, err error)
func (*DeploymentActivatedEvent) ToProto ¶ added in v0.434.0
func (x *DeploymentActivatedEvent) ToProto() *destpb.DeploymentActivatedEvent
type DeploymentCreatedEvent ¶ added in v0.434.0
type DeploymentCreatedEvent struct { Key key.Deployment `protobuf:"1"` Schema *Module `protobuf:"2"` }
func DeploymentCreatedEventFromProto ¶ added in v0.434.0
func DeploymentCreatedEventFromProto(v *destpb.DeploymentCreatedEvent) (out *DeploymentCreatedEvent, err error)
func (*DeploymentCreatedEvent) ToProto ¶ added in v0.434.0
func (x *DeploymentCreatedEvent) ToProto() *destpb.DeploymentCreatedEvent
type DeploymentDeactivatedEvent ¶ added in v0.434.0
type DeploymentDeactivatedEvent struct { Key key.Deployment `protobuf:"1"` ModuleRemoved bool `protobuf:"2"` }
func DeploymentDeactivatedEventFromProto ¶ added in v0.434.0
func DeploymentDeactivatedEventFromProto(v *destpb.DeploymentDeactivatedEvent) (out *DeploymentDeactivatedEvent, err error)
func (*DeploymentDeactivatedEvent) ToProto ¶ added in v0.434.0
func (x *DeploymentDeactivatedEvent) ToProto() *destpb.DeploymentDeactivatedEvent
type DeploymentReplicasUpdatedEvent ¶ added in v0.434.0
type DeploymentReplicasUpdatedEvent struct { Key key.Deployment `protobuf:"1"` Replicas int `protobuf:"2"` }
func DeploymentReplicasUpdatedEventFromProto ¶ added in v0.434.0
func DeploymentReplicasUpdatedEventFromProto(v *destpb.DeploymentReplicasUpdatedEvent) (out *DeploymentReplicasUpdatedEvent, err error)
func (*DeploymentReplicasUpdatedEvent) ToProto ¶ added in v0.434.0
func (x *DeploymentReplicasUpdatedEvent) ToProto() *destpb.DeploymentReplicasUpdatedEvent
type DeploymentSchemaUpdatedEvent ¶ added in v0.434.0
type DeploymentSchemaUpdatedEvent struct { Key key.Deployment `protobuf:"1"` Schema *Module `protobuf:"2"` }
func DeploymentSchemaUpdatedEventFromProto ¶ added in v0.434.0
func DeploymentSchemaUpdatedEventFromProto(v *destpb.DeploymentSchemaUpdatedEvent) (out *DeploymentSchemaUpdatedEvent, err error)
func (*DeploymentSchemaUpdatedEvent) ToProto ¶ added in v0.434.0
func (x *DeploymentSchemaUpdatedEvent) ToProto() *destpb.DeploymentSchemaUpdatedEvent
type EncodingOption ¶
type EncodingOption func(option *encodingOptions)
func LenientMode ¶
func LenientMode() EncodingOption
type Enum ¶
type Enum struct { Pos Position `parser:"" protobuf:"1,optional"` Comments []string `parser:"@Comment*" protobuf:"2"` Export bool `parser:"@'export'?" protobuf:"3"` Name string `parser:"'enum' @Ident" protobuf:"4"` Type Type `parser:"(':' @@)?" protobuf:"5,optional"` Variants []*EnumVariant `parser:"'{' @@* '}'" protobuf:"6"` }
func (*Enum) IsExported ¶
func (*Enum) IsValueEnum ¶
IsValueEnum determines whether this is a type or value enum using `e.Type` alone because value enums must always have a unified type across all variants, whereas type enums by definition cannot have a unified type.
func (*Enum) VariantForName ¶
func (e *Enum) VariantForName(name string) optional.Option[*EnumVariant]
type EnumVariant ¶
type EnumVariant struct { Pos Position `parser:"" protobuf:"1,optional"` Comments []string `parser:"@Comment*" protobuf:"2"` Name string `parser:"@Ident" protobuf:"3"` Value Value `parser:"(('=' @@) | @@)!" protobuf:"4"` }
func EnumVariantFromProto ¶ added in v0.424.0
func EnumVariantFromProto(v *destpb.EnumVariant) (out *EnumVariant, err error)
func (*EnumVariant) Position ¶
func (e *EnumVariant) Position() Position
func (*EnumVariant) String ¶
func (e *EnumVariant) String() string
func (*EnumVariant) ToProto ¶
func (x *EnumVariant) ToProto() *destpb.EnumVariant
type Field ¶
type Field struct { Pos Position `parser:"" protobuf:"1,optional"` Comments []string `parser:"@Comment*" protobuf:"3"` Name string `parser:"@Ident" protobuf:"2"` Type Type `parser:"@@" protobuf:"4"` Metadata []Metadata `parser:"@@*" protobuf:"5"` }
func FieldFromProto ¶ added in v0.424.0
type Float ¶
type Float struct { Pos Position `parser:"" protobuf:"1,optional"` Float bool `parser:"@'Float'" protobuf:"-"` }
func FloatFromProto ¶ added in v0.424.0
type FromOffset ¶
type FromOffset int
const ( FromOffsetUnspecified FromOffset = iota FromOffsetBeginning FromOffsetLatest )
func FromOffsetFromProto ¶ added in v0.424.0
func FromOffsetFromProto(v destpb.FromOffset) (FromOffset, error)
func (*FromOffset) Capture ¶
func (o *FromOffset) Capture(values []string) error
func (FromOffset) String ¶
func (o FromOffset) String() string
func (FromOffset) ToProto ¶
func (x FromOffset) ToProto() destpb.FromOffset
type IngressPathComponent ¶
type IngressPathComponent interface { Node // contains filtered or unexported methods }
func IngressPathComponentFromProto ¶ added in v0.424.0
func IngressPathComponentFromProto(v *destpb.IngressPathComponent) (IngressPathComponent, error)
type IngressPathLiteral ¶
type IngressPathLiteral struct { Pos Position `parser:"" protobuf:"1,optional"` Text string `parser:"@~(Whitespace | '/' | '{' | '}')+" protobuf:"2"` }
func IngressPathLiteralFromProto ¶ added in v0.424.0
func IngressPathLiteralFromProto(v *destpb.IngressPathLiteral) (out *IngressPathLiteral, err error)
func (*IngressPathLiteral) Position ¶
func (l *IngressPathLiteral) Position() Position
func (*IngressPathLiteral) String ¶
func (l *IngressPathLiteral) String() string
func (*IngressPathLiteral) ToProto ¶
func (x *IngressPathLiteral) ToProto() *destpb.IngressPathLiteral
type IngressPathParameter ¶
type IngressPathParameter struct { Pos Position `parser:"" protobuf:"1,optional"` Name string `parser:"'{' @Ident '}'" protobuf:"2"` }
func IngressPathParameterFromProto ¶ added in v0.424.0
func IngressPathParameterFromProto(v *destpb.IngressPathParameter) (out *IngressPathParameter, err error)
func (*IngressPathParameter) Position ¶
func (l *IngressPathParameter) Position() Position
func (*IngressPathParameter) String ¶
func (l *IngressPathParameter) String() string
func (*IngressPathParameter) ToProto ¶
func (x *IngressPathParameter) ToProto() *destpb.IngressPathParameter
type Int ¶
type IntValue ¶
type IntValue struct { Pos Position `parser:"" protobuf:"1,optional"` Value int `parser:"@Number" protobuf:"2"` }
func IntValueFromProto ¶ added in v0.424.0
type Map ¶
type Metadata ¶
type Metadata interface { Node // contains filtered or unexported methods }
Metadata represents a metadata Node in the schema grammar.
type MetadataAlias ¶
type MetadataAlias struct { Pos Position `parser:"" protobuf:"1,optional"` Kind AliasKind `parser:"'+' 'alias' @Ident" protobuf:"2"` Alias string `parser:"@String" protobuf:"3"` }
func MetadataAliasFromProto ¶ added in v0.424.0
func MetadataAliasFromProto(v *destpb.MetadataAlias) (out *MetadataAlias, err error)
func (*MetadataAlias) Position ¶
func (m *MetadataAlias) Position() Position
func (*MetadataAlias) String ¶
func (m *MetadataAlias) String() string
func (*MetadataAlias) ToProto ¶
func (x *MetadataAlias) ToProto() *destpb.MetadataAlias
type MetadataArtefact ¶
type MetadataArtefact struct { Pos Position `parser:"" protobuf:"1,optional"` Path string `parser:"'+' 'artefact' Whitespace @String" protobuf:"2"` Digest string `parser:"@String" protobuf:"3"` Executable bool `parser:"@'executable'?" protobuf:"4"` }
func MetadataArtefactFromProto ¶ added in v0.424.0
func MetadataArtefactFromProto(v *destpb.MetadataArtefact) (out *MetadataArtefact, err error)
func (*MetadataArtefact) Position ¶
func (m *MetadataArtefact) Position() Position
func (*MetadataArtefact) String ¶
func (m *MetadataArtefact) String() string
func (*MetadataArtefact) ToProto ¶
func (x *MetadataArtefact) ToProto() *destpb.MetadataArtefact
type MetadataCalls ¶
type MetadataCalls struct { Pos Position `parser:"" protobuf:"1,optional"` Calls []*Ref `parser:"'+' 'calls' @@ (',' @@)*" protobuf:"2"` }
MetadataCalls represents a metadata block with a list of calls.
func MetadataCallsFromProto ¶ added in v0.424.0
func MetadataCallsFromProto(v *destpb.MetadataCalls) (out *MetadataCalls, err error)
func (*MetadataCalls) Position ¶
func (m *MetadataCalls) Position() Position
func (*MetadataCalls) String ¶
func (m *MetadataCalls) String() string
func (*MetadataCalls) ToProto ¶
func (x *MetadataCalls) ToProto() *destpb.MetadataCalls
type MetadataConfig ¶
type MetadataConfig struct { Pos Position `parser:"" protobuf:"1,optional"` Config []*Ref `parser:"'+' 'config' @@ (',' @@)*" protobuf:"2"` }
MetadataConfig represents a metadata block with a list of config items that are used.
func MetadataConfigFromProto ¶ added in v0.424.0
func MetadataConfigFromProto(v *destpb.MetadataConfig) (out *MetadataConfig, err error)
func (*MetadataConfig) Position ¶
func (m *MetadataConfig) Position() Position
func (*MetadataConfig) String ¶
func (m *MetadataConfig) String() string
func (*MetadataConfig) ToProto ¶
func (x *MetadataConfig) ToProto() *destpb.MetadataConfig
type MetadataCronJob ¶
type MetadataCronJob struct { Pos Position `parser:"" protobuf:"1,optional"` Cron string `parser:"'+' 'cron' Whitespace @(' ' | ~EOL)+" protobuf:"2"` }
func MetadataCronJobFromProto ¶ added in v0.424.0
func MetadataCronJobFromProto(v *destpb.MetadataCronJob) (out *MetadataCronJob, err error)
func (*MetadataCronJob) Position ¶
func (m *MetadataCronJob) Position() Position
func (*MetadataCronJob) String ¶
func (m *MetadataCronJob) String() string
func (*MetadataCronJob) ToProto ¶
func (x *MetadataCronJob) ToProto() *destpb.MetadataCronJob
type MetadataDatabases ¶
type MetadataDatabases struct { Pos Position `parser:"" protobuf:"1,optional"` Calls []*Ref `parser:"'+' 'database' 'calls' @@ (',' @@)*" protobuf:"2"` }
func MetadataDatabasesFromProto ¶ added in v0.424.0
func MetadataDatabasesFromProto(v *destpb.MetadataDatabases) (out *MetadataDatabases, err error)
func (*MetadataDatabases) Position ¶
func (m *MetadataDatabases) Position() Position
func (*MetadataDatabases) String ¶
func (m *MetadataDatabases) String() string
func (*MetadataDatabases) ToProto ¶
func (x *MetadataDatabases) ToProto() *destpb.MetadataDatabases
type MetadataEncoding ¶
type MetadataEncoding struct { Pos Position `parser:"" protobuf:"1,optional"` Type string `parser:"'+' 'encoding' @'json'" protobuf:"2"` Lenient bool `parser:"@'lenient'?" protobuf:"3"` }
func MetadataEncodingFromProto ¶ added in v0.424.0
func MetadataEncodingFromProto(v *destpb.MetadataEncoding) (out *MetadataEncoding, err error)
func (*MetadataEncoding) Position ¶
func (m *MetadataEncoding) Position() Position
func (*MetadataEncoding) String ¶
func (m *MetadataEncoding) String() string
func (*MetadataEncoding) ToProto ¶
func (x *MetadataEncoding) ToProto() *destpb.MetadataEncoding
type MetadataIngress ¶
type MetadataIngress struct { Pos Position `parser:"" protobuf:"1,optional"` Type string `parser:"'+' 'ingress' @('http')?" protobuf:"2"` Method string `parser:"@('GET' | 'POST' | 'PUT' | 'DELETE')" protobuf:"3"` Path []IngressPathComponent `parser:"('/' @@)+" protobuf:"4"` }
func MetadataIngressFromProto ¶ added in v0.424.0
func MetadataIngressFromProto(v *destpb.MetadataIngress) (out *MetadataIngress, err error)
func (*MetadataIngress) PathString ¶
func (m *MetadataIngress) PathString() string
PathString returns the path as a string, with parameters enclosed in curly braces.
For example, /foo/{bar}
func (*MetadataIngress) Position ¶
func (m *MetadataIngress) Position() Position
func (*MetadataIngress) String ¶
func (m *MetadataIngress) String() string
func (*MetadataIngress) ToProto ¶
func (x *MetadataIngress) ToProto() *destpb.MetadataIngress
type MetadataPartitions ¶ added in v0.421.0
type MetadataPartitions struct { Pos Position `parser:"" protobuf:"1,optional"` Partitions int `parser:"'+' 'partitions' @Number" protobuf:"2"` }
func MetadataPartitionsFromProto ¶ added in v0.424.0
func MetadataPartitionsFromProto(v *destpb.MetadataPartitions) (out *MetadataPartitions, err error)
func (*MetadataPartitions) Position ¶ added in v0.421.0
func (m *MetadataPartitions) Position() Position
func (*MetadataPartitions) String ¶ added in v0.421.0
func (m *MetadataPartitions) String() string
func (*MetadataPartitions) ToProto ¶ added in v0.421.0
func (x *MetadataPartitions) ToProto() *destpb.MetadataPartitions
type MetadataPublisher ¶
type MetadataPublisher struct { Pos Position `parser:"" protobuf:"1,optional"` Topics []*Ref `parser:"'+' 'publish' @@ (',' @@)*" protobuf:"2"` }
func MetadataPublisherFromProto ¶ added in v0.424.0
func MetadataPublisherFromProto(v *destpb.MetadataPublisher) (out *MetadataPublisher, err error)
func (*MetadataPublisher) Position ¶
func (m *MetadataPublisher) Position() Position
func (*MetadataPublisher) String ¶
func (m *MetadataPublisher) String() string
func (*MetadataPublisher) ToProto ¶
func (x *MetadataPublisher) ToProto() *destpb.MetadataPublisher
type MetadataRetry ¶
type MetadataRetry struct { Pos Position `parser:"" protobuf:"1,optional"` Count *int `parser:"'+' 'retry' (@Number Whitespace)?" protobuf:"2,optional"` MinBackoff string `parser:"@(Number (?! Whitespace) Ident)?" protobuf:"3"` MaxBackoff string `parser:"@(Number (?! Whitespace) Ident)?" protobuf:"4"` Catch *Ref `parser:"('catch' @@)?" protobuf:"5,optional"` }
func MetadataRetryFromProto ¶ added in v0.424.0
func MetadataRetryFromProto(v *destpb.MetadataRetry) (out *MetadataRetry, err error)
func (*MetadataRetry) Position ¶
func (m *MetadataRetry) Position() Position
func (*MetadataRetry) RetryParams ¶
func (m *MetadataRetry) RetryParams() (RetryParams, error)
func (*MetadataRetry) String ¶
func (m *MetadataRetry) String() string
func (*MetadataRetry) ToProto ¶
func (x *MetadataRetry) ToProto() *destpb.MetadataRetry
type MetadataSQLColumn ¶ added in v0.432.0
type MetadataSQLColumn struct { Pos Position `parser:"" protobuf:"1,optional"` Table string `parser:"'+' 'sql' Whitespace 'column' Whitespace @String" protobuf:"2"` Name string `parser:"'.' @String" protobuf:"3"` }
MetadataSQLColumn designates a database column.
func MetadataSQLColumnFromProto ¶ added in v0.432.0
func MetadataSQLColumnFromProto(v *destpb.MetadataSQLColumn) (out *MetadataSQLColumn, err error)
func (*MetadataSQLColumn) Position ¶ added in v0.432.0
func (m *MetadataSQLColumn) Position() Position
func (*MetadataSQLColumn) String ¶ added in v0.432.0
func (m *MetadataSQLColumn) String() string
func (*MetadataSQLColumn) ToProto ¶ added in v0.432.0
func (x *MetadataSQLColumn) ToProto() *destpb.MetadataSQLColumn
type MetadataSQLMigration ¶
type MetadataSQLMigration struct { Pos Position `parser:"" protobuf:"1,optional"` Digest string `parser:"'+' 'migration' Whitespace 'sha256' ':' @SHA256" protobuf:"2"` }
func MetadataSQLMigrationFromProto ¶ added in v0.424.0
func MetadataSQLMigrationFromProto(v *destpb.MetadataSQLMigration) (out *MetadataSQLMigration, err error)
func (*MetadataSQLMigration) Position ¶
func (m *MetadataSQLMigration) Position() Position
func (*MetadataSQLMigration) String ¶
func (m *MetadataSQLMigration) String() string
func (*MetadataSQLMigration) ToProto ¶
func (x *MetadataSQLMigration) ToProto() *destpb.MetadataSQLMigration
type MetadataSQLQuery ¶ added in v0.422.0
type MetadataSQLQuery struct { Pos Position `parser:"" protobuf:"1,optional"` Command string `parser:"'+' 'sql' Whitespace 'query' Whitespace ':' @Ident" protobuf:"2"` Query string `parser:"Whitespace @String" protobuf:"3"` }
MetadataSQLQuery designates a query verb; a verb generated from a SQL query.
func MetadataSQLQueryFromProto ¶ added in v0.424.0
func MetadataSQLQueryFromProto(v *destpb.MetadataSQLQuery) (out *MetadataSQLQuery, err error)
func (*MetadataSQLQuery) Position ¶ added in v0.422.0
func (m *MetadataSQLQuery) Position() Position
func (*MetadataSQLQuery) String ¶ added in v0.422.0
func (m *MetadataSQLQuery) String() string
func (*MetadataSQLQuery) ToProto ¶ added in v0.422.0
func (x *MetadataSQLQuery) ToProto() *destpb.MetadataSQLQuery
type MetadataSecrets ¶
type MetadataSecrets struct { Pos Position `parser:"" protobuf:"1,optional"` Secrets []*Ref `parser:"'+' 'secrets' @@ (',' @@)*" protobuf:"2"` }
MetadataSecrets represents a metadata block with a list of config items that are used.
func MetadataSecretsFromProto ¶ added in v0.424.0
func MetadataSecretsFromProto(v *destpb.MetadataSecrets) (out *MetadataSecrets, err error)
func (*MetadataSecrets) Position ¶
func (m *MetadataSecrets) Position() Position
func (*MetadataSecrets) String ¶
func (m *MetadataSecrets) String() string
func (*MetadataSecrets) ToProto ¶
func (x *MetadataSecrets) ToProto() *destpb.MetadataSecrets
type MetadataSubscriber ¶
type MetadataSubscriber struct { Pos Position `parser:"" protobuf:"1,optional"` Topic *Ref `parser:"'+' 'subscribe' @@" protobuf:"2"` FromOffset FromOffset `parser:"'from' '=' @('beginning'|'latest')" protobuf:"3"` DeadLetter bool `parser:"@'deadletter'?" protobuf:"4"` }
func MetadataSubscriberFromProto ¶ added in v0.424.0
func MetadataSubscriberFromProto(v *destpb.MetadataSubscriber) (out *MetadataSubscriber, err error)
func (*MetadataSubscriber) Position ¶
func (m *MetadataSubscriber) Position() Position
func (*MetadataSubscriber) String ¶
func (m *MetadataSubscriber) String() string
func (*MetadataSubscriber) ToProto ¶
func (x *MetadataSubscriber) ToProto() *destpb.MetadataSubscriber
type MetadataTypeMap ¶
type MetadataTypeMap struct { Pos Position `parser:"" protobuf:"1,optional"` Runtime string `parser:"'+' 'typemap' @('go' | 'kotlin' | 'java')" protobuf:"2"` NativeName string `parser:"@String" protobuf:"3"` }
func MetadataTypeMapFromProto ¶ added in v0.424.0
func MetadataTypeMapFromProto(v *destpb.MetadataTypeMap) (out *MetadataTypeMap, err error)
func (*MetadataTypeMap) Position ¶
func (m *MetadataTypeMap) Position() Position
func (*MetadataTypeMap) String ¶
func (m *MetadataTypeMap) String() string
func (*MetadataTypeMap) ToProto ¶
func (x *MetadataTypeMap) ToProto() *destpb.MetadataTypeMap
type Module ¶
type Module struct { Pos Position `parser:"" protobuf:"1,optional"` Comments []string `parser:"@Comment*" protobuf:"2"` Builtin bool `parser:"@'builtin'?" protobuf:"3"` Name string `parser:"'module' @Ident '{'" protobuf:"4"` Metadata []Metadata `parser:"@@*" protobuf:"6"` Decls []Decl `parser:"@@* '}'" protobuf:"5"` Runtime *ModuleRuntime `protobuf:"31634" parser:""` }
func ModuleFromBytes ¶
func ModuleFromProtoFile ¶
ModuleFromProtoFile loads a module from the given proto-encoded file.
func ParseModuleString ¶
func ValidatedModuleFromProto ¶ added in v0.424.0
func (*Module) AddData ¶
AddData and return its index.
If data is already in the module, the existing index is returned. If the new data is exported but the existing data is not, it sets it to being exported.
func (*Module) AddDecl ¶
AddDecl adds a single decl to the module.
It is only added if not already present or if it changes the visibility of the existing Decl.
func (*Module) AddDecls ¶
AddDecls appends decls to the module.
Decls are only added if they are not already present in the module or if they change the visibility of an existing Decl.
func (*Module) GetProvisioned ¶
func (m *Module) GetProvisioned() ResourceSet
func (*Module) GetRuntime ¶ added in v0.422.0
func (m *Module) GetRuntime() *ModuleRuntime
func (*Module) IsExported ¶
func (*Module) ModRuntime ¶ added in v0.422.0
func (m *Module) ModRuntime() *ModuleRuntime
func (*Module) Resolve ¶
func (m *Module) Resolve(ref Ref) *ModuleDecl
Resolve returns the declaration in this module with the given name, or nil
func (*Module) ResourceID ¶
type ModuleDecl ¶
ModuleDecl is a declaration associated with a module.
func ResolveAs ¶
func ResolveAs[S Symbol](scopes Scopes, ref Ref) (symbol S, decl *ModuleDecl)
ResolveAs resolves a Ref to a concrete symbol and declaration.
[decl] will be non-nil if the symbol is found, regardless of its type. [symbol] will be non-nil if the symbol is of type [S].
func ResolveTypeAs ¶
func ResolveTypeAs[S Symbol](scopes Scopes, t Type) (symbol S, decl *ModuleDecl)
ResolveTypeAs resolves a Type to a concrete symbol and declaration.
type ModuleRuntime ¶
type ModuleRuntime struct { Base ModuleRuntimeBase `protobuf:"1"` // Base is always present. Scaling *ModuleRuntimeScaling `protobuf:"2,optional"` Deployment *ModuleRuntimeDeployment `protobuf:"3,optional"` }
ModuleRuntime is runtime configuration for a module that can be dynamically updated.
func ModuleRuntimeFromProto ¶
func ModuleRuntimeFromProto(v *destpb.ModuleRuntime) (out *ModuleRuntime, err error)
func (*ModuleRuntime) GetDeployment ¶ added in v0.422.0
func (m *ModuleRuntime) GetDeployment() *ModuleRuntimeDeployment
func (*ModuleRuntime) GetScaling ¶ added in v0.422.0
func (m *ModuleRuntime) GetScaling() *ModuleRuntimeScaling
func (*ModuleRuntime) ModDeployment ¶ added in v0.422.0
func (m *ModuleRuntime) ModDeployment() *ModuleRuntimeDeployment
func (*ModuleRuntime) ModScaling ¶ added in v0.428.0
func (m *ModuleRuntime) ModScaling() *ModuleRuntimeScaling
func (*ModuleRuntime) ToProto ¶
func (x *ModuleRuntime) ToProto() *destpb.ModuleRuntime
type ModuleRuntimeBase ¶
type ModuleRuntimeBase struct { CreateTime time.Time `protobuf:"1"` Language string `protobuf:"2"` OS string `protobuf:"3,optional"` Arch string `protobuf:"4,optional"` // Image is the name of the runner image. Defaults to "ftl0/ftl-runner". // Must not include a tag, as FTL's version will be used as the tag. Image string `protobuf:"5,optional"` }
func ModuleRuntimeBaseFromProto ¶
func ModuleRuntimeBaseFromProto(v *destpb.ModuleRuntimeBase) (out *ModuleRuntimeBase, err error)
func (*ModuleRuntimeBase) ToProto ¶
func (x *ModuleRuntimeBase) ToProto() *destpb.ModuleRuntimeBase
type ModuleRuntimeDeployment ¶
type ModuleRuntimeDeployment struct { // Endpoint is the endpoint of the deployed module. Endpoint string `protobuf:"1"` DeploymentKey key.Deployment `protobuf:"2"` CreatedAt time.Time `protobuf:"3"` ActivatedAt optional.Option[time.Time] `protobuf:"4"` }
func ModuleRuntimeDeploymentFromProto ¶
func ModuleRuntimeDeploymentFromProto(v *destpb.ModuleRuntimeDeployment) (out *ModuleRuntimeDeployment, err error)
func (*ModuleRuntimeDeployment) GetCreatedAt ¶ added in v0.422.1
func (m *ModuleRuntimeDeployment) GetCreatedAt() time.Time
func (*ModuleRuntimeDeployment) GetDeploymentKey ¶ added in v0.422.1
func (m *ModuleRuntimeDeployment) GetDeploymentKey() key.Deployment
func (*ModuleRuntimeDeployment) ToProto ¶
func (x *ModuleRuntimeDeployment) ToProto() *destpb.ModuleRuntimeDeployment
type ModuleRuntimeEvent ¶
type ModuleRuntimeEvent struct { Module string `protobuf:"1"` // None if updating at provisioning DeploymentKey optional.Option[string] `protobuf:"2"` Base optional.Option[ModuleRuntimeBase] `protobuf:"3"` Scaling optional.Option[ModuleRuntimeScaling] `protobuf:"4"` Deployment optional.Option[ModuleRuntimeDeployment] `protobuf:"5"` }
func ModuleRuntimeEventFromProto ¶
func ModuleRuntimeEventFromProto(v *destpb.ModuleRuntimeEvent) (out *ModuleRuntimeEvent, err error)
func (*ModuleRuntimeEvent) ToProto ¶ added in v0.434.0
func (x *ModuleRuntimeEvent) ToProto() *destpb.ModuleRuntimeEvent
type ModuleRuntimeScaling ¶
type ModuleRuntimeScaling struct {
MinReplicas int32 `protobuf:"1"`
}
func ModuleRuntimeScalingFromProto ¶
func ModuleRuntimeScalingFromProto(v *destpb.ModuleRuntimeScaling) (out *ModuleRuntimeScaling, err error)
func (*ModuleRuntimeScaling) GetMinReplicas ¶ added in v0.422.0
func (m *ModuleRuntimeScaling) GetMinReplicas() int32
func (*ModuleRuntimeScaling) ToProto ¶
func (x *ModuleRuntimeScaling) ToProto() *destpb.ModuleRuntimeScaling
type Node ¶
type Node interface { String() string Position() Position // contains filtered or unexported methods }
A Node in the schema grammar.
type Optional ¶
type Optional struct { Pos Position `parser:"" protobuf:"1,optional"` Type Type `parser:"@@" protobuf:"2,optional"` }
Optional represents a Type whose value may be optional.
func OptionalFromProto ¶ added in v0.424.0
type Position ¶
type Position struct { Filename string `protobuf:"1"` Offset int `parser:"" protobuf:"-"` Line int `protobuf:"2"` Column int `protobuf:"3"` }
func PositionFromProto ¶ added in v0.424.0
func (Position) ToErrorPos ¶
func (p Position) ToErrorPos() builderrors.Position
func (Position) ToErrorPosWithEnd ¶
func (p Position) ToErrorPosWithEnd(endColumn int) builderrors.Position
type Provisioned ¶
type Provisioned interface { Node // Returns the resources provisioned from this schema element. GetProvisioned() ResourceSet ResourceID() string // contains filtered or unexported methods }
Provisioned is a schema element that provisioner acts on to create a runtime resource.
type ProvisionedResource ¶
type ProvisionedResource struct { // Kind is the kind of resource provisioned. Kind ResourceType // Config is the subset of the schema element's configuration that is used to create the resource. // changes to this config are used to check if the resource needs to be updated. Config any }
ProvisionedResource is metadata of a resource that can be provisioned from a schema element.
One schema element can result into multiple different resources. For example, a database node can be provisioned into a physical database, and a schema migration
func (*ProvisionedResource) IsEqual ¶
func (r *ProvisionedResource) IsEqual(other *ProvisionedResource) bool
type ProvisioningCreatedEvent ¶ added in v0.434.0
type ProvisioningCreatedEvent struct {
DesiredModule *Module `protobuf:"1"`
}
func ProvisioningCreatedEventFromProto ¶ added in v0.434.0
func ProvisioningCreatedEventFromProto(v *destpb.ProvisioningCreatedEvent) (out *ProvisioningCreatedEvent, err error)
func (*ProvisioningCreatedEvent) ToProto ¶ added in v0.434.0
func (x *ProvisioningCreatedEvent) ToProto() *destpb.ProvisioningCreatedEvent
type Redactable ¶
type Redactable interface {
Redact()
}
type Ref ¶
type Ref struct { Pos Position `parser:"" protobuf:"1,optional"` Module string `parser:"(@Ident '.')?" protobuf:"3"` Name string `parser:"@Ident" protobuf:"2"` // Only used for data references. TypeParameters []Type `parser:"[ '<' @@ (',' @@)* '>' ]" protobuf:"4"` }
Ref is an untyped reference to a symbol.
type Resolver ¶
type Resolver interface { // Resolve a reference to a symbol declaration or nil. Resolve(ref Ref) *ModuleDecl }
Resolver may be implemented be a node in the AST to resolve references within itself.
type ResourceSet ¶
type ResourceSet []*ProvisionedResource
func GetProvisionedResources ¶
func GetProvisionedResources(n Node) ResourceSet
func (ResourceSet) FilterByType ¶
func (s ResourceSet) FilterByType(kinds ...ResourceType) ResourceSet
func (ResourceSet) Get ¶
func (s ResourceSet) Get(kind ResourceType) *ProvisionedResource
func (ResourceSet) IsEqual ¶
func (s ResourceSet) IsEqual(other ResourceSet) bool
type ResourceType ¶
type ResourceType string
ResourceType is a type of resource used to configure provisioners
const ( ResourceTypeUnknown ResourceType = "unknown" ResourceTypePostgres ResourceType = "postgres" ResourceTypeMysql ResourceType = "mysql" ResourceTypeModule ResourceType = "module" ResourceTypeSQLMigration ResourceType = "sql-migration" ResourceTypeTopic ResourceType = "topic" ResourceTypeSubscription ResourceType = "subscription" ResourceTypeRunner ResourceType = "runner" )
type RetryParams ¶
type Schema ¶
type Schema struct { Pos Position `parser:"" protobuf:"1,optional"` Modules []*Module `parser:"@@*" protobuf:"2"` }
func ParseString ¶
func SchemaFromProto ¶ added in v0.424.0
func ValidateModuleInSchema ¶
ValidateModuleInSchema clones and normalises a schema and semantically validates a single module within it. If no module is provided, all modules in the schema are validated.
func (*Schema) ModuleDependencies ¶ added in v0.413.1
ModuleDependencies returns the modules that the given module depends on Dependency modules are the ones that are called by the given module, or that publish topics that the given module subscribes to
func (*Schema) ResolveMonomorphised ¶
ResolveMonomorphised resolves a reference to a monomorphised Data type. Also supports resolving the monomorphised Data type underlying a TypeAlias, where applicable.
If a Ref is not found, returns ErrNotFound.
func (*Schema) ResolveRequestResponseType ¶
ResolveRequestResponseType resolves a reference to a supported request/response type, which can be a Data or an Any, or a TypeAlias over either supported type.
func (*Schema) ResolveToType ¶
ResolveToType resolves a reference to a declaration of the given type.
The out parameter must be a pointer to a non-nil Decl implementation or this will panic.
data := &Data{} err := s.ResolveToType(ref, data)
func (*Schema) ResolveWithModule ¶
ResolveWithModule a reference to a declaration and its module.
type Scoped ¶
type Scoped interface {
Scope() Scope
}
Scoped is implemented by nodes that wish to introduce a new scope.
type Scopes ¶
type Scopes []Scope
Scopes to search during type resolution.
func NewScopes ¶
func NewScopes() Scopes
NewScopes constructs a new type resolution stack with builtins pre-populated.
func (Scopes) Push ¶
Push a new Scope onto the stack.
This contains references to previous Scopes so that updates are preserved.
func (Scopes) Resolve ¶
func (s Scopes) Resolve(ref Ref) *ModuleDecl
Resolve a reference to a symbol declaration or nil.
func (Scopes) ResolveType ¶
func (s Scopes) ResolveType(t Type) *ModuleDecl
type Secret ¶
type Secret struct { Pos Position `parser:"" protobuf:"1,optional"` Comments []string `parser:"@Comment*" protobuf:"2"` Name string `parser:"'secret' @Ident" protobuf:"3"` Type Type `parser:"@@" protobuf:"4"` }
func (*Secret) IsExported ¶
type String ¶
type String struct { Pos Position `parser:"" protobuf:"1,optional"` Str bool `parser:"@'String'" protobuf:"-"` }
func StringFromProto ¶ added in v0.424.0
type StringValue ¶
type StringValue struct { Pos Position `parser:"" protobuf:"1,optional"` Value string `parser:"@String" protobuf:"2"` }
func StringValueFromProto ¶ added in v0.424.0
func StringValueFromProto(v *destpb.StringValue) (out *StringValue, err error)
func (*StringValue) GetValue ¶
func (s *StringValue) GetValue() any
func (*StringValue) Position ¶
func (s *StringValue) Position() Position
func (*StringValue) String ¶
func (s *StringValue) String() string
func (*StringValue) ToProto ¶
func (x *StringValue) ToProto() *destpb.StringValue
type Symbol ¶
type Symbol interface { Node // contains filtered or unexported methods }
Symbol represents a symbol in the schema grammar.
A Symbol is a named type that can be referenced by other types. This includes user defined data types such as data structures and enums, and builtin types.
type Time ¶
type Topic ¶
type Topic struct { Pos Position `parser:"" protobuf:"1,optional"` Runtime *TopicRuntime `parser:"" protobuf:"31634,optional"` Comments []string `parser:"@Comment*" protobuf:"2"` Export bool `parser:"@'export'?" protobuf:"3"` Name string `parser:"'topic' @Ident" protobuf:"4"` Event Type `parser:"@@" protobuf:"5"` Metadata []Metadata `parser:"@@*" protobuf:"6"` }
func (*Topic) GetProvisioned ¶
func (t *Topic) GetProvisioned() ResourceSet
func (*Topic) IsExported ¶
func (*Topic) ResourceID ¶
type TopicRuntime ¶
type TopicRuntime struct { KafkaBrokers []string `parser:"" protobuf:"1"` TopicID string `parser:"" protobuf:"2"` }
func TopicRuntimeFromProto ¶
func TopicRuntimeFromProto(v *destpb.TopicRuntime) (out *TopicRuntime, err error)
func (*TopicRuntime) ToProto ¶
func (x *TopicRuntime) ToProto() *destpb.TopicRuntime
type TopicRuntimeEvent ¶
type TopicRuntimeEvent struct { Module string `protobuf:"1"` ID string `protobuf:"2"` Payload *TopicRuntime `protobuf:"3"` }
func TopicRuntimeEventFromProto ¶
func TopicRuntimeEventFromProto(v *destpb.TopicRuntimeEvent) (out *TopicRuntimeEvent, err error)
func (*TopicRuntimeEvent) ToProto ¶
func (x *TopicRuntimeEvent) ToProto() *destpb.TopicRuntimeEvent
type Type ¶
type Type interface { Node // Equal returns true if this type is equal to another type. Equal(other Type) bool // contains filtered or unexported methods }
Type represents a Type Node in the schema grammar.
type TypeAlias ¶
type TypeAlias struct { Pos Position `parser:"" protobuf:"1,optional"` Comments []string `parser:"@Comment*" protobuf:"2"` Export bool `parser:"@'export'?" protobuf:"3"` Name string `parser:"'typealias' @Ident" protobuf:"4"` Type Type `parser:"@@" protobuf:"5"` Metadata []Metadata `parser:"@@*" protobuf:"6"` }
func (*TypeAlias) IsExported ¶
type TypeParameter ¶
type TypeParameter struct { Pos Position `parser:"" protobuf:"1,optional"` Name string `parser:"@Ident" protobuf:"2"` }
func TypeParameterFromProto ¶ added in v0.424.0
func TypeParameterFromProto(v *destpb.TypeParameter) (out *TypeParameter, err error)
func (*TypeParameter) GetName ¶
func (t *TypeParameter) GetName() string
func (*TypeParameter) Position ¶
func (t *TypeParameter) Position() Position
func (*TypeParameter) String ¶
func (t *TypeParameter) String() string
func (*TypeParameter) ToProto ¶
func (x *TypeParameter) ToProto() *destpb.TypeParameter
type TypeValue ¶
type TypeValue struct { Pos Position `parser:"" protobuf:"1,optional"` Value Type `parser:"@@" protobuf:"2"` }
func TypeValueFromProto ¶ added in v0.424.0
type Unit ¶
type Verb ¶
type Verb struct { Pos Position `parser:"" protobuf:"1,optional"` Comments []string `parser:"@Comment*" protobuf:"2"` Export bool `parser:"@'export'?" protobuf:"3"` Name string `parser:"'verb' @Ident" protobuf:"4"` Request Type `parser:"'(' @@ ')'" protobuf:"5"` Response Type `parser:"@@" protobuf:"6"` Metadata []Metadata `parser:"@@*" protobuf:"7"` Runtime *VerbRuntime `protobuf:"31634,optional" parser:""` }
func (*Verb) AddDatabase ¶
AddDatabase adds a DB reference to the Verb.
func (*Verb) AddSubscription ¶
func (v *Verb) AddSubscription(sub *MetadataSubscriber)
func (*Verb) AddTopicPublish ¶
AddTopicPublish adds a topic that this Verb publishes to.
func (*Verb) GetMetadataCronJob ¶
func (v *Verb) GetMetadataCronJob() optional.Option[*MetadataCronJob]
func (*Verb) GetMetadataIngress ¶
func (v *Verb) GetMetadataIngress() optional.Option[*MetadataIngress]
func (*Verb) GetProvisioned ¶
func (v *Verb) GetProvisioned() ResourceSet
func (*Verb) GetQuery ¶ added in v0.431.0
func (v *Verb) GetQuery() (*MetadataSQLQuery, bool)
GetQuery returns the query metadata for the Verb if it exists. If present, the Verb was generated from SQL.
func (*Verb) IsExported ¶
func (*Verb) IsGenerated ¶ added in v0.426.0
IsGenerated returns true if the Verb is in the schema but not in the source code.
func (*Verb) ResourceID ¶
func (*Verb) SortMetadata ¶
func (v *Verb) SortMetadata()
type VerbKind ¶
type VerbKind string
VerbKind is the kind of Verb: verb, sink, source or empty.
const ( // VerbKindVerb is a normal verb taking an input and an output of any non-unit type. VerbKindVerb VerbKind = "verb" // VerbKindSink is a verb that takes an input and returns unit. VerbKindSink VerbKind = "sink" // VerbKindSource is a verb that returns an output and takes unit. VerbKindSource VerbKind = "source" // VerbKindEmpty is a verb that takes unit and returns unit. VerbKindEmpty VerbKind = "empty" )
type VerbRuntime ¶
type VerbRuntime struct { Base VerbRuntimeBase `protobuf:"1"` Subscription *VerbRuntimeSubscription `protobuf:"2,optional"` }
func VerbRuntimeFromProto ¶ added in v0.424.0
func VerbRuntimeFromProto(v *destpb.VerbRuntime) (out *VerbRuntime, err error)
func (*VerbRuntime) ToProto ¶
func (x *VerbRuntime) ToProto() *destpb.VerbRuntime
type VerbRuntimeBase ¶
type VerbRuntimeBase struct { CreateTime time.Time `protobuf:"1,optional"` StartTime time.Time `protobuf:"2,optional"` }
func VerbRuntimeBaseFromProto ¶
func VerbRuntimeBaseFromProto(v *destpb.VerbRuntimeBase) (out *VerbRuntimeBase, err error)
func (*VerbRuntimeBase) ToProto ¶
func (x *VerbRuntimeBase) ToProto() *destpb.VerbRuntimeBase
type VerbRuntimeEvent ¶
type VerbRuntimeEvent struct { Module string `protobuf:"1"` ID string `protobuf:"2"` Base optional.Option[VerbRuntimeBase] `protobuf:"3"` Subscription optional.Option[VerbRuntimeSubscription] `protobuf:"4"` }
func VerbRuntimeEventFromProto ¶
func VerbRuntimeEventFromProto(v *destpb.VerbRuntimeEvent) (out *VerbRuntimeEvent, err error)
func (*VerbRuntimeEvent) ToProto ¶
func (x *VerbRuntimeEvent) ToProto() *destpb.VerbRuntimeEvent
type VerbRuntimeSubscription ¶
type VerbRuntimeSubscription struct {
KafkaBrokers []string `protobuf:"1"`
}
func VerbRuntimeSubscriptionFromProto ¶
func VerbRuntimeSubscriptionFromProto(v *destpb.VerbRuntimeSubscription) (out *VerbRuntimeSubscription, err error)
func (*VerbRuntimeSubscription) ToProto ¶
func (x *VerbRuntimeSubscription) ToProto() *destpb.VerbRuntimeSubscription
Source Files ¶
- aliaskind_enumer.go
- any.go
- array.go
- bool.go
- builtin.go
- bytes.go
- config.go
- data.go
- database.go
- databaseruntime.go
- edges.go
- encoding.go
- enum.go
- events.go
- field.go
- float.go
- go2proto.to.go
- int.go
- intvalue.go
- jsonschema.go
- jsonvalidate.go
- map.go
- metadataalias.go
- metadataartefact.go
- metadatacalls.go
- metadataconfig.go
- metadatacronjob.go
- metadatadatabases.go
- metadataencoding.go
- metadataingress.go
- metadatapartitions.go
- metadatapublisher.go
- metadataretry.go
- metadatasecrets.go
- metadatasqlcolumn.go
- metadatasqlmigration.go
- metadatasqlquery.go
- metadatasubscriber.go
- metadatatypemap.go
- module.go
- moduleruntime.go
- normalise.go
- optional.go
- parser.go
- provisioned.go
- redact.go
- ref.go
- schema.go
- secret.go
- string.go
- stringvalue.go
- time.go
- topic.go
- typealias.go
- typeparameter.go
- typeresolver.go
- typevalue.go
- unit.go
- validate.go
- verb.go
- verbruntime.go
- visit.go