helpers

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Nov 24, 2022 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var EnvRelatedResourceImporter = &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("env_id", parts[2])
		d.Set("identifier", parts[3])
		d.SetId(parts[3])

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

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

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

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

View Source
var GitopsRepoCertResourceImporter = &schema.ResourceImporter{
	State: func(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
		parts := strings.Split(d.Id(), "/")
		d.Set("agent_id", parts[0])
		d.SetId(parts[1])
		return []*schema.ResourceData{d}, nil
	},
}
View Source
var MultiLevelFilterImporter = &schema.ResourceImporter{
	State: func(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
		parts := strings.Split(d.Id(), "/")

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

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

		if isOrgConnector {
			d.SetId(parts[1])
			d.Set("identifier", parts[1])
			d.Set("org_id", parts[0])
			d.Set("type", parts[2])
			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])
			d.Set("type", parts[3])
			return []*schema.ResourceData{d}, nil
		}

		return nil, fmt.Errorf("invalid identifier: %s", d.Id())
	},
}
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 PipelineResourceImporter = &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("pipeline_id", parts[2])
		d.Set("identifier", parts[3])
		d.SetId(parts[3])

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

PipelineResourceImporter defines the importer configuration for all pipeline level resources.

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",
}
View Source
var ServiceOverrideResourceImporter = &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("env_id", parts[2])
		d.SetId(parts[3])

		return []*schema.ResourceData{d}, nil
	},
}
View Source
var TriggerResourceImporter = &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("target_id", parts[2])
		d.Set("identifier", parts[3])
		d.SetId(parts[3])

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

Functions

func BuildField added in v0.2.12

func BuildField(d *schema.ResourceData, field string) optional.String

func ExpandDelegateSelectors added in v0.2.2

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

func ExpandField added in v0.2.12

func ExpandField(permissions []interface{}) []string

func ExpandScopeSelector added in v0.2.13

func ExpandScopeSelector(scopeSelectors []interface{}) []nextgen.ScopeSelector

func ExpandTags added in v0.2.2

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

func FlattenDelgateSelectors added in v0.2.2

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

func FlattenTags added in v0.2.2

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

func GetDescriptionSchema added in v0.2.2

func GetDescriptionSchema(flag SchemaFlagType) *schema.Schema

func GetIdentifierSchema added in v0.2.2

func GetIdentifierSchema(flag SchemaFlagType) *schema.Schema

func GetNameSchema added in v0.2.2

func GetNameSchema(flag SchemaFlagType) *schema.Schema

func GetOrgIdSchema added in v0.2.2

func GetOrgIdSchema(flag SchemaFlagType) *schema.Schema

func GetProjectIdSchema added in v0.2.2

func GetProjectIdSchema(flag SchemaFlagType) *schema.Schema

func GetTagsSchema added in v0.2.2

func GetTagsSchema(flag SchemaFlagType) *schema.Schema

func HandleApiError added in v0.2.2

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

func MergeSchemas

func MergeSchemas(src map[string]*schema.Schema, dest map[string]*schema.Schema)

func SetCommonDataSourceSchema added in v0.2.2

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

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

func SetCommonResourceSchema added in v0.2.2

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

SetCommonResourceSchema sets the default schema objects used for most resources.

func SetMultiLevelDatasourceSchema added in v0.2.2

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

func SetMultiLevelResourceSchema added in v0.2.2

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

func SetOrgLevelDataSourceSchema added in v0.2.2

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

func SetOrgLevelResourceSchema added in v0.2.2

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

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

func SetProjectLevelDataSourceSchema added in v0.2.2

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

func SetProjectLevelResourceSchema added in v0.2.2

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

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

func SetSchemaFlagType added in v0.2.2

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

Types

type SchemaFlagType added in v0.2.2

type SchemaFlagType string

func (SchemaFlagType) String added in v0.2.2

func (e SchemaFlagType) String() string

Jump to

Keyboard shortcuts

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