diff --git a/generator/generator.go b/generator/generator.go index aba26901..27df2039 100644 --- a/generator/generator.go +++ b/generator/generator.go @@ -78,6 +78,8 @@ func getTypeString(nullable bool, typeName string, schema *types.Schema, schemas return "intstr.IntOrString" case "dnsLabel": return "string" + case "dnsLabelRestricted": + return "string" case "hostname": return "string" default: diff --git a/parse/builder/builder.go b/parse/builder/builder.go index f3a6d343..540f7270 100644 --- a/parse/builder/builder.go +++ b/parse/builder/builder.go @@ -272,6 +272,18 @@ func (b *Builder) convert(fieldType string, value interface{}, op Operation) (in } } return str, nil + case "dnsLabelRestricted": + str := convert.ToString(value) + if str == "" { + return "", nil + } + if op == Create || op == Update { + if errs := validation.IsDNS1035Label(str); len(errs) != 0 { + return value, httperror.NewAPIError(httperror.InvalidFormat, fmt.Sprintf("invalid value %s: %s", value, + strings.Join(errs, ","))) + } + } + return str, nil case "hostname": str := convert.ToString(value) if str == "" {