Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIResourceProperties ¶ added in v0.14.0
APIResourceProperties contains information about a Kind expressible as a kubernetes API resource
type AnyKind ¶ added in v0.14.0
type AnyKind struct { Props KindProperties AllVersions []KindVersion }
AnyKind is a simple implementation of Kind
func (*AnyKind) Properties ¶ added in v0.14.0
func (a *AnyKind) Properties() KindProperties
func (*AnyKind) Version ¶ added in v0.14.0
func (a *AnyKind) Version(v string) *KindVersion
func (*AnyKind) Versions ¶ added in v0.14.0
func (a *AnyKind) Versions() []KindVersion
type Generator ¶
type Generator[T any] struct { // contains filtered or unexported fields }
func NewGenerator ¶ added in v0.14.0
func (*Generator[T]) FilteredGenerate ¶ added in v0.14.0
type Kind ¶ added in v0.14.0
type Kind interface { Name() string Properties() KindProperties Versions() []KindVersion Version(version string) *KindVersion }
Kind is a common interface declaration for code generation. Any type parser should be able to parse a kind into this definition to supply to various common Jennies in the codegen package.
type KindCodegenProperties ¶ added in v0.14.0
KindCodegenProperties contains code generation directives for a Kind or KindVersion
type KindProperties ¶ added in v0.14.0
type KindProperties struct { // Kind is the unique-within-the-group name of the kind Kind string `json:"kind"` // Group is the group the Kind is a part of Group string `json:"group"` // MachineName is the machine version of the Kind, which follows the regex: /^[a-z]+[a-z0-9]*$/ MachineName string `json:"machineName"` // PluralMachineName is the plural of the MachineName PluralMachineName string `json:"pluralMachineName"` // PluralName is the plural of the Kind PluralName string `json:"pluralName"` // Current is the version string of the version considered to be "current". // This does not have to be the latest, but determines preference when generating code. Current string `json:"current"` // APIResource is an optional field which, if present, indicates that the Kind is expressible as a kubernetes API resource, // and contains attributes which allow identification as such. APIResource *APIResourceProperties `json:"apiResource"` // Codegen contains code-generation directives for the codegen pipeline Codegen KindCodegenProperties `json:"codegen"` }
KindProperties is the collection of properties for a Kind which are used for code generation
type KindVersion ¶ added in v0.14.0
type KindVersion struct { Version string `json:"version"` // Schema is the CUE schema for the version // This should eventually be changed to JSONSchema/OpenAPI(/AST?) Schema cue.Value `json:"schema"` // TODO: this should eventually be OpenAPI/JSONSchema (ast or bytes?) Codegen KindCodegenProperties `json:"codegen"` Served bool `json:"served"` }
Click to show internal directories.
Click to hide internal directories.