blob: 68d1c690ab25d1a408cf6c1d1c551289fa092fff [file] [log] [blame]
Serge Bazanskicc25bdf2018-10-25 14:02:58 +02001// Code generated by go-swagger; DO NOT EDIT.
2
3// Copyright 2018 The go-netbox Authors.
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16
17package models
18
19// This file was generated by the swagger tool.
20// Editing this file might prove futile when you re-run the swagger generate command
21
22import (
23 "encoding/json"
24
25 strfmt "github.com/go-openapi/strfmt"
26
27 "github.com/go-openapi/errors"
28 "github.com/go-openapi/swag"
29 "github.com/go-openapi/validate"
30)
31
32// WritableDeviceType writable device type
33// swagger:model WritableDeviceType
34type WritableDeviceType struct {
35
36 // Comments
37 Comments string `json:"comments,omitempty"`
38
39 // Custom fields
40 CustomFields interface{} `json:"custom_fields,omitempty"`
41
42 // ID
43 // Read Only: true
44 ID int64 `json:"id,omitempty"`
45
46 // Interface ordering
47 InterfaceOrdering int64 `json:"interface_ordering,omitempty"`
48
49 // Is a console server
50 //
51 // This type of device has console server ports
52 IsConsoleServer bool `json:"is_console_server,omitempty"`
53
54 // Is full depth
55 //
56 // Device consumes both front and rear rack faces
57 IsFullDepth bool `json:"is_full_depth,omitempty"`
58
59 // Is a network device
60 //
61 // This type of device has network interfaces
62 IsNetworkDevice bool `json:"is_network_device,omitempty"`
63
64 // Is a PDU
65 //
66 // This type of device has power outlets
67 IsPdu bool `json:"is_pdu,omitempty"`
68
69 // Manufacturer
70 // Required: true
71 Manufacturer *int64 `json:"manufacturer"`
72
73 // Model
74 // Required: true
75 // Max Length: 50
76 Model *string `json:"model"`
77
78 // Part number
79 //
80 // Discrete part number (optional)
81 // Max Length: 50
82 PartNumber string `json:"part_number,omitempty"`
83
84 // Slug
85 // Required: true
86 // Max Length: 50
87 // Pattern: ^[-a-zA-Z0-9_]+$
88 Slug *string `json:"slug"`
89
90 // Parent/child status
91 //
92 // Parent devices house child devices in device bays. Select "None" if this device type is neither a parent nor a child.
93 SubdeviceRole *bool `json:"subdevice_role,omitempty"`
94
95 // Height (U)
96 // Maximum: 32767
97 // Minimum: 0
98 UHeight *int64 `json:"u_height,omitempty"`
99}
100
101// Validate validates this writable device type
102func (m *WritableDeviceType) Validate(formats strfmt.Registry) error {
103 var res []error
104
105 if err := m.validateInterfaceOrdering(formats); err != nil {
106 // prop
107 res = append(res, err)
108 }
109
110 if err := m.validateManufacturer(formats); err != nil {
111 // prop
112 res = append(res, err)
113 }
114
115 if err := m.validateModel(formats); err != nil {
116 // prop
117 res = append(res, err)
118 }
119
120 if err := m.validatePartNumber(formats); err != nil {
121 // prop
122 res = append(res, err)
123 }
124
125 if err := m.validateSlug(formats); err != nil {
126 // prop
127 res = append(res, err)
128 }
129
130 if err := m.validateSubdeviceRole(formats); err != nil {
131 // prop
132 res = append(res, err)
133 }
134
135 if err := m.validateUHeight(formats); err != nil {
136 // prop
137 res = append(res, err)
138 }
139
140 if len(res) > 0 {
141 return errors.CompositeValidationError(res...)
142 }
143 return nil
144}
145
146var writableDeviceTypeTypeInterfaceOrderingPropEnum []interface{}
147
148func init() {
149 var res []int64
150 if err := json.Unmarshal([]byte(`[1,2]`), &res); err != nil {
151 panic(err)
152 }
153 for _, v := range res {
154 writableDeviceTypeTypeInterfaceOrderingPropEnum = append(writableDeviceTypeTypeInterfaceOrderingPropEnum, v)
155 }
156}
157
158// prop value enum
159func (m *WritableDeviceType) validateInterfaceOrderingEnum(path, location string, value int64) error {
160 if err := validate.Enum(path, location, value, writableDeviceTypeTypeInterfaceOrderingPropEnum); err != nil {
161 return err
162 }
163 return nil
164}
165
166func (m *WritableDeviceType) validateInterfaceOrdering(formats strfmt.Registry) error {
167
168 if swag.IsZero(m.InterfaceOrdering) { // not required
169 return nil
170 }
171
172 // value enum
173 if err := m.validateInterfaceOrderingEnum("interface_ordering", "body", m.InterfaceOrdering); err != nil {
174 return err
175 }
176
177 return nil
178}
179
180func (m *WritableDeviceType) validateManufacturer(formats strfmt.Registry) error {
181
182 if err := validate.Required("manufacturer", "body", m.Manufacturer); err != nil {
183 return err
184 }
185
186 return nil
187}
188
189func (m *WritableDeviceType) validateModel(formats strfmt.Registry) error {
190
191 if err := validate.Required("model", "body", m.Model); err != nil {
192 return err
193 }
194
195 if err := validate.MaxLength("model", "body", string(*m.Model), 50); err != nil {
196 return err
197 }
198
199 return nil
200}
201
202func (m *WritableDeviceType) validatePartNumber(formats strfmt.Registry) error {
203
204 if swag.IsZero(m.PartNumber) { // not required
205 return nil
206 }
207
208 if err := validate.MaxLength("part_number", "body", string(m.PartNumber), 50); err != nil {
209 return err
210 }
211
212 return nil
213}
214
215func (m *WritableDeviceType) validateSlug(formats strfmt.Registry) error {
216
217 if err := validate.Required("slug", "body", m.Slug); err != nil {
218 return err
219 }
220
221 if err := validate.MaxLength("slug", "body", string(*m.Slug), 50); err != nil {
222 return err
223 }
224
225 if err := validate.Pattern("slug", "body", string(*m.Slug), `^[-a-zA-Z0-9_]+$`); err != nil {
226 return err
227 }
228
229 return nil
230}
231
232var writableDeviceTypeTypeSubdeviceRolePropEnum []interface{}
233
234func init() {
235 var res []bool
236 if err := json.Unmarshal([]byte(`[null,true,false]`), &res); err != nil {
237 panic(err)
238 }
239 for _, v := range res {
240 writableDeviceTypeTypeSubdeviceRolePropEnum = append(writableDeviceTypeTypeSubdeviceRolePropEnum, v)
241 }
242}
243
244// prop value enum
245func (m *WritableDeviceType) validateSubdeviceRoleEnum(path, location string, value bool) error {
246 if err := validate.Enum(path, location, value, writableDeviceTypeTypeSubdeviceRolePropEnum); err != nil {
247 return err
248 }
249 return nil
250}
251
252func (m *WritableDeviceType) validateSubdeviceRole(formats strfmt.Registry) error {
253
254 if swag.IsZero(m.SubdeviceRole) { // not required
255 return nil
256 }
257
258 // value enum
259 if err := m.validateSubdeviceRoleEnum("subdevice_role", "body", *m.SubdeviceRole); err != nil {
260 return err
261 }
262
263 return nil
264}
265
266func (m *WritableDeviceType) validateUHeight(formats strfmt.Registry) error {
267
268 if swag.IsZero(m.UHeight) { // not required
269 return nil
270 }
271
272 if err := validate.MinimumInt("u_height", "body", int64(*m.UHeight), 0, false); err != nil {
273 return err
274 }
275
276 if err := validate.MaximumInt("u_height", "body", int64(*m.UHeight), 32767, false); err != nil {
277 return err
278 }
279
280 return nil
281}
282
283// MarshalBinary interface implementation
284func (m *WritableDeviceType) MarshalBinary() ([]byte, error) {
285 if m == nil {
286 return nil, nil
287 }
288 return swag.WriteJSON(m)
289}
290
291// UnmarshalBinary interface implementation
292func (m *WritableDeviceType) UnmarshalBinary(b []byte) error {
293 var res WritableDeviceType
294 if err := swag.ReadJSON(b, &res); err != nil {
295 return err
296 }
297 *m = res
298 return nil
299}