From b5fbcbdf21dd39ccceb065255726598fa01b32c6 Mon Sep 17 00:00:00 2001 From: Matthew Christopher Date: Tue, 30 Jun 2020 09:48:45 -0700 Subject: [PATCH] TypeDefiners must also support RequiredImports (#158) * Change a few config filters to typeFilters - It makes more sense to avoid scanning those types, rather than scanning them and then not emitting them. * Clean up how we do RequiredImports a bit --- hack/generator/azure-arm.yaml | 4 ++-- .../pkg/astmodel/code_generation_context.go | 12 ++++++++++++ .../generator/pkg/astmodel/enum_definition.go | 5 +++++ .../generator/pkg/astmodel/file_definition.go | 18 ++++++++++-------- .../pkg/astmodel/package_reference.go | 2 ++ hack/generator/pkg/astmodel/resource.go | 19 ++++++++++++++++--- .../pkg/astmodel/simple_type_definer.go | 5 +++++ .../pkg/astmodel/struct_definition.go | 5 +++++ hack/generator/pkg/astmodel/type.go | 2 +- hack/generator/pkg/astmodel/type_definer.go | 2 ++ hack/generator/pkg/astmodel/type_name.go | 5 +++-- ...rates_field_if_other_fields_present.golden | 2 -- ...f_unset_and_no_other_fields_present.golden | 2 -- ...map_type_if_no_other_fields_present.golden | 2 -- ...Generates_nothing_if_set_to_'false'.golden | 2 -- ...g_if_unset_and_other_fields_present.golden | 2 -- ...lOf_collapses_duplicate_named_types.golden | 2 -- ...f_collapses_duplicate_unnamed_types.golden | 2 -- .../AllOf/AllOf_generates_wrapper_type.golden | 2 -- ...eOf_collapses_duplicate_named_types.golden | 2 -- ...f_collapses_duplicate_unnamed_types.golden | 2 -- ...erates_wrapper_for_inner_properties.golden | 5 +---- ...es_wrapper_type_with_marshal_helper.golden | 5 +---- ...med_properties_from_anonymous_types.golden | 5 +---- ...enced_definitions_are_not_generated.golden | 2 -- .../Enums_have_required_validation.golden | 2 -- .../Optional_properties_are_pointers.golden | 2 -- ...nown_type_is_generated_as_interface.golden | 2 -- ...properties_have_appropriate_comment.golden | 2 -- 29 files changed, 66 insertions(+), 58 deletions(-) diff --git a/hack/generator/azure-arm.yaml b/hack/generator/azure-arm.yaml index 61916153fcd..37045d059bb 100644 --- a/hack/generator/azure-arm.yaml +++ b/hack/generator/azure-arm.yaml @@ -5,13 +5,13 @@ typeFilters: group: definitions name: Expression because: expression is an ARM template construct which doesn't belong in CRDs -exportFilters: - action: include version: 2020-* because: all 2020 API versions are included - - action: exclude + - action: prune version: '*preview' because: preview SDK versions are excluded by default +exportFilters: - action: exclude group: deploymenttemplate because: this is the "container" group that holds references to all of the other groups and as such doesn't make sense to generate diff --git a/hack/generator/pkg/astmodel/code_generation_context.go b/hack/generator/pkg/astmodel/code_generation_context.go index 65ed3a94f7b..b686173d77a 100644 --- a/hack/generator/pkg/astmodel/code_generation_context.go +++ b/hack/generator/pkg/astmodel/code_generation_context.go @@ -5,6 +5,8 @@ package astmodel +import "fmt" + // CodeGenerationContext stores context about the location code-generation is occurring. // This is required because some things (such as specific field types) are impacted by the context // in which the field declaration occurs - for example in a file with two conflicting package references @@ -34,3 +36,13 @@ func (codeGenContext *CodeGenerationContext) PackageImports() map[PackageReferen } return result } + +// GetImportedPackageName gets the imported packages name or an error if the package was not imported +func (codeGenContext *CodeGenerationContext) GetImportedPackageName(reference *PackageReference) (string, error) { + packageImport, ok := codeGenContext.packageImports[*reference] + if !ok { + return "", fmt.Errorf("package %s not imported", reference) + } + + return packageImport.PackageName(), nil +} diff --git a/hack/generator/pkg/astmodel/enum_definition.go b/hack/generator/pkg/astmodel/enum_definition.go index 8eed5de8ecb..78d65efb35e 100644 --- a/hack/generator/pkg/astmodel/enum_definition.go +++ b/hack/generator/pkg/astmodel/enum_definition.go @@ -113,3 +113,8 @@ func (enum *EnumDefinition) createValueDeclaration(value EnumValue) ast.Spec { return valueSpec } + +// RequiredImports returns a list of packages required by this type +func (enum *EnumDefinition) RequiredImports() []*PackageReference { + return enum.baseType.RequiredImports() +} diff --git a/hack/generator/pkg/astmodel/file_definition.go b/hack/generator/pkg/astmodel/file_definition.go index c4d97933d6b..fed1c2b24a5 100644 --- a/hack/generator/pkg/astmodel/file_definition.go +++ b/hack/generator/pkg/astmodel/file_definition.go @@ -42,18 +42,18 @@ func NewFileDefinition(packageRef *PackageReference, definitions ...TypeDefiner) // generateImports products the definitive set of imports for use in this file and // disambiguates any conflicts func (file *FileDefinition) generateImports() map[PackageImport]struct{} { - - metav1Import := NewPackageImport( - *NewPackageReference("k8s.io/apimachinery/pkg/apis/meta/v1")).WithName("metav1") - var requiredImports = make(map[PackageImport]struct{}) // fake set type - requiredImports[*metav1Import] = struct{}{} for _, s := range file.definitions { - for _, requiredImport := range s.Type().RequiredImports() { + for _, requiredImport := range s.RequiredImports() { // no need to import the current package if !requiredImport.Equals(file.packageReference) { newImport := NewPackageImport(*requiredImport) + + if requiredImport.PackagePath() == MetaV1PackageReference.PackagePath() { + newImport = newImport.WithName("metav1") + } + requiredImports[*newImport] = struct{}{} } } @@ -100,8 +100,10 @@ func (file *FileDefinition) AsAst() ast.Node { // Create context from imports codeGenContext := NewCodeGenerationContext(file.packageReference, packageReferences) - // Create import header: - decls = append(decls, &ast.GenDecl{Tok: token.IMPORT, Specs: file.generateImportSpecs(packageReferences)}) + // Create import header if needed + if len(packageReferences) > 0 { + decls = append(decls, &ast.GenDecl{Tok: token.IMPORT, Specs: file.generateImportSpecs(packageReferences)}) + } // Emit all definitions: for _, s := range file.definitions { diff --git a/hack/generator/pkg/astmodel/package_reference.go b/hack/generator/pkg/astmodel/package_reference.go index ad0eeab7143..f2530e15b6e 100644 --- a/hack/generator/pkg/astmodel/package_reference.go +++ b/hack/generator/pkg/astmodel/package_reference.go @@ -14,6 +14,8 @@ const ( localPathPrefix = "github.com/Azure/k8s-infra/hack/generator/apis/" ) +var MetaV1PackageReference = NewPackageReference("k8s.io/apimachinery/pkg/apis/meta/v1") + // PackageReference indicates which package // a struct belongs to. type PackageReference struct { diff --git a/hack/generator/pkg/astmodel/resource.go b/hack/generator/pkg/astmodel/resource.go index 25bed93ee14..7af036d26b9 100644 --- a/hack/generator/pkg/astmodel/resource.go +++ b/hack/generator/pkg/astmodel/resource.go @@ -6,6 +6,7 @@ package astmodel import ( + "fmt" "go/ast" "go/token" ) @@ -77,13 +78,25 @@ func (definition *ResourceDefinition) WithDescription(description *string) TypeD return &result } -// TODO: metav1 import should be added via RequiredImports? -var typeMetaField = defineField("", "metav1.TypeMeta", "`json:\",inline\"`") -var objectMetaField = defineField("", "metav1.ObjectMeta", "`json:\"metadata,omitempty\"`") +// RequiredImports returns a list of packages required by this +func (definition *ResourceDefinition) RequiredImports() []*PackageReference { + typeImports := definition.spec.RequiredImports() + // TODO BUG: the status is not considered here + typeImports = append(typeImports, MetaV1PackageReference) + + return typeImports +} // AsDeclarations converts the ResourceDefinition to a go declaration func (definition *ResourceDefinition) AsDeclarations(codeGenerationContext *CodeGenerationContext) []ast.Decl { + packageName, err := codeGenerationContext.GetImportedPackageName(MetaV1PackageReference) + if err != nil { + panic(fmt.Errorf("resource definition for %s failed to import package: %w", definition.typeName, err)) + } + typeMetaField := defineField("", fmt.Sprintf("%s.TypeMeta", packageName), "`json:\",inline\"`") + objectMetaField := defineField("", fmt.Sprintf("%s.ObjectMeta", packageName), "`json:\"metadata,omitempty\"`") + /* start off with: metav1.TypeMeta `json:",inline"` diff --git a/hack/generator/pkg/astmodel/simple_type_definer.go b/hack/generator/pkg/astmodel/simple_type_definer.go index 107f6f82b1f..1109732f416 100644 --- a/hack/generator/pkg/astmodel/simple_type_definer.go +++ b/hack/generator/pkg/astmodel/simple_type_definer.go @@ -58,3 +58,8 @@ func (std *SimpleTypeDefiner) AsDeclarations(codeGenerationContext *CodeGenerati }, } } + +// RequiredImports returns a list of packages required by this type +func (std *SimpleTypeDefiner) RequiredImports() []*PackageReference { + return std.theType.RequiredImports() +} diff --git a/hack/generator/pkg/astmodel/struct_definition.go b/hack/generator/pkg/astmodel/struct_definition.go index cda6eab629f..c1b7cc3778b 100644 --- a/hack/generator/pkg/astmodel/struct_definition.go +++ b/hack/generator/pkg/astmodel/struct_definition.go @@ -42,6 +42,11 @@ func (definition *StructDefinition) WithDescription(description *string) TypeDef return &result } +// RequiredImports returns a list of packages required by this +func (definition *StructDefinition) RequiredImports() []*PackageReference { + return definition.structType.RequiredImports() +} + // AsDeclarations returns the Go AST declarations for this struct func (definition *StructDefinition) AsDeclarations(codeGenerationContext *CodeGenerationContext) []ast.Decl { identifier := ast.NewIdent(definition.typeName.name) diff --git a/hack/generator/pkg/astmodel/type.go b/hack/generator/pkg/astmodel/type.go index a94f2a8f034..73a18be55f7 100644 --- a/hack/generator/pkg/astmodel/type.go +++ b/hack/generator/pkg/astmodel/type.go @@ -25,7 +25,7 @@ type Type interface { // Equals returns true if the passed type is the same as this one, false otherwise Equals(t Type) bool - // CreateDefinitions gives a name to the type and might generate some asssociated definitions as well (the second result) + // CreateDefinitions gives a name to the type and might generate some associated definitions as well (the second result) // that also must be included in the output. CreateDefinitions(name *TypeName, idFactory IdentifierFactory) (TypeDefiner, []TypeDefiner) diff --git a/hack/generator/pkg/astmodel/type_definer.go b/hack/generator/pkg/astmodel/type_definer.go index 989d056599b..9905f6d8e35 100644 --- a/hack/generator/pkg/astmodel/type_definer.go +++ b/hack/generator/pkg/astmodel/type_definer.go @@ -11,6 +11,8 @@ import ( // TypeDefiner represents a named type in the output files, and knows how to generate the Go AST type TypeDefiner interface { + // RequiredImports returns a list of packages required by this type + RequiredImports() []*PackageReference // Name is the name that will be bound to the type Name() *TypeName diff --git a/hack/generator/pkg/astmodel/type_name.go b/hack/generator/pkg/astmodel/type_name.go index b1dc74f2b62..a848ea91b34 100644 --- a/hack/generator/pkg/astmodel/type_name.go +++ b/hack/generator/pkg/astmodel/type_name.go @@ -33,9 +33,10 @@ var _ Type = (*TypeName)(nil) // AsType implements Type for TypeName func (typeName *TypeName) AsType(codeGenerationContext *CodeGenerationContext) ast.Expr { // If our package is being referenced, we need to ensure we include a selector for that reference - if imp, ok := codeGenerationContext.PackageImports()[typeName.PackageReference]; ok { + packageName, err := codeGenerationContext.GetImportedPackageName(&typeName.PackageReference) + if err == nil { return &ast.SelectorExpr{ - X: ast.NewIdent(imp.PackageName()), + X: ast.NewIdent(packageName), Sel: ast.NewIdent(typeName.Name()), } } diff --git a/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_field_if_other_fields_present.golden b/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_field_if_other_fields_present.golden index 462bba612d5..1dd56812070 100644 --- a/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_field_if_other_fields_present.golden +++ b/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_field_if_other_fields_present.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json type Test struct { Tags *TestTags `json:"tags"` diff --git a/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_map[string]interface{}_if_unset_and_no_other_fields_present.golden b/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_map[string]interface{}_if_unset_and_no_other_fields_present.golden index f7f416b6299..08ddcb6ceed 100644 --- a/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_map[string]interface{}_if_unset_and_no_other_fields_present.golden +++ b/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_map[string]interface{}_if_unset_and_no_other_fields_present.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json type Test struct { Tags *map[string]interface{} `json:"tags"` diff --git a/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_map_type_if_no_other_fields_present.golden b/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_map_type_if_no_other_fields_present.golden index 18c70ec4ec4..84ea7fdc9aa 100644 --- a/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_map_type_if_no_other_fields_present.golden +++ b/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_map_type_if_no_other_fields_present.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json type Test struct { Tags *map[string]float64 `json:"tags"` diff --git a/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_nothing_if_set_to_'false'.golden b/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_nothing_if_set_to_'false'.golden index 0de16296cd3..a3e7fa2a485 100644 --- a/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_nothing_if_set_to_'false'.golden +++ b/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_nothing_if_set_to_'false'.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json type Test struct { Tags *TestTags `json:"tags"` diff --git a/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_nothing_if_unset_and_other_fields_present.golden b/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_nothing_if_unset_and_other_fields_present.golden index d52a07be109..f748409e27b 100644 --- a/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_nothing_if_unset_and_other_fields_present.golden +++ b/hack/generator/pkg/jsonast/testdata/AdditionalProperties/Generates_nothing_if_unset_and_other_fields_present.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json type Test struct { Tags *TestTags `json:"tags"` diff --git a/hack/generator/pkg/jsonast/testdata/AllOf/AllOf_collapses_duplicate_named_types.golden b/hack/generator/pkg/jsonast/testdata/AllOf/AllOf_collapses_duplicate_named_types.golden index 1ba1c17b14c..c6a7ee1c902 100644 --- a/hack/generator/pkg/jsonast/testdata/AllOf/AllOf_collapses_duplicate_named_types.golden +++ b/hack/generator/pkg/jsonast/testdata/AllOf/AllOf_collapses_duplicate_named_types.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json#/definitions/Foo type Foo struct { Name *string `json:"name"` diff --git a/hack/generator/pkg/jsonast/testdata/AllOf/AllOf_collapses_duplicate_unnamed_types.golden b/hack/generator/pkg/jsonast/testdata/AllOf/AllOf_collapses_duplicate_unnamed_types.golden index 66316251853..02174aef54d 100644 --- a/hack/generator/pkg/jsonast/testdata/AllOf/AllOf_collapses_duplicate_unnamed_types.golden +++ b/hack/generator/pkg/jsonast/testdata/AllOf/AllOf_collapses_duplicate_unnamed_types.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json type Test struct { Name *string `json:"name"` diff --git a/hack/generator/pkg/jsonast/testdata/AllOf/AllOf_generates_wrapper_type.golden b/hack/generator/pkg/jsonast/testdata/AllOf/AllOf_generates_wrapper_type.golden index d5afcbc32e0..a25c5b4277c 100644 --- a/hack/generator/pkg/jsonast/testdata/AllOf/AllOf_generates_wrapper_type.golden +++ b/hack/generator/pkg/jsonast/testdata/AllOf/AllOf_generates_wrapper_type.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json#/definitions/Bar type Bar struct { diff --git a/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_collapses_duplicate_named_types.golden b/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_collapses_duplicate_named_types.golden index 1ba1c17b14c..c6a7ee1c902 100644 --- a/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_collapses_duplicate_named_types.golden +++ b/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_collapses_duplicate_named_types.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json#/definitions/Foo type Foo struct { Name *string `json:"name"` diff --git a/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_collapses_duplicate_unnamed_types.golden b/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_collapses_duplicate_unnamed_types.golden index 66316251853..02174aef54d 100644 --- a/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_collapses_duplicate_unnamed_types.golden +++ b/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_collapses_duplicate_unnamed_types.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json type Test struct { Name *string `json:"name"` diff --git a/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_generates_wrapper_for_inner_properties.golden b/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_generates_wrapper_for_inner_properties.golden index 9b3a30ff67d..ced3bfe15d7 100644 --- a/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_generates_wrapper_for_inner_properties.golden +++ b/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_generates_wrapper_for_inner_properties.golden @@ -3,10 +3,7 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import ( - "encoding/json" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) +import "encoding/json" //Generated from: https://test.test/schemas/2020-01-01/test.json#/definitions/Bar type Bar struct { diff --git a/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_generates_wrapper_type_with_marshal_helper.golden b/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_generates_wrapper_type_with_marshal_helper.golden index ebd1e35ed58..0cf59ea7463 100644 --- a/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_generates_wrapper_type_with_marshal_helper.golden +++ b/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_generates_wrapper_type_with_marshal_helper.golden @@ -3,10 +3,7 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import ( - "encoding/json" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) +import "encoding/json" //Generated from: https://test.test/schemas/2020-01-01/test.json#/definitions/Bar type Bar struct { diff --git a/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_generates_wrapper_type_with_named_properties_from_anonymous_types.golden b/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_generates_wrapper_type_with_named_properties_from_anonymous_types.golden index e220643b29a..e3703c4e292 100644 --- a/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_generates_wrapper_type_with_named_properties_from_anonymous_types.golden +++ b/hack/generator/pkg/jsonast/testdata/OneOf/OneOf_generates_wrapper_type_with_named_properties_from_anonymous_types.golden @@ -3,10 +3,7 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import ( - "encoding/json" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) +import "encoding/json" //Generated from: https://test.test/schemas/2020-01-01/test.json#/definitions/Foo type Foo int diff --git a/hack/generator/pkg/jsonast/testdata/UnreferencedDefinitions/unreferenced_definitions_are_not_generated.golden b/hack/generator/pkg/jsonast/testdata/UnreferencedDefinitions/unreferenced_definitions_are_not_generated.golden index 66316251853..02174aef54d 100644 --- a/hack/generator/pkg/jsonast/testdata/UnreferencedDefinitions/unreferenced_definitions_are_not_generated.golden +++ b/hack/generator/pkg/jsonast/testdata/UnreferencedDefinitions/unreferenced_definitions_are_not_generated.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json type Test struct { Name *string `json:"name"` diff --git a/hack/generator/pkg/jsonast/testdata/Validations/Enums_have_required_validation.golden b/hack/generator/pkg/jsonast/testdata/Validations/Enums_have_required_validation.golden index 7ff74635526..205f5512ee0 100644 --- a/hack/generator/pkg/jsonast/testdata/Validations/Enums_have_required_validation.golden +++ b/hack/generator/pkg/jsonast/testdata/Validations/Enums_have_required_validation.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json type Test struct { diff --git a/hack/generator/pkg/jsonast/testdata/Validations/Optional_properties_are_pointers.golden b/hack/generator/pkg/jsonast/testdata/Validations/Optional_properties_are_pointers.golden index 8cef7615a6f..c0c1651c9d5 100644 --- a/hack/generator/pkg/jsonast/testdata/Validations/Optional_properties_are_pointers.golden +++ b/hack/generator/pkg/jsonast/testdata/Validations/Optional_properties_are_pointers.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json type Test struct { NotRequired *string `json:"notRequired"` diff --git a/hack/generator/pkg/jsonast/testdata/Validations/Optional_unknown_type_is_generated_as_interface.golden b/hack/generator/pkg/jsonast/testdata/Validations/Optional_unknown_type_is_generated_as_interface.golden index d36ef4d0a70..5d178c307f0 100644 --- a/hack/generator/pkg/jsonast/testdata/Validations/Optional_unknown_type_is_generated_as_interface.golden +++ b/hack/generator/pkg/jsonast/testdata/Validations/Optional_unknown_type_is_generated_as_interface.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json type Test struct { Foo interface{} `json:"foo"` diff --git a/hack/generator/pkg/jsonast/testdata/Validations/Required_properties_have_appropriate_comment.golden b/hack/generator/pkg/jsonast/testdata/Validations/Required_properties_have_appropriate_comment.golden index 866f86a6b44..75cf7e3be1f 100644 --- a/hack/generator/pkg/jsonast/testdata/Validations/Required_properties_have_appropriate_comment.golden +++ b/hack/generator/pkg/jsonast/testdata/Validations/Required_properties_have_appropriate_comment.golden @@ -3,8 +3,6 @@ // Code generated by k8s-infra-gen. DO NOT EDIT. package v20200101 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - //Generated from: https://test.test/schemas/2020-01-01/test.json type Test struct {