Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Field ¶
type Field interface {
// Type returns the underlying type of the field.
Type() FieldType
// ElementType returns the type of the list's elements.
//
// If Type is FieldTypeList, the ElementType() method is guaranteed to
// return the type of the list element. If Type is not FieldTypeList,
// ElementType is guaranteed to be FieldTypeNil.
ElementType() FieldType
// ValueType returns the type of the map's values.
//
// If Type is FieldTypeMap, the ValueType() method is guaranteed to return
// the type of the map values. If Type is not FieldTypeMap, ValueType will
// always return FieldTypeNil
ValueType() FieldType
// KeyType returns the type of the map's keys.
//
// If Type is FieldTypeMap, the KeyType() method is guaranteed to return
// the type of the map keys. If Type is not FieldTypeMap, KeyType will
// always return FieldTypeNil
KeyType() FieldType
// MemberFields returns a map, keyed by member field name, of nested Fields
// when this Field has a Type of FieldTypeStruct. Returns nil when Type is
// not FieldTypeStruct.
MemberFields() map[string]Field
// IsRequired returns true if the field is required to be set by the user
IsRequired() bool
// IsReadOnly returns true if the field is not settable by the user
IsReadOnly() bool
// IsImmutable returns true if the field cannot be changed once set
IsImmutable() bool
// IsLateInitialized returns true if the field is "late initialized"
// with a service-side default value
IsLateInitialized() bool
// IsSecret returns true if the field contains secret information
IsSecret() bool
// References returns the Kind for a referred type if the field contains a
// reference to another resource, or nil otherwise.
//
// For example, consider a Resource `rds.aws/DBInstance` with a field
// `Subnets`. This field contains EC2 VPC Subnet identifiers. The Type() of
// this field would be FieldTypeList. The ElementType() of this field would
// be FieldTypeString. The References() of this field would return a Kind
// containing "ec2.aws/Subnet".
References() Kind
}
Field has methods that return information about a field in a resource.
type FieldType ¶
type FieldType int
FieldType indicates the underlying Go builtin type for a Field.
const ( // FieldTypeUnknown is a placeholder for an unknown field type FieldTypeUnknown FieldType = iota // FieldTypeNil is a placeholder for a nil type FieldTypeNil // FieldTypeInt is for integer types FieldTypeInt // FieldTypeBool is for boolean types FieldTypeBool // FieldTypeFloat is for float/double types FieldTypeFloat // FieldTypeTime is for time.Time types FieldTypeTime // FieldTypeString is for string types FieldTypeString // FieldTypeList is for list/slice types FieldTypeList // FieldTypeMap is for map[string]interface{} types FieldTypeMap // FieldTypeStruct is for (nested) struct types FieldTypeStruct )
func StringToFieldType ¶
StringToFieldType converts a string into the associated FieldType. Uses case-insensitive matching.
func (FieldType) EnumString ¶ added in v0.0.3
EnumString returns the stringified field type enum name, mainly useful for templates.
type Identifiers ¶
type Identifiers interface {
// Fields returns an ordered slice of slices of Fields that contain values
// that can be used to uniquely identify the resource.
//
// The returned slice is sorted by efficiency of fetch operation. For
// example, assume an S3 Bucket resource. It may be identified by ARN or by
// Bucket Location in addition to the Bucket's Name field, which happens to
// be globally-unique, so the returned value from Fields() would be:
//
// [][]Field{
// {Field("ARN")},
// {Field("Location")},
// {Field("Name")},
// }
//
// For something like an RDS DBInstance, the DB instance's ARN is a
// globally unique identifier, but the instance's DBInstanceIdentifier
// field is only unique when coupled with the customer's AWS Account and
// Region. So, the returned value from Fields() would be:
//
// [][]Field{
// {Field("ARN")},
// {Field("DBInstanceIdentifier"), Field("CloudAccountID"), Field("CloudRegion")},
// }
Fields() [][]Field
}
Identifiers returns information about a resource's identifying fields and those fields' values.
type Kind ¶
type Kind interface {
// Service returns the name of the cloud service this resource is
// associated with.
//
// For AWS resources, the string returned matches the service package name
// in aws-sdk-go.
Service() string
// Name returns the camel-cased name of the resource (i.e. the Kind, in Kubernetes
// speak).
//
// Note that the combination of Service and Name is a unique identifier for
// this type of Resource.
Name() string
// PluralName returns camel-cased name of the pluralized resource.
//
// Note that the combination of Service and PluralName is a unique identifier for
// this type of Resource.
PluralName() string
}
Kind describes the type/kind of a Resource. It is similar to a GroupKind in Kubernetes.
type Schema ¶
type Schema interface {
Kind
// Field returns a Field at a given field path, or nil if there is no Field
// at that path.
Field(*fieldpath.Path) Field
// Fields returns a map, keyed by field path string, of Fields that
// describe the resource's member fields.
Fields() map[string]Field
// Identifiers returns information about a resource's identifying fields
// and those fields' values.
Identifiers() Identifiers
}
Schema contains methods that returns information about a resource's schema.
Click to show internal directories.
Click to hide internal directories.