func validate()

in terraformer/pkg/terraformer/spec.go [103:143]


func validate(def *terraformerv1.AppRoleDefinition) error {
	// Check argument
	if def == nil {
		return fmt.Errorf("unable to validate nil speicification")
	}

	// Header
	if def.ApiVersion != "harp.elastic.co/terraformer/v1" {
		return fmt.Errorf("apiVersion must be 'harp.elastic.co/terraformer/v1'")
	}
	if def.Kind != "AppRoleDefinition" {
		return fmt.Errorf("kind must be 'AppRoleDefinition'")
	}

	// Meta
	if def.Meta == nil {
		return fmt.Errorf("meta object is mandatory")
	}
	if def.Meta.Name == "" {
		return fmt.Errorf("meta.Name is mandatory")
	}
	if def.Meta.Owner == "" {
		return fmt.Errorf("meta.Owner is mandatory")
	}
	if err := validation.Validate(def.Meta.Owner, is.Email); err != nil {
		return fmt.Errorf("meta.Owner must be an email: %w", err)
	}
	if def.Meta.Description == "" {
		return fmt.Errorf("meta.Description is mandatory")
	}

	// Spec
	if def.Spec == nil {
		return fmt.Errorf("spec object is mandatory")
	}
	if def.Spec.Selector == nil {
		return fmt.Errorf("spec.selector object is mandatory")
	}

	return nil
}