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
}