// Code generated by go-swagger; DO NOT EDIT. // // Copyright 2021 The Sigstore Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command import ( "bytes" "context" "encoding/json" "github.com/go-openapi/errors" "github.com/go-openapi/strfmt" "github.com/go-openapi/swag" "github.com/go-openapi/validate" ) // Alpine Alpine package // // swagger:model alpine type Alpine struct { // api version // Required: true // Pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ APIVersion *string `json:"apiVersion"` // spec // Required: true Spec AlpineSchema `json:"spec"` } // Kind gets the kind of this subtype func (m *Alpine) Kind() string { return "alpine" } // SetKind sets the kind of this subtype func (m *Alpine) SetKind(val string) { } // UnmarshalJSON unmarshals this object with a polymorphic type from a JSON structure func (m *Alpine) UnmarshalJSON(raw []byte) error { var data struct { // api version // Required: true // Pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ APIVersion *string `json:"apiVersion"` // spec // Required: true Spec AlpineSchema `json:"spec"` } buf := bytes.NewBuffer(raw) dec := json.NewDecoder(buf) dec.UseNumber() if err := dec.Decode(&data); err != nil { return err } var base struct { /* Just the base type fields. Used for unmashalling polymorphic types.*/ Kind string `json:"kind"` } buf = bytes.NewBuffer(raw) dec = json.NewDecoder(buf) dec.UseNumber() if err := dec.Decode(&base); err != nil { return err } var result Alpine if base.Kind != result.Kind() { /* Not the type we're looking for. */ return errors.New(422, "invalid kind value: %q", base.Kind) } result.APIVersion = data.APIVersion result.Spec = data.Spec *m = result return nil } // MarshalJSON marshals this object with a polymorphic type to a JSON structure func (m Alpine) MarshalJSON() ([]byte, error) { var b1, b2, b3 []byte var err error b1, err = json.Marshal(struct { // api version // Required: true // Pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ APIVersion *string `json:"apiVersion"` // spec // Required: true Spec AlpineSchema `json:"spec"` }{ APIVersion: m.APIVersion, Spec: m.Spec, }) if err != nil { return nil, err } b2, err = json.Marshal(struct { Kind string `json:"kind"` }{ Kind: m.Kind(), }) if err != nil { return nil, err } return swag.ConcatJSON(b1, b2, b3), nil } // Validate validates this alpine func (m *Alpine) Validate(formats strfmt.Registry) error { var res []error if err := m.validateAPIVersion(formats); err != nil { res = append(res, err) } if err := m.validateSpec(formats); err != nil { res = append(res, err) } if len(res) > 0 { return errors.CompositeValidationError(res...) } return nil } func (m *Alpine) validateAPIVersion(formats strfmt.Registry) error { if err := validate.Required("apiVersion", "body", m.APIVersion); err != nil { return err } if err := validate.Pattern("apiVersion", "body", *m.APIVersion, `^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$`); err != nil { return err } return nil } func (m *Alpine) validateSpec(formats strfmt.Registry) error { if m.Spec == nil { return errors.Required("spec", "body", nil) } return nil } // ContextValidate validate this alpine based on the context it is used func (m *Alpine) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if len(res) > 0 { return errors.CompositeValidationError(res...) } return nil } // MarshalBinary interface implementation func (m *Alpine) MarshalBinary() ([]byte, error) { if m == nil { return nil, nil } return swag.WriteJSON(m) } // UnmarshalBinary interface implementation func (m *Alpine) UnmarshalBinary(b []byte) error { var res Alpine if err := swag.ReadJSON(b, &res); err != nil { return err } *m = res return nil }