Repository: ogen-go/ogen
Pull request #195 (2022-02-15 17:05:06)

fix(gen): sum variant field name generation


Patch:
diff --git a/examples/ex_github/oas_json_gen.go b/examples/ex_github/oas_json_gen.go
index e347914a..11a0e21e 100644
--- a/examples/ex_github/oas_json_gen.go
+++ b/examples/ex_github/oas_json_gen.go
@@ -36196,17 +36196,17 @@ func (s EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue)
 		e.Str(s.String)
 	case EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue1EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue:
 		s.EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue1.Encode(e)
-	case ArrayAnyEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue:
+	case AnyArrayEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue:
 		e.ArrStart()
-		if len(s.ArrayAny) >= 1 {
+		if len(s.AnyArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayAny[0]
+				elem := s.AnyArray[0]
 				if len(elem) != 0 {
 					e.Raw(elem)
 				}
 			}
-			for _, elem := range s.ArrayAny[1:] {
+			for _, elem := range s.AnyArray[1:] {
 				e.Comma()
 				if len(elem) != 0 {
 					e.Raw(elem)
@@ -36237,7 +36237,7 @@ func (s *EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue)
 		}
 		s.Type = EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue1EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue
 	case jx.Array:
-		s.ArrayAny = make([]jx.Raw, 0)
+		s.AnyArray = make([]jx.Raw, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem jx.Raw
 			v, err := d.RawAppend(nil)
@@ -36245,12 +36245,12 @@ func (s *EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue)
 			if err != nil {
 				return err
 			}
-			s.ArrayAny = append(s.ArrayAny, elem)
+			s.AnyArray = append(s.AnyArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayAnyEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue
+		s.Type = AnyArrayEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
@@ -129946,15 +129946,15 @@ func (s ReposAddAppAccessRestrictionsReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case ReposAddAppAccessRestrictionsReq0ReposAddAppAccessRestrictionsReq:
 		s.ReposAddAppAccessRestrictionsReq0.Encode(e)
-	case ArrayStringReposAddAppAccessRestrictionsReq:
+	case StringArrayReposAddAppAccessRestrictionsReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -129976,7 +129976,7 @@ func (s *ReposAddAppAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = ReposAddAppAccessRestrictionsReq0ReposAddAppAccessRestrictionsReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -129984,12 +129984,12 @@ func (s *ReposAddAppAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringReposAddAppAccessRestrictionsReq
+		s.Type = StringArrayReposAddAppAccessRestrictionsReq
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
@@ -130314,15 +130314,15 @@ func (s ReposAddStatusCheckContextsReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case ReposAddStatusCheckContextsReq0ReposAddStatusCheckContextsReq:
 		s.ReposAddStatusCheckContextsReq0.Encode(e)
-	case ArrayStringReposAddStatusCheckContextsReq:
+	case StringArrayReposAddStatusCheckContextsReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -130344,7 +130344,7 @@ func (s *ReposAddStatusCheckContextsReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = ReposAddStatusCheckContextsReq0ReposAddStatusCheckContextsReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -130352,12 +130352,12 @@ func (s *ReposAddStatusCheckContextsReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringReposAddStatusCheckContextsReq
+		s.Type = StringArrayReposAddStatusCheckContextsReq
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
@@ -130520,15 +130520,15 @@ func (s ReposAddTeamAccessRestrictionsReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case ReposAddTeamAccessRestrictionsReq0ReposAddTeamAccessRestrictionsReq:
 		s.ReposAddTeamAccessRestrictionsReq0.Encode(e)
-	case ArrayStringReposAddTeamAccessRestrictionsReq:
+	case StringArrayReposAddTeamAccessRestrictionsReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -130550,7 +130550,7 @@ func (s *ReposAddTeamAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = ReposAddTeamAccessRestrictionsReq0ReposAddTeamAccessRestrictionsReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -130558,12 +130558,12 @@ func (s *ReposAddTeamAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringReposAddTeamAccessRestrictionsReq
+		s.Type = StringArrayReposAddTeamAccessRestrictionsReq
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
@@ -130726,15 +130726,15 @@ func (s ReposAddUserAccessRestrictionsReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case ReposAddUserAccessRestrictionsReq0ReposAddUserAccessRestrictionsReq:
 		s.ReposAddUserAccessRestrictionsReq0.Encode(e)
-	case ArrayStringReposAddUserAccessRestrictionsReq:
+	case StringArrayReposAddUserAccessRestrictionsReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -130756,7 +130756,7 @@ func (s *ReposAddUserAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = ReposAddUserAccessRestrictionsReq0ReposAddUserAccessRestrictionsReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -130764,12 +130764,12 @@ func (s *ReposAddUserAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringReposAddUserAccessRestrictionsReq
+		s.Type = StringArrayReposAddUserAccessRestrictionsReq
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
@@ -137338,15 +137338,15 @@ func (s ReposRemoveAppAccessRestrictionsReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case ReposRemoveAppAccessRestrictionsReq0ReposRemoveAppAccessRestrictionsReq:
 		s.ReposRemoveAppAccessRestrictionsReq0.Encode(e)
-	case ArrayStringReposRemoveAppAccessRestrictionsReq:
+	case StringArrayReposRemoveAppAccessRestrictionsReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -137368,7 +137368,7 @@ func (s *ReposRemoveAppAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = ReposRemoveAppAccessRestrictionsReq0ReposRemoveAppAccessRestrictionsReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -137376,12 +137376,12 @@ func (s *ReposRemoveAppAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringReposRemoveAppAccessRestrictionsReq
+		s.Type = StringArrayReposRemoveAppAccessRestrictionsReq
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
@@ -137546,15 +137546,15 @@ func (s ReposRemoveStatusCheckContextsReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case ReposRemoveStatusCheckContextsReq0ReposRemoveStatusCheckContextsReq:
 		s.ReposRemoveStatusCheckContextsReq0.Encode(e)
-	case ArrayStringReposRemoveStatusCheckContextsReq:
+	case StringArrayReposRemoveStatusCheckContextsReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -137576,7 +137576,7 @@ func (s *ReposRemoveStatusCheckContextsReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = ReposRemoveStatusCheckContextsReq0ReposRemoveStatusCheckContextsReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -137584,12 +137584,12 @@ func (s *ReposRemoveStatusCheckContextsReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringReposRemoveStatusCheckContextsReq
+		s.Type = StringArrayReposRemoveStatusCheckContextsReq
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
@@ -137752,15 +137752,15 @@ func (s ReposRemoveTeamAccessRestrictionsReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case ReposRemoveTeamAccessRestrictionsReq0ReposRemoveTeamAccessRestrictionsReq:
 		s.ReposRemoveTeamAccessRestrictionsReq0.Encode(e)
-	case ArrayStringReposRemoveTeamAccessRestrictionsReq:
+	case StringArrayReposRemoveTeamAccessRestrictionsReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -137782,7 +137782,7 @@ func (s *ReposRemoveTeamAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = ReposRemoveTeamAccessRestrictionsReq0ReposRemoveTeamAccessRestrictionsReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -137790,12 +137790,12 @@ func (s *ReposRemoveTeamAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringReposRemoveTeamAccessRestrictionsReq
+		s.Type = StringArrayReposRemoveTeamAccessRestrictionsReq
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
@@ -137958,15 +137958,15 @@ func (s ReposRemoveUserAccessRestrictionsReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case ReposRemoveUserAccessRestrictionsReq0ReposRemoveUserAccessRestrictionsReq:
 		s.ReposRemoveUserAccessRestrictionsReq0.Encode(e)
-	case ArrayStringReposRemoveUserAccessRestrictionsReq:
+	case StringArrayReposRemoveUserAccessRestrictionsReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -137988,7 +137988,7 @@ func (s *ReposRemoveUserAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = ReposRemoveUserAccessRestrictionsReq0ReposRemoveUserAccessRestrictionsReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -137996,12 +137996,12 @@ func (s *ReposRemoveUserAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringReposRemoveUserAccessRestrictionsReq
+		s.Type = StringArrayReposRemoveUserAccessRestrictionsReq
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
@@ -138406,15 +138406,15 @@ func (s ReposSetAppAccessRestrictionsReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case ReposSetAppAccessRestrictionsReq0ReposSetAppAccessRestrictionsReq:
 		s.ReposSetAppAccessRestrictionsReq0.Encode(e)
-	case ArrayStringReposSetAppAccessRestrictionsReq:
+	case StringArrayReposSetAppAccessRestrictionsReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -138436,7 +138436,7 @@ func (s *ReposSetAppAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = ReposSetAppAccessRestrictionsReq0ReposSetAppAccessRestrictionsReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -138444,12 +138444,12 @@ func (s *ReposSetAppAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringReposSetAppAccessRestrictionsReq
+		s.Type = StringArrayReposSetAppAccessRestrictionsReq
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
@@ -138614,15 +138614,15 @@ func (s ReposSetStatusCheckContextsReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case ReposSetStatusCheckContextsReq0ReposSetStatusCheckContextsReq:
 		s.ReposSetStatusCheckContextsReq0.Encode(e)
-	case ArrayStringReposSetStatusCheckContextsReq:
+	case StringArrayReposSetStatusCheckContextsReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -138644,7 +138644,7 @@ func (s *ReposSetStatusCheckContextsReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = ReposSetStatusCheckContextsReq0ReposSetStatusCheckContextsReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -138652,12 +138652,12 @@ func (s *ReposSetStatusCheckContextsReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringReposSetStatusCheckContextsReq
+		s.Type = StringArrayReposSetStatusCheckContextsReq
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
@@ -138820,15 +138820,15 @@ func (s ReposSetTeamAccessRestrictionsReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case ReposSetTeamAccessRestrictionsReq0ReposSetTeamAccessRestrictionsReq:
 		s.ReposSetTeamAccessRestrictionsReq0.Encode(e)
-	case ArrayStringReposSetTeamAccessRestrictionsReq:
+	case StringArrayReposSetTeamAccessRestrictionsReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -138850,7 +138850,7 @@ func (s *ReposSetTeamAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = ReposSetTeamAccessRestrictionsReq0ReposSetTeamAccessRestrictionsReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -138858,12 +138858,12 @@ func (s *ReposSetTeamAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringReposSetTeamAccessRestrictionsReq
+		s.Type = StringArrayReposSetTeamAccessRestrictionsReq
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
@@ -139026,15 +139026,15 @@ func (s ReposSetUserAccessRestrictionsReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case ReposSetUserAccessRestrictionsReq0ReposSetUserAccessRestrictionsReq:
 		s.ReposSetUserAccessRestrictionsReq0.Encode(e)
-	case ArrayStringReposSetUserAccessRestrictionsReq:
+	case StringArrayReposSetUserAccessRestrictionsReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -139056,7 +139056,7 @@ func (s *ReposSetUserAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = ReposSetUserAccessRestrictionsReq0ReposSetUserAccessRestrictionsReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -139064,12 +139064,12 @@ func (s *ReposSetUserAccessRestrictionsReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringReposSetUserAccessRestrictionsReq
+		s.Type = StringArrayReposSetUserAccessRestrictionsReq
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
@@ -166611,15 +166611,15 @@ func (s UsersAddEmailForAuthenticatedReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case UsersAddEmailForAuthenticatedReq0UsersAddEmailForAuthenticatedReq:
 		s.UsersAddEmailForAuthenticatedReq0.Encode(e)
-	case ArrayStringUsersAddEmailForAuthenticatedReq:
+	case StringArrayUsersAddEmailForAuthenticatedReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -166643,7 +166643,7 @@ func (s *UsersAddEmailForAuthenticatedReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = UsersAddEmailForAuthenticatedReq0UsersAddEmailForAuthenticatedReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -166651,12 +166651,12 @@ func (s *UsersAddEmailForAuthenticatedReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringUsersAddEmailForAuthenticatedReq
+		s.Type = StringArrayUsersAddEmailForAuthenticatedReq
 	case jx.String:
 		v, err := d.Str()
 		s.String = string(v)
@@ -167411,15 +167411,15 @@ func (s UsersDeleteEmailForAuthenticatedReq) Encode(e *jx.Writer) {
 	switch s.Type {
 	case UsersDeleteEmailForAuthenticatedReq0UsersDeleteEmailForAuthenticatedReq:
 		s.UsersDeleteEmailForAuthenticatedReq0.Encode(e)
-	case ArrayStringUsersDeleteEmailForAuthenticatedReq:
+	case StringArrayUsersDeleteEmailForAuthenticatedReq:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -167443,7 +167443,7 @@ func (s *UsersDeleteEmailForAuthenticatedReq) Decode(d *jx.Decoder) error {
 		}
 		s.Type = UsersDeleteEmailForAuthenticatedReq0UsersDeleteEmailForAuthenticatedReq
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -167451,12 +167451,12 @@ func (s *UsersDeleteEmailForAuthenticatedReq) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringUsersDeleteEmailForAuthenticatedReq
+		s.Type = StringArrayUsersDeleteEmailForAuthenticatedReq
 	case jx.String:
 		v, err := d.Str()
 		s.String = string(v)
@@ -169921,15 +169921,15 @@ func (s ValidationErrorErrorsItemValue) Encode(e *jx.Writer) {
 		e.Str(s.String)
 	case IntValidationErrorErrorsItemValue:
 		e.Int(s.Int)
-	case ArrayStringValidationErrorErrorsItemValue:
+	case StringArrayValidationErrorErrorsItemValue:
 		e.ArrStart()
-		if len(s.ArrayString) >= 1 {
+		if len(s.StringArray) >= 1 {
 			// Encode first element without comma.
 			{
-				elem := s.ArrayString[0]
+				elem := s.StringArray[0]
 				e.Str(elem)
 			}
-			for _, elem := range s.ArrayString[1:] {
+			for _, elem := range s.StringArray[1:] {
 				e.Comma()
 				e.Str(elem)
 			}
@@ -169960,7 +169960,7 @@ func (s *ValidationErrorErrorsItemValue) Decode(d *jx.Decoder) error {
 		}
 		s.Type = IntValidationErrorErrorsItemValue
 	case jx.Array:
-		s.ArrayString = make([]string, 0)
+		s.StringArray = make([]string, 0)
 		if err := d.Arr(func(d *jx.Decoder) error {
 			var elem string
 			v, err := d.Str()
@@ -169968,12 +169968,12 @@ func (s *ValidationErrorErrorsItemValue) Decode(d *jx.Decoder) error {
 			if err != nil {
 				return err
 			}
-			s.ArrayString = append(s.ArrayString, elem)
+			s.StringArray = append(s.StringArray, elem)
 			return nil
 		}); err != nil {
 			return err
 		}
-		s.Type = ArrayStringValidationErrorErrorsItemValue
+		s.Type = StringArrayValidationErrorErrorsItemValue
 	default:
 		return errors.Errorf("unexpected json type %q", t)
 	}
diff --git a/examples/ex_github/oas_schemas_gen.go b/examples/ex_github/oas_schemas_gen.go
index 3ffa7a0c..9d6cbc3d 100644
--- a/examples/ex_github/oas_schemas_gen.go
+++ b/examples/ex_github/oas_schemas_gen.go
@@ -3664,7 +3664,7 @@ type EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue stru
 	Type                                                                    EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValueType // switch on this field
 	String                                                                  string
 	EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue1 EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue1
-	ArrayAny                                                                []jx.Raw
+	AnyArray                                                                []jx.Raw
 }
 
 // EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValueType is oneOf type of EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue.
@@ -3674,7 +3674,7 @@ type EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValueType
 const (
 	StringEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue                                                                  EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValueType = "string"
 	EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue1EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValueType = "EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue1"
-	ArrayAnyEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue                                                                EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValueType = "[]jx.Raw"
+	AnyArrayEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue                                                                EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValueType = "[]jx.Raw"
 )
 
 // IsString reports whether EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue is string.
@@ -3687,9 +3687,9 @@ func (s EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue)
 	return s.Type == EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue1EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue
 }
 
-// IsArrayAny reports whether EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue is []jx.Raw.
-func (s EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue) IsArrayAny() bool {
-	return s.Type == ArrayAnyEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue
+// IsAnyArray reports whether EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue is []jx.Raw.
+func (s EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue) IsAnyArray() bool {
+	return s.Type == AnyArrayEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue
 }
 
 // SetString sets EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue to string.
@@ -3734,24 +3734,24 @@ func NewEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue1E
 	return s
 }
 
-// SetArrayAny sets EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue to []jx.Raw.
-func (s *EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue) SetArrayAny(v []jx.Raw) {
-	s.Type = ArrayAnyEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue
-	s.ArrayAny = v
+// SetAnyArray sets EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue to []jx.Raw.
+func (s *EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue) SetAnyArray(v []jx.Raw) {
+	s.Type = AnyArrayEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue
+	s.AnyArray = v
 }
 
-// GetArrayAny returns []jx.Raw and true boolean if EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue is []jx.Raw.
-func (s EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue) GetArrayAny() (v []jx.Raw, ok bool) {
-	if !s.IsArrayAny() {
+// GetAnyArray returns []jx.Raw and true boolean if EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue is []jx.Raw.
+func (s EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue) GetAnyArray() (v []jx.Raw, ok bool) {
+	if !s.IsAnyArray() {
 		return v, false
 	}
-	return s.ArrayAny, true
+	return s.AnyArray, true
 }
 
-// NewArrayAnyEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue returns new EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue from []jx.Raw.
-func NewArrayAnyEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue(v []jx.Raw) EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue {
+// NewAnyArrayEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue returns new EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue from []jx.Raw.
+func NewAnyArrayEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue(v []jx.Raw) EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue {
 	var s EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue
-	s.SetArrayAny(v)
+	s.SetAnyArray(v)
 	return s
 }
 
@@ -33729,7 +33729,7 @@ func (ReposAddAppAccessRestrictionsOKApplicationJSON) reposAddAppAccessRestricti
 type ReposAddAppAccessRestrictionsReq struct {
 	Type                              ReposAddAppAccessRestrictionsReqType // switch on this field
 	ReposAddAppAccessRestrictionsReq0 ReposAddAppAccessRestrictionsReq0
-	ArrayString                       []string
+	StringArray                       []string
 }
 
 // ReposAddAppAccessRestrictionsReqType is oneOf type of ReposAddAppAccessRestrictionsReq.
@@ -33738,7 +33738,7 @@ type ReposAddAppAccessRestrictionsReqType string
 // Possible values for ReposAddAppAccessRestrictionsReqType.
 const (
 	ReposAddAppAccessRestrictionsReq0ReposAddAppAccessRestrictionsReq ReposAddAppAccessRestrictionsReqType = "ReposAddAppAccessRestrictionsReq0"
-	ArrayStringReposAddAppAccessRestrictionsReq                       ReposAddAppAccessRestrictionsReqType = "[]string"
+	StringArrayReposAddAppAccessRestrictionsReq                       ReposAddAppAccessRestrictionsReqType = "[]string"
 )
 
 // IsReposAddAppAccessRestrictionsReq0 reports whether ReposAddAppAccessRestrictionsReq is ReposAddAppAccessRestrictionsReq0.
@@ -33746,9 +33746,9 @@ func (s ReposAddAppAccessRestrictionsReq) IsReposAddAppAccessRestrictionsReq0()
 	return s.Type == ReposAddAppAccessRestrictionsReq0ReposAddAppAccessRestrictionsReq
 }
 
-// IsArrayString reports whether ReposAddAppAccessRestrictionsReq is []string.
-func (s ReposAddAppAccessRestrictionsReq) IsArrayString() bool {
-	return s.Type == ArrayStringReposAddAppAccessRestrictionsReq
+// IsStringArray reports whether ReposAddAppAccessRestrictionsReq is []string.
+func (s ReposAddAppAccessRestrictionsReq) IsStringArray() bool {
+	return s.Type == StringArrayReposAddAppAccessRestrictionsReq
 }
 
 // SetReposAddAppAccessRestrictionsReq0 sets ReposAddAppAccessRestrictionsReq to ReposAddAppAccessRestrictionsReq0.
@@ -33772,24 +33772,24 @@ func NewReposAddAppAccessRestrictionsReq0ReposAddAppAccessRestrictionsReq(v Repo
 	return s
 }
 
-// SetArrayString sets ReposAddAppAccessRestrictionsReq to []string.
-func (s *ReposAddAppAccessRestrictionsReq) SetArrayString(v []string) {
-	s.Type = ArrayStringReposAddAppAccessRestrictionsReq
-	s.ArrayString = v
+// SetStringArray sets ReposAddAppAccessRestrictionsReq to []string.
+func (s *ReposAddAppAccessRestrictionsReq) SetStringArray(v []string) {
+	s.Type = StringArrayReposAddAppAccessRestrictionsReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if ReposAddAppAccessRestrictionsReq is []string.
-func (s ReposAddAppAccessRestrictionsReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if ReposAddAppAccessRestrictionsReq is []string.
+func (s ReposAddAppAccessRestrictionsReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringReposAddAppAccessRestrictionsReq returns new ReposAddAppAccessRestrictionsReq from []string.
-func NewArrayStringReposAddAppAccessRestrictionsReq(v []string) ReposAddAppAccessRestrictionsReq {
+// NewStringArrayReposAddAppAccessRestrictionsReq returns new ReposAddAppAccessRestrictionsReq from []string.
+func NewStringArrayReposAddAppAccessRestrictionsReq(v []string) ReposAddAppAccessRestrictionsReq {
 	var s ReposAddAppAccessRestrictionsReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -33856,7 +33856,7 @@ func (ReposAddStatusCheckContextsOKApplicationJSON) reposAddStatusCheckContextsR
 type ReposAddStatusCheckContextsReq struct {
 	Type                            ReposAddStatusCheckContextsReqType // switch on this field
 	ReposAddStatusCheckContextsReq0 ReposAddStatusCheckContextsReq0
-	ArrayString                     []string
+	StringArray                     []string
 }
 
 // ReposAddStatusCheckContextsReqType is oneOf type of ReposAddStatusCheckContextsReq.
@@ -33865,7 +33865,7 @@ type ReposAddStatusCheckContextsReqType string
 // Possible values for ReposAddStatusCheckContextsReqType.
 const (
 	ReposAddStatusCheckContextsReq0ReposAddStatusCheckContextsReq ReposAddStatusCheckContextsReqType = "ReposAddStatusCheckContextsReq0"
-	ArrayStringReposAddStatusCheckContextsReq                     ReposAddStatusCheckContextsReqType = "[]string"
+	StringArrayReposAddStatusCheckContextsReq                     ReposAddStatusCheckContextsReqType = "[]string"
 )
 
 // IsReposAddStatusCheckContextsReq0 reports whether ReposAddStatusCheckContextsReq is ReposAddStatusCheckContextsReq0.
@@ -33873,9 +33873,9 @@ func (s ReposAddStatusCheckContextsReq) IsReposAddStatusCheckContextsReq0() bool
 	return s.Type == ReposAddStatusCheckContextsReq0ReposAddStatusCheckContextsReq
 }
 
-// IsArrayString reports whether ReposAddStatusCheckContextsReq is []string.
-func (s ReposAddStatusCheckContextsReq) IsArrayString() bool {
-	return s.Type == ArrayStringReposAddStatusCheckContextsReq
+// IsStringArray reports whether ReposAddStatusCheckContextsReq is []string.
+func (s ReposAddStatusCheckContextsReq) IsStringArray() bool {
+	return s.Type == StringArrayReposAddStatusCheckContextsReq
 }
 
 // SetReposAddStatusCheckContextsReq0 sets ReposAddStatusCheckContextsReq to ReposAddStatusCheckContextsReq0.
@@ -33899,24 +33899,24 @@ func NewReposAddStatusCheckContextsReq0ReposAddStatusCheckContextsReq(v ReposAdd
 	return s
 }
 
-// SetArrayString sets ReposAddStatusCheckContextsReq to []string.
-func (s *ReposAddStatusCheckContextsReq) SetArrayString(v []string) {
-	s.Type = ArrayStringReposAddStatusCheckContextsReq
-	s.ArrayString = v
+// SetStringArray sets ReposAddStatusCheckContextsReq to []string.
+func (s *ReposAddStatusCheckContextsReq) SetStringArray(v []string) {
+	s.Type = StringArrayReposAddStatusCheckContextsReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if ReposAddStatusCheckContextsReq is []string.
-func (s ReposAddStatusCheckContextsReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if ReposAddStatusCheckContextsReq is []string.
+func (s ReposAddStatusCheckContextsReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringReposAddStatusCheckContextsReq returns new ReposAddStatusCheckContextsReq from []string.
-func NewArrayStringReposAddStatusCheckContextsReq(v []string) ReposAddStatusCheckContextsReq {
+// NewStringArrayReposAddStatusCheckContextsReq returns new ReposAddStatusCheckContextsReq from []string.
+func NewStringArrayReposAddStatusCheckContextsReq(v []string) ReposAddStatusCheckContextsReq {
 	var s ReposAddStatusCheckContextsReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -33933,7 +33933,7 @@ func (ReposAddTeamAccessRestrictionsOKApplicationJSON) reposAddTeamAccessRestric
 type ReposAddTeamAccessRestrictionsReq struct {
 	Type                               ReposAddTeamAccessRestrictionsReqType // switch on this field
 	ReposAddTeamAccessRestrictionsReq0 ReposAddTeamAccessRestrictionsReq0
-	ArrayString                        []string
+	StringArray                        []string
 }
 
 // ReposAddTeamAccessRestrictionsReqType is oneOf type of ReposAddTeamAccessRestrictionsReq.
@@ -33942,7 +33942,7 @@ type ReposAddTeamAccessRestrictionsReqType string
 // Possible values for ReposAddTeamAccessRestrictionsReqType.
 const (
 	ReposAddTeamAccessRestrictionsReq0ReposAddTeamAccessRestrictionsReq ReposAddTeamAccessRestrictionsReqType = "ReposAddTeamAccessRestrictionsReq0"
-	ArrayStringReposAddTeamAccessRestrictionsReq                        ReposAddTeamAccessRestrictionsReqType = "[]string"
+	StringArrayReposAddTeamAccessRestrictionsReq                        ReposAddTeamAccessRestrictionsReqType = "[]string"
 )
 
 // IsReposAddTeamAccessRestrictionsReq0 reports whether ReposAddTeamAccessRestrictionsReq is ReposAddTeamAccessRestrictionsReq0.
@@ -33950,9 +33950,9 @@ func (s ReposAddTeamAccessRestrictionsReq) IsReposAddTeamAccessRestrictionsReq0(
 	return s.Type == ReposAddTeamAccessRestrictionsReq0ReposAddTeamAccessRestrictionsReq
 }
 
-// IsArrayString reports whether ReposAddTeamAccessRestrictionsReq is []string.
-func (s ReposAddTeamAccessRestrictionsReq) IsArrayString() bool {
-	return s.Type == ArrayStringReposAddTeamAccessRestrictionsReq
+// IsStringArray reports whether ReposAddTeamAccessRestrictionsReq is []string.
+func (s ReposAddTeamAccessRestrictionsReq) IsStringArray() bool {
+	return s.Type == StringArrayReposAddTeamAccessRestrictionsReq
 }
 
 // SetReposAddTeamAccessRestrictionsReq0 sets ReposAddTeamAccessRestrictionsReq to ReposAddTeamAccessRestrictionsReq0.
@@ -33976,24 +33976,24 @@ func NewReposAddTeamAccessRestrictionsReq0ReposAddTeamAccessRestrictionsReq(v Re
 	return s
 }
 
-// SetArrayString sets ReposAddTeamAccessRestrictionsReq to []string.
-func (s *ReposAddTeamAccessRestrictionsReq) SetArrayString(v []string) {
-	s.Type = ArrayStringReposAddTeamAccessRestrictionsReq
-	s.ArrayString = v
+// SetStringArray sets ReposAddTeamAccessRestrictionsReq to []string.
+func (s *ReposAddTeamAccessRestrictionsReq) SetStringArray(v []string) {
+	s.Type = StringArrayReposAddTeamAccessRestrictionsReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if ReposAddTeamAccessRestrictionsReq is []string.
-func (s ReposAddTeamAccessRestrictionsReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if ReposAddTeamAccessRestrictionsReq is []string.
+func (s ReposAddTeamAccessRestrictionsReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringReposAddTeamAccessRestrictionsReq returns new ReposAddTeamAccessRestrictionsReq from []string.
-func NewArrayStringReposAddTeamAccessRestrictionsReq(v []string) ReposAddTeamAccessRestrictionsReq {
+// NewStringArrayReposAddTeamAccessRestrictionsReq returns new ReposAddTeamAccessRestrictionsReq from []string.
+func NewStringArrayReposAddTeamAccessRestrictionsReq(v []string) ReposAddTeamAccessRestrictionsReq {
 	var s ReposAddTeamAccessRestrictionsReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -34010,7 +34010,7 @@ func (ReposAddUserAccessRestrictionsOKApplicationJSON) reposAddUserAccessRestric
 type ReposAddUserAccessRestrictionsReq struct {
 	Type                               ReposAddUserAccessRestrictionsReqType // switch on this field
 	ReposAddUserAccessRestrictionsReq0 ReposAddUserAccessRestrictionsReq0
-	ArrayString                        []string
+	StringArray                        []string
 }
 
 // ReposAddUserAccessRestrictionsReqType is oneOf type of ReposAddUserAccessRestrictionsReq.
@@ -34019,7 +34019,7 @@ type ReposAddUserAccessRestrictionsReqType string
 // Possible values for ReposAddUserAccessRestrictionsReqType.
 const (
 	ReposAddUserAccessRestrictionsReq0ReposAddUserAccessRestrictionsReq ReposAddUserAccessRestrictionsReqType = "ReposAddUserAccessRestrictionsReq0"
-	ArrayStringReposAddUserAccessRestrictionsReq                        ReposAddUserAccessRestrictionsReqType = "[]string"
+	StringArrayReposAddUserAccessRestrictionsReq                        ReposAddUserAccessRestrictionsReqType = "[]string"
 )
 
 // IsReposAddUserAccessRestrictionsReq0 reports whether ReposAddUserAccessRestrictionsReq is ReposAddUserAccessRestrictionsReq0.
@@ -34027,9 +34027,9 @@ func (s ReposAddUserAccessRestrictionsReq) IsReposAddUserAccessRestrictionsReq0(
 	return s.Type == ReposAddUserAccessRestrictionsReq0ReposAddUserAccessRestrictionsReq
 }
 
-// IsArrayString reports whether ReposAddUserAccessRestrictionsReq is []string.
-func (s ReposAddUserAccessRestrictionsReq) IsArrayString() bool {
-	return s.Type == ArrayStringReposAddUserAccessRestrictionsReq
+// IsStringArray reports whether ReposAddUserAccessRestrictionsReq is []string.
+func (s ReposAddUserAccessRestrictionsReq) IsStringArray() bool {
+	return s.Type == StringArrayReposAddUserAccessRestrictionsReq
 }
 
 // SetReposAddUserAccessRestrictionsReq0 sets ReposAddUserAccessRestrictionsReq to ReposAddUserAccessRestrictionsReq0.
@@ -34053,24 +34053,24 @@ func NewReposAddUserAccessRestrictionsReq0ReposAddUserAccessRestrictionsReq(v Re
 	return s
 }
 
-// SetArrayString sets ReposAddUserAccessRestrictionsReq to []string.
-func (s *ReposAddUserAccessRestrictionsReq) SetArrayString(v []string) {
-	s.Type = ArrayStringReposAddUserAccessRestrictionsReq
-	s.ArrayString = v
+// SetStringArray sets ReposAddUserAccessRestrictionsReq to []string.
+func (s *ReposAddUserAccessRestrictionsReq) SetStringArray(v []string) {
+	s.Type = StringArrayReposAddUserAccessRestrictionsReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if ReposAddUserAccessRestrictionsReq is []string.
-func (s ReposAddUserAccessRestrictionsReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if ReposAddUserAccessRestrictionsReq is []string.
+func (s ReposAddUserAccessRestrictionsReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringReposAddUserAccessRestrictionsReq returns new ReposAddUserAccessRestrictionsReq from []string.
-func NewArrayStringReposAddUserAccessRestrictionsReq(v []string) ReposAddUserAccessRestrictionsReq {
+// NewStringArrayReposAddUserAccessRestrictionsReq returns new ReposAddUserAccessRestrictionsReq from []string.
+func NewStringArrayReposAddUserAccessRestrictionsReq(v []string) ReposAddUserAccessRestrictionsReq {
 	var s ReposAddUserAccessRestrictionsReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -35186,7 +35186,7 @@ func (ReposRemoveAppAccessRestrictionsOKApplicationJSON) reposRemoveAppAccessRes
 type ReposRemoveAppAccessRestrictionsReq struct {
 	Type                                 ReposRemoveAppAccessRestrictionsReqType // switch on this field
 	ReposRemoveAppAccessRestrictionsReq0 ReposRemoveAppAccessRestrictionsReq0
-	ArrayString                          []string
+	StringArray                          []string
 }
 
 // ReposRemoveAppAccessRestrictionsReqType is oneOf type of ReposRemoveAppAccessRestrictionsReq.
@@ -35195,7 +35195,7 @@ type ReposRemoveAppAccessRestrictionsReqType string
 // Possible values for ReposRemoveAppAccessRestrictionsReqType.
 const (
 	ReposRemoveAppAccessRestrictionsReq0ReposRemoveAppAccessRestrictionsReq ReposRemoveAppAccessRestrictionsReqType = "ReposRemoveAppAccessRestrictionsReq0"
-	ArrayStringReposRemoveAppAccessRestrictionsReq                          ReposRemoveAppAccessRestrictionsReqType = "[]string"
+	StringArrayReposRemoveAppAccessRestrictionsReq                          ReposRemoveAppAccessRestrictionsReqType = "[]string"
 )
 
 // IsReposRemoveAppAccessRestrictionsReq0 reports whether ReposRemoveAppAccessRestrictionsReq is ReposRemoveAppAccessRestrictionsReq0.
@@ -35203,9 +35203,9 @@ func (s ReposRemoveAppAccessRestrictionsReq) IsReposRemoveAppAccessRestrictionsR
 	return s.Type == ReposRemoveAppAccessRestrictionsReq0ReposRemoveAppAccessRestrictionsReq
 }
 
-// IsArrayString reports whether ReposRemoveAppAccessRestrictionsReq is []string.
-func (s ReposRemoveAppAccessRestrictionsReq) IsArrayString() bool {
-	return s.Type == ArrayStringReposRemoveAppAccessRestrictionsReq
+// IsStringArray reports whether ReposRemoveAppAccessRestrictionsReq is []string.
+func (s ReposRemoveAppAccessRestrictionsReq) IsStringArray() bool {
+	return s.Type == StringArrayReposRemoveAppAccessRestrictionsReq
 }
 
 // SetReposRemoveAppAccessRestrictionsReq0 sets ReposRemoveAppAccessRestrictionsReq to ReposRemoveAppAccessRestrictionsReq0.
@@ -35229,24 +35229,24 @@ func NewReposRemoveAppAccessRestrictionsReq0ReposRemoveAppAccessRestrictionsReq(
 	return s
 }
 
-// SetArrayString sets ReposRemoveAppAccessRestrictionsReq to []string.
-func (s *ReposRemoveAppAccessRestrictionsReq) SetArrayString(v []string) {
-	s.Type = ArrayStringReposRemoveAppAccessRestrictionsReq
-	s.ArrayString = v
+// SetStringArray sets ReposRemoveAppAccessRestrictionsReq to []string.
+func (s *ReposRemoveAppAccessRestrictionsReq) SetStringArray(v []string) {
+	s.Type = StringArrayReposRemoveAppAccessRestrictionsReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if ReposRemoveAppAccessRestrictionsReq is []string.
-func (s ReposRemoveAppAccessRestrictionsReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if ReposRemoveAppAccessRestrictionsReq is []string.
+func (s ReposRemoveAppAccessRestrictionsReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringReposRemoveAppAccessRestrictionsReq returns new ReposRemoveAppAccessRestrictionsReq from []string.
-func NewArrayStringReposRemoveAppAccessRestrictionsReq(v []string) ReposRemoveAppAccessRestrictionsReq {
+// NewStringArrayReposRemoveAppAccessRestrictionsReq returns new ReposRemoveAppAccessRestrictionsReq from []string.
+func NewStringArrayReposRemoveAppAccessRestrictionsReq(v []string) ReposRemoveAppAccessRestrictionsReq {
 	var s ReposRemoveAppAccessRestrictionsReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -35266,7 +35266,7 @@ func (ReposRemoveStatusCheckContextsOKApplicationJSON) reposRemoveStatusCheckCon
 type ReposRemoveStatusCheckContextsReq struct {
 	Type                               ReposRemoveStatusCheckContextsReqType // switch on this field
 	ReposRemoveStatusCheckContextsReq0 ReposRemoveStatusCheckContextsReq0
-	ArrayString                        []string
+	StringArray                        []string
 }
 
 // ReposRemoveStatusCheckContextsReqType is oneOf type of ReposRemoveStatusCheckContextsReq.
@@ -35275,7 +35275,7 @@ type ReposRemoveStatusCheckContextsReqType string
 // Possible values for ReposRemoveStatusCheckContextsReqType.
 const (
 	ReposRemoveStatusCheckContextsReq0ReposRemoveStatusCheckContextsReq ReposRemoveStatusCheckContextsReqType = "ReposRemoveStatusCheckContextsReq0"
-	ArrayStringReposRemoveStatusCheckContextsReq                        ReposRemoveStatusCheckContextsReqType = "[]string"
+	StringArrayReposRemoveStatusCheckContextsReq                        ReposRemoveStatusCheckContextsReqType = "[]string"
 )
 
 // IsReposRemoveStatusCheckContextsReq0 reports whether ReposRemoveStatusCheckContextsReq is ReposRemoveStatusCheckContextsReq0.
@@ -35283,9 +35283,9 @@ func (s ReposRemoveStatusCheckContextsReq) IsReposRemoveStatusCheckContextsReq0(
 	return s.Type == ReposRemoveStatusCheckContextsReq0ReposRemoveStatusCheckContextsReq
 }
 
-// IsArrayString reports whether ReposRemoveStatusCheckContextsReq is []string.
-func (s ReposRemoveStatusCheckContextsReq) IsArrayString() bool {
-	return s.Type == ArrayStringReposRemoveStatusCheckContextsReq
+// IsStringArray reports whether ReposRemoveStatusCheckContextsReq is []string.
+func (s ReposRemoveStatusCheckContextsReq) IsStringArray() bool {
+	return s.Type == StringArrayReposRemoveStatusCheckContextsReq
 }
 
 // SetReposRemoveStatusCheckContextsReq0 sets ReposRemoveStatusCheckContextsReq to ReposRemoveStatusCheckContextsReq0.
@@ -35309,24 +35309,24 @@ func NewReposRemoveStatusCheckContextsReq0ReposRemoveStatusCheckContextsReq(v Re
 	return s
 }
 
-// SetArrayString sets ReposRemoveStatusCheckContextsReq to []string.
-func (s *ReposRemoveStatusCheckContextsReq) SetArrayString(v []string) {
-	s.Type = ArrayStringReposRemoveStatusCheckContextsReq
-	s.ArrayString = v
+// SetStringArray sets ReposRemoveStatusCheckContextsReq to []string.
+func (s *ReposRemoveStatusCheckContextsReq) SetStringArray(v []string) {
+	s.Type = StringArrayReposRemoveStatusCheckContextsReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if ReposRemoveStatusCheckContextsReq is []string.
-func (s ReposRemoveStatusCheckContextsReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if ReposRemoveStatusCheckContextsReq is []string.
+func (s ReposRemoveStatusCheckContextsReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringReposRemoveStatusCheckContextsReq returns new ReposRemoveStatusCheckContextsReq from []string.
-func NewArrayStringReposRemoveStatusCheckContextsReq(v []string) ReposRemoveStatusCheckContextsReq {
+// NewStringArrayReposRemoveStatusCheckContextsReq returns new ReposRemoveStatusCheckContextsReq from []string.
+func NewStringArrayReposRemoveStatusCheckContextsReq(v []string) ReposRemoveStatusCheckContextsReq {
 	var s ReposRemoveStatusCheckContextsReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -35346,7 +35346,7 @@ func (ReposRemoveTeamAccessRestrictionsOKApplicationJSON) reposRemoveTeamAccessR
 type ReposRemoveTeamAccessRestrictionsReq struct {
 	Type                                  ReposRemoveTeamAccessRestrictionsReqType // switch on this field
 	ReposRemoveTeamAccessRestrictionsReq0 ReposRemoveTeamAccessRestrictionsReq0
-	ArrayString                           []string
+	StringArray                           []string
 }
 
 // ReposRemoveTeamAccessRestrictionsReqType is oneOf type of ReposRemoveTeamAccessRestrictionsReq.
@@ -35355,7 +35355,7 @@ type ReposRemoveTeamAccessRestrictionsReqType string
 // Possible values for ReposRemoveTeamAccessRestrictionsReqType.
 const (
 	ReposRemoveTeamAccessRestrictionsReq0ReposRemoveTeamAccessRestrictionsReq ReposRemoveTeamAccessRestrictionsReqType = "ReposRemoveTeamAccessRestrictionsReq0"
-	ArrayStringReposRemoveTeamAccessRestrictionsReq                           ReposRemoveTeamAccessRestrictionsReqType = "[]string"
+	StringArrayReposRemoveTeamAccessRestrictionsReq                           ReposRemoveTeamAccessRestrictionsReqType = "[]string"
 )
 
 // IsReposRemoveTeamAccessRestrictionsReq0 reports whether ReposRemoveTeamAccessRestrictionsReq is ReposRemoveTeamAccessRestrictionsReq0.
@@ -35363,9 +35363,9 @@ func (s ReposRemoveTeamAccessRestrictionsReq) IsReposRemoveTeamAccessRestriction
 	return s.Type == ReposRemoveTeamAccessRestrictionsReq0ReposRemoveTeamAccessRestrictionsReq
 }
 
-// IsArrayString reports whether ReposRemoveTeamAccessRestrictionsReq is []string.
-func (s ReposRemoveTeamAccessRestrictionsReq) IsArrayString() bool {
-	return s.Type == ArrayStringReposRemoveTeamAccessRestrictionsReq
+// IsStringArray reports whether ReposRemoveTeamAccessRestrictionsReq is []string.
+func (s ReposRemoveTeamAccessRestrictionsReq) IsStringArray() bool {
+	return s.Type == StringArrayReposRemoveTeamAccessRestrictionsReq
 }
 
 // SetReposRemoveTeamAccessRestrictionsReq0 sets ReposRemoveTeamAccessRestrictionsReq to ReposRemoveTeamAccessRestrictionsReq0.
@@ -35389,24 +35389,24 @@ func NewReposRemoveTeamAccessRestrictionsReq0ReposRemoveTeamAccessRestrictionsRe
 	return s
 }
 
-// SetArrayString sets ReposRemoveTeamAccessRestrictionsReq to []string.
-func (s *ReposRemoveTeamAccessRestrictionsReq) SetArrayString(v []string) {
-	s.Type = ArrayStringReposRemoveTeamAccessRestrictionsReq
-	s.ArrayString = v
+// SetStringArray sets ReposRemoveTeamAccessRestrictionsReq to []string.
+func (s *ReposRemoveTeamAccessRestrictionsReq) SetStringArray(v []string) {
+	s.Type = StringArrayReposRemoveTeamAccessRestrictionsReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if ReposRemoveTeamAccessRestrictionsReq is []string.
-func (s ReposRemoveTeamAccessRestrictionsReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if ReposRemoveTeamAccessRestrictionsReq is []string.
+func (s ReposRemoveTeamAccessRestrictionsReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringReposRemoveTeamAccessRestrictionsReq returns new ReposRemoveTeamAccessRestrictionsReq from []string.
-func NewArrayStringReposRemoveTeamAccessRestrictionsReq(v []string) ReposRemoveTeamAccessRestrictionsReq {
+// NewStringArrayReposRemoveTeamAccessRestrictionsReq returns new ReposRemoveTeamAccessRestrictionsReq from []string.
+func NewStringArrayReposRemoveTeamAccessRestrictionsReq(v []string) ReposRemoveTeamAccessRestrictionsReq {
 	var s ReposRemoveTeamAccessRestrictionsReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -35423,7 +35423,7 @@ func (ReposRemoveUserAccessRestrictionsOKApplicationJSON) reposRemoveUserAccessR
 type ReposRemoveUserAccessRestrictionsReq struct {
 	Type                                  ReposRemoveUserAccessRestrictionsReqType // switch on this field
 	ReposRemoveUserAccessRestrictionsReq0 ReposRemoveUserAccessRestrictionsReq0
-	ArrayString                           []string
+	StringArray                           []string
 }
 
 // ReposRemoveUserAccessRestrictionsReqType is oneOf type of ReposRemoveUserAccessRestrictionsReq.
@@ -35432,7 +35432,7 @@ type ReposRemoveUserAccessRestrictionsReqType string
 // Possible values for ReposRemoveUserAccessRestrictionsReqType.
 const (
 	ReposRemoveUserAccessRestrictionsReq0ReposRemoveUserAccessRestrictionsReq ReposRemoveUserAccessRestrictionsReqType = "ReposRemoveUserAccessRestrictionsReq0"
-	ArrayStringReposRemoveUserAccessRestrictionsReq                           ReposRemoveUserAccessRestrictionsReqType = "[]string"
+	StringArrayReposRemoveUserAccessRestrictionsReq                           ReposRemoveUserAccessRestrictionsReqType = "[]string"
 )
 
 // IsReposRemoveUserAccessRestrictionsReq0 reports whether ReposRemoveUserAccessRestrictionsReq is ReposRemoveUserAccessRestrictionsReq0.
@@ -35440,9 +35440,9 @@ func (s ReposRemoveUserAccessRestrictionsReq) IsReposRemoveUserAccessRestriction
 	return s.Type == ReposRemoveUserAccessRestrictionsReq0ReposRemoveUserAccessRestrictionsReq
 }
 
-// IsArrayString reports whether ReposRemoveUserAccessRestrictionsReq is []string.
-func (s ReposRemoveUserAccessRestrictionsReq) IsArrayString() bool {
-	return s.Type == ArrayStringReposRemoveUserAccessRestrictionsReq
+// IsStringArray reports whether ReposRemoveUserAccessRestrictionsReq is []string.
+func (s ReposRemoveUserAccessRestrictionsReq) IsStringArray() bool {
+	return s.Type == StringArrayReposRemoveUserAccessRestrictionsReq
 }
 
 // SetReposRemoveUserAccessRestrictionsReq0 sets ReposRemoveUserAccessRestrictionsReq to ReposRemoveUserAccessRestrictionsReq0.
@@ -35466,24 +35466,24 @@ func NewReposRemoveUserAccessRestrictionsReq0ReposRemoveUserAccessRestrictionsRe
 	return s
 }
 
-// SetArrayString sets ReposRemoveUserAccessRestrictionsReq to []string.
-func (s *ReposRemoveUserAccessRestrictionsReq) SetArrayString(v []string) {
-	s.Type = ArrayStringReposRemoveUserAccessRestrictionsReq
-	s.ArrayString = v
+// SetStringArray sets ReposRemoveUserAccessRestrictionsReq to []string.
+func (s *ReposRemoveUserAccessRestrictionsReq) SetStringArray(v []string) {
+	s.Type = StringArrayReposRemoveUserAccessRestrictionsReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if ReposRemoveUserAccessRestrictionsReq is []string.
-func (s ReposRemoveUserAccessRestrictionsReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if ReposRemoveUserAccessRestrictionsReq is []string.
+func (s ReposRemoveUserAccessRestrictionsReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringReposRemoveUserAccessRestrictionsReq returns new ReposRemoveUserAccessRestrictionsReq from []string.
-func NewArrayStringReposRemoveUserAccessRestrictionsReq(v []string) ReposRemoveUserAccessRestrictionsReq {
+// NewStringArrayReposRemoveUserAccessRestrictionsReq returns new ReposRemoveUserAccessRestrictionsReq from []string.
+func NewStringArrayReposRemoveUserAccessRestrictionsReq(v []string) ReposRemoveUserAccessRestrictionsReq {
 	var s ReposRemoveUserAccessRestrictionsReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -35520,7 +35520,7 @@ func (ReposSetAppAccessRestrictionsOKApplicationJSON) reposSetAppAccessRestricti
 type ReposSetAppAccessRestrictionsReq struct {
 	Type                              ReposSetAppAccessRestrictionsReqType // switch on this field
 	ReposSetAppAccessRestrictionsReq0 ReposSetAppAccessRestrictionsReq0
-	ArrayString                       []string
+	StringArray                       []string
 }
 
 // ReposSetAppAccessRestrictionsReqType is oneOf type of ReposSetAppAccessRestrictionsReq.
@@ -35529,7 +35529,7 @@ type ReposSetAppAccessRestrictionsReqType string
 // Possible values for ReposSetAppAccessRestrictionsReqType.
 const (
 	ReposSetAppAccessRestrictionsReq0ReposSetAppAccessRestrictionsReq ReposSetAppAccessRestrictionsReqType = "ReposSetAppAccessRestrictionsReq0"
-	ArrayStringReposSetAppAccessRestrictionsReq                       ReposSetAppAccessRestrictionsReqType = "[]string"
+	StringArrayReposSetAppAccessRestrictionsReq                       ReposSetAppAccessRestrictionsReqType = "[]string"
 )
 
 // IsReposSetAppAccessRestrictionsReq0 reports whether ReposSetAppAccessRestrictionsReq is ReposSetAppAccessRestrictionsReq0.
@@ -35537,9 +35537,9 @@ func (s ReposSetAppAccessRestrictionsReq) IsReposSetAppAccessRestrictionsReq0()
 	return s.Type == ReposSetAppAccessRestrictionsReq0ReposSetAppAccessRestrictionsReq
 }
 
-// IsArrayString reports whether ReposSetAppAccessRestrictionsReq is []string.
-func (s ReposSetAppAccessRestrictionsReq) IsArrayString() bool {
-	return s.Type == ArrayStringReposSetAppAccessRestrictionsReq
+// IsStringArray reports whether ReposSetAppAccessRestrictionsReq is []string.
+func (s ReposSetAppAccessRestrictionsReq) IsStringArray() bool {
+	return s.Type == StringArrayReposSetAppAccessRestrictionsReq
 }
 
 // SetReposSetAppAccessRestrictionsReq0 sets ReposSetAppAccessRestrictionsReq to ReposSetAppAccessRestrictionsReq0.
@@ -35563,24 +35563,24 @@ func NewReposSetAppAccessRestrictionsReq0ReposSetAppAccessRestrictionsReq(v Repo
 	return s
 }
 
-// SetArrayString sets ReposSetAppAccessRestrictionsReq to []string.
-func (s *ReposSetAppAccessRestrictionsReq) SetArrayString(v []string) {
-	s.Type = ArrayStringReposSetAppAccessRestrictionsReq
-	s.ArrayString = v
+// SetStringArray sets ReposSetAppAccessRestrictionsReq to []string.
+func (s *ReposSetAppAccessRestrictionsReq) SetStringArray(v []string) {
+	s.Type = StringArrayReposSetAppAccessRestrictionsReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if ReposSetAppAccessRestrictionsReq is []string.
-func (s ReposSetAppAccessRestrictionsReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if ReposSetAppAccessRestrictionsReq is []string.
+func (s ReposSetAppAccessRestrictionsReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringReposSetAppAccessRestrictionsReq returns new ReposSetAppAccessRestrictionsReq from []string.
-func NewArrayStringReposSetAppAccessRestrictionsReq(v []string) ReposSetAppAccessRestrictionsReq {
+// NewStringArrayReposSetAppAccessRestrictionsReq returns new ReposSetAppAccessRestrictionsReq from []string.
+func NewStringArrayReposSetAppAccessRestrictionsReq(v []string) ReposSetAppAccessRestrictionsReq {
 	var s ReposSetAppAccessRestrictionsReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -35597,7 +35597,7 @@ func (ReposSetStatusCheckContextsOKApplicationJSON) reposSetStatusCheckContextsR
 type ReposSetStatusCheckContextsReq struct {
 	Type                            ReposSetStatusCheckContextsReqType // switch on this field
 	ReposSetStatusCheckContextsReq0 ReposSetStatusCheckContextsReq0
-	ArrayString                     []string
+	StringArray                     []string
 }
 
 // ReposSetStatusCheckContextsReqType is oneOf type of ReposSetStatusCheckContextsReq.
@@ -35606,7 +35606,7 @@ type ReposSetStatusCheckContextsReqType string
 // Possible values for ReposSetStatusCheckContextsReqType.
 const (
 	ReposSetStatusCheckContextsReq0ReposSetStatusCheckContextsReq ReposSetStatusCheckContextsReqType = "ReposSetStatusCheckContextsReq0"
-	ArrayStringReposSetStatusCheckContextsReq                     ReposSetStatusCheckContextsReqType = "[]string"
+	StringArrayReposSetStatusCheckContextsReq                     ReposSetStatusCheckContextsReqType = "[]string"
 )
 
 // IsReposSetStatusCheckContextsReq0 reports whether ReposSetStatusCheckContextsReq is ReposSetStatusCheckContextsReq0.
@@ -35614,9 +35614,9 @@ func (s ReposSetStatusCheckContextsReq) IsReposSetStatusCheckContextsReq0() bool
 	return s.Type == ReposSetStatusCheckContextsReq0ReposSetStatusCheckContextsReq
 }
 
-// IsArrayString reports whether ReposSetStatusCheckContextsReq is []string.
-func (s ReposSetStatusCheckContextsReq) IsArrayString() bool {
-	return s.Type == ArrayStringReposSetStatusCheckContextsReq
+// IsStringArray reports whether ReposSetStatusCheckContextsReq is []string.
+func (s ReposSetStatusCheckContextsReq) IsStringArray() bool {
+	return s.Type == StringArrayReposSetStatusCheckContextsReq
 }
 
 // SetReposSetStatusCheckContextsReq0 sets ReposSetStatusCheckContextsReq to ReposSetStatusCheckContextsReq0.
@@ -35640,24 +35640,24 @@ func NewReposSetStatusCheckContextsReq0ReposSetStatusCheckContextsReq(v ReposSet
 	return s
 }
 
-// SetArrayString sets ReposSetStatusCheckContextsReq to []string.
-func (s *ReposSetStatusCheckContextsReq) SetArrayString(v []string) {
-	s.Type = ArrayStringReposSetStatusCheckContextsReq
-	s.ArrayString = v
+// SetStringArray sets ReposSetStatusCheckContextsReq to []string.
+func (s *ReposSetStatusCheckContextsReq) SetStringArray(v []string) {
+	s.Type = StringArrayReposSetStatusCheckContextsReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if ReposSetStatusCheckContextsReq is []string.
-func (s ReposSetStatusCheckContextsReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if ReposSetStatusCheckContextsReq is []string.
+func (s ReposSetStatusCheckContextsReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringReposSetStatusCheckContextsReq returns new ReposSetStatusCheckContextsReq from []string.
-func NewArrayStringReposSetStatusCheckContextsReq(v []string) ReposSetStatusCheckContextsReq {
+// NewStringArrayReposSetStatusCheckContextsReq returns new ReposSetStatusCheckContextsReq from []string.
+func NewStringArrayReposSetStatusCheckContextsReq(v []string) ReposSetStatusCheckContextsReq {
 	var s ReposSetStatusCheckContextsReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -35674,7 +35674,7 @@ func (ReposSetTeamAccessRestrictionsOKApplicationJSON) reposSetTeamAccessRestric
 type ReposSetTeamAccessRestrictionsReq struct {
 	Type                               ReposSetTeamAccessRestrictionsReqType // switch on this field
 	ReposSetTeamAccessRestrictionsReq0 ReposSetTeamAccessRestrictionsReq0
-	ArrayString                        []string
+	StringArray                        []string
 }
 
 // ReposSetTeamAccessRestrictionsReqType is oneOf type of ReposSetTeamAccessRestrictionsReq.
@@ -35683,7 +35683,7 @@ type ReposSetTeamAccessRestrictionsReqType string
 // Possible values for ReposSetTeamAccessRestrictionsReqType.
 const (
 	ReposSetTeamAccessRestrictionsReq0ReposSetTeamAccessRestrictionsReq ReposSetTeamAccessRestrictionsReqType = "ReposSetTeamAccessRestrictionsReq0"
-	ArrayStringReposSetTeamAccessRestrictionsReq                        ReposSetTeamAccessRestrictionsReqType = "[]string"
+	StringArrayReposSetTeamAccessRestrictionsReq                        ReposSetTeamAccessRestrictionsReqType = "[]string"
 )
 
 // IsReposSetTeamAccessRestrictionsReq0 reports whether ReposSetTeamAccessRestrictionsReq is ReposSetTeamAccessRestrictionsReq0.
@@ -35691,9 +35691,9 @@ func (s ReposSetTeamAccessRestrictionsReq) IsReposSetTeamAccessRestrictionsReq0(
 	return s.Type == ReposSetTeamAccessRestrictionsReq0ReposSetTeamAccessRestrictionsReq
 }
 
-// IsArrayString reports whether ReposSetTeamAccessRestrictionsReq is []string.
-func (s ReposSetTeamAccessRestrictionsReq) IsArrayString() bool {
-	return s.Type == ArrayStringReposSetTeamAccessRestrictionsReq
+// IsStringArray reports whether ReposSetTeamAccessRestrictionsReq is []string.
+func (s ReposSetTeamAccessRestrictionsReq) IsStringArray() bool {
+	return s.Type == StringArrayReposSetTeamAccessRestrictionsReq
 }
 
 // SetReposSetTeamAccessRestrictionsReq0 sets ReposSetTeamAccessRestrictionsReq to ReposSetTeamAccessRestrictionsReq0.
@@ -35717,24 +35717,24 @@ func NewReposSetTeamAccessRestrictionsReq0ReposSetTeamAccessRestrictionsReq(v Re
 	return s
 }
 
-// SetArrayString sets ReposSetTeamAccessRestrictionsReq to []string.
-func (s *ReposSetTeamAccessRestrictionsReq) SetArrayString(v []string) {
-	s.Type = ArrayStringReposSetTeamAccessRestrictionsReq
-	s.ArrayString = v
+// SetStringArray sets ReposSetTeamAccessRestrictionsReq to []string.
+func (s *ReposSetTeamAccessRestrictionsReq) SetStringArray(v []string) {
+	s.Type = StringArrayReposSetTeamAccessRestrictionsReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if ReposSetTeamAccessRestrictionsReq is []string.
-func (s ReposSetTeamAccessRestrictionsReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if ReposSetTeamAccessRestrictionsReq is []string.
+func (s ReposSetTeamAccessRestrictionsReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringReposSetTeamAccessRestrictionsReq returns new ReposSetTeamAccessRestrictionsReq from []string.
-func NewArrayStringReposSetTeamAccessRestrictionsReq(v []string) ReposSetTeamAccessRestrictionsReq {
+// NewStringArrayReposSetTeamAccessRestrictionsReq returns new ReposSetTeamAccessRestrictionsReq from []string.
+func NewStringArrayReposSetTeamAccessRestrictionsReq(v []string) ReposSetTeamAccessRestrictionsReq {
 	var s ReposSetTeamAccessRestrictionsReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -35751,7 +35751,7 @@ func (ReposSetUserAccessRestrictionsOKApplicationJSON) reposSetUserAccessRestric
 type ReposSetUserAccessRestrictionsReq struct {
 	Type                               ReposSetUserAccessRestrictionsReqType // switch on this field
 	ReposSetUserAccessRestrictionsReq0 ReposSetUserAccessRestrictionsReq0
-	ArrayString                        []string
+	StringArray                        []string
 }
 
 // ReposSetUserAccessRestrictionsReqType is oneOf type of ReposSetUserAccessRestrictionsReq.
@@ -35760,7 +35760,7 @@ type ReposSetUserAccessRestrictionsReqType string
 // Possible values for ReposSetUserAccessRestrictionsReqType.
 const (
 	ReposSetUserAccessRestrictionsReq0ReposSetUserAccessRestrictionsReq ReposSetUserAccessRestrictionsReqType = "ReposSetUserAccessRestrictionsReq0"
-	ArrayStringReposSetUserAccessRestrictionsReq                        ReposSetUserAccessRestrictionsReqType = "[]string"
+	StringArrayReposSetUserAccessRestrictionsReq                        ReposSetUserAccessRestrictionsReqType = "[]string"
 )
 
 // IsReposSetUserAccessRestrictionsReq0 reports whether ReposSetUserAccessRestrictionsReq is ReposSetUserAccessRestrictionsReq0.
@@ -35768,9 +35768,9 @@ func (s ReposSetUserAccessRestrictionsReq) IsReposSetUserAccessRestrictionsReq0(
 	return s.Type == ReposSetUserAccessRestrictionsReq0ReposSetUserAccessRestrictionsReq
 }
 
-// IsArrayString reports whether ReposSetUserAccessRestrictionsReq is []string.
-func (s ReposSetUserAccessRestrictionsReq) IsArrayString() bool {
-	return s.Type == ArrayStringReposSetUserAccessRestrictionsReq
+// IsStringArray reports whether ReposSetUserAccessRestrictionsReq is []string.
+func (s ReposSetUserAccessRestrictionsReq) IsStringArray() bool {
+	return s.Type == StringArrayReposSetUserAccessRestrictionsReq
 }
 
 // SetReposSetUserAccessRestrictionsReq0 sets ReposSetUserAccessRestrictionsReq to ReposSetUserAccessRestrictionsReq0.
@@ -35794,24 +35794,24 @@ func NewReposSetUserAccessRestrictionsReq0ReposSetUserAccessRestrictionsReq(v Re
 	return s
 }
 
-// SetArrayString sets ReposSetUserAccessRestrictionsReq to []string.
-func (s *ReposSetUserAccessRestrictionsReq) SetArrayString(v []string) {
-	s.Type = ArrayStringReposSetUserAccessRestrictionsReq
-	s.ArrayString = v
+// SetStringArray sets ReposSetUserAccessRestrictionsReq to []string.
+func (s *ReposSetUserAccessRestrictionsReq) SetStringArray(v []string) {
+	s.Type = StringArrayReposSetUserAccessRestrictionsReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if ReposSetUserAccessRestrictionsReq is []string.
-func (s ReposSetUserAccessRestrictionsReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if ReposSetUserAccessRestrictionsReq is []string.
+func (s ReposSetUserAccessRestrictionsReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringReposSetUserAccessRestrictionsReq returns new ReposSetUserAccessRestrictionsReq from []string.
-func NewArrayStringReposSetUserAccessRestrictionsReq(v []string) ReposSetUserAccessRestrictionsReq {
+// NewStringArrayReposSetUserAccessRestrictionsReq returns new ReposSetUserAccessRestrictionsReq from []string.
+func NewStringArrayReposSetUserAccessRestrictionsReq(v []string) ReposSetUserAccessRestrictionsReq {
 	var s ReposSetUserAccessRestrictionsReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -38359,7 +38359,7 @@ func (UsersAddEmailForAuthenticatedCreatedApplicationJSON) usersAddEmailForAuthe
 type UsersAddEmailForAuthenticatedReq struct {
 	Type                              UsersAddEmailForAuthenticatedReqType // switch on this field
 	UsersAddEmailForAuthenticatedReq0 UsersAddEmailForAuthenticatedReq0
-	ArrayString                       []string
+	StringArray                       []string
 	String                            string
 }
 
@@ -38369,7 +38369,7 @@ type UsersAddEmailForAuthenticatedReqType string
 // Possible values for UsersAddEmailForAuthenticatedReqType.
 const (
 	UsersAddEmailForAuthenticatedReq0UsersAddEmailForAuthenticatedReq UsersAddEmailForAuthenticatedReqType = "UsersAddEmailForAuthenticatedReq0"
-	ArrayStringUsersAddEmailForAuthenticatedReq                       UsersAddEmailForAuthenticatedReqType = "[]string"
+	StringArrayUsersAddEmailForAuthenticatedReq                       UsersAddEmailForAuthenticatedReqType = "[]string"
 	StringUsersAddEmailForAuthenticatedReq                            UsersAddEmailForAuthenticatedReqType = "string"
 )
 
@@ -38378,9 +38378,9 @@ func (s UsersAddEmailForAuthenticatedReq) IsUsersAddEmailForAuthenticatedReq0()
 	return s.Type == UsersAddEmailForAuthenticatedReq0UsersAddEmailForAuthenticatedReq
 }
 
-// IsArrayString reports whether UsersAddEmailForAuthenticatedReq is []string.
-func (s UsersAddEmailForAuthenticatedReq) IsArrayString() bool {
-	return s.Type == ArrayStringUsersAddEmailForAuthenticatedReq
+// IsStringArray reports whether UsersAddEmailForAuthenticatedReq is []string.
+func (s UsersAddEmailForAuthenticatedReq) IsStringArray() bool {
+	return s.Type == StringArrayUsersAddEmailForAuthenticatedReq
 }
 
 // IsString reports whether UsersAddEmailForAuthenticatedReq is string.
@@ -38409,24 +38409,24 @@ func NewUsersAddEmailForAuthenticatedReq0UsersAddEmailForAuthenticatedReq(v User
 	return s
 }
 
-// SetArrayString sets UsersAddEmailForAuthenticatedReq to []string.
-func (s *UsersAddEmailForAuthenticatedReq) SetArrayString(v []string) {
-	s.Type = ArrayStringUsersAddEmailForAuthenticatedReq
-	s.ArrayString = v
+// SetStringArray sets UsersAddEmailForAuthenticatedReq to []string.
+func (s *UsersAddEmailForAuthenticatedReq) SetStringArray(v []string) {
+	s.Type = StringArrayUsersAddEmailForAuthenticatedReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if UsersAddEmailForAuthenticatedReq is []string.
-func (s UsersAddEmailForAuthenticatedReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if UsersAddEmailForAuthenticatedReq is []string.
+func (s UsersAddEmailForAuthenticatedReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringUsersAddEmailForAuthenticatedReq returns new UsersAddEmailForAuthenticatedReq from []string.
-func NewArrayStringUsersAddEmailForAuthenticatedReq(v []string) UsersAddEmailForAuthenticatedReq {
+// NewStringArrayUsersAddEmailForAuthenticatedReq returns new UsersAddEmailForAuthenticatedReq from []string.
+func NewStringArrayUsersAddEmailForAuthenticatedReq(v []string) UsersAddEmailForAuthenticatedReq {
 	var s UsersAddEmailForAuthenticatedReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -38589,7 +38589,7 @@ func (*UsersDeleteEmailForAuthenticatedNoContent) usersDeleteEmailForAuthenticat
 type UsersDeleteEmailForAuthenticatedReq struct {
 	Type                                 UsersDeleteEmailForAuthenticatedReqType // switch on this field
 	UsersDeleteEmailForAuthenticatedReq0 UsersDeleteEmailForAuthenticatedReq0
-	ArrayString                          []string
+	StringArray                          []string
 	String                               string
 }
 
@@ -38599,7 +38599,7 @@ type UsersDeleteEmailForAuthenticatedReqType string
 // Possible values for UsersDeleteEmailForAuthenticatedReqType.
 const (
 	UsersDeleteEmailForAuthenticatedReq0UsersDeleteEmailForAuthenticatedReq UsersDeleteEmailForAuthenticatedReqType = "UsersDeleteEmailForAuthenticatedReq0"
-	ArrayStringUsersDeleteEmailForAuthenticatedReq                          UsersDeleteEmailForAuthenticatedReqType = "[]string"
+	StringArrayUsersDeleteEmailForAuthenticatedReq                          UsersDeleteEmailForAuthenticatedReqType = "[]string"
 	StringUsersDeleteEmailForAuthenticatedReq                               UsersDeleteEmailForAuthenticatedReqType = "string"
 )
 
@@ -38608,9 +38608,9 @@ func (s UsersDeleteEmailForAuthenticatedReq) IsUsersDeleteEmailForAuthenticatedR
 	return s.Type == UsersDeleteEmailForAuthenticatedReq0UsersDeleteEmailForAuthenticatedReq
 }
 
-// IsArrayString reports whether UsersDeleteEmailForAuthenticatedReq is []string.
-func (s UsersDeleteEmailForAuthenticatedReq) IsArrayString() bool {
-	return s.Type == ArrayStringUsersDeleteEmailForAuthenticatedReq
+// IsStringArray reports whether UsersDeleteEmailForAuthenticatedReq is []string.
+func (s UsersDeleteEmailForAuthenticatedReq) IsStringArray() bool {
+	return s.Type == StringArrayUsersDeleteEmailForAuthenticatedReq
 }
 
 // IsString reports whether UsersDeleteEmailForAuthenticatedReq is string.
@@ -38639,24 +38639,24 @@ func NewUsersDeleteEmailForAuthenticatedReq0UsersDeleteEmailForAuthenticatedReq(
 	return s
 }
 
-// SetArrayString sets UsersDeleteEmailForAuthenticatedReq to []string.
-func (s *UsersDeleteEmailForAuthenticatedReq) SetArrayString(v []string) {
-	s.Type = ArrayStringUsersDeleteEmailForAuthenticatedReq
-	s.ArrayString = v
+// SetStringArray sets UsersDeleteEmailForAuthenticatedReq to []string.
+func (s *UsersDeleteEmailForAuthenticatedReq) SetStringArray(v []string) {
+	s.Type = StringArrayUsersDeleteEmailForAuthenticatedReq
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if UsersDeleteEmailForAuthenticatedReq is []string.
-func (s UsersDeleteEmailForAuthenticatedReq) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if UsersDeleteEmailForAuthenticatedReq is []string.
+func (s UsersDeleteEmailForAuthenticatedReq) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringUsersDeleteEmailForAuthenticatedReq returns new UsersDeleteEmailForAuthenticatedReq from []string.
-func NewArrayStringUsersDeleteEmailForAuthenticatedReq(v []string) UsersDeleteEmailForAuthenticatedReq {
+// NewStringArrayUsersDeleteEmailForAuthenticatedReq returns new UsersDeleteEmailForAuthenticatedReq from []string.
+func NewStringArrayUsersDeleteEmailForAuthenticatedReq(v []string) UsersDeleteEmailForAuthenticatedReq {
 	var s UsersDeleteEmailForAuthenticatedReq
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
@@ -39321,7 +39321,7 @@ type ValidationErrorErrorsItemValue struct {
 	Type        ValidationErrorErrorsItemValueType // switch on this field
 	String      string
 	Int         int
-	ArrayString []string
+	StringArray []string
 }
 
 // ValidationErrorErrorsItemValueType is oneOf type of ValidationErrorErrorsItemValue.
@@ -39331,7 +39331,7 @@ type ValidationErrorErrorsItemValueType string
 const (
 	StringValidationErrorErrorsItemValue      ValidationErrorErrorsItemValueType = "string"
 	IntValidationErrorErrorsItemValue         ValidationErrorErrorsItemValueType = "int"
-	ArrayStringValidationErrorErrorsItemValue ValidationErrorErrorsItemValueType = "[]string"
+	StringArrayValidationErrorErrorsItemValue ValidationErrorErrorsItemValueType = "[]string"
 )
 
 // IsString reports whether ValidationErrorErrorsItemValue is string.
@@ -39344,9 +39344,9 @@ func (s ValidationErrorErrorsItemValue) IsInt() bool {
 	return s.Type == IntValidationErrorErrorsItemValue
 }
 
-// IsArrayString reports whether ValidationErrorErrorsItemValue is []string.
-func (s ValidationErrorErrorsItemValue) IsArrayString() bool {
-	return s.Type == ArrayStringValidationErrorErrorsItemValue
+// IsStringArray reports whether ValidationErrorErrorsItemValue is []string.
+func (s ValidationErrorErrorsItemValue) IsStringArray() bool {
+	return s.Type == StringArrayValidationErrorErrorsItemValue
 }
 
 // SetString sets ValidationErrorErrorsItemValue to string.
@@ -39391,24 +39391,24 @@ func NewIntValidationErrorErrorsItemValue(v int) ValidationErrorErrorsItemValue
 	return s
 }
 
-// SetArrayString sets ValidationErrorErrorsItemValue to []string.
-func (s *ValidationErrorErrorsItemValue) SetArrayString(v []string) {
-	s.Type = ArrayStringValidationErrorErrorsItemValue
-	s.ArrayString = v
+// SetStringArray sets ValidationErrorErrorsItemValue to []string.
+func (s *ValidationErrorErrorsItemValue) SetStringArray(v []string) {
+	s.Type = StringArrayValidationErrorErrorsItemValue
+	s.StringArray = v
 }
 
-// GetArrayString returns []string and true boolean if ValidationErrorErrorsItemValue is []string.
-func (s ValidationErrorErrorsItemValue) GetArrayString() (v []string, ok bool) {
-	if !s.IsArrayString() {
+// GetStringArray returns []string and true boolean if ValidationErrorErrorsItemValue is []string.
+func (s ValidationErrorErrorsItemValue) GetStringArray() (v []string, ok bool) {
+	if !s.IsStringArray() {
 		return v, false
 	}
-	return s.ArrayString, true
+	return s.StringArray, true
 }
 
-// NewArrayStringValidationErrorErrorsItemValue returns new ValidationErrorErrorsItemValue from []string.
-func NewArrayStringValidationErrorErrorsItemValue(v []string) ValidationErrorErrorsItemValue {
+// NewStringArrayValidationErrorErrorsItemValue returns new ValidationErrorErrorsItemValue from []string.
+func NewStringArrayValidationErrorErrorsItemValue(v []string) ValidationErrorErrorsItemValue {
 	var s ValidationErrorErrorsItemValue
-	s.SetArrayString(v)
+	s.SetStringArray(v)
 	return s
 }
 
diff --git a/examples/ex_github/oas_validators_gen.go b/examples/ex_github/oas_validators_gen.go
index cd6606b4..e2d64a63 100644
--- a/examples/ex_github/oas_validators_gen.go
+++ b/examples/ex_github/oas_validators_gen.go
@@ -4652,8 +4652,8 @@ func (s EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue)
 		return nil // no validation needed
 	case EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue1EnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue:
 		return nil // no validation needed
-	case ArrayAnyEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue:
-		if s.ArrayAny == nil {
+	case AnyArrayEnterpriseAdminUpdateAttributeForEnterpriseGroupReqOperationsItemValue:
+		if s.AnyArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -11388,8 +11388,8 @@ func (s ReposAddAppAccessRestrictionsReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringReposAddAppAccessRestrictionsReq:
-		if s.ArrayString == nil {
+	case StringArrayReposAddAppAccessRestrictionsReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -11471,8 +11471,8 @@ func (s ReposAddStatusCheckContextsReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringReposAddStatusCheckContextsReq:
-		if s.ArrayString == nil {
+	case StringArrayReposAddStatusCheckContextsReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -11512,8 +11512,8 @@ func (s ReposAddTeamAccessRestrictionsReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringReposAddTeamAccessRestrictionsReq:
-		if s.ArrayString == nil {
+	case StringArrayReposAddTeamAccessRestrictionsReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -11553,8 +11553,8 @@ func (s ReposAddUserAccessRestrictionsReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringReposAddUserAccessRestrictionsReq:
-		if s.ArrayString == nil {
+	case StringArrayReposAddUserAccessRestrictionsReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -12415,8 +12415,8 @@ func (s ReposRemoveAppAccessRestrictionsReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringReposRemoveAppAccessRestrictionsReq:
-		if s.ArrayString == nil {
+	case StringArrayReposRemoveAppAccessRestrictionsReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -12456,8 +12456,8 @@ func (s ReposRemoveStatusCheckContextsReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringReposRemoveStatusCheckContextsReq:
-		if s.ArrayString == nil {
+	case StringArrayReposRemoveStatusCheckContextsReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -12497,8 +12497,8 @@ func (s ReposRemoveTeamAccessRestrictionsReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringReposRemoveTeamAccessRestrictionsReq:
-		if s.ArrayString == nil {
+	case StringArrayReposRemoveTeamAccessRestrictionsReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -12538,8 +12538,8 @@ func (s ReposRemoveUserAccessRestrictionsReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringReposRemoveUserAccessRestrictionsReq:
-		if s.ArrayString == nil {
+	case StringArrayReposRemoveUserAccessRestrictionsReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -12614,8 +12614,8 @@ func (s ReposSetAppAccessRestrictionsReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringReposSetAppAccessRestrictionsReq:
-		if s.ArrayString == nil {
+	case StringArrayReposSetAppAccessRestrictionsReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -12655,8 +12655,8 @@ func (s ReposSetStatusCheckContextsReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringReposSetStatusCheckContextsReq:
-		if s.ArrayString == nil {
+	case StringArrayReposSetStatusCheckContextsReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -12696,8 +12696,8 @@ func (s ReposSetTeamAccessRestrictionsReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringReposSetTeamAccessRestrictionsReq:
-		if s.ArrayString == nil {
+	case StringArrayReposSetTeamAccessRestrictionsReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -12737,8 +12737,8 @@ func (s ReposSetUserAccessRestrictionsReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringReposSetUserAccessRestrictionsReq:
-		if s.ArrayString == nil {
+	case StringArrayReposSetUserAccessRestrictionsReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -14921,8 +14921,8 @@ func (s UsersAddEmailForAuthenticatedReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringUsersAddEmailForAuthenticatedReq:
-		if s.ArrayString == nil {
+	case StringArrayUsersAddEmailForAuthenticatedReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -14984,8 +14984,8 @@ func (s UsersDeleteEmailForAuthenticatedReq) Validate() error {
 			return err
 		}
 		return nil
-	case ArrayStringUsersDeleteEmailForAuthenticatedReq:
-		if s.ArrayString == nil {
+	case StringArrayUsersDeleteEmailForAuthenticatedReq:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
@@ -15270,8 +15270,8 @@ func (s ValidationErrorErrorsItemValue) Validate() error {
 		return nil // no validation needed
 	case IntValidationErrorErrorsItemValue:
 		return nil // no validation needed
-	case ArrayStringValidationErrorErrorsItemValue:
-		if s.ArrayString == nil {
+	case StringArrayValidationErrorErrorsItemValue:
+		if s.StringArray == nil {
 			return errors.New("nil is invalid value")
 		}
 		return nil
diff --git a/gen/schema_gen.go b/gen/schema_gen.go
index 040e6872..692e17b3 100644
--- a/gen/schema_gen.go
+++ b/gen/schema_gen.go
@@ -17,18 +17,7 @@ type schemaGen struct {
 }
 
 func variantFieldName(t *ir.Type) string {
-	var result string
-	switch t.Kind {
-	case ir.KindArray:
-		result = "Array" + variantFieldName(t.Item)
-	case ir.KindPointer:
-		result = variantFieldName(t.PointerTo)
-	case ir.KindAny:
-		result = "Any"
-	default:
-		result = t.Go()
-	}
-	return capitalize.Capitalize(result)
+	return capitalize.Capitalize(t.NamePostfix())
 }
 
 func (g *schemaGen) generate(name string, schema *jsonschema.Schema) (_ *ir.Type, err error) {
diff --git a/internal/ir/type.go b/internal/ir/type.go
index a6991793..97be99b5 100644
--- a/internal/ir/type.go
+++ b/internal/ir/type.go
@@ -31,7 +31,7 @@ type SumSpecMap struct {
 
 type TypeDiscriminator struct {
 	Kind      Kind
-	Primitive PrimitiveType
+	Primitive string
 }
 
 func (t TypeDiscriminator) Less(other TypeDiscriminator) bool {
@@ -43,7 +43,7 @@ func (t *TypeDiscriminator) Set(s *Type) {
 	case KindPrimitive, KindEnum:
 		// Treat enum as primitive.
 		t.Kind = KindPrimitive
-		t.Primitive = s.Primitive
+		t.Primitive = s.JSON().Type()
 	case KindArray:
 		t.Kind = KindArray
 	case KindAlias:
diff --git a/internal/sample_api/oas_client_gen.go b/internal/sample_api/oas_client_gen.go
index 6bf38207..ac3235b4 100644
--- a/internal/sample_api/oas_client_gen.go
+++ b/internal/sample_api/oas_client_gen.go
@@ -738,6 +738,14 @@ func (c *Client) OctetStreamEmptySchema(ctx context.Context) (res OctetStreamEmp
 //
 // POST /oneofBug
 func (c *Client) OneofBug(ctx context.Context, request OneOfBugs) (res OneofBugOK, err error) {
+	if err := func() error {
+		if err := request.Validate(); err != nil {
+			return err
+		}
+		return nil
+	}(); err != nil {
+		return res, errors.Wrap(err, "validate")
+	}
 	startTime := time.Now()
 	ctx, span := c.cfg.Tracer.Start(ctx, "OneofBug",
 		trace.WithAttributes(otelogen.OperationID("oneofBug")),
diff --git a/internal/sample_api/oas_json_gen.go b/internal/sample_api/oas_json_gen.go
index 7694aede..ee15b715 100644
--- a/internal/sample_api/oas_json_gen.go
+++ b/internal/sample_api/oas_json_gen.go
@@ -3117,12 +3117,22 @@ func (s OneOfBugs) Encode(e *jx.Writer) {
 		e.RawStr("\"additional-fields\"" + ":")
 		s.AdditionalMinusFields.Encode(e)
 	}
+	{
+		if s.OneOfMinusUUIDMinusIntMinusEnum.Set {
+			e.Comma()
+		}
+		if s.OneOfMinusUUIDMinusIntMinusEnum.Set {
+			e.RawStr("\"oneOf-uuid-int-enum\"" + ":")
+			s.OneOfMinusUUIDMinusIntMinusEnum.Encode(e)
+		}
+	}
 	e.ObjEnd()
 }
 
-var jsonFieldsNameOfOneOfBugs = [2]string{
+var jsonFieldsNameOfOneOfBugs = [3]string{
 	0: "issue143",
 	1: "additional-fields",
+	2: "oneOf-uuid-int-enum",
 }
 
 // Decode decodes OneOfBugs from json.
@@ -3154,6 +3164,16 @@ func (s *OneOfBugs) Decode(d *jx.Decoder) error {
 			}(); err != nil {
 				return errors.Wrap(err, "decode field \"additional-fields\"")
 			}
+		case "oneOf-uuid-int-enum":
+			if err := func() error {
+				s.OneOfMinusUUIDMinusIntMinusEnum.Reset()
+				if err := s.OneOfMinusUUIDMinusIntMinusEnum.Decode(d); err != nil {
+					return err
+				}
+				return nil
+			}(); err != nil {
+				return errors.Wrap(err, "decode field \"oneOf-uuid-int-enum\"")
+			}
 		default:
 			return d.Skip()
 		}
@@ -3197,6 +3217,60 @@ func (s *OneOfBugs) Decode(d *jx.Decoder) error {
 	return nil
 }
 
+// Encode encodes OneOfUUIDAndIntEnum as json.
+func (s OneOfUUIDAndIntEnum) Encode(e *jx.Writer) {
+	switch s.Type {
+	case UUIDOneOfUUIDAndIntEnum:
+		json.EncodeUUID(e, s.UUID)
+	case OneOfUUIDAndIntEnum1OneOfUUIDAndIntEnum:
+		s.OneOfUUIDAndIntEnum1.Encode(e)
+	}
+}
+
+// Decode decodes OneOfUUIDAndIntEnum from json.
+func (s *OneOfUUIDAndIntEnum) Decode(d *jx.Decoder) error {
+	if s == nil {
+		return errors.New("invalid: unable to decode OneOfUUIDAndIntEnum to nil")
+	}
+	// Sum type type_discriminator.
+	switch t := d.Next(); t {
+	case jx.String:
+		v, err := json.DecodeUUID(d)
+		s.UUID = v
+		if err != nil {
+			return err
+		}
+		s.Type = UUIDOneOfUUIDAndIntEnum
+	case jx.Number:
+		if err := s.OneOfUUIDAndIntEnum1.Decode(d); err != nil {
+			return err
+		}
+		s.Type = OneOfUUIDAndIntEnum1OneOfUUIDAndIntEnum
+	default:
+		return errors.Errorf("unexpected json type %q", t)
+	}
+	return nil
+}
+
+// Encode encodes OneOfUUIDAndIntEnum1 as json.
+func (s OneOfUUIDAndIntEnum1) Encode(e *jx.Writer) {
+	e.Int(int(s))
+}
+
+// Decode decodes OneOfUUIDAndIntEnum1 from json.
+func (s *OneOfUUIDAndIntEnum1) Decode(d *jx.Decoder) error {
+	if s == nil {
+		return errors.New("invalid: unable to decode OneOfUUIDAndIntEnum1 to nil")
+	}
+	v, err := d.Int()
+	if err != nil {
+		return err
+	}
+	*s = OneOfUUIDAndIntEnum1(v)
+
+	return nil
+}
+
 // Encode encodes OneVariantHasNoUniqueFields as json.
 func (s OneVariantHasNoUniqueFields) Encode(e *jx.Writer) {
 	switch s.Type {
@@ -4118,6 +4192,31 @@ func (o *OptNullableEnums) Decode(d *jx.Decoder) error {
 	}
 }
 
+// Encode encodes OneOfUUIDAndIntEnum as json.
+func (o OptOneOfUUIDAndIntEnum) Encode(e *jx.Writer) {
+	if !o.Set {
+		return
+	}
+	o.Value.Encode(e)
+}
+
+// Decode decodes OneOfUUIDAndIntEnum from json.
+func (o *OptOneOfUUIDAndIntEnum) Decode(d *jx.Decoder) error {
+	if o == nil {
+		return errors.New("invalid: unable to decode OptOneOfUUIDAndIntEnum to nil")
+	}
+	switch d.Next() {
+	case jx.String:
+		o.Set = true
+		if err := o.Value.Decode(d); err != nil {
+			return err
+		}
+		return nil
+	default:
+		return errors.Errorf("unexpected type %q while reading OptOneOfUUIDAndIntEnum", d.Next())
+	}
+}
+
 // Encode encodes Pet as json.
 func (o OptPet) Encode(e *jx.Writer) {
 	if !o.Set {
diff --git a/internal/sample_api/oas_req_dec_gen.go b/internal/sample_api/oas_req_dec_gen.go
index 6c7c4bee..f122da69 100644
--- a/internal/sample_api/oas_req_dec_gen.go
+++ b/internal/sample_api/oas_req_dec_gen.go
@@ -193,6 +193,14 @@ func decodeOneofBugRequest(r *http.Request, span trace.Span) (req OneOfBugs, err
 		}(); err != nil {
 			return req, errors.Wrap(err, "decode OneofBug:application/json request")
 		}
+		if err := func() error {
+			if err := request.Validate(); err != nil {
+				return err
+			}
+			return nil
+		}(); err != nil {
+			return req, errors.Wrap(err, "validate OneofBug request")
+		}
 		return request, nil
 	default:
 		return req, validate.InvalidContentType(ct)
diff --git a/internal/sample_api/oas_schemas_gen.go b/internal/sample_api/oas_schemas_gen.go
index bb626c4e..efd7867e 100644
--- a/internal/sample_api/oas_schemas_gen.go
+++ b/internal/sample_api/oas_schemas_gen.go
@@ -790,10 +790,85 @@ func (s OctetStreamEmptySchemaOK) Read(p []byte) (n int, err error) {
 
 // Ref: #/components/schemas/OneOfBugs
 type OneOfBugs struct {
-	Issue143              Issue143                    "json:\"issue143\""
-	AdditionalMinusFields OneVariantHasNoUniqueFields "json:\"additional-fields\""
+	Issue143                        Issue143                    "json:\"issue143\""
+	AdditionalMinusFields           OneVariantHasNoUniqueFields "json:\"additional-fields\""
+	OneOfMinusUUIDMinusIntMinusEnum OptOneOfUUIDAndIntEnum      "json:\"oneOf-uuid-int-enum\""
 }
 
+// Ref: #/components/schemas/OneOfUUIDAndIntEnum
+// OneOfUUIDAndIntEnum represents sum type.
+type OneOfUUIDAndIntEnum struct {
+	Type                 OneOfUUIDAndIntEnumType // switch on this field
+	UUID                 uuid.UUID
+	OneOfUUIDAndIntEnum1 OneOfUUIDAndIntEnum1
+}
+
+// OneOfUUIDAndIntEnumType is oneOf type of OneOfUUIDAndIntEnum.
+type OneOfUUIDAndIntEnumType string
+
+// Possible values for OneOfUUIDAndIntEnumType.
+const (
+	UUIDOneOfUUIDAndIntEnum                 OneOfUUIDAndIntEnumType = "uuid.UUID"
+	OneOfUUIDAndIntEnum1OneOfUUIDAndIntEnum OneOfUUIDAndIntEnumType = "OneOfUUIDAndIntEnum1"
+)
+
+// IsUUID reports whether OneOfUUIDAndIntEnum is uuid.UUID.
+func (s OneOfUUIDAndIntEnum) IsUUID() bool { return s.Type == UUIDOneOfUUIDAndIntEnum }
+
+// IsOneOfUUIDAndIntEnum1 reports whether OneOfUUIDAndIntEnum is OneOfUUIDAndIntEnum1.
+func (s OneOfUUIDAndIntEnum) IsOneOfUUIDAndIntEnum1() bool {
+	return s.Type == OneOfUUIDAndIntEnum1OneOfUUIDAndIntEnum
+}
+
+// SetUUID sets OneOfUUIDAndIntEnum to uuid.UUID.
+func (s *OneOfUUIDAndIntEnum) SetUUID(v uuid.UUID) {
+	s.Type = UUIDOneOfUUIDAndIntEnum
+	s.UUID = v
+}
+
+// GetUUID returns uuid.UUID and true boolean if OneOfUUIDAndIntEnum is uuid.UUID.
+func (s OneOfUUIDAndIntEnum) GetUUID() (v uuid.UUID, ok bool) {
+	if !s.IsUUID() {
+		return v, false
+	}
+	return s.UUID, true
+}
+
+// NewUUIDOneOfUUIDAndIntEnum returns new OneOfUUIDAndIntEnum from uuid.UUID.
+func NewUUIDOneOfUUIDAndIntEnum(v uuid.UUID) OneOfUUIDAndIntEnum {
+	var s OneOfUUIDAndIntEnum
+	s.SetUUID(v)
+	return s
+}
+
+// SetOneOfUUIDAndIntEnum1 sets OneOfUUIDAndIntEnum to OneOfUUIDAndIntEnum1.
+func (s *OneOfUUIDAndIntEnum) SetOneOfUUIDAndIntEnum1(v OneOfUUIDAndIntEnum1) {
+	s.Type = OneOfUUIDAndIntEnum1OneOfUUIDAndIntEnum
+	s.OneOfUUIDAndIntEnum1 = v
+}
+
+// GetOneOfUUIDAndIntEnum1 returns OneOfUUIDAndIntEnum1 and true boolean if OneOfUUIDAndIntEnum is OneOfUUIDAndIntEnum1.
+func (s OneOfUUIDAndIntEnum) GetOneOfUUIDAndIntEnum1() (v OneOfUUIDAndIntEnum1, ok bool) {
+	if !s.IsOneOfUUIDAndIntEnum1() {
+		return v, false
+	}
+	return s.OneOfUUIDAndIntEnum1, true
+}
+
+// NewOneOfUUIDAndIntEnum1OneOfUUIDAndIntEnum returns new OneOfUUIDAndIntEnum from OneOfUUIDAndIntEnum1.
+func NewOneOfUUIDAndIntEnum1OneOfUUIDAndIntEnum(v OneOfUUIDAndIntEnum1) OneOfUUIDAndIntEnum {
+	var s OneOfUUIDAndIntEnum
+	s.SetOneOfUUIDAndIntEnum1(v)
+	return s
+}
+
+type OneOfUUIDAndIntEnum1 int
+
+const (
+	OneOfUUIDAndIntEnum10 OneOfUUIDAndIntEnum1 = 0
+	OneOfUUIDAndIntEnum11 OneOfUUIDAndIntEnum1 = 1
+)
+
 // Ref: #/components/schemas/OneVariantHasNoUniqueFields
 // OneVariantHasNoUniqueFields represents sum type.
 type OneVariantHasNoUniqueFields struct {
@@ -1909,6 +1984,52 @@ func (o OptNullableEnums) Or(d NullableEnums) NullableEnums {
 	return d
 }
 
+// NewOptOneOfUUIDAndIntEnum returns new OptOneOfUUIDAndIntEnum with value set to v.
+func NewOptOneOfUUIDAndIntEnum(v OneOfUUIDAndIntEnum) OptOneOfUUIDAndIntEnum {
+	return OptOneOfUUIDAndIntEnum{
+		Value: v,
+		Set:   true,
+	}
+}
+
+// OptOneOfUUIDAndIntEnum is optional OneOfUUIDAndIntEnum.
+type OptOneOfUUIDAndIntEnum struct {
+	Value OneOfUUIDAndIntEnum
+	Set   bool
+}
+
+// IsSet returns true if OptOneOfUUIDAndIntEnum was set.
+func (o OptOneOfUUIDAndIntEnum) IsSet() bool { return o.Set }
+
+// Reset unsets value.
+func (o *OptOneOfUUIDAndIntEnum) Reset() {
+	var v OneOfUUIDAndIntEnum
+	o.Value = v
+	o.Set = false
+}
+
+// SetTo sets value to v.
+func (o *OptOneOfUUIDAndIntEnum) SetTo(v OneOfUUIDAndIntEnum) {
+	o.Set = true
+	o.Value = v
+}
+
+// Get returns value and boolean that denotes whether value was set.
+func (o OptOneOfUUIDAndIntEnum) Get() (v OneOfUUIDAndIntEnum, ok bool) {
+	if !o.Set {
+		return v, false
+	}
+	return o.Value, true
+}
+
+// Or returns value if set, or given parameter if does not.
+func (o OptOneOfUUIDAndIntEnum) Or(d OneOfUUIDAndIntEnum) OneOfUUIDAndIntEnum {
+	if v, ok := o.Get(); ok {
+		return v
+	}
+	return d
+}
+
 // NewOptPet returns new OptPet with value set to v.
 func NewOptPet(v Pet) OptPet {
 	return OptPet{
diff --git a/internal/sample_api/oas_validators_gen.go b/internal/sample_api/oas_validators_gen.go
index d6b411d5..10b7975d 100644
--- a/internal/sample_api/oas_validators_gen.go
+++ b/internal/sample_api/oas_validators_gen.go
@@ -489,6 +489,56 @@ func (s NullableEnumsOnlyNullable) Validate() error {
 		return errors.Errorf("invalid value: %v", s)
 	}
 }
+func (s OneOfBugs) Validate() error {
+	var failures []validate.FieldError
+	if err := func() error {
+		if s.OneOfMinusUUIDMinusIntMinusEnum.Set {
+			if err := func() error {
+				if err := s.OneOfMinusUUIDMinusIntMinusEnum.Value.Validate(); err != nil {
+					return err
+				}
+				return nil
+			}(); err != nil {
+				return err
+			}
+		}
+		return nil
+		return nil
+	}(); err != nil {
+		failures = append(failures, validate.FieldError{
+			Name:  "oneOf-uuid-int-enum",
+			Error: err,
+		})
+	}
+	if len(failures) > 0 {
+		return &validate.Error{Fields: failures}
+	}
+	return nil
+}
+func (s OneOfUUIDAndIntEnum) Validate() error {
+	switch s.Type {
+	case UUIDOneOfUUIDAndIntEnum:
+		return nil // no validation needed
+	case OneOfUUIDAndIntEnum1OneOfUUIDAndIntEnum:
+		if err := s.OneOfUUIDAndIntEnum1.Validate(); err != nil {
+			return err
+		}
+		return nil
+	default:
+		return errors.Errorf("invalid type %q", s.Type)
+	}
+}
+
+func (s OneOfUUIDAndIntEnum1) Validate() error {
+	switch s {
+	case 0:
+		return nil
+	case 1:
+		return nil
+	default:
+		return errors.Errorf("invalid value: %v", s)
+	}
+}
 
 func (s Pet) Validate() error {
 	var failures []validate.FieldError


Test patch:
diff --git a/_testdata/negative/same_json_type_one_of.json b/_testdata/negative/same_json_type_one_of.json
new file mode 100644
index 00000000..73f3263b
--- /dev/null
+++ b/_testdata/negative/same_json_type_one_of.json
@@ -0,0 +1,74 @@
+{
+  "openapi": "3.0.3",
+  "info": {
+    "title": "title",
+    "version": "v0.1.0"
+  },
+  "paths": {
+    "/healthz": {
+      "get": {
+        "operationId": "probeLiveness",
+        "description": "Liveness probe for kubernetes",
+        "responses": {
+          "200": {
+            "description": "User info",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "oneOf": [
+                    {
+                      "format": "uuid",
+                      "type": "string"
+                    },
+                    {
+                      "enum": [
+                        "inbox"
+                      ],
+                      "type": "string"
+                    }
+                  ]
+                }
+              }
+            }
+          },
+          "default": {
+            "$ref": "#/components/responses/Error"
+          }
+        }
+      }
+    }
+  },
+  "components": {
+    "schemas": {
+      "Error": {
+        "description": "Represents error object",
+        "type": "object",
+        "properties": {
+          "code": {
+            "type": "integer",
+            "format": "int64"
+          },
+          "message": {
+            "type": "string"
+          }
+        },
+        "required": [
+          "code",
+          "message"
+        ]
+      }
+    },
+    "responses": {
+      "Error": {
+        "description": "General Error",
+        "content": {
+          "application/json": {
+            "schema": {
+              "$ref": "#/components/schemas/Error"
+            }
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/_testdata/positive/sample.json b/_testdata/positive/sample.json
index bd78e605..fb1a3498 100644
--- a/_testdata/positive/sample.json
+++ b/_testdata/positive/sample.json
@@ -1323,6 +1323,9 @@
           },
           "additional-fields": {
             "$ref": "#/components/schemas/OneVariantHasNoUniqueFields"
+          },
+          "oneOf-uuid-int-enum": {
+            "$ref": "#/components/schemas/OneOfUUIDAndIntEnum"
           }
         }
       },
@@ -1339,6 +1342,20 @@
           }
         }
       },
+      "OneOfUUIDAndIntEnum": {
+        "oneOf": [
+          {
+            "format": "uuid",
+            "type": "string"
+          },
+          {
+            "enum": [
+              0, 1
+            ],
+            "type": "integer"
+          }
+        ]
+      },
       "DefaultTest": {
         "type": "object",
         "required": [