helpers

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Mar 17, 2022 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var MultiLevelResourceImporter = &schema.ResourceImporter{
	State: func(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
		parts := strings.Split(d.Id(), "/")

		partCount := len(parts)
		isAccountConnector := partCount == 1
		isOrgConnector := partCount == 2
		isProjectConnector := partCount == 3

		if isAccountConnector {
			d.SetId(parts[0])
			d.Set("identifier", parts[0])
			return []*schema.ResourceData{d}, nil
		}

		if isOrgConnector {
			d.SetId(parts[1])
			d.Set("identifier", parts[1])
			d.Set("org_id", parts[0])
			return []*schema.ResourceData{d}, nil
		}

		if isProjectConnector {
			d.SetId(parts[2])
			d.Set("identifier", parts[2])
			d.Set("project_id", parts[1])
			d.Set("org_id", parts[0])
			return []*schema.ResourceData{d}, nil
		}

		return nil, fmt.Errorf("invalid identifier: %s", d.Id())
	},
}

MultiLevelResourceImporter defines the importer configuration for all multi level resources. The format used for the id is as follows:

  • Account Level: <identifier>
  • Org Level: <org_id>/<identifier>
  • Project Level: <org_id>/<project_id>/<identifier>
View Source
var OrgResourceImporter = &schema.ResourceImporter{
	State: func(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
		parts := strings.Split(d.Id(), "/")
		d.Set("org_id", parts[0])
		d.Set("identifier", parts[1])
		d.SetId(parts[1])

		return []*schema.ResourceData{d}, nil
	},
}

OrgResourceImporter defines the importer configuration for all organization level resources. The id used for the import should be in the format <org_id>/<identifier>

View Source
var ProjectResourceImporter = &schema.ResourceImporter{
	State: func(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
		parts := strings.Split(d.Id(), "/")
		d.Set("org_id", parts[0])
		d.Set("project_id", parts[1])
		d.Set("identifier", parts[2])
		d.SetId(parts[2])

		return []*schema.ResourceData{d}, nil
	},
}

ProjectResourceImporter defines the importer configuration for all project level resources. The id used for the import should be in the format <org_id>/<project_id>/<identifier>

View Source
var SchemaFlagTypeValues = []string{
	SchemaFlagTypes.Required.String(),
	SchemaFlagTypes.Optional.String(),
	SchemaFlagTypes.Computed.String(),
}
View Source
var SchemaFlagTypes = struct {
	Required SchemaFlagType
	Optional SchemaFlagType
	Computed SchemaFlagType
}{
	Required: "Required",
	Optional: "Optional",
	Computed: "Computed",
}

Functions

func ExpandDelegateSelectors added in v0.0.4

func ExpandDelegateSelectors(ds []interface{}) []string

func ExpandTags added in v0.0.4

func ExpandTags(tags []interface{}) map[string]string

func FlattenDelgateSelectors added in v0.0.4

func FlattenDelgateSelectors(ds []string) []interface{}

func FlattenTags added in v0.0.4

func FlattenTags(tags map[string]string) []string

func GetDescriptionSchema added in v0.0.4

func GetDescriptionSchema(flag SchemaFlagType) *schema.Schema

func GetIdentifierSchema added in v0.0.4

func GetIdentifierSchema(flag SchemaFlagType) *schema.Schema

func GetNameSchema added in v0.0.4

func GetNameSchema(flag SchemaFlagType) *schema.Schema

func GetOrgIdSchema added in v0.0.4

func GetOrgIdSchema(flag SchemaFlagType) *schema.Schema

func GetProjectIdSchema added in v0.0.4

func GetProjectIdSchema(flag SchemaFlagType) *schema.Schema

func GetTagsSchema added in v0.0.4

func GetTagsSchema(flag SchemaFlagType) *schema.Schema

func HandleApiError added in v0.0.4

func HandleApiError(err error, d *schema.ResourceData) diag.Diagnostics

func SetCommonDataSourceSchema added in v0.0.4

func SetCommonDataSourceSchema(s map[string]*schema.Schema)

SetCommonDataSourceSchema sets the default schema objects used for most data sources.

func SetCommonResourceSchema added in v0.0.4

func SetCommonResourceSchema(s map[string]*schema.Schema)

SetCommonResourceSchema sets the default schema objects used for most resources.

func SetMultiLevelResourceSchema added in v0.0.4

func SetMultiLevelResourceSchema(s map[string]*schema.Schema)

func SetOrgLevelDataSourceSchema added in v0.0.4

func SetOrgLevelDataSourceSchema(s map[string]*schema.Schema)

func SetOrgLevelResourceSchema added in v0.0.4

func SetOrgLevelResourceSchema(s map[string]*schema.Schema)

SetOrgLevelResourceSchema sets the default schema objects used for org level resources.

func SetProjectLevelDataSourceSchema added in v0.0.4

func SetProjectLevelDataSourceSchema(s map[string]*schema.Schema)

func SetProjectLevelResourceSchema added in v0.0.4

func SetProjectLevelResourceSchema(s map[string]*schema.Schema)

SetProjectLevelResourceSchema sets the default schema objects used for project level resources.

func SetSchemaFlagType added in v0.0.4

func SetSchemaFlagType(s *schema.Schema, flag SchemaFlagType)

Types

type SchemaFlagType added in v0.0.4

type SchemaFlagType string

func (SchemaFlagType) String added in v0.0.4

func (e SchemaFlagType) String() string

Jump to

Keyboard shortcuts

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