in pkg/api/deploymentapi/deputil/deputil.go [42:94]
func ValidateParams(params Validator) error {
if params == nil {
return errors.New("params cannot be nil")
}
var valueParams = reflect.ValueOf(params)
if reflect.Ptr == reflect.ValueOf(params).Kind() {
valueParams = valueParams.Elem()
}
var valid bool
var merr = multierror.NewPrefixed("deployment params")
if field := valueParams.FieldByName("API"); field.IsValid() {
valid = true
v, ok := field.Interface().(*api.API)
if ok && v == nil {
merr = merr.Append(apierror.ErrMissingAPI)
}
if !ok {
merr = merr.Append(
errors.New("field API must be of type *github.com/elastic/cloud-sdk-go/pkg/api.API"),
)
}
}
if field := valueParams.FieldByName("ID"); field.IsValid() {
valid = true
id, ok := field.Interface().(string)
if ok && len(id) != 32 {
merr = merr.Append(NewInvalidDeploymentIDError(id))
}
if !ok {
merr = merr.Append(errors.New("field ID must be of type string"))
}
}
if field := valueParams.FieldByName("ClusterID"); field.IsValid() {
valid = true
id, ok := field.Interface().(string)
if ok && len(id) != 32 {
merr = merr.Append(NewInvalidDeploymentIDError(id))
}
if !ok {
merr = merr.Append(errors.New("field ClusterID must be of type string"))
}
}
if !valid {
return errors.New("params must have one of API or ID")
}
return merr.ErrorOrNil()
}