github.com/hashicorp/hcp-sdk-go@v0.94.0/clients/cloud-billing/preview/2020-11-05/models/billing20201105_available_package.go (about) 1 // Code generated by go-swagger; DO NOT EDIT. 2 3 package models 4 5 // This file was generated by the swagger tool. 6 // Editing this file might prove futile when you re-run the swagger generate command 7 8 import ( 9 "context" 10 "strconv" 11 12 "github.com/go-openapi/errors" 13 "github.com/go-openapi/strfmt" 14 "github.com/go-openapi/swag" 15 ) 16 17 // Billing20201105AvailablePackage Package represents a set of product offerings an end user could sign-up for. 18 // 19 // swagger:model billing_20201105AvailablePackage 20 type Billing20201105AvailablePackage struct { 21 22 // items represents the contents of the package as a collection of PackageItem. 23 Items []*Billing20201105PackageItem `json:"items"` 24 25 // key is the Package's identifier. 26 Key string `json:"key,omitempty"` 27 28 // resource_type is the identifier for the resource this package represents an offering for. 29 ResourceType string `json:"resource_type,omitempty"` 30 } 31 32 // Validate validates this billing 20201105 available package 33 func (m *Billing20201105AvailablePackage) Validate(formats strfmt.Registry) error { 34 var res []error 35 36 if err := m.validateItems(formats); err != nil { 37 res = append(res, err) 38 } 39 40 if len(res) > 0 { 41 return errors.CompositeValidationError(res...) 42 } 43 return nil 44 } 45 46 func (m *Billing20201105AvailablePackage) validateItems(formats strfmt.Registry) error { 47 if swag.IsZero(m.Items) { // not required 48 return nil 49 } 50 51 for i := 0; i < len(m.Items); i++ { 52 if swag.IsZero(m.Items[i]) { // not required 53 continue 54 } 55 56 if m.Items[i] != nil { 57 if err := m.Items[i].Validate(formats); err != nil { 58 if ve, ok := err.(*errors.Validation); ok { 59 return ve.ValidateName("items" + "." + strconv.Itoa(i)) 60 } else if ce, ok := err.(*errors.CompositeError); ok { 61 return ce.ValidateName("items" + "." + strconv.Itoa(i)) 62 } 63 return err 64 } 65 } 66 67 } 68 69 return nil 70 } 71 72 // ContextValidate validate this billing 20201105 available package based on the context it is used 73 func (m *Billing20201105AvailablePackage) ContextValidate(ctx context.Context, formats strfmt.Registry) error { 74 var res []error 75 76 if err := m.contextValidateItems(ctx, formats); err != nil { 77 res = append(res, err) 78 } 79 80 if len(res) > 0 { 81 return errors.CompositeValidationError(res...) 82 } 83 return nil 84 } 85 86 func (m *Billing20201105AvailablePackage) contextValidateItems(ctx context.Context, formats strfmt.Registry) error { 87 88 for i := 0; i < len(m.Items); i++ { 89 90 if m.Items[i] != nil { 91 if err := m.Items[i].ContextValidate(ctx, formats); err != nil { 92 if ve, ok := err.(*errors.Validation); ok { 93 return ve.ValidateName("items" + "." + strconv.Itoa(i)) 94 } else if ce, ok := err.(*errors.CompositeError); ok { 95 return ce.ValidateName("items" + "." + strconv.Itoa(i)) 96 } 97 return err 98 } 99 } 100 101 } 102 103 return nil 104 } 105 106 // MarshalBinary interface implementation 107 func (m *Billing20201105AvailablePackage) MarshalBinary() ([]byte, error) { 108 if m == nil { 109 return nil, nil 110 } 111 return swag.WriteJSON(m) 112 } 113 114 // UnmarshalBinary interface implementation 115 func (m *Billing20201105AvailablePackage) UnmarshalBinary(b []byte) error { 116 var res Billing20201105AvailablePackage 117 if err := swag.ReadJSON(b, &res); err != nil { 118 return err 119 } 120 *m = res 121 return nil 122 }