tfschema

package
v1.53.0 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildDataSourceAttributeMap

func BuildDataSourceAttributeMap(attributes map[string]AttributeBuilder) map[string]dataschema.Attribute

BuildDataSourceAttributeMap takes a map from string to AttributeBuilder and returns a map from string to datasource.schema.Attribute.

func BuildResourceAttributeMap

func BuildResourceAttributeMap(attributes map[string]AttributeBuilder) map[string]schema.Attribute

BuildResourceAttributeMap takes a map from string to AttributeBuilder and returns a map from string to resource.schema.Attribute.

func DataSourceStructToSchema

func DataSourceStructToSchema(v any, customizeSchema func(CustomizableSchema) CustomizableSchema) dataschema.Schema

DataSourceStructToSchema builds a data source schema from a tfsdk struct, with custoimzations applied.

func DataSourceStructToSchemaMap

func DataSourceStructToSchemaMap(v any, customizeSchema func(CustomizableSchema) CustomizableSchema) map[string]dataschema.Attribute

DataSourceStructToSchemaMap returns a map from string to data source schema attributes using a tfsdk struct, with custoimzations applied.

func ResourceStructToSchema

func ResourceStructToSchema(v any, customizeSchema func(CustomizableSchema) CustomizableSchema) schema.Schema

ResourceStructToSchema builds a resource schema from a tfsdk struct, with custoimzations applied.

func ResourceStructToSchemaMap

func ResourceStructToSchemaMap(v any, customizeSchema func(CustomizableSchema) CustomizableSchema) map[string]schema.Attribute

ResourceStructToSchemaMap returns a map from string to resource schema attributes using a tfsdk struct, with custoimzations applied.

Types

type AttributeBuilder

type AttributeBuilder interface {
	BuildDataSourceAttribute() dataschema.Attribute
	BuildResourceAttribute() schema.Attribute
	SetOptional() AttributeBuilder
	SetRequired() AttributeBuilder
	SetSensitive() AttributeBuilder
	SetComputed() AttributeBuilder
	SetReadOnly() AttributeBuilder
	SetDeprecated(string) AttributeBuilder
}

AttributeBuilder is the common interface for all attributes, it can be used to build data source attribute and resource attribute. We need this because in terraform plugin framework, the datasource schema and resource schema are in two separate packages. This common interface prevents us from keeping two copies of StructToSchema and CustomizableSchema.

type BoolAttributeBuilder

type BoolAttributeBuilder struct {
	Optional           bool
	Required           bool
	Sensitive          bool
	Computed           bool
	DeprecationMessage string
	Validators         []validator.Bool
	PlanModifiers      []planmodifier.Bool
}

func (BoolAttributeBuilder) AddPlanModifier

func (BoolAttributeBuilder) AddValidator

func (BoolAttributeBuilder) BuildDataSourceAttribute

func (a BoolAttributeBuilder) BuildDataSourceAttribute() dataschema.Attribute

func (BoolAttributeBuilder) BuildResourceAttribute

func (a BoolAttributeBuilder) BuildResourceAttribute() schema.Attribute

func (BoolAttributeBuilder) SetComputed

func (a BoolAttributeBuilder) SetComputed() AttributeBuilder

func (BoolAttributeBuilder) SetDeprecated

func (a BoolAttributeBuilder) SetDeprecated(msg string) AttributeBuilder

func (BoolAttributeBuilder) SetOptional

func (a BoolAttributeBuilder) SetOptional() AttributeBuilder

func (BoolAttributeBuilder) SetReadOnly

func (a BoolAttributeBuilder) SetReadOnly() AttributeBuilder

func (BoolAttributeBuilder) SetRequired

func (a BoolAttributeBuilder) SetRequired() AttributeBuilder

func (BoolAttributeBuilder) SetSensitive

func (a BoolAttributeBuilder) SetSensitive() AttributeBuilder

type CustomizableSchema

type CustomizableSchema struct {
	// contains filtered or unexported fields
}

CustomizableSchema is a wrapper struct on top of AttributeBuilder that can be used to navigate through nested schema add customizations.

func ConstructCustomizableSchema

func ConstructCustomizableSchema(attributes map[string]AttributeBuilder) *CustomizableSchema

ConstructCustomizableSchema constructs a CustomizableSchema given a map from string to AttributeBuilder.

func (*CustomizableSchema) AddPlanModifier

func (s *CustomizableSchema) AddPlanModifier(v any, path ...string) *CustomizableSchema

func (*CustomizableSchema) AddValidator

func (s *CustomizableSchema) AddValidator(v any, path ...string) *CustomizableSchema

func (*CustomizableSchema) SetComputed

func (s *CustomizableSchema) SetComputed(path ...string) *CustomizableSchema

func (*CustomizableSchema) SetDeprecated

func (s *CustomizableSchema) SetDeprecated(msg string, path ...string) *CustomizableSchema

func (*CustomizableSchema) SetOptional

func (s *CustomizableSchema) SetOptional(path ...string) *CustomizableSchema

func (*CustomizableSchema) SetReadOnly

func (s *CustomizableSchema) SetReadOnly(path ...string) *CustomizableSchema

SetReadOnly sets the schema to be read-only (i.e. computed, non-optional). This should be used for fields that are not user-configurable but are returned by the platform.

func (*CustomizableSchema) SetRequired

func (s *CustomizableSchema) SetRequired(path ...string) *CustomizableSchema

func (*CustomizableSchema) SetSensitive

func (s *CustomizableSchema) SetSensitive(path ...string) *CustomizableSchema

func (*CustomizableSchema) ToAttributeMap

func (s *CustomizableSchema) ToAttributeMap() map[string]AttributeBuilder

ToAttributeMap converts CustomizableSchema into a map from string to Attribute.

type Float64AttributeBuilder

type Float64AttributeBuilder struct {
	Optional           bool
	Required           bool
	Sensitive          bool
	Computed           bool
	DeprecationMessage string
	Validators         []validator.Float64
	PlanModifiers      []planmodifier.Float64
}

func (Float64AttributeBuilder) AddPlanModifier

func (Float64AttributeBuilder) AddValidator

func (Float64AttributeBuilder) BuildDataSourceAttribute

func (a Float64AttributeBuilder) BuildDataSourceAttribute() dataschema.Attribute

func (Float64AttributeBuilder) BuildResourceAttribute

func (a Float64AttributeBuilder) BuildResourceAttribute() schema.Attribute

func (Float64AttributeBuilder) SetComputed

func (a Float64AttributeBuilder) SetComputed() AttributeBuilder

func (Float64AttributeBuilder) SetDeprecated

func (a Float64AttributeBuilder) SetDeprecated(msg string) AttributeBuilder

func (Float64AttributeBuilder) SetOptional

func (a Float64AttributeBuilder) SetOptional() AttributeBuilder

func (Float64AttributeBuilder) SetReadOnly

func (a Float64AttributeBuilder) SetReadOnly() AttributeBuilder

func (Float64AttributeBuilder) SetRequired

func (a Float64AttributeBuilder) SetRequired() AttributeBuilder

func (Float64AttributeBuilder) SetSensitive

func (a Float64AttributeBuilder) SetSensitive() AttributeBuilder

type Int64AttributeBuilder

type Int64AttributeBuilder struct {
	Optional           bool
	Required           bool
	Sensitive          bool
	Computed           bool
	DeprecationMessage string
	Validators         []validator.Int64
	PlanModifiers      []planmodifier.Int64
}

func (Int64AttributeBuilder) AddPlanModifier

func (Int64AttributeBuilder) AddValidator

func (Int64AttributeBuilder) BuildDataSourceAttribute

func (a Int64AttributeBuilder) BuildDataSourceAttribute() dataschema.Attribute

func (Int64AttributeBuilder) BuildResourceAttribute

func (a Int64AttributeBuilder) BuildResourceAttribute() schema.Attribute

func (Int64AttributeBuilder) SetComputed

func (a Int64AttributeBuilder) SetComputed() AttributeBuilder

func (Int64AttributeBuilder) SetDeprecated

func (a Int64AttributeBuilder) SetDeprecated(msg string) AttributeBuilder

func (Int64AttributeBuilder) SetOptional

func (a Int64AttributeBuilder) SetOptional() AttributeBuilder

func (Int64AttributeBuilder) SetReadOnly

func (a Int64AttributeBuilder) SetReadOnly() AttributeBuilder

func (Int64AttributeBuilder) SetRequired

func (a Int64AttributeBuilder) SetRequired() AttributeBuilder

func (Int64AttributeBuilder) SetSensitive

func (a Int64AttributeBuilder) SetSensitive() AttributeBuilder

type ListAttributeBuilder

type ListAttributeBuilder struct {
	ElementType        attr.Type
	Optional           bool
	Required           bool
	Sensitive          bool
	Computed           bool
	DeprecationMessage string
	Validators         []validator.List
	PlanModifiers      []planmodifier.List
}

ListAttributteBuilder represents a list of primitive types.

func (ListAttributeBuilder) AddPlanModifier

func (ListAttributeBuilder) AddValidator

func (ListAttributeBuilder) BuildDataSourceAttribute

func (a ListAttributeBuilder) BuildDataSourceAttribute() dataschema.Attribute

func (ListAttributeBuilder) BuildResourceAttribute

func (a ListAttributeBuilder) BuildResourceAttribute() schema.Attribute

func (ListAttributeBuilder) SetComputed

func (a ListAttributeBuilder) SetComputed() AttributeBuilder

func (ListAttributeBuilder) SetDeprecated

func (a ListAttributeBuilder) SetDeprecated(msg string) AttributeBuilder

func (ListAttributeBuilder) SetOptional

func (a ListAttributeBuilder) SetOptional() AttributeBuilder

func (ListAttributeBuilder) SetReadOnly

func (a ListAttributeBuilder) SetReadOnly() AttributeBuilder

func (ListAttributeBuilder) SetRequired

func (a ListAttributeBuilder) SetRequired() AttributeBuilder

func (ListAttributeBuilder) SetSensitive

func (a ListAttributeBuilder) SetSensitive() AttributeBuilder

type ListNestedAttributeBuilder

type ListNestedAttributeBuilder struct {
	NestedObject       NestedAttributeObject
	Optional           bool
	Required           bool
	Sensitive          bool
	Computed           bool
	DeprecationMessage string
	Validators         []validator.List
	PlanModifiers      []planmodifier.List
}

ListNestedAttributteBuilder represents a list of complex (non-primitive) types.

func (ListNestedAttributeBuilder) AddPlanModifier

func (ListNestedAttributeBuilder) AddValidator

func (ListNestedAttributeBuilder) BuildDataSourceAttribute

func (a ListNestedAttributeBuilder) BuildDataSourceAttribute() dataschema.Attribute

func (ListNestedAttributeBuilder) BuildResourceAttribute

func (a ListNestedAttributeBuilder) BuildResourceAttribute() schema.Attribute

func (ListNestedAttributeBuilder) SetComputed

func (ListNestedAttributeBuilder) SetDeprecated

func (a ListNestedAttributeBuilder) SetDeprecated(msg string) AttributeBuilder

func (ListNestedAttributeBuilder) SetOptional

func (ListNestedAttributeBuilder) SetReadOnly

func (ListNestedAttributeBuilder) SetRequired

func (ListNestedAttributeBuilder) SetSensitive

type MapAttributeBuilder

type MapAttributeBuilder struct {
	ElementType        attr.Type
	Optional           bool
	Required           bool
	Sensitive          bool
	Computed           bool
	DeprecationMessage string
	Validators         []validator.Map
	PlanModifiers      []planmodifier.Map
}

MapAttributteBuilder represents a map of primitive types.

func (MapAttributeBuilder) AddPlanModifier

func (MapAttributeBuilder) AddValidator

func (MapAttributeBuilder) BuildDataSourceAttribute

func (a MapAttributeBuilder) BuildDataSourceAttribute() dataschema.Attribute

func (MapAttributeBuilder) BuildResourceAttribute

func (a MapAttributeBuilder) BuildResourceAttribute() schema.Attribute

func (MapAttributeBuilder) SetComputed

func (a MapAttributeBuilder) SetComputed() AttributeBuilder

func (MapAttributeBuilder) SetDeprecated

func (a MapAttributeBuilder) SetDeprecated(msg string) AttributeBuilder

func (MapAttributeBuilder) SetOptional

func (a MapAttributeBuilder) SetOptional() AttributeBuilder

func (MapAttributeBuilder) SetReadOnly

func (a MapAttributeBuilder) SetReadOnly() AttributeBuilder

func (MapAttributeBuilder) SetRequired

func (a MapAttributeBuilder) SetRequired() AttributeBuilder

func (MapAttributeBuilder) SetSensitive

func (a MapAttributeBuilder) SetSensitive() AttributeBuilder

type MapNestedAttributeBuilder

type MapNestedAttributeBuilder struct {
	NestedObject       NestedAttributeObject
	Optional           bool
	Required           bool
	Sensitive          bool
	Computed           bool
	DeprecationMessage string
	Validators         []validator.Map
	PlanModifiers      []planmodifier.Map
}

MapNestedAttributteBuilder represents a map of complex (non-primitive) types.

func (MapNestedAttributeBuilder) AddPlanModifier

func (MapNestedAttributeBuilder) AddValidator

func (MapNestedAttributeBuilder) BuildDataSourceAttribute

func (a MapNestedAttributeBuilder) BuildDataSourceAttribute() dataschema.Attribute

func (MapNestedAttributeBuilder) BuildResourceAttribute

func (a MapNestedAttributeBuilder) BuildResourceAttribute() schema.Attribute

func (MapNestedAttributeBuilder) SetComputed

func (MapNestedAttributeBuilder) SetDeprecated

func (a MapNestedAttributeBuilder) SetDeprecated(msg string) AttributeBuilder

func (MapNestedAttributeBuilder) SetOptional

func (MapNestedAttributeBuilder) SetReadOnly

func (MapNestedAttributeBuilder) SetRequired

func (MapNestedAttributeBuilder) SetSensitive

type NestedAttributeObject

type NestedAttributeObject struct {
	Attributes map[string]AttributeBuilder
}

NestedAttributteObject is the intermediate type for nested complex (non-primitive) types.

func (NestedAttributeObject) BuildDataSourceAttribute

func (a NestedAttributeObject) BuildDataSourceAttribute() dataschema.NestedAttributeObject

func (NestedAttributeObject) BuildResourceAttribute

func (a NestedAttributeObject) BuildResourceAttribute() schema.NestedAttributeObject

type SingleNestedAttributeBuilder

type SingleNestedAttributeBuilder struct {
	Attributes         map[string]AttributeBuilder
	Optional           bool
	Required           bool
	Sensitive          bool
	Computed           bool
	DeprecationMessage string
	Validators         []validator.Object
	PlanModifiers      []planmodifier.Object
}

SingleNestedAttributteBuilder represents single complex (struct) types.

func (SingleNestedAttributeBuilder) AddPlanModifier

func (SingleNestedAttributeBuilder) AddValidator

func (SingleNestedAttributeBuilder) BuildDataSourceAttribute

func (a SingleNestedAttributeBuilder) BuildDataSourceAttribute() dataschema.Attribute

func (SingleNestedAttributeBuilder) BuildResourceAttribute

func (a SingleNestedAttributeBuilder) BuildResourceAttribute() schema.Attribute

func (SingleNestedAttributeBuilder) SetComputed

func (SingleNestedAttributeBuilder) SetDeprecated

func (SingleNestedAttributeBuilder) SetOptional

func (SingleNestedAttributeBuilder) SetReadOnly

func (SingleNestedAttributeBuilder) SetRequired

func (SingleNestedAttributeBuilder) SetSensitive

type StringAttributeBuilder

type StringAttributeBuilder struct {
	Optional           bool
	Required           bool
	Sensitive          bool
	Computed           bool
	DeprecationMessage string
	Validators         []validator.String
	PlanModifiers      []planmodifier.String
}

func (StringAttributeBuilder) AddPlanModifier

func (StringAttributeBuilder) AddValidator

func (StringAttributeBuilder) BuildDataSourceAttribute

func (a StringAttributeBuilder) BuildDataSourceAttribute() dataschema.Attribute

func (StringAttributeBuilder) BuildResourceAttribute

func (a StringAttributeBuilder) BuildResourceAttribute() schema.Attribute

func (StringAttributeBuilder) SetComputed

func (a StringAttributeBuilder) SetComputed() AttributeBuilder

func (StringAttributeBuilder) SetDeprecated

func (a StringAttributeBuilder) SetDeprecated(msg string) AttributeBuilder

func (StringAttributeBuilder) SetOptional

func (a StringAttributeBuilder) SetOptional() AttributeBuilder

func (StringAttributeBuilder) SetReadOnly

func (a StringAttributeBuilder) SetReadOnly() AttributeBuilder

func (StringAttributeBuilder) SetRequired

func (a StringAttributeBuilder) SetRequired() AttributeBuilder

func (StringAttributeBuilder) SetSensitive

func (a StringAttributeBuilder) SetSensitive() AttributeBuilder

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL