github.com/digitalocean/go-netbox@v0.0.2/netbox/models/writable_interface.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  // WritableInterface writable interface
    35  //
    36  // swagger:model WritableInterface
    37  type WritableInterface 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  	// Count ipaddresses
    75  	// Read Only: true
    76  	CountIpaddresses int64 `json:"count_ipaddresses,omitempty"`
    77  
    78  	// Created
    79  	// Read Only: true
    80  	// Format: date
    81  	Created strfmt.Date `json:"created,omitempty"`
    82  
    83  	// Custom fields
    84  	CustomFields interface{} `json:"custom_fields,omitempty"`
    85  
    86  	// Description
    87  	// Max Length: 200
    88  	Description string `json:"description,omitempty"`
    89  
    90  	// Device
    91  	// Required: true
    92  	Device *int64 `json:"device"`
    93  
    94  	// Display
    95  	// Read Only: true
    96  	Display string `json:"display,omitempty"`
    97  
    98  	// Enabled
    99  	Enabled bool `json:"enabled,omitempty"`
   100  
   101  	// Id
   102  	// Read Only: true
   103  	ID int64 `json:"id,omitempty"`
   104  
   105  	// Label
   106  	//
   107  	// Physical label
   108  	// Max Length: 64
   109  	Label string `json:"label,omitempty"`
   110  
   111  	// Parent LAG
   112  	Lag *int64 `json:"lag,omitempty"`
   113  
   114  	// Last updated
   115  	// Read Only: true
   116  	// Format: date-time
   117  	LastUpdated strfmt.DateTime `json:"last_updated,omitempty"`
   118  
   119  	// MAC Address
   120  	MacAddress *string `json:"mac_address,omitempty"`
   121  
   122  	// Mark connected
   123  	//
   124  	// Treat as if a cable is connected
   125  	MarkConnected bool `json:"mark_connected,omitempty"`
   126  
   127  	// Management only
   128  	//
   129  	// This interface is used only for out-of-band management
   130  	MgmtOnly bool `json:"mgmt_only,omitempty"`
   131  
   132  	// Mode
   133  	// Enum: [access tagged tagged-all]
   134  	Mode string `json:"mode,omitempty"`
   135  
   136  	// MTU
   137  	// Maximum: 65536
   138  	// Minimum: 1
   139  	Mtu *int64 `json:"mtu,omitempty"`
   140  
   141  	// Name
   142  	// Required: true
   143  	// Max Length: 64
   144  	// Min Length: 1
   145  	Name *string `json:"name"`
   146  
   147  	// Parent interface
   148  	Parent *int64 `json:"parent,omitempty"`
   149  
   150  	// tagged vlans
   151  	// Unique: true
   152  	TaggedVlans []int64 `json:"tagged_vlans"`
   153  
   154  	// tags
   155  	Tags []*NestedTag `json:"tags"`
   156  
   157  	// Type
   158  	// Required: true
   159  	// Enum: [virtual lag 100base-tx 1000base-t 2.5gbase-t 5gbase-t 10gbase-t 10gbase-cx4 1000base-x-gbic 1000base-x-sfp 10gbase-x-sfpp 10gbase-x-xfp 10gbase-x-xenpak 10gbase-x-x2 25gbase-x-sfp28 50gbase-x-sfp56 40gbase-x-qsfpp 50gbase-x-sfp28 100gbase-x-cfp 100gbase-x-cfp2 200gbase-x-cfp2 100gbase-x-cfp4 100gbase-x-cpak 100gbase-x-qsfp28 200gbase-x-qsfp56 400gbase-x-qsfpdd 400gbase-x-osfp ieee802.11a ieee802.11g ieee802.11n ieee802.11ac ieee802.11ad ieee802.11ax gsm cdma lte sonet-oc3 sonet-oc12 sonet-oc48 sonet-oc192 sonet-oc768 sonet-oc1920 sonet-oc3840 1gfc-sfp 2gfc-sfp 4gfc-sfp 8gfc-sfpp 16gfc-sfpp 32gfc-sfp28 64gfc-qsfpp 128gfc-sfp28 infiniband-sdr infiniband-ddr infiniband-qdr infiniband-fdr10 infiniband-fdr infiniband-edr infiniband-hdr infiniband-ndr infiniband-xdr t1 e1 t3 e3 cisco-stackwise cisco-stackwise-plus cisco-flexstack cisco-flexstack-plus juniper-vcp extreme-summitstack extreme-summitstack-128 extreme-summitstack-256 extreme-summitstack-512 other]
   160  	Type *string `json:"type"`
   161  
   162  	// Untagged VLAN
   163  	UntaggedVlan *int64 `json:"untagged_vlan,omitempty"`
   164  
   165  	// Url
   166  	// Read Only: true
   167  	// Format: uri
   168  	URL strfmt.URI `json:"url,omitempty"`
   169  }
   170  
   171  // Validate validates this writable interface
   172  func (m *WritableInterface) Validate(formats strfmt.Registry) error {
   173  	var res []error
   174  
   175  	if err := m.validateCable(formats); err != nil {
   176  		res = append(res, err)
   177  	}
   178  
   179  	if err := m.validateCreated(formats); err != nil {
   180  		res = append(res, err)
   181  	}
   182  
   183  	if err := m.validateDescription(formats); err != nil {
   184  		res = append(res, err)
   185  	}
   186  
   187  	if err := m.validateDevice(formats); err != nil {
   188  		res = append(res, err)
   189  	}
   190  
   191  	if err := m.validateLabel(formats); err != nil {
   192  		res = append(res, err)
   193  	}
   194  
   195  	if err := m.validateLastUpdated(formats); err != nil {
   196  		res = append(res, err)
   197  	}
   198  
   199  	if err := m.validateMode(formats); err != nil {
   200  		res = append(res, err)
   201  	}
   202  
   203  	if err := m.validateMtu(formats); err != nil {
   204  		res = append(res, err)
   205  	}
   206  
   207  	if err := m.validateName(formats); err != nil {
   208  		res = append(res, err)
   209  	}
   210  
   211  	if err := m.validateTaggedVlans(formats); err != nil {
   212  		res = append(res, err)
   213  	}
   214  
   215  	if err := m.validateTags(formats); err != nil {
   216  		res = append(res, err)
   217  	}
   218  
   219  	if err := m.validateType(formats); err != nil {
   220  		res = append(res, err)
   221  	}
   222  
   223  	if err := m.validateURL(formats); err != nil {
   224  		res = append(res, err)
   225  	}
   226  
   227  	if len(res) > 0 {
   228  		return errors.CompositeValidationError(res...)
   229  	}
   230  	return nil
   231  }
   232  
   233  func (m *WritableInterface) validateCable(formats strfmt.Registry) error {
   234  	if swag.IsZero(m.Cable) { // not required
   235  		return nil
   236  	}
   237  
   238  	if m.Cable != nil {
   239  		if err := m.Cable.Validate(formats); err != nil {
   240  			if ve, ok := err.(*errors.Validation); ok {
   241  				return ve.ValidateName("cable")
   242  			} else if ce, ok := err.(*errors.CompositeError); ok {
   243  				return ce.ValidateName("cable")
   244  			}
   245  			return err
   246  		}
   247  	}
   248  
   249  	return nil
   250  }
   251  
   252  func (m *WritableInterface) validateCreated(formats strfmt.Registry) error {
   253  	if swag.IsZero(m.Created) { // not required
   254  		return nil
   255  	}
   256  
   257  	if err := validate.FormatOf("created", "body", "date", m.Created.String(), formats); err != nil {
   258  		return err
   259  	}
   260  
   261  	return nil
   262  }
   263  
   264  func (m *WritableInterface) validateDescription(formats strfmt.Registry) error {
   265  	if swag.IsZero(m.Description) { // not required
   266  		return nil
   267  	}
   268  
   269  	if err := validate.MaxLength("description", "body", m.Description, 200); err != nil {
   270  		return err
   271  	}
   272  
   273  	return nil
   274  }
   275  
   276  func (m *WritableInterface) validateDevice(formats strfmt.Registry) error {
   277  
   278  	if err := validate.Required("device", "body", m.Device); err != nil {
   279  		return err
   280  	}
   281  
   282  	return nil
   283  }
   284  
   285  func (m *WritableInterface) validateLabel(formats strfmt.Registry) error {
   286  	if swag.IsZero(m.Label) { // not required
   287  		return nil
   288  	}
   289  
   290  	if err := validate.MaxLength("label", "body", m.Label, 64); err != nil {
   291  		return err
   292  	}
   293  
   294  	return nil
   295  }
   296  
   297  func (m *WritableInterface) validateLastUpdated(formats strfmt.Registry) error {
   298  	if swag.IsZero(m.LastUpdated) { // not required
   299  		return nil
   300  	}
   301  
   302  	if err := validate.FormatOf("last_updated", "body", "date-time", m.LastUpdated.String(), formats); err != nil {
   303  		return err
   304  	}
   305  
   306  	return nil
   307  }
   308  
   309  var writableInterfaceTypeModePropEnum []interface{}
   310  
   311  func init() {
   312  	var res []string
   313  	if err := json.Unmarshal([]byte(`["access","tagged","tagged-all"]`), &res); err != nil {
   314  		panic(err)
   315  	}
   316  	for _, v := range res {
   317  		writableInterfaceTypeModePropEnum = append(writableInterfaceTypeModePropEnum, v)
   318  	}
   319  }
   320  
   321  const (
   322  
   323  	// WritableInterfaceModeAccess captures enum value "access"
   324  	WritableInterfaceModeAccess string = "access"
   325  
   326  	// WritableInterfaceModeTagged captures enum value "tagged"
   327  	WritableInterfaceModeTagged string = "tagged"
   328  
   329  	// WritableInterfaceModeTaggedDashAll captures enum value "tagged-all"
   330  	WritableInterfaceModeTaggedDashAll string = "tagged-all"
   331  )
   332  
   333  // prop value enum
   334  func (m *WritableInterface) validateModeEnum(path, location string, value string) error {
   335  	if err := validate.EnumCase(path, location, value, writableInterfaceTypeModePropEnum, true); err != nil {
   336  		return err
   337  	}
   338  	return nil
   339  }
   340  
   341  func (m *WritableInterface) validateMode(formats strfmt.Registry) error {
   342  	if swag.IsZero(m.Mode) { // not required
   343  		return nil
   344  	}
   345  
   346  	// value enum
   347  	if err := m.validateModeEnum("mode", "body", m.Mode); err != nil {
   348  		return err
   349  	}
   350  
   351  	return nil
   352  }
   353  
   354  func (m *WritableInterface) validateMtu(formats strfmt.Registry) error {
   355  	if swag.IsZero(m.Mtu) { // not required
   356  		return nil
   357  	}
   358  
   359  	if err := validate.MinimumInt("mtu", "body", *m.Mtu, 1, false); err != nil {
   360  		return err
   361  	}
   362  
   363  	if err := validate.MaximumInt("mtu", "body", *m.Mtu, 65536, false); err != nil {
   364  		return err
   365  	}
   366  
   367  	return nil
   368  }
   369  
   370  func (m *WritableInterface) validateName(formats strfmt.Registry) error {
   371  
   372  	if err := validate.Required("name", "body", m.Name); err != nil {
   373  		return err
   374  	}
   375  
   376  	if err := validate.MinLength("name", "body", *m.Name, 1); err != nil {
   377  		return err
   378  	}
   379  
   380  	if err := validate.MaxLength("name", "body", *m.Name, 64); err != nil {
   381  		return err
   382  	}
   383  
   384  	return nil
   385  }
   386  
   387  func (m *WritableInterface) validateTaggedVlans(formats strfmt.Registry) error {
   388  	if swag.IsZero(m.TaggedVlans) { // not required
   389  		return nil
   390  	}
   391  
   392  	if err := validate.UniqueItems("tagged_vlans", "body", m.TaggedVlans); err != nil {
   393  		return err
   394  	}
   395  
   396  	return nil
   397  }
   398  
   399  func (m *WritableInterface) validateTags(formats strfmt.Registry) error {
   400  	if swag.IsZero(m.Tags) { // not required
   401  		return nil
   402  	}
   403  
   404  	for i := 0; i < len(m.Tags); i++ {
   405  		if swag.IsZero(m.Tags[i]) { // not required
   406  			continue
   407  		}
   408  
   409  		if m.Tags[i] != nil {
   410  			if err := m.Tags[i].Validate(formats); err != nil {
   411  				if ve, ok := err.(*errors.Validation); ok {
   412  					return ve.ValidateName("tags" + "." + strconv.Itoa(i))
   413  				} else if ce, ok := err.(*errors.CompositeError); ok {
   414  					return ce.ValidateName("tags" + "." + strconv.Itoa(i))
   415  				}
   416  				return err
   417  			}
   418  		}
   419  
   420  	}
   421  
   422  	return nil
   423  }
   424  
   425  var writableInterfaceTypeTypePropEnum []interface{}
   426  
   427  func init() {
   428  	var res []string
   429  	if err := json.Unmarshal([]byte(`["virtual","lag","100base-tx","1000base-t","2.5gbase-t","5gbase-t","10gbase-t","10gbase-cx4","1000base-x-gbic","1000base-x-sfp","10gbase-x-sfpp","10gbase-x-xfp","10gbase-x-xenpak","10gbase-x-x2","25gbase-x-sfp28","50gbase-x-sfp56","40gbase-x-qsfpp","50gbase-x-sfp28","100gbase-x-cfp","100gbase-x-cfp2","200gbase-x-cfp2","100gbase-x-cfp4","100gbase-x-cpak","100gbase-x-qsfp28","200gbase-x-qsfp56","400gbase-x-qsfpdd","400gbase-x-osfp","ieee802.11a","ieee802.11g","ieee802.11n","ieee802.11ac","ieee802.11ad","ieee802.11ax","gsm","cdma","lte","sonet-oc3","sonet-oc12","sonet-oc48","sonet-oc192","sonet-oc768","sonet-oc1920","sonet-oc3840","1gfc-sfp","2gfc-sfp","4gfc-sfp","8gfc-sfpp","16gfc-sfpp","32gfc-sfp28","64gfc-qsfpp","128gfc-sfp28","infiniband-sdr","infiniband-ddr","infiniband-qdr","infiniband-fdr10","infiniband-fdr","infiniband-edr","infiniband-hdr","infiniband-ndr","infiniband-xdr","t1","e1","t3","e3","cisco-stackwise","cisco-stackwise-plus","cisco-flexstack","cisco-flexstack-plus","juniper-vcp","extreme-summitstack","extreme-summitstack-128","extreme-summitstack-256","extreme-summitstack-512","other"]`), &res); err != nil {
   430  		panic(err)
   431  	}
   432  	for _, v := range res {
   433  		writableInterfaceTypeTypePropEnum = append(writableInterfaceTypeTypePropEnum, v)
   434  	}
   435  }
   436  
   437  const (
   438  
   439  	// WritableInterfaceTypeVirtual captures enum value "virtual"
   440  	WritableInterfaceTypeVirtual string = "virtual"
   441  
   442  	// WritableInterfaceTypeLag captures enum value "lag"
   443  	WritableInterfaceTypeLag string = "lag"
   444  
   445  	// WritableInterfaceTypeNr100baseDashTx captures enum value "100base-tx"
   446  	WritableInterfaceTypeNr100baseDashTx string = "100base-tx"
   447  
   448  	// WritableInterfaceTypeNr1000baseDasht captures enum value "1000base-t"
   449  	WritableInterfaceTypeNr1000baseDasht string = "1000base-t"
   450  
   451  	// WritableInterfaceTypeNr2Dot5gbaseDasht captures enum value "2.5gbase-t"
   452  	WritableInterfaceTypeNr2Dot5gbaseDasht string = "2.5gbase-t"
   453  
   454  	// WritableInterfaceTypeNr5gbaseDasht captures enum value "5gbase-t"
   455  	WritableInterfaceTypeNr5gbaseDasht string = "5gbase-t"
   456  
   457  	// WritableInterfaceTypeNr10gbaseDasht captures enum value "10gbase-t"
   458  	WritableInterfaceTypeNr10gbaseDasht string = "10gbase-t"
   459  
   460  	// WritableInterfaceTypeNr10gbaseDashCx4 captures enum value "10gbase-cx4"
   461  	WritableInterfaceTypeNr10gbaseDashCx4 string = "10gbase-cx4"
   462  
   463  	// WritableInterfaceTypeNr1000baseDashxDashGbic captures enum value "1000base-x-gbic"
   464  	WritableInterfaceTypeNr1000baseDashxDashGbic string = "1000base-x-gbic"
   465  
   466  	// WritableInterfaceTypeNr1000baseDashxDashSfp captures enum value "1000base-x-sfp"
   467  	WritableInterfaceTypeNr1000baseDashxDashSfp string = "1000base-x-sfp"
   468  
   469  	// WritableInterfaceTypeNr10gbaseDashxDashSfpp captures enum value "10gbase-x-sfpp"
   470  	WritableInterfaceTypeNr10gbaseDashxDashSfpp string = "10gbase-x-sfpp"
   471  
   472  	// WritableInterfaceTypeNr10gbaseDashxDashXfp captures enum value "10gbase-x-xfp"
   473  	WritableInterfaceTypeNr10gbaseDashxDashXfp string = "10gbase-x-xfp"
   474  
   475  	// WritableInterfaceTypeNr10gbaseDashxDashXenpak captures enum value "10gbase-x-xenpak"
   476  	WritableInterfaceTypeNr10gbaseDashxDashXenpak string = "10gbase-x-xenpak"
   477  
   478  	// WritableInterfaceTypeNr10gbaseDashxDashX2 captures enum value "10gbase-x-x2"
   479  	WritableInterfaceTypeNr10gbaseDashxDashX2 string = "10gbase-x-x2"
   480  
   481  	// WritableInterfaceTypeNr25gbaseDashxDashSfp28 captures enum value "25gbase-x-sfp28"
   482  	WritableInterfaceTypeNr25gbaseDashxDashSfp28 string = "25gbase-x-sfp28"
   483  
   484  	// WritableInterfaceTypeNr50gbaseDashxDashSfp56 captures enum value "50gbase-x-sfp56"
   485  	WritableInterfaceTypeNr50gbaseDashxDashSfp56 string = "50gbase-x-sfp56"
   486  
   487  	// WritableInterfaceTypeNr40gbaseDashxDashQsfpp captures enum value "40gbase-x-qsfpp"
   488  	WritableInterfaceTypeNr40gbaseDashxDashQsfpp string = "40gbase-x-qsfpp"
   489  
   490  	// WritableInterfaceTypeNr50gbaseDashxDashSfp28 captures enum value "50gbase-x-sfp28"
   491  	WritableInterfaceTypeNr50gbaseDashxDashSfp28 string = "50gbase-x-sfp28"
   492  
   493  	// WritableInterfaceTypeNr100gbaseDashxDashCfp captures enum value "100gbase-x-cfp"
   494  	WritableInterfaceTypeNr100gbaseDashxDashCfp string = "100gbase-x-cfp"
   495  
   496  	// WritableInterfaceTypeNr100gbaseDashxDashCfp2 captures enum value "100gbase-x-cfp2"
   497  	WritableInterfaceTypeNr100gbaseDashxDashCfp2 string = "100gbase-x-cfp2"
   498  
   499  	// WritableInterfaceTypeNr200gbaseDashxDashCfp2 captures enum value "200gbase-x-cfp2"
   500  	WritableInterfaceTypeNr200gbaseDashxDashCfp2 string = "200gbase-x-cfp2"
   501  
   502  	// WritableInterfaceTypeNr100gbaseDashxDashCfp4 captures enum value "100gbase-x-cfp4"
   503  	WritableInterfaceTypeNr100gbaseDashxDashCfp4 string = "100gbase-x-cfp4"
   504  
   505  	// WritableInterfaceTypeNr100gbaseDashxDashCpak captures enum value "100gbase-x-cpak"
   506  	WritableInterfaceTypeNr100gbaseDashxDashCpak string = "100gbase-x-cpak"
   507  
   508  	// WritableInterfaceTypeNr100gbaseDashxDashQsfp28 captures enum value "100gbase-x-qsfp28"
   509  	WritableInterfaceTypeNr100gbaseDashxDashQsfp28 string = "100gbase-x-qsfp28"
   510  
   511  	// WritableInterfaceTypeNr200gbaseDashxDashQsfp56 captures enum value "200gbase-x-qsfp56"
   512  	WritableInterfaceTypeNr200gbaseDashxDashQsfp56 string = "200gbase-x-qsfp56"
   513  
   514  	// WritableInterfaceTypeNr400gbaseDashxDashQsfpdd captures enum value "400gbase-x-qsfpdd"
   515  	WritableInterfaceTypeNr400gbaseDashxDashQsfpdd string = "400gbase-x-qsfpdd"
   516  
   517  	// WritableInterfaceTypeNr400gbaseDashxDashOsfp captures enum value "400gbase-x-osfp"
   518  	WritableInterfaceTypeNr400gbaseDashxDashOsfp string = "400gbase-x-osfp"
   519  
   520  	// WritableInterfaceTypeIeee802Dot11a captures enum value "ieee802.11a"
   521  	WritableInterfaceTypeIeee802Dot11a string = "ieee802.11a"
   522  
   523  	// WritableInterfaceTypeIeee802Dot11g captures enum value "ieee802.11g"
   524  	WritableInterfaceTypeIeee802Dot11g string = "ieee802.11g"
   525  
   526  	// WritableInterfaceTypeIeee802Dot11n captures enum value "ieee802.11n"
   527  	WritableInterfaceTypeIeee802Dot11n string = "ieee802.11n"
   528  
   529  	// WritableInterfaceTypeIeee802Dot11ac captures enum value "ieee802.11ac"
   530  	WritableInterfaceTypeIeee802Dot11ac string = "ieee802.11ac"
   531  
   532  	// WritableInterfaceTypeIeee802Dot11ad captures enum value "ieee802.11ad"
   533  	WritableInterfaceTypeIeee802Dot11ad string = "ieee802.11ad"
   534  
   535  	// WritableInterfaceTypeIeee802Dot11ax captures enum value "ieee802.11ax"
   536  	WritableInterfaceTypeIeee802Dot11ax string = "ieee802.11ax"
   537  
   538  	// WritableInterfaceTypeGsm captures enum value "gsm"
   539  	WritableInterfaceTypeGsm string = "gsm"
   540  
   541  	// WritableInterfaceTypeCdma captures enum value "cdma"
   542  	WritableInterfaceTypeCdma string = "cdma"
   543  
   544  	// WritableInterfaceTypeLte captures enum value "lte"
   545  	WritableInterfaceTypeLte string = "lte"
   546  
   547  	// WritableInterfaceTypeSonetDashOc3 captures enum value "sonet-oc3"
   548  	WritableInterfaceTypeSonetDashOc3 string = "sonet-oc3"
   549  
   550  	// WritableInterfaceTypeSonetDashOc12 captures enum value "sonet-oc12"
   551  	WritableInterfaceTypeSonetDashOc12 string = "sonet-oc12"
   552  
   553  	// WritableInterfaceTypeSonetDashOc48 captures enum value "sonet-oc48"
   554  	WritableInterfaceTypeSonetDashOc48 string = "sonet-oc48"
   555  
   556  	// WritableInterfaceTypeSonetDashOc192 captures enum value "sonet-oc192"
   557  	WritableInterfaceTypeSonetDashOc192 string = "sonet-oc192"
   558  
   559  	// WritableInterfaceTypeSonetDashOc768 captures enum value "sonet-oc768"
   560  	WritableInterfaceTypeSonetDashOc768 string = "sonet-oc768"
   561  
   562  	// WritableInterfaceTypeSonetDashOc1920 captures enum value "sonet-oc1920"
   563  	WritableInterfaceTypeSonetDashOc1920 string = "sonet-oc1920"
   564  
   565  	// WritableInterfaceTypeSonetDashOc3840 captures enum value "sonet-oc3840"
   566  	WritableInterfaceTypeSonetDashOc3840 string = "sonet-oc3840"
   567  
   568  	// WritableInterfaceTypeNr1gfcDashSfp captures enum value "1gfc-sfp"
   569  	WritableInterfaceTypeNr1gfcDashSfp string = "1gfc-sfp"
   570  
   571  	// WritableInterfaceTypeNr2gfcDashSfp captures enum value "2gfc-sfp"
   572  	WritableInterfaceTypeNr2gfcDashSfp string = "2gfc-sfp"
   573  
   574  	// WritableInterfaceTypeNr4gfcDashSfp captures enum value "4gfc-sfp"
   575  	WritableInterfaceTypeNr4gfcDashSfp string = "4gfc-sfp"
   576  
   577  	// WritableInterfaceTypeNr8gfcDashSfpp captures enum value "8gfc-sfpp"
   578  	WritableInterfaceTypeNr8gfcDashSfpp string = "8gfc-sfpp"
   579  
   580  	// WritableInterfaceTypeNr16gfcDashSfpp captures enum value "16gfc-sfpp"
   581  	WritableInterfaceTypeNr16gfcDashSfpp string = "16gfc-sfpp"
   582  
   583  	// WritableInterfaceTypeNr32gfcDashSfp28 captures enum value "32gfc-sfp28"
   584  	WritableInterfaceTypeNr32gfcDashSfp28 string = "32gfc-sfp28"
   585  
   586  	// WritableInterfaceTypeNr64gfcDashQsfpp captures enum value "64gfc-qsfpp"
   587  	WritableInterfaceTypeNr64gfcDashQsfpp string = "64gfc-qsfpp"
   588  
   589  	// WritableInterfaceTypeNr128gfcDashSfp28 captures enum value "128gfc-sfp28"
   590  	WritableInterfaceTypeNr128gfcDashSfp28 string = "128gfc-sfp28"
   591  
   592  	// WritableInterfaceTypeInfinibandDashSdr captures enum value "infiniband-sdr"
   593  	WritableInterfaceTypeInfinibandDashSdr string = "infiniband-sdr"
   594  
   595  	// WritableInterfaceTypeInfinibandDashDdr captures enum value "infiniband-ddr"
   596  	WritableInterfaceTypeInfinibandDashDdr string = "infiniband-ddr"
   597  
   598  	// WritableInterfaceTypeInfinibandDashQdr captures enum value "infiniband-qdr"
   599  	WritableInterfaceTypeInfinibandDashQdr string = "infiniband-qdr"
   600  
   601  	// WritableInterfaceTypeInfinibandDashFdr10 captures enum value "infiniband-fdr10"
   602  	WritableInterfaceTypeInfinibandDashFdr10 string = "infiniband-fdr10"
   603  
   604  	// WritableInterfaceTypeInfinibandDashFdr captures enum value "infiniband-fdr"
   605  	WritableInterfaceTypeInfinibandDashFdr string = "infiniband-fdr"
   606  
   607  	// WritableInterfaceTypeInfinibandDashEdr captures enum value "infiniband-edr"
   608  	WritableInterfaceTypeInfinibandDashEdr string = "infiniband-edr"
   609  
   610  	// WritableInterfaceTypeInfinibandDashHdr captures enum value "infiniband-hdr"
   611  	WritableInterfaceTypeInfinibandDashHdr string = "infiniband-hdr"
   612  
   613  	// WritableInterfaceTypeInfinibandDashNdr captures enum value "infiniband-ndr"
   614  	WritableInterfaceTypeInfinibandDashNdr string = "infiniband-ndr"
   615  
   616  	// WritableInterfaceTypeInfinibandDashXdr captures enum value "infiniband-xdr"
   617  	WritableInterfaceTypeInfinibandDashXdr string = "infiniband-xdr"
   618  
   619  	// WritableInterfaceTypeT1 captures enum value "t1"
   620  	WritableInterfaceTypeT1 string = "t1"
   621  
   622  	// WritableInterfaceTypeE1 captures enum value "e1"
   623  	WritableInterfaceTypeE1 string = "e1"
   624  
   625  	// WritableInterfaceTypeT3 captures enum value "t3"
   626  	WritableInterfaceTypeT3 string = "t3"
   627  
   628  	// WritableInterfaceTypeE3 captures enum value "e3"
   629  	WritableInterfaceTypeE3 string = "e3"
   630  
   631  	// WritableInterfaceTypeCiscoDashStackwise captures enum value "cisco-stackwise"
   632  	WritableInterfaceTypeCiscoDashStackwise string = "cisco-stackwise"
   633  
   634  	// WritableInterfaceTypeCiscoDashStackwiseDashPlus captures enum value "cisco-stackwise-plus"
   635  	WritableInterfaceTypeCiscoDashStackwiseDashPlus string = "cisco-stackwise-plus"
   636  
   637  	// WritableInterfaceTypeCiscoDashFlexstack captures enum value "cisco-flexstack"
   638  	WritableInterfaceTypeCiscoDashFlexstack string = "cisco-flexstack"
   639  
   640  	// WritableInterfaceTypeCiscoDashFlexstackDashPlus captures enum value "cisco-flexstack-plus"
   641  	WritableInterfaceTypeCiscoDashFlexstackDashPlus string = "cisco-flexstack-plus"
   642  
   643  	// WritableInterfaceTypeJuniperDashVcp captures enum value "juniper-vcp"
   644  	WritableInterfaceTypeJuniperDashVcp string = "juniper-vcp"
   645  
   646  	// WritableInterfaceTypeExtremeDashSummitstack captures enum value "extreme-summitstack"
   647  	WritableInterfaceTypeExtremeDashSummitstack string = "extreme-summitstack"
   648  
   649  	// WritableInterfaceTypeExtremeDashSummitstackDash128 captures enum value "extreme-summitstack-128"
   650  	WritableInterfaceTypeExtremeDashSummitstackDash128 string = "extreme-summitstack-128"
   651  
   652  	// WritableInterfaceTypeExtremeDashSummitstackDash256 captures enum value "extreme-summitstack-256"
   653  	WritableInterfaceTypeExtremeDashSummitstackDash256 string = "extreme-summitstack-256"
   654  
   655  	// WritableInterfaceTypeExtremeDashSummitstackDash512 captures enum value "extreme-summitstack-512"
   656  	WritableInterfaceTypeExtremeDashSummitstackDash512 string = "extreme-summitstack-512"
   657  
   658  	// WritableInterfaceTypeOther captures enum value "other"
   659  	WritableInterfaceTypeOther string = "other"
   660  )
   661  
   662  // prop value enum
   663  func (m *WritableInterface) validateTypeEnum(path, location string, value string) error {
   664  	if err := validate.EnumCase(path, location, value, writableInterfaceTypeTypePropEnum, true); err != nil {
   665  		return err
   666  	}
   667  	return nil
   668  }
   669  
   670  func (m *WritableInterface) validateType(formats strfmt.Registry) error {
   671  
   672  	if err := validate.Required("type", "body", m.Type); err != nil {
   673  		return err
   674  	}
   675  
   676  	// value enum
   677  	if err := m.validateTypeEnum("type", "body", *m.Type); err != nil {
   678  		return err
   679  	}
   680  
   681  	return nil
   682  }
   683  
   684  func (m *WritableInterface) validateURL(formats strfmt.Registry) error {
   685  	if swag.IsZero(m.URL) { // not required
   686  		return nil
   687  	}
   688  
   689  	if err := validate.FormatOf("url", "body", "uri", m.URL.String(), formats); err != nil {
   690  		return err
   691  	}
   692  
   693  	return nil
   694  }
   695  
   696  // ContextValidate validate this writable interface based on the context it is used
   697  func (m *WritableInterface) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
   698  	var res []error
   699  
   700  	if err := m.contextValidateOccupied(ctx, formats); err != nil {
   701  		res = append(res, err)
   702  	}
   703  
   704  	if err := m.contextValidateCable(ctx, formats); err != nil {
   705  		res = append(res, err)
   706  	}
   707  
   708  	if err := m.contextValidateCablePeer(ctx, formats); err != nil {
   709  		res = append(res, err)
   710  	}
   711  
   712  	if err := m.contextValidateCablePeerType(ctx, formats); err != nil {
   713  		res = append(res, err)
   714  	}
   715  
   716  	if err := m.contextValidateConnectedEndpoint(ctx, formats); err != nil {
   717  		res = append(res, err)
   718  	}
   719  
   720  	if err := m.contextValidateConnectedEndpointReachable(ctx, formats); err != nil {
   721  		res = append(res, err)
   722  	}
   723  
   724  	if err := m.contextValidateConnectedEndpointType(ctx, formats); err != nil {
   725  		res = append(res, err)
   726  	}
   727  
   728  	if err := m.contextValidateCountIpaddresses(ctx, formats); err != nil {
   729  		res = append(res, err)
   730  	}
   731  
   732  	if err := m.contextValidateCreated(ctx, formats); err != nil {
   733  		res = append(res, err)
   734  	}
   735  
   736  	if err := m.contextValidateDisplay(ctx, formats); err != nil {
   737  		res = append(res, err)
   738  	}
   739  
   740  	if err := m.contextValidateID(ctx, formats); err != nil {
   741  		res = append(res, err)
   742  	}
   743  
   744  	if err := m.contextValidateLastUpdated(ctx, formats); err != nil {
   745  		res = append(res, err)
   746  	}
   747  
   748  	if err := m.contextValidateTags(ctx, formats); err != nil {
   749  		res = append(res, err)
   750  	}
   751  
   752  	if err := m.contextValidateURL(ctx, formats); err != nil {
   753  		res = append(res, err)
   754  	}
   755  
   756  	if len(res) > 0 {
   757  		return errors.CompositeValidationError(res...)
   758  	}
   759  	return nil
   760  }
   761  
   762  func (m *WritableInterface) contextValidateOccupied(ctx context.Context, formats strfmt.Registry) error {
   763  
   764  	if err := validate.ReadOnly(ctx, "_occupied", "body", m.Occupied); err != nil {
   765  		return err
   766  	}
   767  
   768  	return nil
   769  }
   770  
   771  func (m *WritableInterface) contextValidateCable(ctx context.Context, formats strfmt.Registry) error {
   772  
   773  	if m.Cable != nil {
   774  		if err := m.Cable.ContextValidate(ctx, formats); err != nil {
   775  			if ve, ok := err.(*errors.Validation); ok {
   776  				return ve.ValidateName("cable")
   777  			} else if ce, ok := err.(*errors.CompositeError); ok {
   778  				return ce.ValidateName("cable")
   779  			}
   780  			return err
   781  		}
   782  	}
   783  
   784  	return nil
   785  }
   786  
   787  func (m *WritableInterface) contextValidateCablePeer(ctx context.Context, formats strfmt.Registry) error {
   788  
   789  	return nil
   790  }
   791  
   792  func (m *WritableInterface) contextValidateCablePeerType(ctx context.Context, formats strfmt.Registry) error {
   793  
   794  	if err := validate.ReadOnly(ctx, "cable_peer_type", "body", string(m.CablePeerType)); err != nil {
   795  		return err
   796  	}
   797  
   798  	return nil
   799  }
   800  
   801  func (m *WritableInterface) contextValidateConnectedEndpoint(ctx context.Context, formats strfmt.Registry) error {
   802  
   803  	return nil
   804  }
   805  
   806  func (m *WritableInterface) contextValidateConnectedEndpointReachable(ctx context.Context, formats strfmt.Registry) error {
   807  
   808  	if err := validate.ReadOnly(ctx, "connected_endpoint_reachable", "body", m.ConnectedEndpointReachable); err != nil {
   809  		return err
   810  	}
   811  
   812  	return nil
   813  }
   814  
   815  func (m *WritableInterface) contextValidateConnectedEndpointType(ctx context.Context, formats strfmt.Registry) error {
   816  
   817  	if err := validate.ReadOnly(ctx, "connected_endpoint_type", "body", string(m.ConnectedEndpointType)); err != nil {
   818  		return err
   819  	}
   820  
   821  	return nil
   822  }
   823  
   824  func (m *WritableInterface) contextValidateCountIpaddresses(ctx context.Context, formats strfmt.Registry) error {
   825  
   826  	if err := validate.ReadOnly(ctx, "count_ipaddresses", "body", int64(m.CountIpaddresses)); err != nil {
   827  		return err
   828  	}
   829  
   830  	return nil
   831  }
   832  
   833  func (m *WritableInterface) contextValidateCreated(ctx context.Context, formats strfmt.Registry) error {
   834  
   835  	if err := validate.ReadOnly(ctx, "created", "body", strfmt.Date(m.Created)); err != nil {
   836  		return err
   837  	}
   838  
   839  	return nil
   840  }
   841  
   842  func (m *WritableInterface) contextValidateDisplay(ctx context.Context, formats strfmt.Registry) error {
   843  
   844  	if err := validate.ReadOnly(ctx, "display", "body", string(m.Display)); err != nil {
   845  		return err
   846  	}
   847  
   848  	return nil
   849  }
   850  
   851  func (m *WritableInterface) contextValidateID(ctx context.Context, formats strfmt.Registry) error {
   852  
   853  	if err := validate.ReadOnly(ctx, "id", "body", int64(m.ID)); err != nil {
   854  		return err
   855  	}
   856  
   857  	return nil
   858  }
   859  
   860  func (m *WritableInterface) contextValidateLastUpdated(ctx context.Context, formats strfmt.Registry) error {
   861  
   862  	if err := validate.ReadOnly(ctx, "last_updated", "body", strfmt.DateTime(m.LastUpdated)); err != nil {
   863  		return err
   864  	}
   865  
   866  	return nil
   867  }
   868  
   869  func (m *WritableInterface) contextValidateTags(ctx context.Context, formats strfmt.Registry) error {
   870  
   871  	for i := 0; i < len(m.Tags); i++ {
   872  
   873  		if m.Tags[i] != nil {
   874  			if err := m.Tags[i].ContextValidate(ctx, formats); err != nil {
   875  				if ve, ok := err.(*errors.Validation); ok {
   876  					return ve.ValidateName("tags" + "." + strconv.Itoa(i))
   877  				} else if ce, ok := err.(*errors.CompositeError); ok {
   878  					return ce.ValidateName("tags" + "." + strconv.Itoa(i))
   879  				}
   880  				return err
   881  			}
   882  		}
   883  
   884  	}
   885  
   886  	return nil
   887  }
   888  
   889  func (m *WritableInterface) contextValidateURL(ctx context.Context, formats strfmt.Registry) error {
   890  
   891  	if err := validate.ReadOnly(ctx, "url", "body", strfmt.URI(m.URL)); err != nil {
   892  		return err
   893  	}
   894  
   895  	return nil
   896  }
   897  
   898  // MarshalBinary interface implementation
   899  func (m *WritableInterface) MarshalBinary() ([]byte, error) {
   900  	if m == nil {
   901  		return nil, nil
   902  	}
   903  	return swag.WriteJSON(m)
   904  }
   905  
   906  // UnmarshalBinary interface implementation
   907  func (m *WritableInterface) UnmarshalBinary(b []byte) error {
   908  	var res WritableInterface
   909  	if err := swag.ReadJSON(b, &res); err != nil {
   910  		return err
   911  	}
   912  	*m = res
   913  	return nil
   914  }