github.com/digitalocean/go-netbox@v0.0.2/netbox/models/writable_interface_template.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  
    27  	"github.com/go-openapi/errors"
    28  	"github.com/go-openapi/strfmt"
    29  	"github.com/go-openapi/swag"
    30  	"github.com/go-openapi/validate"
    31  )
    32  
    33  // WritableInterfaceTemplate writable interface template
    34  //
    35  // swagger:model WritableInterfaceTemplate
    36  type WritableInterfaceTemplate struct {
    37  
    38  	// Created
    39  	// Read Only: true
    40  	// Format: date
    41  	Created strfmt.Date `json:"created,omitempty"`
    42  
    43  	// Description
    44  	// Max Length: 200
    45  	Description string `json:"description,omitempty"`
    46  
    47  	// Device type
    48  	// Required: true
    49  	DeviceType *int64 `json:"device_type"`
    50  
    51  	// Display
    52  	// Read Only: true
    53  	Display string `json:"display,omitempty"`
    54  
    55  	// Id
    56  	// Read Only: true
    57  	ID int64 `json:"id,omitempty"`
    58  
    59  	// Label
    60  	//
    61  	// Physical label
    62  	// Max Length: 64
    63  	Label string `json:"label,omitempty"`
    64  
    65  	// Last updated
    66  	// Read Only: true
    67  	// Format: date-time
    68  	LastUpdated strfmt.DateTime `json:"last_updated,omitempty"`
    69  
    70  	// Management only
    71  	MgmtOnly bool `json:"mgmt_only,omitempty"`
    72  
    73  	// Name
    74  	// Required: true
    75  	// Max Length: 64
    76  	// Min Length: 1
    77  	Name *string `json:"name"`
    78  
    79  	// Type
    80  	// Required: true
    81  	// 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]
    82  	Type *string `json:"type"`
    83  
    84  	// Url
    85  	// Read Only: true
    86  	// Format: uri
    87  	URL strfmt.URI `json:"url,omitempty"`
    88  }
    89  
    90  // Validate validates this writable interface template
    91  func (m *WritableInterfaceTemplate) Validate(formats strfmt.Registry) error {
    92  	var res []error
    93  
    94  	if err := m.validateCreated(formats); err != nil {
    95  		res = append(res, err)
    96  	}
    97  
    98  	if err := m.validateDescription(formats); err != nil {
    99  		res = append(res, err)
   100  	}
   101  
   102  	if err := m.validateDeviceType(formats); err != nil {
   103  		res = append(res, err)
   104  	}
   105  
   106  	if err := m.validateLabel(formats); err != nil {
   107  		res = append(res, err)
   108  	}
   109  
   110  	if err := m.validateLastUpdated(formats); err != nil {
   111  		res = append(res, err)
   112  	}
   113  
   114  	if err := m.validateName(formats); err != nil {
   115  		res = append(res, err)
   116  	}
   117  
   118  	if err := m.validateType(formats); err != nil {
   119  		res = append(res, err)
   120  	}
   121  
   122  	if err := m.validateURL(formats); err != nil {
   123  		res = append(res, err)
   124  	}
   125  
   126  	if len(res) > 0 {
   127  		return errors.CompositeValidationError(res...)
   128  	}
   129  	return nil
   130  }
   131  
   132  func (m *WritableInterfaceTemplate) validateCreated(formats strfmt.Registry) error {
   133  	if swag.IsZero(m.Created) { // not required
   134  		return nil
   135  	}
   136  
   137  	if err := validate.FormatOf("created", "body", "date", m.Created.String(), formats); err != nil {
   138  		return err
   139  	}
   140  
   141  	return nil
   142  }
   143  
   144  func (m *WritableInterfaceTemplate) validateDescription(formats strfmt.Registry) error {
   145  	if swag.IsZero(m.Description) { // not required
   146  		return nil
   147  	}
   148  
   149  	if err := validate.MaxLength("description", "body", m.Description, 200); err != nil {
   150  		return err
   151  	}
   152  
   153  	return nil
   154  }
   155  
   156  func (m *WritableInterfaceTemplate) validateDeviceType(formats strfmt.Registry) error {
   157  
   158  	if err := validate.Required("device_type", "body", m.DeviceType); err != nil {
   159  		return err
   160  	}
   161  
   162  	return nil
   163  }
   164  
   165  func (m *WritableInterfaceTemplate) validateLabel(formats strfmt.Registry) error {
   166  	if swag.IsZero(m.Label) { // not required
   167  		return nil
   168  	}
   169  
   170  	if err := validate.MaxLength("label", "body", m.Label, 64); err != nil {
   171  		return err
   172  	}
   173  
   174  	return nil
   175  }
   176  
   177  func (m *WritableInterfaceTemplate) validateLastUpdated(formats strfmt.Registry) error {
   178  	if swag.IsZero(m.LastUpdated) { // not required
   179  		return nil
   180  	}
   181  
   182  	if err := validate.FormatOf("last_updated", "body", "date-time", m.LastUpdated.String(), formats); err != nil {
   183  		return err
   184  	}
   185  
   186  	return nil
   187  }
   188  
   189  func (m *WritableInterfaceTemplate) validateName(formats strfmt.Registry) error {
   190  
   191  	if err := validate.Required("name", "body", m.Name); err != nil {
   192  		return err
   193  	}
   194  
   195  	if err := validate.MinLength("name", "body", *m.Name, 1); err != nil {
   196  		return err
   197  	}
   198  
   199  	if err := validate.MaxLength("name", "body", *m.Name, 64); err != nil {
   200  		return err
   201  	}
   202  
   203  	return nil
   204  }
   205  
   206  var writableInterfaceTemplateTypeTypePropEnum []interface{}
   207  
   208  func init() {
   209  	var res []string
   210  	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 {
   211  		panic(err)
   212  	}
   213  	for _, v := range res {
   214  		writableInterfaceTemplateTypeTypePropEnum = append(writableInterfaceTemplateTypeTypePropEnum, v)
   215  	}
   216  }
   217  
   218  const (
   219  
   220  	// WritableInterfaceTemplateTypeVirtual captures enum value "virtual"
   221  	WritableInterfaceTemplateTypeVirtual string = "virtual"
   222  
   223  	// WritableInterfaceTemplateTypeLag captures enum value "lag"
   224  	WritableInterfaceTemplateTypeLag string = "lag"
   225  
   226  	// WritableInterfaceTemplateTypeNr100baseDashTx captures enum value "100base-tx"
   227  	WritableInterfaceTemplateTypeNr100baseDashTx string = "100base-tx"
   228  
   229  	// WritableInterfaceTemplateTypeNr1000baseDasht captures enum value "1000base-t"
   230  	WritableInterfaceTemplateTypeNr1000baseDasht string = "1000base-t"
   231  
   232  	// WritableInterfaceTemplateTypeNr2Dot5gbaseDasht captures enum value "2.5gbase-t"
   233  	WritableInterfaceTemplateTypeNr2Dot5gbaseDasht string = "2.5gbase-t"
   234  
   235  	// WritableInterfaceTemplateTypeNr5gbaseDasht captures enum value "5gbase-t"
   236  	WritableInterfaceTemplateTypeNr5gbaseDasht string = "5gbase-t"
   237  
   238  	// WritableInterfaceTemplateTypeNr10gbaseDasht captures enum value "10gbase-t"
   239  	WritableInterfaceTemplateTypeNr10gbaseDasht string = "10gbase-t"
   240  
   241  	// WritableInterfaceTemplateTypeNr10gbaseDashCx4 captures enum value "10gbase-cx4"
   242  	WritableInterfaceTemplateTypeNr10gbaseDashCx4 string = "10gbase-cx4"
   243  
   244  	// WritableInterfaceTemplateTypeNr1000baseDashxDashGbic captures enum value "1000base-x-gbic"
   245  	WritableInterfaceTemplateTypeNr1000baseDashxDashGbic string = "1000base-x-gbic"
   246  
   247  	// WritableInterfaceTemplateTypeNr1000baseDashxDashSfp captures enum value "1000base-x-sfp"
   248  	WritableInterfaceTemplateTypeNr1000baseDashxDashSfp string = "1000base-x-sfp"
   249  
   250  	// WritableInterfaceTemplateTypeNr10gbaseDashxDashSfpp captures enum value "10gbase-x-sfpp"
   251  	WritableInterfaceTemplateTypeNr10gbaseDashxDashSfpp string = "10gbase-x-sfpp"
   252  
   253  	// WritableInterfaceTemplateTypeNr10gbaseDashxDashXfp captures enum value "10gbase-x-xfp"
   254  	WritableInterfaceTemplateTypeNr10gbaseDashxDashXfp string = "10gbase-x-xfp"
   255  
   256  	// WritableInterfaceTemplateTypeNr10gbaseDashxDashXenpak captures enum value "10gbase-x-xenpak"
   257  	WritableInterfaceTemplateTypeNr10gbaseDashxDashXenpak string = "10gbase-x-xenpak"
   258  
   259  	// WritableInterfaceTemplateTypeNr10gbaseDashxDashX2 captures enum value "10gbase-x-x2"
   260  	WritableInterfaceTemplateTypeNr10gbaseDashxDashX2 string = "10gbase-x-x2"
   261  
   262  	// WritableInterfaceTemplateTypeNr25gbaseDashxDashSfp28 captures enum value "25gbase-x-sfp28"
   263  	WritableInterfaceTemplateTypeNr25gbaseDashxDashSfp28 string = "25gbase-x-sfp28"
   264  
   265  	// WritableInterfaceTemplateTypeNr50gbaseDashxDashSfp56 captures enum value "50gbase-x-sfp56"
   266  	WritableInterfaceTemplateTypeNr50gbaseDashxDashSfp56 string = "50gbase-x-sfp56"
   267  
   268  	// WritableInterfaceTemplateTypeNr40gbaseDashxDashQsfpp captures enum value "40gbase-x-qsfpp"
   269  	WritableInterfaceTemplateTypeNr40gbaseDashxDashQsfpp string = "40gbase-x-qsfpp"
   270  
   271  	// WritableInterfaceTemplateTypeNr50gbaseDashxDashSfp28 captures enum value "50gbase-x-sfp28"
   272  	WritableInterfaceTemplateTypeNr50gbaseDashxDashSfp28 string = "50gbase-x-sfp28"
   273  
   274  	// WritableInterfaceTemplateTypeNr100gbaseDashxDashCfp captures enum value "100gbase-x-cfp"
   275  	WritableInterfaceTemplateTypeNr100gbaseDashxDashCfp string = "100gbase-x-cfp"
   276  
   277  	// WritableInterfaceTemplateTypeNr100gbaseDashxDashCfp2 captures enum value "100gbase-x-cfp2"
   278  	WritableInterfaceTemplateTypeNr100gbaseDashxDashCfp2 string = "100gbase-x-cfp2"
   279  
   280  	// WritableInterfaceTemplateTypeNr200gbaseDashxDashCfp2 captures enum value "200gbase-x-cfp2"
   281  	WritableInterfaceTemplateTypeNr200gbaseDashxDashCfp2 string = "200gbase-x-cfp2"
   282  
   283  	// WritableInterfaceTemplateTypeNr100gbaseDashxDashCfp4 captures enum value "100gbase-x-cfp4"
   284  	WritableInterfaceTemplateTypeNr100gbaseDashxDashCfp4 string = "100gbase-x-cfp4"
   285  
   286  	// WritableInterfaceTemplateTypeNr100gbaseDashxDashCpak captures enum value "100gbase-x-cpak"
   287  	WritableInterfaceTemplateTypeNr100gbaseDashxDashCpak string = "100gbase-x-cpak"
   288  
   289  	// WritableInterfaceTemplateTypeNr100gbaseDashxDashQsfp28 captures enum value "100gbase-x-qsfp28"
   290  	WritableInterfaceTemplateTypeNr100gbaseDashxDashQsfp28 string = "100gbase-x-qsfp28"
   291  
   292  	// WritableInterfaceTemplateTypeNr200gbaseDashxDashQsfp56 captures enum value "200gbase-x-qsfp56"
   293  	WritableInterfaceTemplateTypeNr200gbaseDashxDashQsfp56 string = "200gbase-x-qsfp56"
   294  
   295  	// WritableInterfaceTemplateTypeNr400gbaseDashxDashQsfpdd captures enum value "400gbase-x-qsfpdd"
   296  	WritableInterfaceTemplateTypeNr400gbaseDashxDashQsfpdd string = "400gbase-x-qsfpdd"
   297  
   298  	// WritableInterfaceTemplateTypeNr400gbaseDashxDashOsfp captures enum value "400gbase-x-osfp"
   299  	WritableInterfaceTemplateTypeNr400gbaseDashxDashOsfp string = "400gbase-x-osfp"
   300  
   301  	// WritableInterfaceTemplateTypeIeee802Dot11a captures enum value "ieee802.11a"
   302  	WritableInterfaceTemplateTypeIeee802Dot11a string = "ieee802.11a"
   303  
   304  	// WritableInterfaceTemplateTypeIeee802Dot11g captures enum value "ieee802.11g"
   305  	WritableInterfaceTemplateTypeIeee802Dot11g string = "ieee802.11g"
   306  
   307  	// WritableInterfaceTemplateTypeIeee802Dot11n captures enum value "ieee802.11n"
   308  	WritableInterfaceTemplateTypeIeee802Dot11n string = "ieee802.11n"
   309  
   310  	// WritableInterfaceTemplateTypeIeee802Dot11ac captures enum value "ieee802.11ac"
   311  	WritableInterfaceTemplateTypeIeee802Dot11ac string = "ieee802.11ac"
   312  
   313  	// WritableInterfaceTemplateTypeIeee802Dot11ad captures enum value "ieee802.11ad"
   314  	WritableInterfaceTemplateTypeIeee802Dot11ad string = "ieee802.11ad"
   315  
   316  	// WritableInterfaceTemplateTypeIeee802Dot11ax captures enum value "ieee802.11ax"
   317  	WritableInterfaceTemplateTypeIeee802Dot11ax string = "ieee802.11ax"
   318  
   319  	// WritableInterfaceTemplateTypeGsm captures enum value "gsm"
   320  	WritableInterfaceTemplateTypeGsm string = "gsm"
   321  
   322  	// WritableInterfaceTemplateTypeCdma captures enum value "cdma"
   323  	WritableInterfaceTemplateTypeCdma string = "cdma"
   324  
   325  	// WritableInterfaceTemplateTypeLte captures enum value "lte"
   326  	WritableInterfaceTemplateTypeLte string = "lte"
   327  
   328  	// WritableInterfaceTemplateTypeSonetDashOc3 captures enum value "sonet-oc3"
   329  	WritableInterfaceTemplateTypeSonetDashOc3 string = "sonet-oc3"
   330  
   331  	// WritableInterfaceTemplateTypeSonetDashOc12 captures enum value "sonet-oc12"
   332  	WritableInterfaceTemplateTypeSonetDashOc12 string = "sonet-oc12"
   333  
   334  	// WritableInterfaceTemplateTypeSonetDashOc48 captures enum value "sonet-oc48"
   335  	WritableInterfaceTemplateTypeSonetDashOc48 string = "sonet-oc48"
   336  
   337  	// WritableInterfaceTemplateTypeSonetDashOc192 captures enum value "sonet-oc192"
   338  	WritableInterfaceTemplateTypeSonetDashOc192 string = "sonet-oc192"
   339  
   340  	// WritableInterfaceTemplateTypeSonetDashOc768 captures enum value "sonet-oc768"
   341  	WritableInterfaceTemplateTypeSonetDashOc768 string = "sonet-oc768"
   342  
   343  	// WritableInterfaceTemplateTypeSonetDashOc1920 captures enum value "sonet-oc1920"
   344  	WritableInterfaceTemplateTypeSonetDashOc1920 string = "sonet-oc1920"
   345  
   346  	// WritableInterfaceTemplateTypeSonetDashOc3840 captures enum value "sonet-oc3840"
   347  	WritableInterfaceTemplateTypeSonetDashOc3840 string = "sonet-oc3840"
   348  
   349  	// WritableInterfaceTemplateTypeNr1gfcDashSfp captures enum value "1gfc-sfp"
   350  	WritableInterfaceTemplateTypeNr1gfcDashSfp string = "1gfc-sfp"
   351  
   352  	// WritableInterfaceTemplateTypeNr2gfcDashSfp captures enum value "2gfc-sfp"
   353  	WritableInterfaceTemplateTypeNr2gfcDashSfp string = "2gfc-sfp"
   354  
   355  	// WritableInterfaceTemplateTypeNr4gfcDashSfp captures enum value "4gfc-sfp"
   356  	WritableInterfaceTemplateTypeNr4gfcDashSfp string = "4gfc-sfp"
   357  
   358  	// WritableInterfaceTemplateTypeNr8gfcDashSfpp captures enum value "8gfc-sfpp"
   359  	WritableInterfaceTemplateTypeNr8gfcDashSfpp string = "8gfc-sfpp"
   360  
   361  	// WritableInterfaceTemplateTypeNr16gfcDashSfpp captures enum value "16gfc-sfpp"
   362  	WritableInterfaceTemplateTypeNr16gfcDashSfpp string = "16gfc-sfpp"
   363  
   364  	// WritableInterfaceTemplateTypeNr32gfcDashSfp28 captures enum value "32gfc-sfp28"
   365  	WritableInterfaceTemplateTypeNr32gfcDashSfp28 string = "32gfc-sfp28"
   366  
   367  	// WritableInterfaceTemplateTypeNr64gfcDashQsfpp captures enum value "64gfc-qsfpp"
   368  	WritableInterfaceTemplateTypeNr64gfcDashQsfpp string = "64gfc-qsfpp"
   369  
   370  	// WritableInterfaceTemplateTypeNr128gfcDashSfp28 captures enum value "128gfc-sfp28"
   371  	WritableInterfaceTemplateTypeNr128gfcDashSfp28 string = "128gfc-sfp28"
   372  
   373  	// WritableInterfaceTemplateTypeInfinibandDashSdr captures enum value "infiniband-sdr"
   374  	WritableInterfaceTemplateTypeInfinibandDashSdr string = "infiniband-sdr"
   375  
   376  	// WritableInterfaceTemplateTypeInfinibandDashDdr captures enum value "infiniband-ddr"
   377  	WritableInterfaceTemplateTypeInfinibandDashDdr string = "infiniband-ddr"
   378  
   379  	// WritableInterfaceTemplateTypeInfinibandDashQdr captures enum value "infiniband-qdr"
   380  	WritableInterfaceTemplateTypeInfinibandDashQdr string = "infiniband-qdr"
   381  
   382  	// WritableInterfaceTemplateTypeInfinibandDashFdr10 captures enum value "infiniband-fdr10"
   383  	WritableInterfaceTemplateTypeInfinibandDashFdr10 string = "infiniband-fdr10"
   384  
   385  	// WritableInterfaceTemplateTypeInfinibandDashFdr captures enum value "infiniband-fdr"
   386  	WritableInterfaceTemplateTypeInfinibandDashFdr string = "infiniband-fdr"
   387  
   388  	// WritableInterfaceTemplateTypeInfinibandDashEdr captures enum value "infiniband-edr"
   389  	WritableInterfaceTemplateTypeInfinibandDashEdr string = "infiniband-edr"
   390  
   391  	// WritableInterfaceTemplateTypeInfinibandDashHdr captures enum value "infiniband-hdr"
   392  	WritableInterfaceTemplateTypeInfinibandDashHdr string = "infiniband-hdr"
   393  
   394  	// WritableInterfaceTemplateTypeInfinibandDashNdr captures enum value "infiniband-ndr"
   395  	WritableInterfaceTemplateTypeInfinibandDashNdr string = "infiniband-ndr"
   396  
   397  	// WritableInterfaceTemplateTypeInfinibandDashXdr captures enum value "infiniband-xdr"
   398  	WritableInterfaceTemplateTypeInfinibandDashXdr string = "infiniband-xdr"
   399  
   400  	// WritableInterfaceTemplateTypeT1 captures enum value "t1"
   401  	WritableInterfaceTemplateTypeT1 string = "t1"
   402  
   403  	// WritableInterfaceTemplateTypeE1 captures enum value "e1"
   404  	WritableInterfaceTemplateTypeE1 string = "e1"
   405  
   406  	// WritableInterfaceTemplateTypeT3 captures enum value "t3"
   407  	WritableInterfaceTemplateTypeT3 string = "t3"
   408  
   409  	// WritableInterfaceTemplateTypeE3 captures enum value "e3"
   410  	WritableInterfaceTemplateTypeE3 string = "e3"
   411  
   412  	// WritableInterfaceTemplateTypeCiscoDashStackwise captures enum value "cisco-stackwise"
   413  	WritableInterfaceTemplateTypeCiscoDashStackwise string = "cisco-stackwise"
   414  
   415  	// WritableInterfaceTemplateTypeCiscoDashStackwiseDashPlus captures enum value "cisco-stackwise-plus"
   416  	WritableInterfaceTemplateTypeCiscoDashStackwiseDashPlus string = "cisco-stackwise-plus"
   417  
   418  	// WritableInterfaceTemplateTypeCiscoDashFlexstack captures enum value "cisco-flexstack"
   419  	WritableInterfaceTemplateTypeCiscoDashFlexstack string = "cisco-flexstack"
   420  
   421  	// WritableInterfaceTemplateTypeCiscoDashFlexstackDashPlus captures enum value "cisco-flexstack-plus"
   422  	WritableInterfaceTemplateTypeCiscoDashFlexstackDashPlus string = "cisco-flexstack-plus"
   423  
   424  	// WritableInterfaceTemplateTypeJuniperDashVcp captures enum value "juniper-vcp"
   425  	WritableInterfaceTemplateTypeJuniperDashVcp string = "juniper-vcp"
   426  
   427  	// WritableInterfaceTemplateTypeExtremeDashSummitstack captures enum value "extreme-summitstack"
   428  	WritableInterfaceTemplateTypeExtremeDashSummitstack string = "extreme-summitstack"
   429  
   430  	// WritableInterfaceTemplateTypeExtremeDashSummitstackDash128 captures enum value "extreme-summitstack-128"
   431  	WritableInterfaceTemplateTypeExtremeDashSummitstackDash128 string = "extreme-summitstack-128"
   432  
   433  	// WritableInterfaceTemplateTypeExtremeDashSummitstackDash256 captures enum value "extreme-summitstack-256"
   434  	WritableInterfaceTemplateTypeExtremeDashSummitstackDash256 string = "extreme-summitstack-256"
   435  
   436  	// WritableInterfaceTemplateTypeExtremeDashSummitstackDash512 captures enum value "extreme-summitstack-512"
   437  	WritableInterfaceTemplateTypeExtremeDashSummitstackDash512 string = "extreme-summitstack-512"
   438  
   439  	// WritableInterfaceTemplateTypeOther captures enum value "other"
   440  	WritableInterfaceTemplateTypeOther string = "other"
   441  )
   442  
   443  // prop value enum
   444  func (m *WritableInterfaceTemplate) validateTypeEnum(path, location string, value string) error {
   445  	if err := validate.EnumCase(path, location, value, writableInterfaceTemplateTypeTypePropEnum, true); err != nil {
   446  		return err
   447  	}
   448  	return nil
   449  }
   450  
   451  func (m *WritableInterfaceTemplate) validateType(formats strfmt.Registry) error {
   452  
   453  	if err := validate.Required("type", "body", m.Type); err != nil {
   454  		return err
   455  	}
   456  
   457  	// value enum
   458  	if err := m.validateTypeEnum("type", "body", *m.Type); err != nil {
   459  		return err
   460  	}
   461  
   462  	return nil
   463  }
   464  
   465  func (m *WritableInterfaceTemplate) validateURL(formats strfmt.Registry) error {
   466  	if swag.IsZero(m.URL) { // not required
   467  		return nil
   468  	}
   469  
   470  	if err := validate.FormatOf("url", "body", "uri", m.URL.String(), formats); err != nil {
   471  		return err
   472  	}
   473  
   474  	return nil
   475  }
   476  
   477  // ContextValidate validate this writable interface template based on the context it is used
   478  func (m *WritableInterfaceTemplate) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
   479  	var res []error
   480  
   481  	if err := m.contextValidateCreated(ctx, formats); err != nil {
   482  		res = append(res, err)
   483  	}
   484  
   485  	if err := m.contextValidateDisplay(ctx, formats); err != nil {
   486  		res = append(res, err)
   487  	}
   488  
   489  	if err := m.contextValidateID(ctx, formats); err != nil {
   490  		res = append(res, err)
   491  	}
   492  
   493  	if err := m.contextValidateLastUpdated(ctx, formats); err != nil {
   494  		res = append(res, err)
   495  	}
   496  
   497  	if err := m.contextValidateURL(ctx, formats); err != nil {
   498  		res = append(res, err)
   499  	}
   500  
   501  	if len(res) > 0 {
   502  		return errors.CompositeValidationError(res...)
   503  	}
   504  	return nil
   505  }
   506  
   507  func (m *WritableInterfaceTemplate) contextValidateCreated(ctx context.Context, formats strfmt.Registry) error {
   508  
   509  	if err := validate.ReadOnly(ctx, "created", "body", strfmt.Date(m.Created)); err != nil {
   510  		return err
   511  	}
   512  
   513  	return nil
   514  }
   515  
   516  func (m *WritableInterfaceTemplate) contextValidateDisplay(ctx context.Context, formats strfmt.Registry) error {
   517  
   518  	if err := validate.ReadOnly(ctx, "display", "body", string(m.Display)); err != nil {
   519  		return err
   520  	}
   521  
   522  	return nil
   523  }
   524  
   525  func (m *WritableInterfaceTemplate) contextValidateID(ctx context.Context, formats strfmt.Registry) error {
   526  
   527  	if err := validate.ReadOnly(ctx, "id", "body", int64(m.ID)); err != nil {
   528  		return err
   529  	}
   530  
   531  	return nil
   532  }
   533  
   534  func (m *WritableInterfaceTemplate) contextValidateLastUpdated(ctx context.Context, formats strfmt.Registry) error {
   535  
   536  	if err := validate.ReadOnly(ctx, "last_updated", "body", strfmt.DateTime(m.LastUpdated)); err != nil {
   537  		return err
   538  	}
   539  
   540  	return nil
   541  }
   542  
   543  func (m *WritableInterfaceTemplate) contextValidateURL(ctx context.Context, formats strfmt.Registry) error {
   544  
   545  	if err := validate.ReadOnly(ctx, "url", "body", strfmt.URI(m.URL)); err != nil {
   546  		return err
   547  	}
   548  
   549  	return nil
   550  }
   551  
   552  // MarshalBinary interface implementation
   553  func (m *WritableInterfaceTemplate) MarshalBinary() ([]byte, error) {
   554  	if m == nil {
   555  		return nil, nil
   556  	}
   557  	return swag.WriteJSON(m)
   558  }
   559  
   560  // UnmarshalBinary interface implementation
   561  func (m *WritableInterfaceTemplate) UnmarshalBinary(b []byte) error {
   562  	var res WritableInterfaceTemplate
   563  	if err := swag.ReadJSON(b, &res); err != nil {
   564  		return err
   565  	}
   566  	*m = res
   567  	return nil
   568  }