resources

package
v0.1.57 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2022 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Get added in v0.1.18

func Get[T Resource](dependentResourceId string, resources *Resources, id string) (T, error)

Get finds the resource with the given id and adds a dependency between dependentResourceId and id.

func GetAllResources

func GetAllResources[T Resource](ctx MultyContext) []T

func GetAllResourcesWithListRef added in v0.1.18

func GetAllResourcesWithListRef[T Resource, T2 Resource](ctx MultyContext, refGetter func(T) []T2, ref T2) []T

func GetAllResourcesWithRef added in v0.1.18

func GetAllResourcesWithRef[T Resource, T2 Resource](ctx MultyContext, refGetter func(T) T2, ref T2) []T

func GetMainOutputId

func GetMainOutputId(r namedResource) (string, error)

func GetMainOutputRef added in v0.1.16

func GetMainOutputRef(r namedResource) (string, error)

func GetOptional added in v0.1.18

func GetOptional[T Resource](dependentResourceId string, resources *Resources, id string) (T, error)

func NewError added in v0.1.44

func NewError(err error, resourceId string, fieldName string) validate.ValidationError

Types

type ChildResourceWithId added in v0.1.15

type ChildResourceWithId[ParentT Resource, ChildT WithChildCommonParams] struct {
	ResourceId string
	Args       ChildT
	Parent     ParentT
	Metadata   ResourceMetadataInterface
}

func NewChildResource added in v0.1.44

func NewChildResource[ParentT Resource, ChildT WithChildCommonParams](resourceId string, parent ParentT, args ChildT) ChildResourceWithId[ParentT, ChildT]

func (*ChildResourceWithId[A, B]) GetCloud added in v0.1.15

func (r *ChildResourceWithId[A, B]) GetCloud() commonpb.CloudProvider

func (*ChildResourceWithId[A, B]) GetCloudSpecificLocation added in v0.1.15

func (r *ChildResourceWithId[A, B]) GetCloudSpecificLocation() string

func (*ChildResourceWithId[A, B]) GetMetadata added in v0.1.44

func (*ChildResourceWithId[A, B]) GetResourceId added in v0.1.15

func (r *ChildResourceWithId[A, B]) GetResourceId() string

func (*ChildResourceWithId[A, B]) NewValidationError added in v0.1.15

func (r *ChildResourceWithId[A, B]) NewValidationError(err error, field string) validate.ValidationError

type CloudSpecificResource

type CloudSpecificResource[OutT proto.Message] interface {
	FromState(state *output.TfState) (OutT, error)

	CloudSpecificResourceTranslator
	Resource
}

type CloudSpecificResourceTranslator added in v0.1.44

type CloudSpecificResourceTranslator interface {
	GetMainResourceName() (string, error)
	Translate(ctx MultyContext) ([]output.TfBlock, error)

	Resource
}

type MultyConfig added in v0.1.36

type MultyConfig struct {
	Resources *Resources
	// contains filtered or unexported fields
}

func LoadConfig added in v0.1.36

func LoadConfig(c *configpb.Config, metadatas ResourceMetadatas) (*MultyConfig, error)

func (*MultyConfig) CreateResource added in v0.1.36

func (c *MultyConfig) CreateResource(args proto.Message) (Resource, error)

func (*MultyConfig) DeleteResource added in v0.1.36

func (c *MultyConfig) DeleteResource(resourceId string) (Resource, error)

func (*MultyConfig) ExportConfig added in v0.1.36

func (c *MultyConfig) ExportConfig() (*configpb.Config, error)

func (*MultyConfig) GetAffectedResources added in v0.1.36

func (c *MultyConfig) GetAffectedResources(resourceId string) []string

func (*MultyConfig) GetOriginalConfig added in v0.1.38

func (c *MultyConfig) GetOriginalConfig(metadatas ResourceMetadatas) (*MultyConfig, error)

func (*MultyConfig) GetUserId added in v0.1.36

func (c *MultyConfig) GetUserId() string

func (*MultyConfig) UpdateDeployedResourceList added in v0.1.36

func (c *MultyConfig) UpdateDeployedResourceList(deployedResources map[string][]string)

func (*MultyConfig) UpdateMultyResourceGroups added in v0.1.36

func (c *MultyConfig) UpdateMultyResourceGroups() (err error)

func (*MultyConfig) UpdateResource added in v0.1.36

func (c *MultyConfig) UpdateResource(resourceId string, args proto.Message) (Resource, error)

type MultyContext

type MultyContext struct {
	Resources *Resources
	// contains filtered or unexported fields
}

func NewMultyContext added in v0.1.18

func NewMultyContext(r *Resources) MultyContext

type MultyResourceGroup added in v0.1.18

type MultyResourceGroup struct {
	GroupId   string
	Resources []Resource
}

type Resource

type Resource interface {
	GetResourceId() string
	GetCloudSpecificLocation() string
	GetCloud() commonpb.CloudProvider

	Validate(ctx MultyContext) []validate.ValidationError

	GetMetadata(ResourceMetadatas) (ResourceMetadataInterface, error)
}

type ResourceExporter added in v0.1.44

type ResourceExporter[ArgsT proto.Message] interface {
	Create(resourceId string, args ArgsT, others *Resources) error
	Update(args ArgsT, others *Resources) error
	Import(resourceId string, args ArgsT, others *Resources) error
	Export(others *Resources) (ArgsT, bool, error)
	ParseCloud(args ArgsT) commonpb.CloudProvider

	Resource
}

type ResourceMetadata added in v0.1.36

type ResourceMetadata[ArgsT proto.Message, R ResourceExporter[ArgsT], OutT proto.Message] struct {
	Translators map[commonpb.CloudProvider]func(R) ResourceTranslator[OutT]

	AbbreviatedName string
	// Used for error messages
	ResourceType string
}

func (*ResourceMetadata[ArgsT, R, OutT]) Create added in v0.1.36

func (m *ResourceMetadata[ArgsT, R, OutT]) Create(resourceIdPrefix string, args proto.Message, resources *Resources) (Resource, error)

func (*ResourceMetadata[ArgsT, R, OutT]) Export added in v0.1.36

func (m *ResourceMetadata[ArgsT, R, OutT]) Export(resource Resource, resources *Resources) (proto.Message, bool, error)

func (*ResourceMetadata[ArgsT, R, OutT]) GetAbbreviatedName added in v0.1.36

func (m *ResourceMetadata[ArgsT, R, OutT]) GetAbbreviatedName() string

func (*ResourceMetadata[ArgsT, R, OutT]) GetCloudSpecificResource added in v0.1.44

func (m *ResourceMetadata[ArgsT, R, OutT]) GetCloudSpecificResource(r Resource) (CloudSpecificResourceTranslator, error)

func (*ResourceMetadata[ArgsT, R, OutT]) Import added in v0.1.36

func (m *ResourceMetadata[ArgsT, R, OutT]) Import(resourceId string, args proto.Message, resources *Resources) error

func (*ResourceMetadata[ArgsT, R, OutT]) New added in v0.1.48

func (m *ResourceMetadata[ArgsT, R, OutT]) New() Resource

func (*ResourceMetadata[ArgsT, R, OutT]) ParseCloud added in v0.1.56

func (m *ResourceMetadata[ArgsT, R, OutT]) ParseCloud(args proto.Message) commonpb.CloudProvider

func (*ResourceMetadata[ArgsT, R, OutT]) ReadFromState added in v0.1.36

func (m *ResourceMetadata[ArgsT, R, OutT]) ReadFromState(resource Resource, state *output.TfState) (proto.Message, error)

func (*ResourceMetadata[ArgsT, R, OutT]) Update added in v0.1.36

func (m *ResourceMetadata[ArgsT, R, OutT]) Update(resource Resource, args proto.Message, resources *Resources) error

type ResourceMetadataInterface added in v0.1.36

type ResourceMetadataInterface interface {
	New() Resource
	ParseCloud(proto.Message) commonpb.CloudProvider
	Create(string, proto.Message, *Resources) (Resource, error)
	Update(Resource, proto.Message, *Resources) error
	ReadFromState(Resource, *output.TfState) (proto.Message, error)

	Export(Resource, *Resources) (proto.Message, bool, error)
	Import(string, proto.Message, *Resources) error
	GetCloudSpecificResource(r Resource) (CloudSpecificResourceTranslator, error)

	GetAbbreviatedName() string
}

type ResourceMetadatas added in v0.1.44

type ResourceMetadatas map[proto.Message]ResourceMetadataInterface

func (ResourceMetadatas) GetConverter added in v0.1.56

type ResourceTranslator added in v0.1.44

type ResourceTranslator[OutT proto.Message] interface {
	Translate(MultyContext) ([]output.TfBlock, error)
	FromState(state *output.TfState) (OutT, error)
}

type ResourceWithId added in v0.1.15

type ResourceWithId[T WithCommonParams] struct {
	ResourceId string
	Args       T
}

func NewResource added in v0.1.44

func NewResource[T WithCommonParams](resourceId string, args T) ResourceWithId[T]

func (*ResourceWithId[T]) GetCloud added in v0.1.15

func (r *ResourceWithId[T]) GetCloud() commonpb.CloudProvider

func (*ResourceWithId[T]) GetCloudSpecificLocation added in v0.1.15

func (r *ResourceWithId[T]) GetCloudSpecificLocation() string

func (*ResourceWithId[T]) GetLocation added in v0.1.15

func (r *ResourceWithId[T]) GetLocation() commonpb.Location

func (*ResourceWithId[T]) GetMetadata added in v0.1.44

func (*ResourceWithId[T]) GetResourceGroupId added in v0.1.36

func (r *ResourceWithId[T]) GetResourceGroupId() string

func (*ResourceWithId[T]) GetResourceId added in v0.1.15

func (r *ResourceWithId[T]) GetResourceId() string

func (*ResourceWithId[T]) NewValidationError added in v0.1.15

func (r *ResourceWithId[T]) NewValidationError(err error, field string) validate.ValidationError

func (*ResourceWithId[T]) ParseCloud added in v0.1.56

func (r *ResourceWithId[T]) ParseCloud(args T) commonpb.CloudProvider

func (*ResourceWithId[T]) Validate added in v0.1.15

func (r *ResourceWithId[T]) Validate() (errs []validate.ValidationError)

type Resources added in v0.1.15

type Resources struct {
	ResourceMap map[string]Resource
	// contains filtered or unexported fields
}

func NewResources added in v0.1.18

func NewResources() *Resources

func (*Resources) Add added in v0.1.36

func (r *Resources) Add(resource Resource) error

func (*Resources) AddDependency added in v0.1.18

func (r *Resources) AddDependency(dependentResourceId string, id string)

func (*Resources) Delete added in v0.1.36

func (r *Resources) Delete(resourceId string)

func (*Resources) GetAll added in v0.1.36

func (r *Resources) GetAll() []Resource

func (*Resources) GetMultyResourceGroups added in v0.1.18

func (r *Resources) GetMultyResourceGroups(existingGroupsByResource map[string]string) (map[string]*MultyResourceGroup, error)

type WithChildCommonParams added in v0.1.15

type WithChildCommonParams interface {
	GetCommonParameters() *commonpb.ChildResourceCommonArgs
	proto.Message
}

type WithCommonParams added in v0.1.15

type WithCommonParams interface {
	GetCommonParameters() *commonpb.ResourceCommonArgs
	proto.Message
}

Jump to

Keyboard shortcuts

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