github.com/digitalocean/go-netbox@v0.0.2/netbox/models/writable_power_outlet.go (about)

     1  // Code generated by go-swagger; DO NOT EDIT.
     2  
     3  // Copyright 2020 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  //
    17  
    18  package models
    19  
    20  // This file was generated by the swagger tool.
    21  // Editing this file might prove futile when you re-run the swagger generate command
    22  
    23  import (
    24  	"context"
    25  	"encoding/json"
    26  	"strconv"
    27  
    28  	"github.com/go-openapi/errors"
    29  	"github.com/go-openapi/strfmt"
    30  	"github.com/go-openapi/swag"
    31  	"github.com/go-openapi/validate"
    32  )
    33  
    34  // WritablePowerOutlet writable power outlet
    35  //
    36  // swagger:model WritablePowerOutlet
    37  type WritablePowerOutlet struct {
    38  
    39  	// occupied
    40  	// Read Only: true
    41  	Occupied *bool `json:"_occupied,omitempty"`
    42  
    43  	// cable
    44  	Cable *NestedCable `json:"cable,omitempty"`
    45  
    46  	// Cable peer
    47  	//
    48  	//
    49  	// Return the appropriate serializer for the cable termination model.
    50  	//
    51  	// Read Only: true
    52  	CablePeer map[string]*string `json:"cable_peer,omitempty"`
    53  
    54  	// Cable peer type
    55  	// Read Only: true
    56  	CablePeerType string `json:"cable_peer_type,omitempty"`
    57  
    58  	// Connected endpoint
    59  	//
    60  	//
    61  	// Return the appropriate serializer for the type of connected object.
    62  	//
    63  	// Read Only: true
    64  	ConnectedEndpoint map[string]*string `json:"connected_endpoint,omitempty"`
    65  
    66  	// Connected endpoint reachable
    67  	// Read Only: true
    68  	ConnectedEndpointReachable *bool `json:"connected_endpoint_reachable,omitempty"`
    69  
    70  	// Connected endpoint type
    71  	// Read Only: true
    72  	ConnectedEndpointType string `json:"connected_endpoint_type,omitempty"`
    73  
    74  	// Created
    75  	// Read Only: true
    76  	// Format: date
    77  	Created strfmt.Date `json:"created,omitempty"`
    78  
    79  	// Custom fields
    80  	CustomFields interface{} `json:"custom_fields,omitempty"`
    81  
    82  	// Description
    83  	// Max Length: 200
    84  	Description string `json:"description,omitempty"`
    85  
    86  	// Device
    87  	// Required: true
    88  	Device *int64 `json:"device"`
    89  
    90  	// Display
    91  	// Read Only: true
    92  	Display string `json:"display,omitempty"`
    93  
    94  	// Feed leg
    95  	//
    96  	// Phase (for three-phase feeds)
    97  	// Enum: [A B C]
    98  	FeedLeg string `json:"feed_leg,omitempty"`
    99  
   100  	// Id
   101  	// Read Only: true
   102  	ID int64 `json:"id,omitempty"`
   103  
   104  	// Label
   105  	//
   106  	// Physical label
   107  	// Max Length: 64
   108  	Label string `json:"label,omitempty"`
   109  
   110  	// Last updated
   111  	// Read Only: true
   112  	// Format: date-time
   113  	LastUpdated strfmt.DateTime `json:"last_updated,omitempty"`
   114  
   115  	// Mark connected
   116  	//
   117  	// Treat as if a cable is connected
   118  	MarkConnected bool `json:"mark_connected,omitempty"`
   119  
   120  	// Name
   121  	// Required: true
   122  	// Max Length: 64
   123  	// Min Length: 1
   124  	Name *string `json:"name"`
   125  
   126  	// Power port
   127  	PowerPort *int64 `json:"power_port,omitempty"`
   128  
   129  	// tags
   130  	Tags []*NestedTag `json:"tags"`
   131  
   132  	// Type
   133  	//
   134  	// Physical port type
   135  	// Enum: [iec-60320-c5 iec-60320-c7 iec-60320-c13 iec-60320-c15 iec-60320-c19 iec-60320-c21 iec-60309-p-n-e-4h iec-60309-p-n-e-6h iec-60309-p-n-e-9h iec-60309-2p-e-4h iec-60309-2p-e-6h iec-60309-2p-e-9h iec-60309-3p-e-4h iec-60309-3p-e-6h iec-60309-3p-e-9h iec-60309-3p-n-e-4h iec-60309-3p-n-e-6h iec-60309-3p-n-e-9h nema-1-15r nema-5-15r nema-5-20r nema-5-30r nema-5-50r nema-6-15r nema-6-20r nema-6-30r nema-6-50r nema-10-30r nema-10-50r nema-14-20r nema-14-30r nema-14-50r nema-14-60r nema-15-15r nema-15-20r nema-15-30r nema-15-50r nema-15-60r nema-l1-15r nema-l5-15r nema-l5-20r nema-l5-30r nema-l5-50r nema-l6-15r nema-l6-20r nema-l6-30r nema-l6-50r nema-l10-30r nema-l14-20r nema-l14-30r nema-l14-50r nema-l14-60r nema-l15-20r nema-l15-30r nema-l15-50r nema-l15-60r nema-l21-20r nema-l21-30r CS6360C CS6364C CS8164C CS8264C CS8364C CS8464C ita-e ita-f ita-g ita-h ita-i ita-j ita-k ita-l ita-m ita-n ita-o usb-a usb-micro-b usb-c dc-terminal hdot-cx saf-d-grid]
   136  	Type string `json:"type,omitempty"`
   137  
   138  	// Url
   139  	// Read Only: true
   140  	// Format: uri
   141  	URL strfmt.URI `json:"url,omitempty"`
   142  }
   143  
   144  // Validate validates this writable power outlet
   145  func (m *WritablePowerOutlet) Validate(formats strfmt.Registry) error {
   146  	var res []error
   147  
   148  	if err := m.validateCable(formats); err != nil {
   149  		res = append(res, err)
   150  	}
   151  
   152  	if err := m.validateCreated(formats); err != nil {
   153  		res = append(res, err)
   154  	}
   155  
   156  	if err := m.validateDescription(formats); err != nil {
   157  		res = append(res, err)
   158  	}
   159  
   160  	if err := m.validateDevice(formats); err != nil {
   161  		res = append(res, err)
   162  	}
   163  
   164  	if err := m.validateFeedLeg(formats); err != nil {
   165  		res = append(res, err)
   166  	}
   167  
   168  	if err := m.validateLabel(formats); err != nil {
   169  		res = append(res, err)
   170  	}
   171  
   172  	if err := m.validateLastUpdated(formats); err != nil {
   173  		res = append(res, err)
   174  	}
   175  
   176  	if err := m.validateName(formats); err != nil {
   177  		res = append(res, err)
   178  	}
   179  
   180  	if err := m.validateTags(formats); err != nil {
   181  		res = append(res, err)
   182  	}
   183  
   184  	if err := m.validateType(formats); err != nil {
   185  		res = append(res, err)
   186  	}
   187  
   188  	if err := m.validateURL(formats); err != nil {
   189  		res = append(res, err)
   190  	}
   191  
   192  	if len(res) > 0 {
   193  		return errors.CompositeValidationError(res...)
   194  	}
   195  	return nil
   196  }
   197  
   198  func (m *WritablePowerOutlet) validateCable(formats strfmt.Registry) error {
   199  	if swag.IsZero(m.Cable) { // not required
   200  		return nil
   201  	}
   202  
   203  	if m.Cable != nil {
   204  		if err := m.Cable.Validate(formats); err != nil {
   205  			if ve, ok := err.(*errors.Validation); ok {
   206  				return ve.ValidateName("cable")
   207  			} else if ce, ok := err.(*errors.CompositeError); ok {
   208  				return ce.ValidateName("cable")
   209  			}
   210  			return err
   211  		}
   212  	}
   213  
   214  	return nil
   215  }
   216  
   217  func (m *WritablePowerOutlet) validateCreated(formats strfmt.Registry) error {
   218  	if swag.IsZero(m.Created) { // not required
   219  		return nil
   220  	}
   221  
   222  	if err := validate.FormatOf("created", "body", "date", m.Created.String(), formats); err != nil {
   223  		return err
   224  	}
   225  
   226  	return nil
   227  }
   228  
   229  func (m *WritablePowerOutlet) validateDescription(formats strfmt.Registry) error {
   230  	if swag.IsZero(m.Description) { // not required
   231  		return nil
   232  	}
   233  
   234  	if err := validate.MaxLength("description", "body", m.Description, 200); err != nil {
   235  		return err
   236  	}
   237  
   238  	return nil
   239  }
   240  
   241  func (m *WritablePowerOutlet) validateDevice(formats strfmt.Registry) error {
   242  
   243  	if err := validate.Required("device", "body", m.Device); err != nil {
   244  		return err
   245  	}
   246  
   247  	return nil
   248  }
   249  
   250  var writablePowerOutletTypeFeedLegPropEnum []interface{}
   251  
   252  func init() {
   253  	var res []string
   254  	if err := json.Unmarshal([]byte(`["A","B","C"]`), &res); err != nil {
   255  		panic(err)
   256  	}
   257  	for _, v := range res {
   258  		writablePowerOutletTypeFeedLegPropEnum = append(writablePowerOutletTypeFeedLegPropEnum, v)
   259  	}
   260  }
   261  
   262  const (
   263  
   264  	// WritablePowerOutletFeedLegA captures enum value "A"
   265  	WritablePowerOutletFeedLegA string = "A"
   266  
   267  	// WritablePowerOutletFeedLegB captures enum value "B"
   268  	WritablePowerOutletFeedLegB string = "B"
   269  
   270  	// WritablePowerOutletFeedLegC captures enum value "C"
   271  	WritablePowerOutletFeedLegC string = "C"
   272  )
   273  
   274  // prop value enum
   275  func (m *WritablePowerOutlet) validateFeedLegEnum(path, location string, value string) error {
   276  	if err := validate.EnumCase(path, location, value, writablePowerOutletTypeFeedLegPropEnum, true); err != nil {
   277  		return err
   278  	}
   279  	return nil
   280  }
   281  
   282  func (m *WritablePowerOutlet) validateFeedLeg(formats strfmt.Registry) error {
   283  	if swag.IsZero(m.FeedLeg) { // not required
   284  		return nil
   285  	}
   286  
   287  	// value enum
   288  	if err := m.validateFeedLegEnum("feed_leg", "body", m.FeedLeg); err != nil {
   289  		return err
   290  	}
   291  
   292  	return nil
   293  }
   294  
   295  func (m *WritablePowerOutlet) validateLabel(formats strfmt.Registry) error {
   296  	if swag.IsZero(m.Label) { // not required
   297  		return nil
   298  	}
   299  
   300  	if err := validate.MaxLength("label", "body", m.Label, 64); err != nil {
   301  		return err
   302  	}
   303  
   304  	return nil
   305  }
   306  
   307  func (m *WritablePowerOutlet) validateLastUpdated(formats strfmt.Registry) error {
   308  	if swag.IsZero(m.LastUpdated) { // not required
   309  		return nil
   310  	}
   311  
   312  	if err := validate.FormatOf("last_updated", "body", "date-time", m.LastUpdated.String(), formats); err != nil {
   313  		return err
   314  	}
   315  
   316  	return nil
   317  }
   318  
   319  func (m *WritablePowerOutlet) validateName(formats strfmt.Registry) error {
   320  
   321  	if err := validate.Required("name", "body", m.Name); err != nil {
   322  		return err
   323  	}
   324  
   325  	if err := validate.MinLength("name", "body", *m.Name, 1); err != nil {
   326  		return err
   327  	}
   328  
   329  	if err := validate.MaxLength("name", "body", *m.Name, 64); err != nil {
   330  		return err
   331  	}
   332  
   333  	return nil
   334  }
   335  
   336  func (m *WritablePowerOutlet) validateTags(formats strfmt.Registry) error {
   337  	if swag.IsZero(m.Tags) { // not required
   338  		return nil
   339  	}
   340  
   341  	for i := 0; i < len(m.Tags); i++ {
   342  		if swag.IsZero(m.Tags[i]) { // not required
   343  			continue
   344  		}
   345  
   346  		if m.Tags[i] != nil {
   347  			if err := m.Tags[i].Validate(formats); err != nil {
   348  				if ve, ok := err.(*errors.Validation); ok {
   349  					return ve.ValidateName("tags" + "." + strconv.Itoa(i))
   350  				} else if ce, ok := err.(*errors.CompositeError); ok {
   351  					return ce.ValidateName("tags" + "." + strconv.Itoa(i))
   352  				}
   353  				return err
   354  			}
   355  		}
   356  
   357  	}
   358  
   359  	return nil
   360  }
   361  
   362  var writablePowerOutletTypeTypePropEnum []interface{}
   363  
   364  func init() {
   365  	var res []string
   366  	if err := json.Unmarshal([]byte(`["iec-60320-c5","iec-60320-c7","iec-60320-c13","iec-60320-c15","iec-60320-c19","iec-60320-c21","iec-60309-p-n-e-4h","iec-60309-p-n-e-6h","iec-60309-p-n-e-9h","iec-60309-2p-e-4h","iec-60309-2p-e-6h","iec-60309-2p-e-9h","iec-60309-3p-e-4h","iec-60309-3p-e-6h","iec-60309-3p-e-9h","iec-60309-3p-n-e-4h","iec-60309-3p-n-e-6h","iec-60309-3p-n-e-9h","nema-1-15r","nema-5-15r","nema-5-20r","nema-5-30r","nema-5-50r","nema-6-15r","nema-6-20r","nema-6-30r","nema-6-50r","nema-10-30r","nema-10-50r","nema-14-20r","nema-14-30r","nema-14-50r","nema-14-60r","nema-15-15r","nema-15-20r","nema-15-30r","nema-15-50r","nema-15-60r","nema-l1-15r","nema-l5-15r","nema-l5-20r","nema-l5-30r","nema-l5-50r","nema-l6-15r","nema-l6-20r","nema-l6-30r","nema-l6-50r","nema-l10-30r","nema-l14-20r","nema-l14-30r","nema-l14-50r","nema-l14-60r","nema-l15-20r","nema-l15-30r","nema-l15-50r","nema-l15-60r","nema-l21-20r","nema-l21-30r","CS6360C","CS6364C","CS8164C","CS8264C","CS8364C","CS8464C","ita-e","ita-f","ita-g","ita-h","ita-i","ita-j","ita-k","ita-l","ita-m","ita-n","ita-o","usb-a","usb-micro-b","usb-c","dc-terminal","hdot-cx","saf-d-grid"]`), &res); err != nil {
   367  		panic(err)
   368  	}
   369  	for _, v := range res {
   370  		writablePowerOutletTypeTypePropEnum = append(writablePowerOutletTypeTypePropEnum, v)
   371  	}
   372  }
   373  
   374  const (
   375  
   376  	// WritablePowerOutletTypeIecDash60320DashC5 captures enum value "iec-60320-c5"
   377  	WritablePowerOutletTypeIecDash60320DashC5 string = "iec-60320-c5"
   378  
   379  	// WritablePowerOutletTypeIecDash60320DashC7 captures enum value "iec-60320-c7"
   380  	WritablePowerOutletTypeIecDash60320DashC7 string = "iec-60320-c7"
   381  
   382  	// WritablePowerOutletTypeIecDash60320DashC13 captures enum value "iec-60320-c13"
   383  	WritablePowerOutletTypeIecDash60320DashC13 string = "iec-60320-c13"
   384  
   385  	// WritablePowerOutletTypeIecDash60320DashC15 captures enum value "iec-60320-c15"
   386  	WritablePowerOutletTypeIecDash60320DashC15 string = "iec-60320-c15"
   387  
   388  	// WritablePowerOutletTypeIecDash60320DashC19 captures enum value "iec-60320-c19"
   389  	WritablePowerOutletTypeIecDash60320DashC19 string = "iec-60320-c19"
   390  
   391  	// WritablePowerOutletTypeIecDash60320DashC21 captures enum value "iec-60320-c21"
   392  	WritablePowerOutletTypeIecDash60320DashC21 string = "iec-60320-c21"
   393  
   394  	// WritablePowerOutletTypeIecDash60309DashpDashnDasheDash4h captures enum value "iec-60309-p-n-e-4h"
   395  	WritablePowerOutletTypeIecDash60309DashpDashnDasheDash4h string = "iec-60309-p-n-e-4h"
   396  
   397  	// WritablePowerOutletTypeIecDash60309DashpDashnDasheDash6h captures enum value "iec-60309-p-n-e-6h"
   398  	WritablePowerOutletTypeIecDash60309DashpDashnDasheDash6h string = "iec-60309-p-n-e-6h"
   399  
   400  	// WritablePowerOutletTypeIecDash60309DashpDashnDasheDash9h captures enum value "iec-60309-p-n-e-9h"
   401  	WritablePowerOutletTypeIecDash60309DashpDashnDasheDash9h string = "iec-60309-p-n-e-9h"
   402  
   403  	// WritablePowerOutletTypeIecDash60309Dash2pDasheDash4h captures enum value "iec-60309-2p-e-4h"
   404  	WritablePowerOutletTypeIecDash60309Dash2pDasheDash4h string = "iec-60309-2p-e-4h"
   405  
   406  	// WritablePowerOutletTypeIecDash60309Dash2pDasheDash6h captures enum value "iec-60309-2p-e-6h"
   407  	WritablePowerOutletTypeIecDash60309Dash2pDasheDash6h string = "iec-60309-2p-e-6h"
   408  
   409  	// WritablePowerOutletTypeIecDash60309Dash2pDasheDash9h captures enum value "iec-60309-2p-e-9h"
   410  	WritablePowerOutletTypeIecDash60309Dash2pDasheDash9h string = "iec-60309-2p-e-9h"
   411  
   412  	// WritablePowerOutletTypeIecDash60309Dash3pDasheDash4h captures enum value "iec-60309-3p-e-4h"
   413  	WritablePowerOutletTypeIecDash60309Dash3pDasheDash4h string = "iec-60309-3p-e-4h"
   414  
   415  	// WritablePowerOutletTypeIecDash60309Dash3pDasheDash6h captures enum value "iec-60309-3p-e-6h"
   416  	WritablePowerOutletTypeIecDash60309Dash3pDasheDash6h string = "iec-60309-3p-e-6h"
   417  
   418  	// WritablePowerOutletTypeIecDash60309Dash3pDasheDash9h captures enum value "iec-60309-3p-e-9h"
   419  	WritablePowerOutletTypeIecDash60309Dash3pDasheDash9h string = "iec-60309-3p-e-9h"
   420  
   421  	// WritablePowerOutletTypeIecDash60309Dash3pDashnDasheDash4h captures enum value "iec-60309-3p-n-e-4h"
   422  	WritablePowerOutletTypeIecDash60309Dash3pDashnDasheDash4h string = "iec-60309-3p-n-e-4h"
   423  
   424  	// WritablePowerOutletTypeIecDash60309Dash3pDashnDasheDash6h captures enum value "iec-60309-3p-n-e-6h"
   425  	WritablePowerOutletTypeIecDash60309Dash3pDashnDasheDash6h string = "iec-60309-3p-n-e-6h"
   426  
   427  	// WritablePowerOutletTypeIecDash60309Dash3pDashnDasheDash9h captures enum value "iec-60309-3p-n-e-9h"
   428  	WritablePowerOutletTypeIecDash60309Dash3pDashnDasheDash9h string = "iec-60309-3p-n-e-9h"
   429  
   430  	// WritablePowerOutletTypeNemaDash1Dash15r captures enum value "nema-1-15r"
   431  	WritablePowerOutletTypeNemaDash1Dash15r string = "nema-1-15r"
   432  
   433  	// WritablePowerOutletTypeNemaDash5Dash15r captures enum value "nema-5-15r"
   434  	WritablePowerOutletTypeNemaDash5Dash15r string = "nema-5-15r"
   435  
   436  	// WritablePowerOutletTypeNemaDash5Dash20r captures enum value "nema-5-20r"
   437  	WritablePowerOutletTypeNemaDash5Dash20r string = "nema-5-20r"
   438  
   439  	// WritablePowerOutletTypeNemaDash5Dash30r captures enum value "nema-5-30r"
   440  	WritablePowerOutletTypeNemaDash5Dash30r string = "nema-5-30r"
   441  
   442  	// WritablePowerOutletTypeNemaDash5Dash50r captures enum value "nema-5-50r"
   443  	WritablePowerOutletTypeNemaDash5Dash50r string = "nema-5-50r"
   444  
   445  	// WritablePowerOutletTypeNemaDash6Dash15r captures enum value "nema-6-15r"
   446  	WritablePowerOutletTypeNemaDash6Dash15r string = "nema-6-15r"
   447  
   448  	// WritablePowerOutletTypeNemaDash6Dash20r captures enum value "nema-6-20r"
   449  	WritablePowerOutletTypeNemaDash6Dash20r string = "nema-6-20r"
   450  
   451  	// WritablePowerOutletTypeNemaDash6Dash30r captures enum value "nema-6-30r"
   452  	WritablePowerOutletTypeNemaDash6Dash30r string = "nema-6-30r"
   453  
   454  	// WritablePowerOutletTypeNemaDash6Dash50r captures enum value "nema-6-50r"
   455  	WritablePowerOutletTypeNemaDash6Dash50r string = "nema-6-50r"
   456  
   457  	// WritablePowerOutletTypeNemaDash10Dash30r captures enum value "nema-10-30r"
   458  	WritablePowerOutletTypeNemaDash10Dash30r string = "nema-10-30r"
   459  
   460  	// WritablePowerOutletTypeNemaDash10Dash50r captures enum value "nema-10-50r"
   461  	WritablePowerOutletTypeNemaDash10Dash50r string = "nema-10-50r"
   462  
   463  	// WritablePowerOutletTypeNemaDash14Dash20r captures enum value "nema-14-20r"
   464  	WritablePowerOutletTypeNemaDash14Dash20r string = "nema-14-20r"
   465  
   466  	// WritablePowerOutletTypeNemaDash14Dash30r captures enum value "nema-14-30r"
   467  	WritablePowerOutletTypeNemaDash14Dash30r string = "nema-14-30r"
   468  
   469  	// WritablePowerOutletTypeNemaDash14Dash50r captures enum value "nema-14-50r"
   470  	WritablePowerOutletTypeNemaDash14Dash50r string = "nema-14-50r"
   471  
   472  	// WritablePowerOutletTypeNemaDash14Dash60r captures enum value "nema-14-60r"
   473  	WritablePowerOutletTypeNemaDash14Dash60r string = "nema-14-60r"
   474  
   475  	// WritablePowerOutletTypeNemaDash15Dash15r captures enum value "nema-15-15r"
   476  	WritablePowerOutletTypeNemaDash15Dash15r string = "nema-15-15r"
   477  
   478  	// WritablePowerOutletTypeNemaDash15Dash20r captures enum value "nema-15-20r"
   479  	WritablePowerOutletTypeNemaDash15Dash20r string = "nema-15-20r"
   480  
   481  	// WritablePowerOutletTypeNemaDash15Dash30r captures enum value "nema-15-30r"
   482  	WritablePowerOutletTypeNemaDash15Dash30r string = "nema-15-30r"
   483  
   484  	// WritablePowerOutletTypeNemaDash15Dash50r captures enum value "nema-15-50r"
   485  	WritablePowerOutletTypeNemaDash15Dash50r string = "nema-15-50r"
   486  
   487  	// WritablePowerOutletTypeNemaDash15Dash60r captures enum value "nema-15-60r"
   488  	WritablePowerOutletTypeNemaDash15Dash60r string = "nema-15-60r"
   489  
   490  	// WritablePowerOutletTypeNemaDashL1Dash15r captures enum value "nema-l1-15r"
   491  	WritablePowerOutletTypeNemaDashL1Dash15r string = "nema-l1-15r"
   492  
   493  	// WritablePowerOutletTypeNemaDashL5Dash15r captures enum value "nema-l5-15r"
   494  	WritablePowerOutletTypeNemaDashL5Dash15r string = "nema-l5-15r"
   495  
   496  	// WritablePowerOutletTypeNemaDashL5Dash20r captures enum value "nema-l5-20r"
   497  	WritablePowerOutletTypeNemaDashL5Dash20r string = "nema-l5-20r"
   498  
   499  	// WritablePowerOutletTypeNemaDashL5Dash30r captures enum value "nema-l5-30r"
   500  	WritablePowerOutletTypeNemaDashL5Dash30r string = "nema-l5-30r"
   501  
   502  	// WritablePowerOutletTypeNemaDashL5Dash50r captures enum value "nema-l5-50r"
   503  	WritablePowerOutletTypeNemaDashL5Dash50r string = "nema-l5-50r"
   504  
   505  	// WritablePowerOutletTypeNemaDashL6Dash15r captures enum value "nema-l6-15r"
   506  	WritablePowerOutletTypeNemaDashL6Dash15r string = "nema-l6-15r"
   507  
   508  	// WritablePowerOutletTypeNemaDashL6Dash20r captures enum value "nema-l6-20r"
   509  	WritablePowerOutletTypeNemaDashL6Dash20r string = "nema-l6-20r"
   510  
   511  	// WritablePowerOutletTypeNemaDashL6Dash30r captures enum value "nema-l6-30r"
   512  	WritablePowerOutletTypeNemaDashL6Dash30r string = "nema-l6-30r"
   513  
   514  	// WritablePowerOutletTypeNemaDashL6Dash50r captures enum value "nema-l6-50r"
   515  	WritablePowerOutletTypeNemaDashL6Dash50r string = "nema-l6-50r"
   516  
   517  	// WritablePowerOutletTypeNemaDashL10Dash30r captures enum value "nema-l10-30r"
   518  	WritablePowerOutletTypeNemaDashL10Dash30r string = "nema-l10-30r"
   519  
   520  	// WritablePowerOutletTypeNemaDashL14Dash20r captures enum value "nema-l14-20r"
   521  	WritablePowerOutletTypeNemaDashL14Dash20r string = "nema-l14-20r"
   522  
   523  	// WritablePowerOutletTypeNemaDashL14Dash30r captures enum value "nema-l14-30r"
   524  	WritablePowerOutletTypeNemaDashL14Dash30r string = "nema-l14-30r"
   525  
   526  	// WritablePowerOutletTypeNemaDashL14Dash50r captures enum value "nema-l14-50r"
   527  	WritablePowerOutletTypeNemaDashL14Dash50r string = "nema-l14-50r"
   528  
   529  	// WritablePowerOutletTypeNemaDashL14Dash60r captures enum value "nema-l14-60r"
   530  	WritablePowerOutletTypeNemaDashL14Dash60r string = "nema-l14-60r"
   531  
   532  	// WritablePowerOutletTypeNemaDashL15Dash20r captures enum value "nema-l15-20r"
   533  	WritablePowerOutletTypeNemaDashL15Dash20r string = "nema-l15-20r"
   534  
   535  	// WritablePowerOutletTypeNemaDashL15Dash30r captures enum value "nema-l15-30r"
   536  	WritablePowerOutletTypeNemaDashL15Dash30r string = "nema-l15-30r"
   537  
   538  	// WritablePowerOutletTypeNemaDashL15Dash50r captures enum value "nema-l15-50r"
   539  	WritablePowerOutletTypeNemaDashL15Dash50r string = "nema-l15-50r"
   540  
   541  	// WritablePowerOutletTypeNemaDashL15Dash60r captures enum value "nema-l15-60r"
   542  	WritablePowerOutletTypeNemaDashL15Dash60r string = "nema-l15-60r"
   543  
   544  	// WritablePowerOutletTypeNemaDashL21Dash20r captures enum value "nema-l21-20r"
   545  	WritablePowerOutletTypeNemaDashL21Dash20r string = "nema-l21-20r"
   546  
   547  	// WritablePowerOutletTypeNemaDashL21Dash30r captures enum value "nema-l21-30r"
   548  	WritablePowerOutletTypeNemaDashL21Dash30r string = "nema-l21-30r"
   549  
   550  	// WritablePowerOutletTypeCS6360C captures enum value "CS6360C"
   551  	WritablePowerOutletTypeCS6360C string = "CS6360C"
   552  
   553  	// WritablePowerOutletTypeCS6364C captures enum value "CS6364C"
   554  	WritablePowerOutletTypeCS6364C string = "CS6364C"
   555  
   556  	// WritablePowerOutletTypeCS8164C captures enum value "CS8164C"
   557  	WritablePowerOutletTypeCS8164C string = "CS8164C"
   558  
   559  	// WritablePowerOutletTypeCS8264C captures enum value "CS8264C"
   560  	WritablePowerOutletTypeCS8264C string = "CS8264C"
   561  
   562  	// WritablePowerOutletTypeCS8364C captures enum value "CS8364C"
   563  	WritablePowerOutletTypeCS8364C string = "CS8364C"
   564  
   565  	// WritablePowerOutletTypeCS8464C captures enum value "CS8464C"
   566  	WritablePowerOutletTypeCS8464C string = "CS8464C"
   567  
   568  	// WritablePowerOutletTypeItaDashe captures enum value "ita-e"
   569  	WritablePowerOutletTypeItaDashe string = "ita-e"
   570  
   571  	// WritablePowerOutletTypeItaDashf captures enum value "ita-f"
   572  	WritablePowerOutletTypeItaDashf string = "ita-f"
   573  
   574  	// WritablePowerOutletTypeItaDashg captures enum value "ita-g"
   575  	WritablePowerOutletTypeItaDashg string = "ita-g"
   576  
   577  	// WritablePowerOutletTypeItaDashh captures enum value "ita-h"
   578  	WritablePowerOutletTypeItaDashh string = "ita-h"
   579  
   580  	// WritablePowerOutletTypeItaDashi captures enum value "ita-i"
   581  	WritablePowerOutletTypeItaDashi string = "ita-i"
   582  
   583  	// WritablePowerOutletTypeItaDashj captures enum value "ita-j"
   584  	WritablePowerOutletTypeItaDashj string = "ita-j"
   585  
   586  	// WritablePowerOutletTypeItaDashk captures enum value "ita-k"
   587  	WritablePowerOutletTypeItaDashk string = "ita-k"
   588  
   589  	// WritablePowerOutletTypeItaDashl captures enum value "ita-l"
   590  	WritablePowerOutletTypeItaDashl string = "ita-l"
   591  
   592  	// WritablePowerOutletTypeItaDashm captures enum value "ita-m"
   593  	WritablePowerOutletTypeItaDashm string = "ita-m"
   594  
   595  	// WritablePowerOutletTypeItaDashn captures enum value "ita-n"
   596  	WritablePowerOutletTypeItaDashn string = "ita-n"
   597  
   598  	// WritablePowerOutletTypeItaDasho captures enum value "ita-o"
   599  	WritablePowerOutletTypeItaDasho string = "ita-o"
   600  
   601  	// WritablePowerOutletTypeUsbDasha captures enum value "usb-a"
   602  	WritablePowerOutletTypeUsbDasha string = "usb-a"
   603  
   604  	// WritablePowerOutletTypeUsbDashMicroDashb captures enum value "usb-micro-b"
   605  	WritablePowerOutletTypeUsbDashMicroDashb string = "usb-micro-b"
   606  
   607  	// WritablePowerOutletTypeUsbDashc captures enum value "usb-c"
   608  	WritablePowerOutletTypeUsbDashc string = "usb-c"
   609  
   610  	// WritablePowerOutletTypeDcDashTerminal captures enum value "dc-terminal"
   611  	WritablePowerOutletTypeDcDashTerminal string = "dc-terminal"
   612  
   613  	// WritablePowerOutletTypeHdotDashCx captures enum value "hdot-cx"
   614  	WritablePowerOutletTypeHdotDashCx string = "hdot-cx"
   615  
   616  	// WritablePowerOutletTypeSafDashdDashGrid captures enum value "saf-d-grid"
   617  	WritablePowerOutletTypeSafDashdDashGrid string = "saf-d-grid"
   618  )
   619  
   620  // prop value enum
   621  func (m *WritablePowerOutlet) validateTypeEnum(path, location string, value string) error {
   622  	if err := validate.EnumCase(path, location, value, writablePowerOutletTypeTypePropEnum, true); err != nil {
   623  		return err
   624  	}
   625  	return nil
   626  }
   627  
   628  func (m *WritablePowerOutlet) validateType(formats strfmt.Registry) error {
   629  	if swag.IsZero(m.Type) { // not required
   630  		return nil
   631  	}
   632  
   633  	// value enum
   634  	if err := m.validateTypeEnum("type", "body", m.Type); err != nil {
   635  		return err
   636  	}
   637  
   638  	return nil
   639  }
   640  
   641  func (m *WritablePowerOutlet) validateURL(formats strfmt.Registry) error {
   642  	if swag.IsZero(m.URL) { // not required
   643  		return nil
   644  	}
   645  
   646  	if err := validate.FormatOf("url", "body", "uri", m.URL.String(), formats); err != nil {
   647  		return err
   648  	}
   649  
   650  	return nil
   651  }
   652  
   653  // ContextValidate validate this writable power outlet based on the context it is used
   654  func (m *WritablePowerOutlet) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
   655  	var res []error
   656  
   657  	if err := m.contextValidateOccupied(ctx, formats); err != nil {
   658  		res = append(res, err)
   659  	}
   660  
   661  	if err := m.contextValidateCable(ctx, formats); err != nil {
   662  		res = append(res, err)
   663  	}
   664  
   665  	if err := m.contextValidateCablePeer(ctx, formats); err != nil {
   666  		res = append(res, err)
   667  	}
   668  
   669  	if err := m.contextValidateCablePeerType(ctx, formats); err != nil {
   670  		res = append(res, err)
   671  	}
   672  
   673  	if err := m.contextValidateConnectedEndpoint(ctx, formats); err != nil {
   674  		res = append(res, err)
   675  	}
   676  
   677  	if err := m.contextValidateConnectedEndpointReachable(ctx, formats); err != nil {
   678  		res = append(res, err)
   679  	}
   680  
   681  	if err := m.contextValidateConnectedEndpointType(ctx, formats); err != nil {
   682  		res = append(res, err)
   683  	}
   684  
   685  	if err := m.contextValidateCreated(ctx, formats); err != nil {
   686  		res = append(res, err)
   687  	}
   688  
   689  	if err := m.contextValidateDisplay(ctx, formats); err != nil {
   690  		res = append(res, err)
   691  	}
   692  
   693  	if err := m.contextValidateID(ctx, formats); err != nil {
   694  		res = append(res, err)
   695  	}
   696  
   697  	if err := m.contextValidateLastUpdated(ctx, formats); err != nil {
   698  		res = append(res, err)
   699  	}
   700  
   701  	if err := m.contextValidateTags(ctx, formats); err != nil {
   702  		res = append(res, err)
   703  	}
   704  
   705  	if err := m.contextValidateURL(ctx, formats); err != nil {
   706  		res = append(res, err)
   707  	}
   708  
   709  	if len(res) > 0 {
   710  		return errors.CompositeValidationError(res...)
   711  	}
   712  	return nil
   713  }
   714  
   715  func (m *WritablePowerOutlet) contextValidateOccupied(ctx context.Context, formats strfmt.Registry) error {
   716  
   717  	if err := validate.ReadOnly(ctx, "_occupied", "body", m.Occupied); err != nil {
   718  		return err
   719  	}
   720  
   721  	return nil
   722  }
   723  
   724  func (m *WritablePowerOutlet) contextValidateCable(ctx context.Context, formats strfmt.Registry) error {
   725  
   726  	if m.Cable != nil {
   727  		if err := m.Cable.ContextValidate(ctx, formats); err != nil {
   728  			if ve, ok := err.(*errors.Validation); ok {
   729  				return ve.ValidateName("cable")
   730  			} else if ce, ok := err.(*errors.CompositeError); ok {
   731  				return ce.ValidateName("cable")
   732  			}
   733  			return err
   734  		}
   735  	}
   736  
   737  	return nil
   738  }
   739  
   740  func (m *WritablePowerOutlet) contextValidateCablePeer(ctx context.Context, formats strfmt.Registry) error {
   741  
   742  	return nil
   743  }
   744  
   745  func (m *WritablePowerOutlet) contextValidateCablePeerType(ctx context.Context, formats strfmt.Registry) error {
   746  
   747  	if err := validate.ReadOnly(ctx, "cable_peer_type", "body", string(m.CablePeerType)); err != nil {
   748  		return err
   749  	}
   750  
   751  	return nil
   752  }
   753  
   754  func (m *WritablePowerOutlet) contextValidateConnectedEndpoint(ctx context.Context, formats strfmt.Registry) error {
   755  
   756  	return nil
   757  }
   758  
   759  func (m *WritablePowerOutlet) contextValidateConnectedEndpointReachable(ctx context.Context, formats strfmt.Registry) error {
   760  
   761  	if err := validate.ReadOnly(ctx, "connected_endpoint_reachable", "body", m.ConnectedEndpointReachable); err != nil {
   762  		return err
   763  	}
   764  
   765  	return nil
   766  }
   767  
   768  func (m *WritablePowerOutlet) contextValidateConnectedEndpointType(ctx context.Context, formats strfmt.Registry) error {
   769  
   770  	if err := validate.ReadOnly(ctx, "connected_endpoint_type", "body", string(m.ConnectedEndpointType)); err != nil {
   771  		return err
   772  	}
   773  
   774  	return nil
   775  }
   776  
   777  func (m *WritablePowerOutlet) contextValidateCreated(ctx context.Context, formats strfmt.Registry) error {
   778  
   779  	if err := validate.ReadOnly(ctx, "created", "body", strfmt.Date(m.Created)); err != nil {
   780  		return err
   781  	}
   782  
   783  	return nil
   784  }
   785  
   786  func (m *WritablePowerOutlet) contextValidateDisplay(ctx context.Context, formats strfmt.Registry) error {
   787  
   788  	if err := validate.ReadOnly(ctx, "display", "body", string(m.Display)); err != nil {
   789  		return err
   790  	}
   791  
   792  	return nil
   793  }
   794  
   795  func (m *WritablePowerOutlet) contextValidateID(ctx context.Context, formats strfmt.Registry) error {
   796  
   797  	if err := validate.ReadOnly(ctx, "id", "body", int64(m.ID)); err != nil {
   798  		return err
   799  	}
   800  
   801  	return nil
   802  }
   803  
   804  func (m *WritablePowerOutlet) contextValidateLastUpdated(ctx context.Context, formats strfmt.Registry) error {
   805  
   806  	if err := validate.ReadOnly(ctx, "last_updated", "body", strfmt.DateTime(m.LastUpdated)); err != nil {
   807  		return err
   808  	}
   809  
   810  	return nil
   811  }
   812  
   813  func (m *WritablePowerOutlet) contextValidateTags(ctx context.Context, formats strfmt.Registry) error {
   814  
   815  	for i := 0; i < len(m.Tags); i++ {
   816  
   817  		if m.Tags[i] != nil {
   818  			if err := m.Tags[i].ContextValidate(ctx, formats); err != nil {
   819  				if ve, ok := err.(*errors.Validation); ok {
   820  					return ve.ValidateName("tags" + "." + strconv.Itoa(i))
   821  				} else if ce, ok := err.(*errors.CompositeError); ok {
   822  					return ce.ValidateName("tags" + "." + strconv.Itoa(i))
   823  				}
   824  				return err
   825  			}
   826  		}
   827  
   828  	}
   829  
   830  	return nil
   831  }
   832  
   833  func (m *WritablePowerOutlet) contextValidateURL(ctx context.Context, formats strfmt.Registry) error {
   834  
   835  	if err := validate.ReadOnly(ctx, "url", "body", strfmt.URI(m.URL)); err != nil {
   836  		return err
   837  	}
   838  
   839  	return nil
   840  }
   841  
   842  // MarshalBinary interface implementation
   843  func (m *WritablePowerOutlet) MarshalBinary() ([]byte, error) {
   844  	if m == nil {
   845  		return nil, nil
   846  	}
   847  	return swag.WriteJSON(m)
   848  }
   849  
   850  // UnmarshalBinary interface implementation
   851  func (m *WritablePowerOutlet) UnmarshalBinary(b []byte) error {
   852  	var res WritablePowerOutlet
   853  	if err := swag.ReadJSON(b, &res); err != nil {
   854  		return err
   855  	}
   856  	*m = res
   857  	return nil
   858  }