github.com/digitalocean/go-netbox@v0.0.2/netbox/models/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  // InterfaceTemplate interface template
    34  //
    35  // swagger:model InterfaceTemplate
    36  type InterfaceTemplate 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 *NestedDeviceType `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  	Type *InterfaceTemplateType `json:"type"`
    82  
    83  	// Url
    84  	// Read Only: true
    85  	// Format: uri
    86  	URL strfmt.URI `json:"url,omitempty"`
    87  }
    88  
    89  // Validate validates this interface template
    90  func (m *InterfaceTemplate) Validate(formats strfmt.Registry) error {
    91  	var res []error
    92  
    93  	if err := m.validateCreated(formats); err != nil {
    94  		res = append(res, err)
    95  	}
    96  
    97  	if err := m.validateDescription(formats); err != nil {
    98  		res = append(res, err)
    99  	}
   100  
   101  	if err := m.validateDeviceType(formats); err != nil {
   102  		res = append(res, err)
   103  	}
   104  
   105  	if err := m.validateLabel(formats); err != nil {
   106  		res = append(res, err)
   107  	}
   108  
   109  	if err := m.validateLastUpdated(formats); err != nil {
   110  		res = append(res, err)
   111  	}
   112  
   113  	if err := m.validateName(formats); err != nil {
   114  		res = append(res, err)
   115  	}
   116  
   117  	if err := m.validateType(formats); err != nil {
   118  		res = append(res, err)
   119  	}
   120  
   121  	if err := m.validateURL(formats); err != nil {
   122  		res = append(res, err)
   123  	}
   124  
   125  	if len(res) > 0 {
   126  		return errors.CompositeValidationError(res...)
   127  	}
   128  	return nil
   129  }
   130  
   131  func (m *InterfaceTemplate) validateCreated(formats strfmt.Registry) error {
   132  	if swag.IsZero(m.Created) { // not required
   133  		return nil
   134  	}
   135  
   136  	if err := validate.FormatOf("created", "body", "date", m.Created.String(), formats); err != nil {
   137  		return err
   138  	}
   139  
   140  	return nil
   141  }
   142  
   143  func (m *InterfaceTemplate) validateDescription(formats strfmt.Registry) error {
   144  	if swag.IsZero(m.Description) { // not required
   145  		return nil
   146  	}
   147  
   148  	if err := validate.MaxLength("description", "body", m.Description, 200); err != nil {
   149  		return err
   150  	}
   151  
   152  	return nil
   153  }
   154  
   155  func (m *InterfaceTemplate) validateDeviceType(formats strfmt.Registry) error {
   156  
   157  	if err := validate.Required("device_type", "body", m.DeviceType); err != nil {
   158  		return err
   159  	}
   160  
   161  	if m.DeviceType != nil {
   162  		if err := m.DeviceType.Validate(formats); err != nil {
   163  			if ve, ok := err.(*errors.Validation); ok {
   164  				return ve.ValidateName("device_type")
   165  			} else if ce, ok := err.(*errors.CompositeError); ok {
   166  				return ce.ValidateName("device_type")
   167  			}
   168  			return err
   169  		}
   170  	}
   171  
   172  	return nil
   173  }
   174  
   175  func (m *InterfaceTemplate) validateLabel(formats strfmt.Registry) error {
   176  	if swag.IsZero(m.Label) { // not required
   177  		return nil
   178  	}
   179  
   180  	if err := validate.MaxLength("label", "body", m.Label, 64); err != nil {
   181  		return err
   182  	}
   183  
   184  	return nil
   185  }
   186  
   187  func (m *InterfaceTemplate) validateLastUpdated(formats strfmt.Registry) error {
   188  	if swag.IsZero(m.LastUpdated) { // not required
   189  		return nil
   190  	}
   191  
   192  	if err := validate.FormatOf("last_updated", "body", "date-time", m.LastUpdated.String(), formats); err != nil {
   193  		return err
   194  	}
   195  
   196  	return nil
   197  }
   198  
   199  func (m *InterfaceTemplate) validateName(formats strfmt.Registry) error {
   200  
   201  	if err := validate.Required("name", "body", m.Name); err != nil {
   202  		return err
   203  	}
   204  
   205  	if err := validate.MinLength("name", "body", *m.Name, 1); err != nil {
   206  		return err
   207  	}
   208  
   209  	if err := validate.MaxLength("name", "body", *m.Name, 64); err != nil {
   210  		return err
   211  	}
   212  
   213  	return nil
   214  }
   215  
   216  func (m *InterfaceTemplate) validateType(formats strfmt.Registry) error {
   217  
   218  	if err := validate.Required("type", "body", m.Type); err != nil {
   219  		return err
   220  	}
   221  
   222  	if m.Type != nil {
   223  		if err := m.Type.Validate(formats); err != nil {
   224  			if ve, ok := err.(*errors.Validation); ok {
   225  				return ve.ValidateName("type")
   226  			} else if ce, ok := err.(*errors.CompositeError); ok {
   227  				return ce.ValidateName("type")
   228  			}
   229  			return err
   230  		}
   231  	}
   232  
   233  	return nil
   234  }
   235  
   236  func (m *InterfaceTemplate) validateURL(formats strfmt.Registry) error {
   237  	if swag.IsZero(m.URL) { // not required
   238  		return nil
   239  	}
   240  
   241  	if err := validate.FormatOf("url", "body", "uri", m.URL.String(), formats); err != nil {
   242  		return err
   243  	}
   244  
   245  	return nil
   246  }
   247  
   248  // ContextValidate validate this interface template based on the context it is used
   249  func (m *InterfaceTemplate) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
   250  	var res []error
   251  
   252  	if err := m.contextValidateCreated(ctx, formats); err != nil {
   253  		res = append(res, err)
   254  	}
   255  
   256  	if err := m.contextValidateDeviceType(ctx, formats); err != nil {
   257  		res = append(res, err)
   258  	}
   259  
   260  	if err := m.contextValidateDisplay(ctx, formats); err != nil {
   261  		res = append(res, err)
   262  	}
   263  
   264  	if err := m.contextValidateID(ctx, formats); err != nil {
   265  		res = append(res, err)
   266  	}
   267  
   268  	if err := m.contextValidateLastUpdated(ctx, formats); err != nil {
   269  		res = append(res, err)
   270  	}
   271  
   272  	if err := m.contextValidateType(ctx, formats); err != nil {
   273  		res = append(res, err)
   274  	}
   275  
   276  	if err := m.contextValidateURL(ctx, formats); err != nil {
   277  		res = append(res, err)
   278  	}
   279  
   280  	if len(res) > 0 {
   281  		return errors.CompositeValidationError(res...)
   282  	}
   283  	return nil
   284  }
   285  
   286  func (m *InterfaceTemplate) contextValidateCreated(ctx context.Context, formats strfmt.Registry) error {
   287  
   288  	if err := validate.ReadOnly(ctx, "created", "body", strfmt.Date(m.Created)); err != nil {
   289  		return err
   290  	}
   291  
   292  	return nil
   293  }
   294  
   295  func (m *InterfaceTemplate) contextValidateDeviceType(ctx context.Context, formats strfmt.Registry) error {
   296  
   297  	if m.DeviceType != nil {
   298  		if err := m.DeviceType.ContextValidate(ctx, formats); err != nil {
   299  			if ve, ok := err.(*errors.Validation); ok {
   300  				return ve.ValidateName("device_type")
   301  			} else if ce, ok := err.(*errors.CompositeError); ok {
   302  				return ce.ValidateName("device_type")
   303  			}
   304  			return err
   305  		}
   306  	}
   307  
   308  	return nil
   309  }
   310  
   311  func (m *InterfaceTemplate) contextValidateDisplay(ctx context.Context, formats strfmt.Registry) error {
   312  
   313  	if err := validate.ReadOnly(ctx, "display", "body", string(m.Display)); err != nil {
   314  		return err
   315  	}
   316  
   317  	return nil
   318  }
   319  
   320  func (m *InterfaceTemplate) contextValidateID(ctx context.Context, formats strfmt.Registry) error {
   321  
   322  	if err := validate.ReadOnly(ctx, "id", "body", int64(m.ID)); err != nil {
   323  		return err
   324  	}
   325  
   326  	return nil
   327  }
   328  
   329  func (m *InterfaceTemplate) contextValidateLastUpdated(ctx context.Context, formats strfmt.Registry) error {
   330  
   331  	if err := validate.ReadOnly(ctx, "last_updated", "body", strfmt.DateTime(m.LastUpdated)); err != nil {
   332  		return err
   333  	}
   334  
   335  	return nil
   336  }
   337  
   338  func (m *InterfaceTemplate) contextValidateType(ctx context.Context, formats strfmt.Registry) error {
   339  
   340  	if m.Type != nil {
   341  		if err := m.Type.ContextValidate(ctx, formats); err != nil {
   342  			if ve, ok := err.(*errors.Validation); ok {
   343  				return ve.ValidateName("type")
   344  			} else if ce, ok := err.(*errors.CompositeError); ok {
   345  				return ce.ValidateName("type")
   346  			}
   347  			return err
   348  		}
   349  	}
   350  
   351  	return nil
   352  }
   353  
   354  func (m *InterfaceTemplate) contextValidateURL(ctx context.Context, formats strfmt.Registry) error {
   355  
   356  	if err := validate.ReadOnly(ctx, "url", "body", strfmt.URI(m.URL)); err != nil {
   357  		return err
   358  	}
   359  
   360  	return nil
   361  }
   362  
   363  // MarshalBinary interface implementation
   364  func (m *InterfaceTemplate) MarshalBinary() ([]byte, error) {
   365  	if m == nil {
   366  		return nil, nil
   367  	}
   368  	return swag.WriteJSON(m)
   369  }
   370  
   371  // UnmarshalBinary interface implementation
   372  func (m *InterfaceTemplate) UnmarshalBinary(b []byte) error {
   373  	var res InterfaceTemplate
   374  	if err := swag.ReadJSON(b, &res); err != nil {
   375  		return err
   376  	}
   377  	*m = res
   378  	return nil
   379  }
   380  
   381  // InterfaceTemplateType Type
   382  //
   383  // swagger:model InterfaceTemplateType
   384  type InterfaceTemplateType struct {
   385  
   386  	// label
   387  	// Required: true
   388  	// Enum: [Virtual Link Aggregation Group (LAG) 100BASE-TX (10/100ME) 1000BASE-T (1GE) 2.5GBASE-T (2.5GE) 5GBASE-T (5GE) 10GBASE-T (10GE) 10GBASE-CX4 (10GE) GBIC (1GE) SFP (1GE) SFP+ (10GE) XFP (10GE) XENPAK (10GE) X2 (10GE) SFP28 (25GE) SFP56 (50GE) QSFP+ (40GE) QSFP28 (50GE) CFP (100GE) CFP2 (100GE) CFP2 (200GE) CFP4 (100GE) Cisco CPAK (100GE) QSFP28 (100GE) QSFP56 (200GE) QSFP-DD (400GE) OSFP (400GE) IEEE 802.11a IEEE 802.11b/g IEEE 802.11n IEEE 802.11ac IEEE 802.11ad IEEE 802.11ax GSM CDMA LTE OC-3/STM-1 OC-12/STM-4 OC-48/STM-16 OC-192/STM-64 OC-768/STM-256 OC-1920/STM-640 OC-3840/STM-1234 SFP (1GFC) SFP (2GFC) SFP (4GFC) SFP+ (8GFC) SFP+ (16GFC) SFP28 (32GFC) QSFP+ (64GFC) QSFP28 (128GFC) SDR (2 Gbps) DDR (4 Gbps) QDR (8 Gbps) FDR10 (10 Gbps) FDR (13.5 Gbps) EDR (25 Gbps) HDR (50 Gbps) NDR (100 Gbps) XDR (250 Gbps) T1 (1.544 Mbps) E1 (2.048 Mbps) T3 (45 Mbps) E3 (34 Mbps) Cisco StackWise Cisco StackWise Plus Cisco FlexStack Cisco FlexStack Plus Juniper VCP Extreme SummitStack Extreme SummitStack-128 Extreme SummitStack-256 Extreme SummitStack-512 Other]
   389  	Label *string `json:"label"`
   390  
   391  	// value
   392  	// Required: true
   393  	// 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]
   394  	Value *string `json:"value"`
   395  }
   396  
   397  // Validate validates this interface template type
   398  func (m *InterfaceTemplateType) Validate(formats strfmt.Registry) error {
   399  	var res []error
   400  
   401  	if err := m.validateLabel(formats); err != nil {
   402  		res = append(res, err)
   403  	}
   404  
   405  	if err := m.validateValue(formats); err != nil {
   406  		res = append(res, err)
   407  	}
   408  
   409  	if len(res) > 0 {
   410  		return errors.CompositeValidationError(res...)
   411  	}
   412  	return nil
   413  }
   414  
   415  var interfaceTemplateTypeTypeLabelPropEnum []interface{}
   416  
   417  func init() {
   418  	var res []string
   419  	if err := json.Unmarshal([]byte(`["Virtual","Link Aggregation Group (LAG)","100BASE-TX (10/100ME)","1000BASE-T (1GE)","2.5GBASE-T (2.5GE)","5GBASE-T (5GE)","10GBASE-T (10GE)","10GBASE-CX4 (10GE)","GBIC (1GE)","SFP (1GE)","SFP+ (10GE)","XFP (10GE)","XENPAK (10GE)","X2 (10GE)","SFP28 (25GE)","SFP56 (50GE)","QSFP+ (40GE)","QSFP28 (50GE)","CFP (100GE)","CFP2 (100GE)","CFP2 (200GE)","CFP4 (100GE)","Cisco CPAK (100GE)","QSFP28 (100GE)","QSFP56 (200GE)","QSFP-DD (400GE)","OSFP (400GE)","IEEE 802.11a","IEEE 802.11b/g","IEEE 802.11n","IEEE 802.11ac","IEEE 802.11ad","IEEE 802.11ax","GSM","CDMA","LTE","OC-3/STM-1","OC-12/STM-4","OC-48/STM-16","OC-192/STM-64","OC-768/STM-256","OC-1920/STM-640","OC-3840/STM-1234","SFP (1GFC)","SFP (2GFC)","SFP (4GFC)","SFP+ (8GFC)","SFP+ (16GFC)","SFP28 (32GFC)","QSFP+ (64GFC)","QSFP28 (128GFC)","SDR (2 Gbps)","DDR (4 Gbps)","QDR (8 Gbps)","FDR10 (10 Gbps)","FDR (13.5 Gbps)","EDR (25 Gbps)","HDR (50 Gbps)","NDR (100 Gbps)","XDR (250 Gbps)","T1 (1.544 Mbps)","E1 (2.048 Mbps)","T3 (45 Mbps)","E3 (34 Mbps)","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 {
   420  		panic(err)
   421  	}
   422  	for _, v := range res {
   423  		interfaceTemplateTypeTypeLabelPropEnum = append(interfaceTemplateTypeTypeLabelPropEnum, v)
   424  	}
   425  }
   426  
   427  const (
   428  
   429  	// InterfaceTemplateTypeLabelVirtual captures enum value "Virtual"
   430  	InterfaceTemplateTypeLabelVirtual string = "Virtual"
   431  
   432  	// InterfaceTemplateTypeLabelLinkAggregationGroupLAG captures enum value "Link Aggregation Group (LAG)"
   433  	InterfaceTemplateTypeLabelLinkAggregationGroupLAG string = "Link Aggregation Group (LAG)"
   434  
   435  	// InterfaceTemplateTypeLabelNr100BASEDashTX10100ME captures enum value "100BASE-TX (10/100ME)"
   436  	InterfaceTemplateTypeLabelNr100BASEDashTX10100ME string = "100BASE-TX (10/100ME)"
   437  
   438  	// InterfaceTemplateTypeLabelNr1000BASEDashT1GE captures enum value "1000BASE-T (1GE)"
   439  	InterfaceTemplateTypeLabelNr1000BASEDashT1GE string = "1000BASE-T (1GE)"
   440  
   441  	// InterfaceTemplateTypeLabelNr2Dot5GBASEDashT2Dot5GE captures enum value "2.5GBASE-T (2.5GE)"
   442  	InterfaceTemplateTypeLabelNr2Dot5GBASEDashT2Dot5GE string = "2.5GBASE-T (2.5GE)"
   443  
   444  	// InterfaceTemplateTypeLabelNr5GBASEDashT5GE captures enum value "5GBASE-T (5GE)"
   445  	InterfaceTemplateTypeLabelNr5GBASEDashT5GE string = "5GBASE-T (5GE)"
   446  
   447  	// InterfaceTemplateTypeLabelNr10GBASEDashT10GE captures enum value "10GBASE-T (10GE)"
   448  	InterfaceTemplateTypeLabelNr10GBASEDashT10GE string = "10GBASE-T (10GE)"
   449  
   450  	// InterfaceTemplateTypeLabelNr10GBASEDashCX410GE captures enum value "10GBASE-CX4 (10GE)"
   451  	InterfaceTemplateTypeLabelNr10GBASEDashCX410GE string = "10GBASE-CX4 (10GE)"
   452  
   453  	// InterfaceTemplateTypeLabelGBIC1GE captures enum value "GBIC (1GE)"
   454  	InterfaceTemplateTypeLabelGBIC1GE string = "GBIC (1GE)"
   455  
   456  	// InterfaceTemplateTypeLabelSFP1GE captures enum value "SFP (1GE)"
   457  	InterfaceTemplateTypeLabelSFP1GE string = "SFP (1GE)"
   458  
   459  	// InterfaceTemplateTypeLabelSFPPlus10GE captures enum value "SFP+ (10GE)"
   460  	InterfaceTemplateTypeLabelSFPPlus10GE string = "SFP+ (10GE)"
   461  
   462  	// InterfaceTemplateTypeLabelXFP10GE captures enum value "XFP (10GE)"
   463  	InterfaceTemplateTypeLabelXFP10GE string = "XFP (10GE)"
   464  
   465  	// InterfaceTemplateTypeLabelXENPAK10GE captures enum value "XENPAK (10GE)"
   466  	InterfaceTemplateTypeLabelXENPAK10GE string = "XENPAK (10GE)"
   467  
   468  	// InterfaceTemplateTypeLabelX210GE captures enum value "X2 (10GE)"
   469  	InterfaceTemplateTypeLabelX210GE string = "X2 (10GE)"
   470  
   471  	// InterfaceTemplateTypeLabelSFP2825GE captures enum value "SFP28 (25GE)"
   472  	InterfaceTemplateTypeLabelSFP2825GE string = "SFP28 (25GE)"
   473  
   474  	// InterfaceTemplateTypeLabelSFP5650GE captures enum value "SFP56 (50GE)"
   475  	InterfaceTemplateTypeLabelSFP5650GE string = "SFP56 (50GE)"
   476  
   477  	// InterfaceTemplateTypeLabelQSFPPlus40GE captures enum value "QSFP+ (40GE)"
   478  	InterfaceTemplateTypeLabelQSFPPlus40GE string = "QSFP+ (40GE)"
   479  
   480  	// InterfaceTemplateTypeLabelQSFP2850GE captures enum value "QSFP28 (50GE)"
   481  	InterfaceTemplateTypeLabelQSFP2850GE string = "QSFP28 (50GE)"
   482  
   483  	// InterfaceTemplateTypeLabelCFP100GE captures enum value "CFP (100GE)"
   484  	InterfaceTemplateTypeLabelCFP100GE string = "CFP (100GE)"
   485  
   486  	// InterfaceTemplateTypeLabelCFP2100GE captures enum value "CFP2 (100GE)"
   487  	InterfaceTemplateTypeLabelCFP2100GE string = "CFP2 (100GE)"
   488  
   489  	// InterfaceTemplateTypeLabelCFP2200GE captures enum value "CFP2 (200GE)"
   490  	InterfaceTemplateTypeLabelCFP2200GE string = "CFP2 (200GE)"
   491  
   492  	// InterfaceTemplateTypeLabelCFP4100GE captures enum value "CFP4 (100GE)"
   493  	InterfaceTemplateTypeLabelCFP4100GE string = "CFP4 (100GE)"
   494  
   495  	// InterfaceTemplateTypeLabelCiscoCPAK100GE captures enum value "Cisco CPAK (100GE)"
   496  	InterfaceTemplateTypeLabelCiscoCPAK100GE string = "Cisco CPAK (100GE)"
   497  
   498  	// InterfaceTemplateTypeLabelQSFP28100GE captures enum value "QSFP28 (100GE)"
   499  	InterfaceTemplateTypeLabelQSFP28100GE string = "QSFP28 (100GE)"
   500  
   501  	// InterfaceTemplateTypeLabelQSFP56200GE captures enum value "QSFP56 (200GE)"
   502  	InterfaceTemplateTypeLabelQSFP56200GE string = "QSFP56 (200GE)"
   503  
   504  	// InterfaceTemplateTypeLabelQSFPDashDD400GE captures enum value "QSFP-DD (400GE)"
   505  	InterfaceTemplateTypeLabelQSFPDashDD400GE string = "QSFP-DD (400GE)"
   506  
   507  	// InterfaceTemplateTypeLabelOSFP400GE captures enum value "OSFP (400GE)"
   508  	InterfaceTemplateTypeLabelOSFP400GE string = "OSFP (400GE)"
   509  
   510  	// InterfaceTemplateTypeLabelIEEE802Dot11a captures enum value "IEEE 802.11a"
   511  	InterfaceTemplateTypeLabelIEEE802Dot11a string = "IEEE 802.11a"
   512  
   513  	// InterfaceTemplateTypeLabelIEEE802Dot11bg captures enum value "IEEE 802.11b/g"
   514  	InterfaceTemplateTypeLabelIEEE802Dot11bg string = "IEEE 802.11b/g"
   515  
   516  	// InterfaceTemplateTypeLabelIEEE802Dot11n captures enum value "IEEE 802.11n"
   517  	InterfaceTemplateTypeLabelIEEE802Dot11n string = "IEEE 802.11n"
   518  
   519  	// InterfaceTemplateTypeLabelIEEE802Dot11ac captures enum value "IEEE 802.11ac"
   520  	InterfaceTemplateTypeLabelIEEE802Dot11ac string = "IEEE 802.11ac"
   521  
   522  	// InterfaceTemplateTypeLabelIEEE802Dot11ad captures enum value "IEEE 802.11ad"
   523  	InterfaceTemplateTypeLabelIEEE802Dot11ad string = "IEEE 802.11ad"
   524  
   525  	// InterfaceTemplateTypeLabelIEEE802Dot11ax captures enum value "IEEE 802.11ax"
   526  	InterfaceTemplateTypeLabelIEEE802Dot11ax string = "IEEE 802.11ax"
   527  
   528  	// InterfaceTemplateTypeLabelGSM captures enum value "GSM"
   529  	InterfaceTemplateTypeLabelGSM string = "GSM"
   530  
   531  	// InterfaceTemplateTypeLabelCDMA captures enum value "CDMA"
   532  	InterfaceTemplateTypeLabelCDMA string = "CDMA"
   533  
   534  	// InterfaceTemplateTypeLabelLTE captures enum value "LTE"
   535  	InterfaceTemplateTypeLabelLTE string = "LTE"
   536  
   537  	// InterfaceTemplateTypeLabelOCDash3STMDash1 captures enum value "OC-3/STM-1"
   538  	InterfaceTemplateTypeLabelOCDash3STMDash1 string = "OC-3/STM-1"
   539  
   540  	// InterfaceTemplateTypeLabelOCDash12STMDash4 captures enum value "OC-12/STM-4"
   541  	InterfaceTemplateTypeLabelOCDash12STMDash4 string = "OC-12/STM-4"
   542  
   543  	// InterfaceTemplateTypeLabelOCDash48STMDash16 captures enum value "OC-48/STM-16"
   544  	InterfaceTemplateTypeLabelOCDash48STMDash16 string = "OC-48/STM-16"
   545  
   546  	// InterfaceTemplateTypeLabelOCDash192STMDash64 captures enum value "OC-192/STM-64"
   547  	InterfaceTemplateTypeLabelOCDash192STMDash64 string = "OC-192/STM-64"
   548  
   549  	// InterfaceTemplateTypeLabelOCDash768STMDash256 captures enum value "OC-768/STM-256"
   550  	InterfaceTemplateTypeLabelOCDash768STMDash256 string = "OC-768/STM-256"
   551  
   552  	// InterfaceTemplateTypeLabelOCDash1920STMDash640 captures enum value "OC-1920/STM-640"
   553  	InterfaceTemplateTypeLabelOCDash1920STMDash640 string = "OC-1920/STM-640"
   554  
   555  	// InterfaceTemplateTypeLabelOCDash3840STMDash1234 captures enum value "OC-3840/STM-1234"
   556  	InterfaceTemplateTypeLabelOCDash3840STMDash1234 string = "OC-3840/STM-1234"
   557  
   558  	// InterfaceTemplateTypeLabelSFP1GFC captures enum value "SFP (1GFC)"
   559  	InterfaceTemplateTypeLabelSFP1GFC string = "SFP (1GFC)"
   560  
   561  	// InterfaceTemplateTypeLabelSFP2GFC captures enum value "SFP (2GFC)"
   562  	InterfaceTemplateTypeLabelSFP2GFC string = "SFP (2GFC)"
   563  
   564  	// InterfaceTemplateTypeLabelSFP4GFC captures enum value "SFP (4GFC)"
   565  	InterfaceTemplateTypeLabelSFP4GFC string = "SFP (4GFC)"
   566  
   567  	// InterfaceTemplateTypeLabelSFPPlus8GFC captures enum value "SFP+ (8GFC)"
   568  	InterfaceTemplateTypeLabelSFPPlus8GFC string = "SFP+ (8GFC)"
   569  
   570  	// InterfaceTemplateTypeLabelSFPPlus16GFC captures enum value "SFP+ (16GFC)"
   571  	InterfaceTemplateTypeLabelSFPPlus16GFC string = "SFP+ (16GFC)"
   572  
   573  	// InterfaceTemplateTypeLabelSFP2832GFC captures enum value "SFP28 (32GFC)"
   574  	InterfaceTemplateTypeLabelSFP2832GFC string = "SFP28 (32GFC)"
   575  
   576  	// InterfaceTemplateTypeLabelQSFPPlus64GFC captures enum value "QSFP+ (64GFC)"
   577  	InterfaceTemplateTypeLabelQSFPPlus64GFC string = "QSFP+ (64GFC)"
   578  
   579  	// InterfaceTemplateTypeLabelQSFP28128GFC captures enum value "QSFP28 (128GFC)"
   580  	InterfaceTemplateTypeLabelQSFP28128GFC string = "QSFP28 (128GFC)"
   581  
   582  	// InterfaceTemplateTypeLabelSDR2Gbps captures enum value "SDR (2 Gbps)"
   583  	InterfaceTemplateTypeLabelSDR2Gbps string = "SDR (2 Gbps)"
   584  
   585  	// InterfaceTemplateTypeLabelDDR4Gbps captures enum value "DDR (4 Gbps)"
   586  	InterfaceTemplateTypeLabelDDR4Gbps string = "DDR (4 Gbps)"
   587  
   588  	// InterfaceTemplateTypeLabelQDR8Gbps captures enum value "QDR (8 Gbps)"
   589  	InterfaceTemplateTypeLabelQDR8Gbps string = "QDR (8 Gbps)"
   590  
   591  	// InterfaceTemplateTypeLabelFDR1010Gbps captures enum value "FDR10 (10 Gbps)"
   592  	InterfaceTemplateTypeLabelFDR1010Gbps string = "FDR10 (10 Gbps)"
   593  
   594  	// InterfaceTemplateTypeLabelFDR13Dot5Gbps captures enum value "FDR (13.5 Gbps)"
   595  	InterfaceTemplateTypeLabelFDR13Dot5Gbps string = "FDR (13.5 Gbps)"
   596  
   597  	// InterfaceTemplateTypeLabelEDR25Gbps captures enum value "EDR (25 Gbps)"
   598  	InterfaceTemplateTypeLabelEDR25Gbps string = "EDR (25 Gbps)"
   599  
   600  	// InterfaceTemplateTypeLabelHDR50Gbps captures enum value "HDR (50 Gbps)"
   601  	InterfaceTemplateTypeLabelHDR50Gbps string = "HDR (50 Gbps)"
   602  
   603  	// InterfaceTemplateTypeLabelNDR100Gbps captures enum value "NDR (100 Gbps)"
   604  	InterfaceTemplateTypeLabelNDR100Gbps string = "NDR (100 Gbps)"
   605  
   606  	// InterfaceTemplateTypeLabelXDR250Gbps captures enum value "XDR (250 Gbps)"
   607  	InterfaceTemplateTypeLabelXDR250Gbps string = "XDR (250 Gbps)"
   608  
   609  	// InterfaceTemplateTypeLabelT11Dot544Mbps captures enum value "T1 (1.544 Mbps)"
   610  	InterfaceTemplateTypeLabelT11Dot544Mbps string = "T1 (1.544 Mbps)"
   611  
   612  	// InterfaceTemplateTypeLabelE12Dot048Mbps captures enum value "E1 (2.048 Mbps)"
   613  	InterfaceTemplateTypeLabelE12Dot048Mbps string = "E1 (2.048 Mbps)"
   614  
   615  	// InterfaceTemplateTypeLabelT345Mbps captures enum value "T3 (45 Mbps)"
   616  	InterfaceTemplateTypeLabelT345Mbps string = "T3 (45 Mbps)"
   617  
   618  	// InterfaceTemplateTypeLabelE334Mbps captures enum value "E3 (34 Mbps)"
   619  	InterfaceTemplateTypeLabelE334Mbps string = "E3 (34 Mbps)"
   620  
   621  	// InterfaceTemplateTypeLabelCiscoStackWise captures enum value "Cisco StackWise"
   622  	InterfaceTemplateTypeLabelCiscoStackWise string = "Cisco StackWise"
   623  
   624  	// InterfaceTemplateTypeLabelCiscoStackWisePlus captures enum value "Cisco StackWise Plus"
   625  	InterfaceTemplateTypeLabelCiscoStackWisePlus string = "Cisco StackWise Plus"
   626  
   627  	// InterfaceTemplateTypeLabelCiscoFlexStack captures enum value "Cisco FlexStack"
   628  	InterfaceTemplateTypeLabelCiscoFlexStack string = "Cisco FlexStack"
   629  
   630  	// InterfaceTemplateTypeLabelCiscoFlexStackPlus captures enum value "Cisco FlexStack Plus"
   631  	InterfaceTemplateTypeLabelCiscoFlexStackPlus string = "Cisco FlexStack Plus"
   632  
   633  	// InterfaceTemplateTypeLabelJuniperVCP captures enum value "Juniper VCP"
   634  	InterfaceTemplateTypeLabelJuniperVCP string = "Juniper VCP"
   635  
   636  	// InterfaceTemplateTypeLabelExtremeSummitStack captures enum value "Extreme SummitStack"
   637  	InterfaceTemplateTypeLabelExtremeSummitStack string = "Extreme SummitStack"
   638  
   639  	// InterfaceTemplateTypeLabelExtremeSummitStackDash128 captures enum value "Extreme SummitStack-128"
   640  	InterfaceTemplateTypeLabelExtremeSummitStackDash128 string = "Extreme SummitStack-128"
   641  
   642  	// InterfaceTemplateTypeLabelExtremeSummitStackDash256 captures enum value "Extreme SummitStack-256"
   643  	InterfaceTemplateTypeLabelExtremeSummitStackDash256 string = "Extreme SummitStack-256"
   644  
   645  	// InterfaceTemplateTypeLabelExtremeSummitStackDash512 captures enum value "Extreme SummitStack-512"
   646  	InterfaceTemplateTypeLabelExtremeSummitStackDash512 string = "Extreme SummitStack-512"
   647  
   648  	// InterfaceTemplateTypeLabelOther captures enum value "Other"
   649  	InterfaceTemplateTypeLabelOther string = "Other"
   650  )
   651  
   652  // prop value enum
   653  func (m *InterfaceTemplateType) validateLabelEnum(path, location string, value string) error {
   654  	if err := validate.EnumCase(path, location, value, interfaceTemplateTypeTypeLabelPropEnum, true); err != nil {
   655  		return err
   656  	}
   657  	return nil
   658  }
   659  
   660  func (m *InterfaceTemplateType) validateLabel(formats strfmt.Registry) error {
   661  
   662  	if err := validate.Required("type"+"."+"label", "body", m.Label); err != nil {
   663  		return err
   664  	}
   665  
   666  	// value enum
   667  	if err := m.validateLabelEnum("type"+"."+"label", "body", *m.Label); err != nil {
   668  		return err
   669  	}
   670  
   671  	return nil
   672  }
   673  
   674  var interfaceTemplateTypeTypeValuePropEnum []interface{}
   675  
   676  func init() {
   677  	var res []string
   678  	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 {
   679  		panic(err)
   680  	}
   681  	for _, v := range res {
   682  		interfaceTemplateTypeTypeValuePropEnum = append(interfaceTemplateTypeTypeValuePropEnum, v)
   683  	}
   684  }
   685  
   686  const (
   687  
   688  	// InterfaceTemplateTypeValueVirtual captures enum value "virtual"
   689  	InterfaceTemplateTypeValueVirtual string = "virtual"
   690  
   691  	// InterfaceTemplateTypeValueLag captures enum value "lag"
   692  	InterfaceTemplateTypeValueLag string = "lag"
   693  
   694  	// InterfaceTemplateTypeValueNr100baseDashTx captures enum value "100base-tx"
   695  	InterfaceTemplateTypeValueNr100baseDashTx string = "100base-tx"
   696  
   697  	// InterfaceTemplateTypeValueNr1000baseDasht captures enum value "1000base-t"
   698  	InterfaceTemplateTypeValueNr1000baseDasht string = "1000base-t"
   699  
   700  	// InterfaceTemplateTypeValueNr2Dot5gbaseDasht captures enum value "2.5gbase-t"
   701  	InterfaceTemplateTypeValueNr2Dot5gbaseDasht string = "2.5gbase-t"
   702  
   703  	// InterfaceTemplateTypeValueNr5gbaseDasht captures enum value "5gbase-t"
   704  	InterfaceTemplateTypeValueNr5gbaseDasht string = "5gbase-t"
   705  
   706  	// InterfaceTemplateTypeValueNr10gbaseDasht captures enum value "10gbase-t"
   707  	InterfaceTemplateTypeValueNr10gbaseDasht string = "10gbase-t"
   708  
   709  	// InterfaceTemplateTypeValueNr10gbaseDashCx4 captures enum value "10gbase-cx4"
   710  	InterfaceTemplateTypeValueNr10gbaseDashCx4 string = "10gbase-cx4"
   711  
   712  	// InterfaceTemplateTypeValueNr1000baseDashxDashGbic captures enum value "1000base-x-gbic"
   713  	InterfaceTemplateTypeValueNr1000baseDashxDashGbic string = "1000base-x-gbic"
   714  
   715  	// InterfaceTemplateTypeValueNr1000baseDashxDashSfp captures enum value "1000base-x-sfp"
   716  	InterfaceTemplateTypeValueNr1000baseDashxDashSfp string = "1000base-x-sfp"
   717  
   718  	// InterfaceTemplateTypeValueNr10gbaseDashxDashSfpp captures enum value "10gbase-x-sfpp"
   719  	InterfaceTemplateTypeValueNr10gbaseDashxDashSfpp string = "10gbase-x-sfpp"
   720  
   721  	// InterfaceTemplateTypeValueNr10gbaseDashxDashXfp captures enum value "10gbase-x-xfp"
   722  	InterfaceTemplateTypeValueNr10gbaseDashxDashXfp string = "10gbase-x-xfp"
   723  
   724  	// InterfaceTemplateTypeValueNr10gbaseDashxDashXenpak captures enum value "10gbase-x-xenpak"
   725  	InterfaceTemplateTypeValueNr10gbaseDashxDashXenpak string = "10gbase-x-xenpak"
   726  
   727  	// InterfaceTemplateTypeValueNr10gbaseDashxDashX2 captures enum value "10gbase-x-x2"
   728  	InterfaceTemplateTypeValueNr10gbaseDashxDashX2 string = "10gbase-x-x2"
   729  
   730  	// InterfaceTemplateTypeValueNr25gbaseDashxDashSfp28 captures enum value "25gbase-x-sfp28"
   731  	InterfaceTemplateTypeValueNr25gbaseDashxDashSfp28 string = "25gbase-x-sfp28"
   732  
   733  	// InterfaceTemplateTypeValueNr50gbaseDashxDashSfp56 captures enum value "50gbase-x-sfp56"
   734  	InterfaceTemplateTypeValueNr50gbaseDashxDashSfp56 string = "50gbase-x-sfp56"
   735  
   736  	// InterfaceTemplateTypeValueNr40gbaseDashxDashQsfpp captures enum value "40gbase-x-qsfpp"
   737  	InterfaceTemplateTypeValueNr40gbaseDashxDashQsfpp string = "40gbase-x-qsfpp"
   738  
   739  	// InterfaceTemplateTypeValueNr50gbaseDashxDashSfp28 captures enum value "50gbase-x-sfp28"
   740  	InterfaceTemplateTypeValueNr50gbaseDashxDashSfp28 string = "50gbase-x-sfp28"
   741  
   742  	// InterfaceTemplateTypeValueNr100gbaseDashxDashCfp captures enum value "100gbase-x-cfp"
   743  	InterfaceTemplateTypeValueNr100gbaseDashxDashCfp string = "100gbase-x-cfp"
   744  
   745  	// InterfaceTemplateTypeValueNr100gbaseDashxDashCfp2 captures enum value "100gbase-x-cfp2"
   746  	InterfaceTemplateTypeValueNr100gbaseDashxDashCfp2 string = "100gbase-x-cfp2"
   747  
   748  	// InterfaceTemplateTypeValueNr200gbaseDashxDashCfp2 captures enum value "200gbase-x-cfp2"
   749  	InterfaceTemplateTypeValueNr200gbaseDashxDashCfp2 string = "200gbase-x-cfp2"
   750  
   751  	// InterfaceTemplateTypeValueNr100gbaseDashxDashCfp4 captures enum value "100gbase-x-cfp4"
   752  	InterfaceTemplateTypeValueNr100gbaseDashxDashCfp4 string = "100gbase-x-cfp4"
   753  
   754  	// InterfaceTemplateTypeValueNr100gbaseDashxDashCpak captures enum value "100gbase-x-cpak"
   755  	InterfaceTemplateTypeValueNr100gbaseDashxDashCpak string = "100gbase-x-cpak"
   756  
   757  	// InterfaceTemplateTypeValueNr100gbaseDashxDashQsfp28 captures enum value "100gbase-x-qsfp28"
   758  	InterfaceTemplateTypeValueNr100gbaseDashxDashQsfp28 string = "100gbase-x-qsfp28"
   759  
   760  	// InterfaceTemplateTypeValueNr200gbaseDashxDashQsfp56 captures enum value "200gbase-x-qsfp56"
   761  	InterfaceTemplateTypeValueNr200gbaseDashxDashQsfp56 string = "200gbase-x-qsfp56"
   762  
   763  	// InterfaceTemplateTypeValueNr400gbaseDashxDashQsfpdd captures enum value "400gbase-x-qsfpdd"
   764  	InterfaceTemplateTypeValueNr400gbaseDashxDashQsfpdd string = "400gbase-x-qsfpdd"
   765  
   766  	// InterfaceTemplateTypeValueNr400gbaseDashxDashOsfp captures enum value "400gbase-x-osfp"
   767  	InterfaceTemplateTypeValueNr400gbaseDashxDashOsfp string = "400gbase-x-osfp"
   768  
   769  	// InterfaceTemplateTypeValueIeee802Dot11a captures enum value "ieee802.11a"
   770  	InterfaceTemplateTypeValueIeee802Dot11a string = "ieee802.11a"
   771  
   772  	// InterfaceTemplateTypeValueIeee802Dot11g captures enum value "ieee802.11g"
   773  	InterfaceTemplateTypeValueIeee802Dot11g string = "ieee802.11g"
   774  
   775  	// InterfaceTemplateTypeValueIeee802Dot11n captures enum value "ieee802.11n"
   776  	InterfaceTemplateTypeValueIeee802Dot11n string = "ieee802.11n"
   777  
   778  	// InterfaceTemplateTypeValueIeee802Dot11ac captures enum value "ieee802.11ac"
   779  	InterfaceTemplateTypeValueIeee802Dot11ac string = "ieee802.11ac"
   780  
   781  	// InterfaceTemplateTypeValueIeee802Dot11ad captures enum value "ieee802.11ad"
   782  	InterfaceTemplateTypeValueIeee802Dot11ad string = "ieee802.11ad"
   783  
   784  	// InterfaceTemplateTypeValueIeee802Dot11ax captures enum value "ieee802.11ax"
   785  	InterfaceTemplateTypeValueIeee802Dot11ax string = "ieee802.11ax"
   786  
   787  	// InterfaceTemplateTypeValueGsm captures enum value "gsm"
   788  	InterfaceTemplateTypeValueGsm string = "gsm"
   789  
   790  	// InterfaceTemplateTypeValueCdma captures enum value "cdma"
   791  	InterfaceTemplateTypeValueCdma string = "cdma"
   792  
   793  	// InterfaceTemplateTypeValueLte captures enum value "lte"
   794  	InterfaceTemplateTypeValueLte string = "lte"
   795  
   796  	// InterfaceTemplateTypeValueSonetDashOc3 captures enum value "sonet-oc3"
   797  	InterfaceTemplateTypeValueSonetDashOc3 string = "sonet-oc3"
   798  
   799  	// InterfaceTemplateTypeValueSonetDashOc12 captures enum value "sonet-oc12"
   800  	InterfaceTemplateTypeValueSonetDashOc12 string = "sonet-oc12"
   801  
   802  	// InterfaceTemplateTypeValueSonetDashOc48 captures enum value "sonet-oc48"
   803  	InterfaceTemplateTypeValueSonetDashOc48 string = "sonet-oc48"
   804  
   805  	// InterfaceTemplateTypeValueSonetDashOc192 captures enum value "sonet-oc192"
   806  	InterfaceTemplateTypeValueSonetDashOc192 string = "sonet-oc192"
   807  
   808  	// InterfaceTemplateTypeValueSonetDashOc768 captures enum value "sonet-oc768"
   809  	InterfaceTemplateTypeValueSonetDashOc768 string = "sonet-oc768"
   810  
   811  	// InterfaceTemplateTypeValueSonetDashOc1920 captures enum value "sonet-oc1920"
   812  	InterfaceTemplateTypeValueSonetDashOc1920 string = "sonet-oc1920"
   813  
   814  	// InterfaceTemplateTypeValueSonetDashOc3840 captures enum value "sonet-oc3840"
   815  	InterfaceTemplateTypeValueSonetDashOc3840 string = "sonet-oc3840"
   816  
   817  	// InterfaceTemplateTypeValueNr1gfcDashSfp captures enum value "1gfc-sfp"
   818  	InterfaceTemplateTypeValueNr1gfcDashSfp string = "1gfc-sfp"
   819  
   820  	// InterfaceTemplateTypeValueNr2gfcDashSfp captures enum value "2gfc-sfp"
   821  	InterfaceTemplateTypeValueNr2gfcDashSfp string = "2gfc-sfp"
   822  
   823  	// InterfaceTemplateTypeValueNr4gfcDashSfp captures enum value "4gfc-sfp"
   824  	InterfaceTemplateTypeValueNr4gfcDashSfp string = "4gfc-sfp"
   825  
   826  	// InterfaceTemplateTypeValueNr8gfcDashSfpp captures enum value "8gfc-sfpp"
   827  	InterfaceTemplateTypeValueNr8gfcDashSfpp string = "8gfc-sfpp"
   828  
   829  	// InterfaceTemplateTypeValueNr16gfcDashSfpp captures enum value "16gfc-sfpp"
   830  	InterfaceTemplateTypeValueNr16gfcDashSfpp string = "16gfc-sfpp"
   831  
   832  	// InterfaceTemplateTypeValueNr32gfcDashSfp28 captures enum value "32gfc-sfp28"
   833  	InterfaceTemplateTypeValueNr32gfcDashSfp28 string = "32gfc-sfp28"
   834  
   835  	// InterfaceTemplateTypeValueNr64gfcDashQsfpp captures enum value "64gfc-qsfpp"
   836  	InterfaceTemplateTypeValueNr64gfcDashQsfpp string = "64gfc-qsfpp"
   837  
   838  	// InterfaceTemplateTypeValueNr128gfcDashSfp28 captures enum value "128gfc-sfp28"
   839  	InterfaceTemplateTypeValueNr128gfcDashSfp28 string = "128gfc-sfp28"
   840  
   841  	// InterfaceTemplateTypeValueInfinibandDashSdr captures enum value "infiniband-sdr"
   842  	InterfaceTemplateTypeValueInfinibandDashSdr string = "infiniband-sdr"
   843  
   844  	// InterfaceTemplateTypeValueInfinibandDashDdr captures enum value "infiniband-ddr"
   845  	InterfaceTemplateTypeValueInfinibandDashDdr string = "infiniband-ddr"
   846  
   847  	// InterfaceTemplateTypeValueInfinibandDashQdr captures enum value "infiniband-qdr"
   848  	InterfaceTemplateTypeValueInfinibandDashQdr string = "infiniband-qdr"
   849  
   850  	// InterfaceTemplateTypeValueInfinibandDashFdr10 captures enum value "infiniband-fdr10"
   851  	InterfaceTemplateTypeValueInfinibandDashFdr10 string = "infiniband-fdr10"
   852  
   853  	// InterfaceTemplateTypeValueInfinibandDashFdr captures enum value "infiniband-fdr"
   854  	InterfaceTemplateTypeValueInfinibandDashFdr string = "infiniband-fdr"
   855  
   856  	// InterfaceTemplateTypeValueInfinibandDashEdr captures enum value "infiniband-edr"
   857  	InterfaceTemplateTypeValueInfinibandDashEdr string = "infiniband-edr"
   858  
   859  	// InterfaceTemplateTypeValueInfinibandDashHdr captures enum value "infiniband-hdr"
   860  	InterfaceTemplateTypeValueInfinibandDashHdr string = "infiniband-hdr"
   861  
   862  	// InterfaceTemplateTypeValueInfinibandDashNdr captures enum value "infiniband-ndr"
   863  	InterfaceTemplateTypeValueInfinibandDashNdr string = "infiniband-ndr"
   864  
   865  	// InterfaceTemplateTypeValueInfinibandDashXdr captures enum value "infiniband-xdr"
   866  	InterfaceTemplateTypeValueInfinibandDashXdr string = "infiniband-xdr"
   867  
   868  	// InterfaceTemplateTypeValueT1 captures enum value "t1"
   869  	InterfaceTemplateTypeValueT1 string = "t1"
   870  
   871  	// InterfaceTemplateTypeValueE1 captures enum value "e1"
   872  	InterfaceTemplateTypeValueE1 string = "e1"
   873  
   874  	// InterfaceTemplateTypeValueT3 captures enum value "t3"
   875  	InterfaceTemplateTypeValueT3 string = "t3"
   876  
   877  	// InterfaceTemplateTypeValueE3 captures enum value "e3"
   878  	InterfaceTemplateTypeValueE3 string = "e3"
   879  
   880  	// InterfaceTemplateTypeValueCiscoDashStackwise captures enum value "cisco-stackwise"
   881  	InterfaceTemplateTypeValueCiscoDashStackwise string = "cisco-stackwise"
   882  
   883  	// InterfaceTemplateTypeValueCiscoDashStackwiseDashPlus captures enum value "cisco-stackwise-plus"
   884  	InterfaceTemplateTypeValueCiscoDashStackwiseDashPlus string = "cisco-stackwise-plus"
   885  
   886  	// InterfaceTemplateTypeValueCiscoDashFlexstack captures enum value "cisco-flexstack"
   887  	InterfaceTemplateTypeValueCiscoDashFlexstack string = "cisco-flexstack"
   888  
   889  	// InterfaceTemplateTypeValueCiscoDashFlexstackDashPlus captures enum value "cisco-flexstack-plus"
   890  	InterfaceTemplateTypeValueCiscoDashFlexstackDashPlus string = "cisco-flexstack-plus"
   891  
   892  	// InterfaceTemplateTypeValueJuniperDashVcp captures enum value "juniper-vcp"
   893  	InterfaceTemplateTypeValueJuniperDashVcp string = "juniper-vcp"
   894  
   895  	// InterfaceTemplateTypeValueExtremeDashSummitstack captures enum value "extreme-summitstack"
   896  	InterfaceTemplateTypeValueExtremeDashSummitstack string = "extreme-summitstack"
   897  
   898  	// InterfaceTemplateTypeValueExtremeDashSummitstackDash128 captures enum value "extreme-summitstack-128"
   899  	InterfaceTemplateTypeValueExtremeDashSummitstackDash128 string = "extreme-summitstack-128"
   900  
   901  	// InterfaceTemplateTypeValueExtremeDashSummitstackDash256 captures enum value "extreme-summitstack-256"
   902  	InterfaceTemplateTypeValueExtremeDashSummitstackDash256 string = "extreme-summitstack-256"
   903  
   904  	// InterfaceTemplateTypeValueExtremeDashSummitstackDash512 captures enum value "extreme-summitstack-512"
   905  	InterfaceTemplateTypeValueExtremeDashSummitstackDash512 string = "extreme-summitstack-512"
   906  
   907  	// InterfaceTemplateTypeValueOther captures enum value "other"
   908  	InterfaceTemplateTypeValueOther string = "other"
   909  )
   910  
   911  // prop value enum
   912  func (m *InterfaceTemplateType) validateValueEnum(path, location string, value string) error {
   913  	if err := validate.EnumCase(path, location, value, interfaceTemplateTypeTypeValuePropEnum, true); err != nil {
   914  		return err
   915  	}
   916  	return nil
   917  }
   918  
   919  func (m *InterfaceTemplateType) validateValue(formats strfmt.Registry) error {
   920  
   921  	if err := validate.Required("type"+"."+"value", "body", m.Value); err != nil {
   922  		return err
   923  	}
   924  
   925  	// value enum
   926  	if err := m.validateValueEnum("type"+"."+"value", "body", *m.Value); err != nil {
   927  		return err
   928  	}
   929  
   930  	return nil
   931  }
   932  
   933  // ContextValidate validates this interface template type based on context it is used
   934  func (m *InterfaceTemplateType) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
   935  	return nil
   936  }
   937  
   938  // MarshalBinary interface implementation
   939  func (m *InterfaceTemplateType) MarshalBinary() ([]byte, error) {
   940  	if m == nil {
   941  		return nil, nil
   942  	}
   943  	return swag.WriteJSON(m)
   944  }
   945  
   946  // UnmarshalBinary interface implementation
   947  func (m *InterfaceTemplateType) UnmarshalBinary(b []byte) error {
   948  	var res InterfaceTemplateType
   949  	if err := swag.ReadJSON(b, &res); err != nil {
   950  		return err
   951  	}
   952  	*m = res
   953  	return nil
   954  }