in api/validate/validate.go [128:168]
func Measure(measure *databasev1.Measure) error {
if measure == nil {
return errors.New("measure is nil")
}
if measure.Metadata == nil {
return errors.New("measure metadata is nil")
}
if measure.Metadata.Name == "" {
return errors.New("measure name is empty")
}
if measure.Metadata.Group == "" {
return errors.New("measure group is empty")
}
if measure.Entity == nil {
return errors.New("measure entity is nil")
}
if len(measure.Entity.TagNames) == 0 {
return errors.New("measure entity tag names is empty")
}
for i := range measure.Fields {
if measure.Fields[i].Name == "" {
return errors.New("field name is empty")
}
if measure.Fields[i].FieldType == databasev1.FieldType_FIELD_TYPE_UNSPECIFIED {
return errors.New("field type is unspecified")
}
if measure.Fields[i].CompressionMethod == databasev1.CompressionMethod_COMPRESSION_METHOD_UNSPECIFIED {
return errors.New("compression method is unspecified")
}
if measure.Fields[i].CompressionMethod == databasev1.CompressionMethod_COMPRESSION_METHOD_UNSPECIFIED {
return errors.New("compression method is unspecified")
}
}
if len(measure.TagFamilies) == 0 {
return errors.New("measure tag families is empty")
}
if measure.IndexMode && len(measure.Fields) > 0 {
return errors.New("index mode is enabled, but fields are not empty")
}
return tagFamily(measure.TagFamilies)
}