From be6bd87cb2eb8466d310b491bc5e3709f5c6d345 Mon Sep 17 00:00:00 2001 From: Marko Juraga Date: Fri, 22 Dec 2023 13:51:54 +0100 Subject: [PATCH] BUILD/MINOR: spec: fix spec allOf models to match OAPI specification --- models/bind.go | 37 ++--- models/global.go | 26 ++-- models/server.go | 39 ++--- models/server_template.go | 43 +++--- specification/build/haproxy_spec.yaml | 144 +++++++++--------- specification/models/configuration/bind.yaml | 39 +++-- .../models/configuration/global.yaml | 14 +- .../models/configuration/server.yaml | 91 ++++++----- 8 files changed, 217 insertions(+), 216 deletions(-) diff --git a/models/bind.go b/models/bind.go index 88d90fe8..fe1c2687 100644 --- a/models/bind.go +++ b/models/bind.go @@ -64,55 +64,55 @@ func (m *Bind) UnmarshalJSON(raw []byte) error { } m.BindParams = aO0 - // now for regular properties - var propsBind struct { + // AO1 + var dataAO1 struct { Address string `json:"address,omitempty"` Port *int64 `json:"port,omitempty"` PortRangeEnd *int64 `json:"port-range-end,omitempty"` } - if err := swag.ReadJSON(raw, &propsBind); err != nil { + if err := swag.ReadJSON(raw, &dataAO1); err != nil { return err } - m.Address = propsBind.Address - m.Port = propsBind.Port + m.Address = dataAO1.Address - m.PortRangeEnd = propsBind.PortRangeEnd + m.Port = dataAO1.Port + + m.PortRangeEnd = dataAO1.PortRangeEnd return nil } // MarshalJSON marshals this object to a JSON structure func (m Bind) MarshalJSON() ([]byte, error) { - _parts := make([][]byte, 0, 1) + _parts := make([][]byte, 0, 2) aO0, err := swag.WriteJSON(m.BindParams) if err != nil { return nil, err } _parts = append(_parts, aO0) - - // now for regular properties - var propsBind struct { + var dataAO1 struct { Address string `json:"address,omitempty"` Port *int64 `json:"port,omitempty"` PortRangeEnd *int64 `json:"port-range-end,omitempty"` } - propsBind.Address = m.Address - propsBind.Port = m.Port + dataAO1.Address = m.Address + + dataAO1.Port = m.Port - propsBind.PortRangeEnd = m.PortRangeEnd + dataAO1.PortRangeEnd = m.PortRangeEnd - jsonDataPropsBind, errBind := swag.WriteJSON(propsBind) - if errBind != nil { - return nil, errBind + jsonDataAO1, errAO1 := swag.WriteJSON(dataAO1) + if errAO1 != nil { + return nil, errAO1 } - _parts = append(_parts, jsonDataPropsBind) + _parts = append(_parts, jsonDataAO1) return swag.ConcatJSON(_parts...), nil } @@ -144,6 +144,7 @@ func (m *Bind) Validate(formats strfmt.Registry) error { } func (m *Bind) validateAddress(formats strfmt.Registry) error { + if swag.IsZero(m.Address) { // not required return nil } @@ -156,6 +157,7 @@ func (m *Bind) validateAddress(formats strfmt.Registry) error { } func (m *Bind) validatePort(formats strfmt.Registry) error { + if swag.IsZero(m.Port) { // not required return nil } @@ -172,6 +174,7 @@ func (m *Bind) validatePort(formats strfmt.Registry) error { } func (m *Bind) validatePortRangeEnd(formats strfmt.Registry) error { + if swag.IsZero(m.PortRangeEnd) { // not required return nil } diff --git a/models/global.go b/models/global.go index 3e6edf94..27e0cf46 100644 --- a/models/global.go +++ b/models/global.go @@ -2543,39 +2543,39 @@ func (m *RuntimeAPI) UnmarshalJSON(raw []byte) error { } m.BindParams = aO0 - // now for regular properties - var propsRuntimeAPI struct { + // AO1 + var dataAO1 struct { Address *string `json:"address"` } - if err := swag.ReadJSON(raw, &propsRuntimeAPI); err != nil { + if err := swag.ReadJSON(raw, &dataAO1); err != nil { return err } - m.Address = propsRuntimeAPI.Address + + m.Address = dataAO1.Address return nil } // MarshalJSON marshals this object to a JSON structure func (m RuntimeAPI) MarshalJSON() ([]byte, error) { - _parts := make([][]byte, 0, 1) + _parts := make([][]byte, 0, 2) aO0, err := swag.WriteJSON(m.BindParams) if err != nil { return nil, err } _parts = append(_parts, aO0) - - // now for regular properties - var propsRuntimeAPI struct { + var dataAO1 struct { Address *string `json:"address"` } - propsRuntimeAPI.Address = m.Address - jsonDataPropsRuntimeAPI, errRuntimeAPI := swag.WriteJSON(propsRuntimeAPI) - if errRuntimeAPI != nil { - return nil, errRuntimeAPI + dataAO1.Address = m.Address + + jsonDataAO1, errAO1 := swag.WriteJSON(dataAO1) + if errAO1 != nil { + return nil, errAO1 } - _parts = append(_parts, jsonDataPropsRuntimeAPI) + _parts = append(_parts, jsonDataAO1) return swag.ConcatJSON(_parts...), nil } diff --git a/models/server.go b/models/server.go index a247d8d8..a209364d 100644 --- a/models/server.go +++ b/models/server.go @@ -66,8 +66,8 @@ func (m *Server) UnmarshalJSON(raw []byte) error { } m.ServerParams = aO0 - // now for regular properties - var propsServer struct { + // AO1 + var dataAO1 struct { Address string `json:"address"` ID *int64 `json:"id,omitempty"` @@ -76,32 +76,31 @@ func (m *Server) UnmarshalJSON(raw []byte) error { Port *int64 `json:"port,omitempty"` } - if err := swag.ReadJSON(raw, &propsServer); err != nil { + if err := swag.ReadJSON(raw, &dataAO1); err != nil { return err } - m.Address = propsServer.Address - m.ID = propsServer.ID + m.Address = dataAO1.Address - m.Name = propsServer.Name + m.ID = dataAO1.ID - m.Port = propsServer.Port + m.Name = dataAO1.Name + + m.Port = dataAO1.Port return nil } // MarshalJSON marshals this object to a JSON structure func (m Server) MarshalJSON() ([]byte, error) { - _parts := make([][]byte, 0, 1) + _parts := make([][]byte, 0, 2) aO0, err := swag.WriteJSON(m.ServerParams) if err != nil { return nil, err } _parts = append(_parts, aO0) - - // now for regular properties - var propsServer struct { + var dataAO1 struct { Address string `json:"address"` ID *int64 `json:"id,omitempty"` @@ -110,19 +109,20 @@ func (m Server) MarshalJSON() ([]byte, error) { Port *int64 `json:"port,omitempty"` } - propsServer.Address = m.Address - propsServer.ID = m.ID + dataAO1.Address = m.Address - propsServer.Name = m.Name + dataAO1.ID = m.ID - propsServer.Port = m.Port + dataAO1.Name = m.Name - jsonDataPropsServer, errServer := swag.WriteJSON(propsServer) - if errServer != nil { - return nil, errServer + dataAO1.Port = m.Port + + jsonDataAO1, errAO1 := swag.WriteJSON(dataAO1) + if errAO1 != nil { + return nil, errAO1 } - _parts = append(_parts, jsonDataPropsServer) + _parts = append(_parts, jsonDataAO1) return swag.ConcatJSON(_parts...), nil } @@ -180,6 +180,7 @@ func (m *Server) validateName(formats strfmt.Registry) error { } func (m *Server) validatePort(formats strfmt.Registry) error { + if swag.IsZero(m.Port) { // not required return nil } diff --git a/models/server_template.go b/models/server_template.go index dbd3d62b..cc5f4ba5 100644 --- a/models/server_template.go +++ b/models/server_template.go @@ -69,8 +69,8 @@ func (m *ServerTemplate) UnmarshalJSON(raw []byte) error { } m.ServerParams = aO0 - // now for regular properties - var propsServerTemplate struct { + // AO1 + var dataAO1 struct { Fqdn string `json:"fqdn"` ID *int64 `json:"id,omitempty"` @@ -81,34 +81,33 @@ func (m *ServerTemplate) UnmarshalJSON(raw []byte) error { Prefix string `json:"prefix"` } - if err := swag.ReadJSON(raw, &propsServerTemplate); err != nil { + if err := swag.ReadJSON(raw, &dataAO1); err != nil { return err } - m.Fqdn = propsServerTemplate.Fqdn - m.ID = propsServerTemplate.ID + m.Fqdn = dataAO1.Fqdn - m.NumOrRange = propsServerTemplate.NumOrRange + m.ID = dataAO1.ID - m.Port = propsServerTemplate.Port + m.NumOrRange = dataAO1.NumOrRange - m.Prefix = propsServerTemplate.Prefix + m.Port = dataAO1.Port + + m.Prefix = dataAO1.Prefix return nil } // MarshalJSON marshals this object to a JSON structure func (m ServerTemplate) MarshalJSON() ([]byte, error) { - _parts := make([][]byte, 0, 1) + _parts := make([][]byte, 0, 2) aO0, err := swag.WriteJSON(m.ServerParams) if err != nil { return nil, err } _parts = append(_parts, aO0) - - // now for regular properties - var propsServerTemplate struct { + var dataAO1 struct { Fqdn string `json:"fqdn"` ID *int64 `json:"id,omitempty"` @@ -119,21 +118,22 @@ func (m ServerTemplate) MarshalJSON() ([]byte, error) { Prefix string `json:"prefix"` } - propsServerTemplate.Fqdn = m.Fqdn - propsServerTemplate.ID = m.ID + dataAO1.Fqdn = m.Fqdn - propsServerTemplate.NumOrRange = m.NumOrRange + dataAO1.ID = m.ID - propsServerTemplate.Port = m.Port + dataAO1.NumOrRange = m.NumOrRange - propsServerTemplate.Prefix = m.Prefix + dataAO1.Port = m.Port - jsonDataPropsServerTemplate, errServerTemplate := swag.WriteJSON(propsServerTemplate) - if errServerTemplate != nil { - return nil, errServerTemplate + dataAO1.Prefix = m.Prefix + + jsonDataAO1, errAO1 := swag.WriteJSON(dataAO1) + if errAO1 != nil { + return nil, errAO1 } - _parts = append(_parts, jsonDataPropsServerTemplate) + _parts = append(_parts, jsonDataAO1) return swag.ConcatJSON(_parts...), nil } @@ -187,6 +187,7 @@ func (m *ServerTemplate) validateNumOrRange(formats strfmt.Registry) error { } func (m *ServerTemplate) validatePort(formats strfmt.Registry) error { + if swag.IsZero(m.Port) { // not required return nil } diff --git a/specification/build/haproxy_spec.yaml b/specification/build/haproxy_spec.yaml index eb9216a1..114b25c8 100644 --- a/specification/build/haproxy_spec.yaml +++ b/specification/build/haproxy_spec.yaml @@ -1339,13 +1339,13 @@ definitions: items: allOf: - $ref: '#/definitions/bind_params' - properties: - address: - pattern: ^[^\s]+$ - type: string - required: - - address - type: object + - properties: + address: + pattern: ^[^\s]+$ + type: string + required: + - address + type: object x-go-name: RuntimeAPI type: array x-display-name: Runtime APIs @@ -3425,29 +3425,29 @@ definitions: items: $ref: "#/definitions/http_errors_section" bind: - additionalProperties: false allOf: - $ref: '#/definitions/bind_params' + - additionalProperties: false + properties: + address: + example: 127.0.0.1 + pattern: ^[^\s]+$ + type: string + port: + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + port-range-end: + example: 81 + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + type: object description: HAProxy frontend bind configuration - properties: - address: - example: 127.0.0.1 - pattern: ^[^\s]+$ - type: string - port: - example: 80 - maximum: 65535 - minimum: 1 - type: integer - x-nullable: true - port-range-end: - example: 81 - maximum: 65535 - minimum: 1 - type: integer - x-nullable: true title: Bind - type: object binds: title: Binds description: HAProxy frontend binds array (corresponds to bind directives) @@ -3458,33 +3458,33 @@ definitions: additionalProperties: false allOf: - $ref: '#/definitions/server_params' + - properties: + address: + pattern: ^[^\s]+$ + type: string + x-nullable: false + id: + type: integer + x-nullable: true + name: + pattern: ^[^\s]+$ + type: string + x-nullable: false + port: + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + required: + - name + - address + type: object description: HAProxy backend server configuration example: address: 10.1.1.1 name: www port: 8080 - properties: - address: - pattern: ^[^\s]+$ - type: string - x-nullable: false - id: - type: integer - x-nullable: true - name: - pattern: ^[^\s]+$ - type: string - x-nullable: false - port: - maximum: 65535 - minimum: 1 - type: integer - x-nullable: true - required: - - name - - address title: Server - type: object servers: title: Servers description: HAProxy backend servers array @@ -3495,37 +3495,37 @@ definitions: additionalProperties: false allOf: - $ref: '#/definitions/server_params' + - properties: + fqdn: + type: string + x-nullable: false + id: + type: integer + x-nullable: true + num_or_range: + type: string + x-nullable: false + port: + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + prefix: + pattern: ^[^\s]+$ + type: string + x-nullable: false + required: + - prefix + - num_or_range + - fqdn + type: object description: Set a template to initialize servers with shared parameters. example: fqdn: google.com num_or_range: 1-3 port: 80 prefix: srv - properties: - fqdn: - type: string - x-nullable: false - id: - type: integer - x-nullable: true - num_or_range: - type: string - x-nullable: false - port: - maximum: 65535 - minimum: 1 - type: integer - x-nullable: true - prefix: - pattern: ^[^\s]+$ - type: string - x-nullable: false - required: - - prefix - - num_or_range - - fqdn title: Server template - type: object server_templates: title: Server templates description: HAProxy backend server templates array @@ -8902,7 +8902,6 @@ definitions: allOf: - $ref: '#/definitions/server_params' title: Default Server - type: object httpchk_params: properties: method: @@ -9748,7 +9747,6 @@ definitions: - $ref: '#/definitions/bind_params' description: HAProxy default bind configuration title: Default Bind - type: object table: properties: expire: diff --git a/specification/models/configuration/bind.yaml b/specification/models/configuration/bind.yaml index a4823b9a..667c21c4 100644 --- a/specification/models/configuration/bind.yaml +++ b/specification/models/configuration/bind.yaml @@ -2,30 +2,29 @@ bind: title: Bind description: HAProxy frontend bind configuration - type: object - properties: - address: - type: string - pattern: '^[^\s]+$' - example: 127.0.0.1 - port: - maximum: 65535 - minimum: 1 - type: integer - x-nullable: true - example: 80 - port-range-end: - maximum: 65535 - minimum: 1 - type: integer - x-nullable: true - example: 81 allOf: - $ref: '#/definitions/bind_params' - additionalProperties: false + - type: object + properties: + address: + type: string + pattern: '^[^\s]+$' + example: 127.0.0.1 + port: + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + example: 80 + port-range-end: + maximum: 65535 + minimum: 1 + type: integer + x-nullable: true + example: 81 + additionalProperties: false default_bind: title: Default Bind description: HAProxy default bind configuration - type: object allOf: - $ref: '#/definitions/bind_params' diff --git a/specification/models/configuration/global.yaml b/specification/models/configuration/global.yaml index 0deba131..82b464ca 100644 --- a/specification/models/configuration/global.yaml +++ b/specification/models/configuration/global.yaml @@ -590,16 +590,16 @@ global: x-display-name: Runtime APIs x-go-name: RuntimeAPIs items: - type: object x-go-name: RuntimeAPI - required: - - address - properties: - address: - type: string - pattern: '^[^\s]+$' allOf: - $ref: '#/definitions/bind_params' + - type: object + required: + - address + properties: + address: + type: string + pattern: '^[^\s]+$' stats_timeout: type: integer x-nullable: true diff --git a/specification/models/configuration/server.yaml b/specification/models/configuration/server.yaml index 846abdf7..98cbacee 100644 --- a/specification/models/configuration/server.yaml +++ b/specification/models/configuration/server.yaml @@ -2,29 +2,29 @@ server: title: Server description: HAProxy backend server configuration - type: object - required: - - name - - address - properties: - name: - type: string - pattern: '^[^\s]+$' - x-nullable: false - address: - type: string - pattern: '^[^\s]+$' - x-nullable: false - port: - type: integer - x-nullable: true - minimum: 1 - maximum: 65535 - id: - type: integer - x-nullable: true allOf: - $ref: '#/definitions/server_params' + - type: object + required: + - name + - address + properties: + name: + type: string + pattern: '^[^\s]+$' + x-nullable: false + address: + type: string + pattern: '^[^\s]+$' + x-nullable: false + port: + type: integer + x-nullable: true + minimum: 1 + maximum: 65535 + id: + type: integer + x-nullable: true additionalProperties: false example: name: www @@ -33,32 +33,32 @@ server: server_template: title: Server template description: Set a template to initialize servers with shared parameters. - type: object - required: - - prefix - - num_or_range - - fqdn - properties: - prefix: - type: string - pattern: '^[^\s]+$' - x-nullable: false - num_or_range: - type: string - x-nullable: false - fqdn: - type: string - x-nullable: false - port: - type: integer - x-nullable: true - minimum: 1 - maximum: 65535 - id: - type: integer - x-nullable: true allOf: - $ref: '#/definitions/server_params' + - type: object + required: + - prefix + - num_or_range + - fqdn + properties: + prefix: + type: string + pattern: '^[^\s]+$' + x-nullable: false + num_or_range: + type: string + x-nullable: false + fqdn: + type: string + x-nullable: false + port: + type: integer + x-nullable: true + minimum: 1 + maximum: 65535 + id: + type: integer + x-nullable: true additionalProperties: false example: prefix: srv @@ -67,6 +67,5 @@ server_template: port: 80 default_server: title: Default Server - type: object allOf: - $ref: '#/definitions/server_params'