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

     1  // Code generated by go-swagger; DO NOT EDIT.
     2  
     3  // Copyright 2020 The go-netbox Authors.
     4  //
     5  // Licensed under the Apache License, Version 2.0 (the "License");
     6  // you may not use this file except in compliance with the License.
     7  // You may obtain a copy of the License at
     8  //
     9  //   http://www.apache.org/licenses/LICENSE-2.0
    10  //
    11  // Unless required by applicable law or agreed to in writing, software
    12  // distributed under the License is distributed on an "AS IS" BASIS,
    13  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  // See the License for the specific language governing permissions and
    15  // limitations under the License.
    16  //
    17  
    18  package models
    19  
    20  // This file was generated by the swagger tool.
    21  // Editing this file might prove futile when you re-run the swagger generate command
    22  
    23  import (
    24  	"context"
    25  	"encoding/json"
    26  	"strconv"
    27  
    28  	"github.com/go-openapi/errors"
    29  	"github.com/go-openapi/strfmt"
    30  	"github.com/go-openapi/swag"
    31  	"github.com/go-openapi/validate"
    32  )
    33  
    34  // PowerOutlet power outlet
    35  //
    36  // swagger:model PowerOutlet
    37  type PowerOutlet struct {
    38  
    39  	// occupied
    40  	// Read Only: true
    41  	Occupied *bool `json:"_occupied,omitempty"`
    42  
    43  	// cable
    44  	Cable *NestedCable `json:"cable,omitempty"`
    45  
    46  	// Cable peer
    47  	//
    48  	//
    49  	// Return the appropriate serializer for the cable termination model.
    50  	//
    51  	// Read Only: true
    52  	CablePeer map[string]*string `json:"cable_peer,omitempty"`
    53  
    54  	// Cable peer type
    55  	// Read Only: true
    56  	CablePeerType string `json:"cable_peer_type,omitempty"`
    57  
    58  	// Connected endpoint
    59  	//
    60  	//
    61  	// Return the appropriate serializer for the type of connected object.
    62  	//
    63  	// Read Only: true
    64  	ConnectedEndpoint map[string]*string `json:"connected_endpoint,omitempty"`
    65  
    66  	// Connected endpoint reachable
    67  	// Read Only: true
    68  	ConnectedEndpointReachable *bool `json:"connected_endpoint_reachable,omitempty"`
    69  
    70  	// Connected endpoint type
    71  	// Read Only: true
    72  	ConnectedEndpointType string `json:"connected_endpoint_type,omitempty"`
    73  
    74  	// Created
    75  	// Read Only: true
    76  	// Format: date
    77  	Created strfmt.Date `json:"created,omitempty"`
    78  
    79  	// Custom fields
    80  	CustomFields interface{} `json:"custom_fields,omitempty"`
    81  
    82  	// Description
    83  	// Max Length: 200
    84  	Description string `json:"description,omitempty"`
    85  
    86  	// device
    87  	// Required: true
    88  	Device *NestedDevice `json:"device"`
    89  
    90  	// Display
    91  	// Read Only: true
    92  	Display string `json:"display,omitempty"`
    93  
    94  	// feed leg
    95  	FeedLeg *PowerOutletFeedLeg `json:"feed_leg,omitempty"`
    96  
    97  	// Id
    98  	// Read Only: true
    99  	ID int64 `json:"id,omitempty"`
   100  
   101  	// Label
   102  	//
   103  	// Physical label
   104  	// Max Length: 64
   105  	Label string `json:"label,omitempty"`
   106  
   107  	// Last updated
   108  	// Read Only: true
   109  	// Format: date-time
   110  	LastUpdated strfmt.DateTime `json:"last_updated,omitempty"`
   111  
   112  	// Mark connected
   113  	//
   114  	// Treat as if a cable is connected
   115  	MarkConnected bool `json:"mark_connected,omitempty"`
   116  
   117  	// Name
   118  	// Required: true
   119  	// Max Length: 64
   120  	// Min Length: 1
   121  	Name *string `json:"name"`
   122  
   123  	// power port
   124  	PowerPort *NestedPowerPort `json:"power_port,omitempty"`
   125  
   126  	// tags
   127  	Tags []*NestedTag `json:"tags"`
   128  
   129  	// type
   130  	Type *PowerOutletType `json:"type,omitempty"`
   131  
   132  	// Url
   133  	// Read Only: true
   134  	// Format: uri
   135  	URL strfmt.URI `json:"url,omitempty"`
   136  }
   137  
   138  // Validate validates this power outlet
   139  func (m *PowerOutlet) Validate(formats strfmt.Registry) error {
   140  	var res []error
   141  
   142  	if err := m.validateCable(formats); err != nil {
   143  		res = append(res, err)
   144  	}
   145  
   146  	if err := m.validateCreated(formats); err != nil {
   147  		res = append(res, err)
   148  	}
   149  
   150  	if err := m.validateDescription(formats); err != nil {
   151  		res = append(res, err)
   152  	}
   153  
   154  	if err := m.validateDevice(formats); err != nil {
   155  		res = append(res, err)
   156  	}
   157  
   158  	if err := m.validateFeedLeg(formats); err != nil {
   159  		res = append(res, err)
   160  	}
   161  
   162  	if err := m.validateLabel(formats); err != nil {
   163  		res = append(res, err)
   164  	}
   165  
   166  	if err := m.validateLastUpdated(formats); err != nil {
   167  		res = append(res, err)
   168  	}
   169  
   170  	if err := m.validateName(formats); err != nil {
   171  		res = append(res, err)
   172  	}
   173  
   174  	if err := m.validatePowerPort(formats); err != nil {
   175  		res = append(res, err)
   176  	}
   177  
   178  	if err := m.validateTags(formats); err != nil {
   179  		res = append(res, err)
   180  	}
   181  
   182  	if err := m.validateType(formats); err != nil {
   183  		res = append(res, err)
   184  	}
   185  
   186  	if err := m.validateURL(formats); err != nil {
   187  		res = append(res, err)
   188  	}
   189  
   190  	if len(res) > 0 {
   191  		return errors.CompositeValidationError(res...)
   192  	}
   193  	return nil
   194  }
   195  
   196  func (m *PowerOutlet) validateCable(formats strfmt.Registry) error {
   197  	if swag.IsZero(m.Cable) { // not required
   198  		return nil
   199  	}
   200  
   201  	if m.Cable != nil {
   202  		if err := m.Cable.Validate(formats); err != nil {
   203  			if ve, ok := err.(*errors.Validation); ok {
   204  				return ve.ValidateName("cable")
   205  			} else if ce, ok := err.(*errors.CompositeError); ok {
   206  				return ce.ValidateName("cable")
   207  			}
   208  			return err
   209  		}
   210  	}
   211  
   212  	return nil
   213  }
   214  
   215  func (m *PowerOutlet) validateCreated(formats strfmt.Registry) error {
   216  	if swag.IsZero(m.Created) { // not required
   217  		return nil
   218  	}
   219  
   220  	if err := validate.FormatOf("created", "body", "date", m.Created.String(), formats); err != nil {
   221  		return err
   222  	}
   223  
   224  	return nil
   225  }
   226  
   227  func (m *PowerOutlet) validateDescription(formats strfmt.Registry) error {
   228  	if swag.IsZero(m.Description) { // not required
   229  		return nil
   230  	}
   231  
   232  	if err := validate.MaxLength("description", "body", m.Description, 200); err != nil {
   233  		return err
   234  	}
   235  
   236  	return nil
   237  }
   238  
   239  func (m *PowerOutlet) validateDevice(formats strfmt.Registry) error {
   240  
   241  	if err := validate.Required("device", "body", m.Device); err != nil {
   242  		return err
   243  	}
   244  
   245  	if m.Device != nil {
   246  		if err := m.Device.Validate(formats); err != nil {
   247  			if ve, ok := err.(*errors.Validation); ok {
   248  				return ve.ValidateName("device")
   249  			} else if ce, ok := err.(*errors.CompositeError); ok {
   250  				return ce.ValidateName("device")
   251  			}
   252  			return err
   253  		}
   254  	}
   255  
   256  	return nil
   257  }
   258  
   259  func (m *PowerOutlet) validateFeedLeg(formats strfmt.Registry) error {
   260  	if swag.IsZero(m.FeedLeg) { // not required
   261  		return nil
   262  	}
   263  
   264  	if m.FeedLeg != nil {
   265  		if err := m.FeedLeg.Validate(formats); err != nil {
   266  			if ve, ok := err.(*errors.Validation); ok {
   267  				return ve.ValidateName("feed_leg")
   268  			} else if ce, ok := err.(*errors.CompositeError); ok {
   269  				return ce.ValidateName("feed_leg")
   270  			}
   271  			return err
   272  		}
   273  	}
   274  
   275  	return nil
   276  }
   277  
   278  func (m *PowerOutlet) validateLabel(formats strfmt.Registry) error {
   279  	if swag.IsZero(m.Label) { // not required
   280  		return nil
   281  	}
   282  
   283  	if err := validate.MaxLength("label", "body", m.Label, 64); err != nil {
   284  		return err
   285  	}
   286  
   287  	return nil
   288  }
   289  
   290  func (m *PowerOutlet) validateLastUpdated(formats strfmt.Registry) error {
   291  	if swag.IsZero(m.LastUpdated) { // not required
   292  		return nil
   293  	}
   294  
   295  	if err := validate.FormatOf("last_updated", "body", "date-time", m.LastUpdated.String(), formats); err != nil {
   296  		return err
   297  	}
   298  
   299  	return nil
   300  }
   301  
   302  func (m *PowerOutlet) validateName(formats strfmt.Registry) error {
   303  
   304  	if err := validate.Required("name", "body", m.Name); err != nil {
   305  		return err
   306  	}
   307  
   308  	if err := validate.MinLength("name", "body", *m.Name, 1); err != nil {
   309  		return err
   310  	}
   311  
   312  	if err := validate.MaxLength("name", "body", *m.Name, 64); err != nil {
   313  		return err
   314  	}
   315  
   316  	return nil
   317  }
   318  
   319  func (m *PowerOutlet) validatePowerPort(formats strfmt.Registry) error {
   320  	if swag.IsZero(m.PowerPort) { // not required
   321  		return nil
   322  	}
   323  
   324  	if m.PowerPort != nil {
   325  		if err := m.PowerPort.Validate(formats); err != nil {
   326  			if ve, ok := err.(*errors.Validation); ok {
   327  				return ve.ValidateName("power_port")
   328  			} else if ce, ok := err.(*errors.CompositeError); ok {
   329  				return ce.ValidateName("power_port")
   330  			}
   331  			return err
   332  		}
   333  	}
   334  
   335  	return nil
   336  }
   337  
   338  func (m *PowerOutlet) validateTags(formats strfmt.Registry) error {
   339  	if swag.IsZero(m.Tags) { // not required
   340  		return nil
   341  	}
   342  
   343  	for i := 0; i < len(m.Tags); i++ {
   344  		if swag.IsZero(m.Tags[i]) { // not required
   345  			continue
   346  		}
   347  
   348  		if m.Tags[i] != nil {
   349  			if err := m.Tags[i].Validate(formats); err != nil {
   350  				if ve, ok := err.(*errors.Validation); ok {
   351  					return ve.ValidateName("tags" + "." + strconv.Itoa(i))
   352  				} else if ce, ok := err.(*errors.CompositeError); ok {
   353  					return ce.ValidateName("tags" + "." + strconv.Itoa(i))
   354  				}
   355  				return err
   356  			}
   357  		}
   358  
   359  	}
   360  
   361  	return nil
   362  }
   363  
   364  func (m *PowerOutlet) validateType(formats strfmt.Registry) error {
   365  	if swag.IsZero(m.Type) { // not required
   366  		return nil
   367  	}
   368  
   369  	if m.Type != nil {
   370  		if err := m.Type.Validate(formats); err != nil {
   371  			if ve, ok := err.(*errors.Validation); ok {
   372  				return ve.ValidateName("type")
   373  			} else if ce, ok := err.(*errors.CompositeError); ok {
   374  				return ce.ValidateName("type")
   375  			}
   376  			return err
   377  		}
   378  	}
   379  
   380  	return nil
   381  }
   382  
   383  func (m *PowerOutlet) validateURL(formats strfmt.Registry) error {
   384  	if swag.IsZero(m.URL) { // not required
   385  		return nil
   386  	}
   387  
   388  	if err := validate.FormatOf("url", "body", "uri", m.URL.String(), formats); err != nil {
   389  		return err
   390  	}
   391  
   392  	return nil
   393  }
   394  
   395  // ContextValidate validate this power outlet based on the context it is used
   396  func (m *PowerOutlet) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
   397  	var res []error
   398  
   399  	if err := m.contextValidateOccupied(ctx, formats); err != nil {
   400  		res = append(res, err)
   401  	}
   402  
   403  	if err := m.contextValidateCable(ctx, formats); err != nil {
   404  		res = append(res, err)
   405  	}
   406  
   407  	if err := m.contextValidateCablePeer(ctx, formats); err != nil {
   408  		res = append(res, err)
   409  	}
   410  
   411  	if err := m.contextValidateCablePeerType(ctx, formats); err != nil {
   412  		res = append(res, err)
   413  	}
   414  
   415  	if err := m.contextValidateConnectedEndpoint(ctx, formats); err != nil {
   416  		res = append(res, err)
   417  	}
   418  
   419  	if err := m.contextValidateConnectedEndpointReachable(ctx, formats); err != nil {
   420  		res = append(res, err)
   421  	}
   422  
   423  	if err := m.contextValidateConnectedEndpointType(ctx, formats); err != nil {
   424  		res = append(res, err)
   425  	}
   426  
   427  	if err := m.contextValidateCreated(ctx, formats); err != nil {
   428  		res = append(res, err)
   429  	}
   430  
   431  	if err := m.contextValidateDevice(ctx, formats); err != nil {
   432  		res = append(res, err)
   433  	}
   434  
   435  	if err := m.contextValidateDisplay(ctx, formats); err != nil {
   436  		res = append(res, err)
   437  	}
   438  
   439  	if err := m.contextValidateFeedLeg(ctx, formats); err != nil {
   440  		res = append(res, err)
   441  	}
   442  
   443  	if err := m.contextValidateID(ctx, formats); err != nil {
   444  		res = append(res, err)
   445  	}
   446  
   447  	if err := m.contextValidateLastUpdated(ctx, formats); err != nil {
   448  		res = append(res, err)
   449  	}
   450  
   451  	if err := m.contextValidatePowerPort(ctx, formats); err != nil {
   452  		res = append(res, err)
   453  	}
   454  
   455  	if err := m.contextValidateTags(ctx, formats); err != nil {
   456  		res = append(res, err)
   457  	}
   458  
   459  	if err := m.contextValidateType(ctx, formats); err != nil {
   460  		res = append(res, err)
   461  	}
   462  
   463  	if err := m.contextValidateURL(ctx, formats); err != nil {
   464  		res = append(res, err)
   465  	}
   466  
   467  	if len(res) > 0 {
   468  		return errors.CompositeValidationError(res...)
   469  	}
   470  	return nil
   471  }
   472  
   473  func (m *PowerOutlet) contextValidateOccupied(ctx context.Context, formats strfmt.Registry) error {
   474  
   475  	if err := validate.ReadOnly(ctx, "_occupied", "body", m.Occupied); err != nil {
   476  		return err
   477  	}
   478  
   479  	return nil
   480  }
   481  
   482  func (m *PowerOutlet) contextValidateCable(ctx context.Context, formats strfmt.Registry) error {
   483  
   484  	if m.Cable != nil {
   485  		if err := m.Cable.ContextValidate(ctx, formats); err != nil {
   486  			if ve, ok := err.(*errors.Validation); ok {
   487  				return ve.ValidateName("cable")
   488  			} else if ce, ok := err.(*errors.CompositeError); ok {
   489  				return ce.ValidateName("cable")
   490  			}
   491  			return err
   492  		}
   493  	}
   494  
   495  	return nil
   496  }
   497  
   498  func (m *PowerOutlet) contextValidateCablePeer(ctx context.Context, formats strfmt.Registry) error {
   499  
   500  	return nil
   501  }
   502  
   503  func (m *PowerOutlet) contextValidateCablePeerType(ctx context.Context, formats strfmt.Registry) error {
   504  
   505  	if err := validate.ReadOnly(ctx, "cable_peer_type", "body", string(m.CablePeerType)); err != nil {
   506  		return err
   507  	}
   508  
   509  	return nil
   510  }
   511  
   512  func (m *PowerOutlet) contextValidateConnectedEndpoint(ctx context.Context, formats strfmt.Registry) error {
   513  
   514  	return nil
   515  }
   516  
   517  func (m *PowerOutlet) contextValidateConnectedEndpointReachable(ctx context.Context, formats strfmt.Registry) error {
   518  
   519  	if err := validate.ReadOnly(ctx, "connected_endpoint_reachable", "body", m.ConnectedEndpointReachable); err != nil {
   520  		return err
   521  	}
   522  
   523  	return nil
   524  }
   525  
   526  func (m *PowerOutlet) contextValidateConnectedEndpointType(ctx context.Context, formats strfmt.Registry) error {
   527  
   528  	if err := validate.ReadOnly(ctx, "connected_endpoint_type", "body", string(m.ConnectedEndpointType)); err != nil {
   529  		return err
   530  	}
   531  
   532  	return nil
   533  }
   534  
   535  func (m *PowerOutlet) contextValidateCreated(ctx context.Context, formats strfmt.Registry) error {
   536  
   537  	if err := validate.ReadOnly(ctx, "created", "body", strfmt.Date(m.Created)); err != nil {
   538  		return err
   539  	}
   540  
   541  	return nil
   542  }
   543  
   544  func (m *PowerOutlet) contextValidateDevice(ctx context.Context, formats strfmt.Registry) error {
   545  
   546  	if m.Device != nil {
   547  		if err := m.Device.ContextValidate(ctx, formats); err != nil {
   548  			if ve, ok := err.(*errors.Validation); ok {
   549  				return ve.ValidateName("device")
   550  			} else if ce, ok := err.(*errors.CompositeError); ok {
   551  				return ce.ValidateName("device")
   552  			}
   553  			return err
   554  		}
   555  	}
   556  
   557  	return nil
   558  }
   559  
   560  func (m *PowerOutlet) contextValidateDisplay(ctx context.Context, formats strfmt.Registry) error {
   561  
   562  	if err := validate.ReadOnly(ctx, "display", "body", string(m.Display)); err != nil {
   563  		return err
   564  	}
   565  
   566  	return nil
   567  }
   568  
   569  func (m *PowerOutlet) contextValidateFeedLeg(ctx context.Context, formats strfmt.Registry) error {
   570  
   571  	if m.FeedLeg != nil {
   572  		if err := m.FeedLeg.ContextValidate(ctx, formats); err != nil {
   573  			if ve, ok := err.(*errors.Validation); ok {
   574  				return ve.ValidateName("feed_leg")
   575  			} else if ce, ok := err.(*errors.CompositeError); ok {
   576  				return ce.ValidateName("feed_leg")
   577  			}
   578  			return err
   579  		}
   580  	}
   581  
   582  	return nil
   583  }
   584  
   585  func (m *PowerOutlet) contextValidateID(ctx context.Context, formats strfmt.Registry) error {
   586  
   587  	if err := validate.ReadOnly(ctx, "id", "body", int64(m.ID)); err != nil {
   588  		return err
   589  	}
   590  
   591  	return nil
   592  }
   593  
   594  func (m *PowerOutlet) contextValidateLastUpdated(ctx context.Context, formats strfmt.Registry) error {
   595  
   596  	if err := validate.ReadOnly(ctx, "last_updated", "body", strfmt.DateTime(m.LastUpdated)); err != nil {
   597  		return err
   598  	}
   599  
   600  	return nil
   601  }
   602  
   603  func (m *PowerOutlet) contextValidatePowerPort(ctx context.Context, formats strfmt.Registry) error {
   604  
   605  	if m.PowerPort != nil {
   606  		if err := m.PowerPort.ContextValidate(ctx, formats); err != nil {
   607  			if ve, ok := err.(*errors.Validation); ok {
   608  				return ve.ValidateName("power_port")
   609  			} else if ce, ok := err.(*errors.CompositeError); ok {
   610  				return ce.ValidateName("power_port")
   611  			}
   612  			return err
   613  		}
   614  	}
   615  
   616  	return nil
   617  }
   618  
   619  func (m *PowerOutlet) contextValidateTags(ctx context.Context, formats strfmt.Registry) error {
   620  
   621  	for i := 0; i < len(m.Tags); i++ {
   622  
   623  		if m.Tags[i] != nil {
   624  			if err := m.Tags[i].ContextValidate(ctx, formats); err != nil {
   625  				if ve, ok := err.(*errors.Validation); ok {
   626  					return ve.ValidateName("tags" + "." + strconv.Itoa(i))
   627  				} else if ce, ok := err.(*errors.CompositeError); ok {
   628  					return ce.ValidateName("tags" + "." + strconv.Itoa(i))
   629  				}
   630  				return err
   631  			}
   632  		}
   633  
   634  	}
   635  
   636  	return nil
   637  }
   638  
   639  func (m *PowerOutlet) contextValidateType(ctx context.Context, formats strfmt.Registry) error {
   640  
   641  	if m.Type != nil {
   642  		if err := m.Type.ContextValidate(ctx, formats); err != nil {
   643  			if ve, ok := err.(*errors.Validation); ok {
   644  				return ve.ValidateName("type")
   645  			} else if ce, ok := err.(*errors.CompositeError); ok {
   646  				return ce.ValidateName("type")
   647  			}
   648  			return err
   649  		}
   650  	}
   651  
   652  	return nil
   653  }
   654  
   655  func (m *PowerOutlet) contextValidateURL(ctx context.Context, formats strfmt.Registry) error {
   656  
   657  	if err := validate.ReadOnly(ctx, "url", "body", strfmt.URI(m.URL)); err != nil {
   658  		return err
   659  	}
   660  
   661  	return nil
   662  }
   663  
   664  // MarshalBinary interface implementation
   665  func (m *PowerOutlet) MarshalBinary() ([]byte, error) {
   666  	if m == nil {
   667  		return nil, nil
   668  	}
   669  	return swag.WriteJSON(m)
   670  }
   671  
   672  // UnmarshalBinary interface implementation
   673  func (m *PowerOutlet) UnmarshalBinary(b []byte) error {
   674  	var res PowerOutlet
   675  	if err := swag.ReadJSON(b, &res); err != nil {
   676  		return err
   677  	}
   678  	*m = res
   679  	return nil
   680  }
   681  
   682  // PowerOutletFeedLeg Feed leg
   683  //
   684  // swagger:model PowerOutletFeedLeg
   685  type PowerOutletFeedLeg struct {
   686  
   687  	// label
   688  	// Required: true
   689  	// Enum: [A B C]
   690  	Label *string `json:"label"`
   691  
   692  	// value
   693  	// Required: true
   694  	// Enum: [A B C]
   695  	Value *string `json:"value"`
   696  }
   697  
   698  // Validate validates this power outlet feed leg
   699  func (m *PowerOutletFeedLeg) Validate(formats strfmt.Registry) error {
   700  	var res []error
   701  
   702  	if err := m.validateLabel(formats); err != nil {
   703  		res = append(res, err)
   704  	}
   705  
   706  	if err := m.validateValue(formats); err != nil {
   707  		res = append(res, err)
   708  	}
   709  
   710  	if len(res) > 0 {
   711  		return errors.CompositeValidationError(res...)
   712  	}
   713  	return nil
   714  }
   715  
   716  var powerOutletFeedLegTypeLabelPropEnum []interface{}
   717  
   718  func init() {
   719  	var res []string
   720  	if err := json.Unmarshal([]byte(`["A","B","C"]`), &res); err != nil {
   721  		panic(err)
   722  	}
   723  	for _, v := range res {
   724  		powerOutletFeedLegTypeLabelPropEnum = append(powerOutletFeedLegTypeLabelPropEnum, v)
   725  	}
   726  }
   727  
   728  const (
   729  
   730  	// PowerOutletFeedLegLabelA captures enum value "A"
   731  	PowerOutletFeedLegLabelA string = "A"
   732  
   733  	// PowerOutletFeedLegLabelB captures enum value "B"
   734  	PowerOutletFeedLegLabelB string = "B"
   735  
   736  	// PowerOutletFeedLegLabelC captures enum value "C"
   737  	PowerOutletFeedLegLabelC string = "C"
   738  )
   739  
   740  // prop value enum
   741  func (m *PowerOutletFeedLeg) validateLabelEnum(path, location string, value string) error {
   742  	if err := validate.EnumCase(path, location, value, powerOutletFeedLegTypeLabelPropEnum, true); err != nil {
   743  		return err
   744  	}
   745  	return nil
   746  }
   747  
   748  func (m *PowerOutletFeedLeg) validateLabel(formats strfmt.Registry) error {
   749  
   750  	if err := validate.Required("feed_leg"+"."+"label", "body", m.Label); err != nil {
   751  		return err
   752  	}
   753  
   754  	// value enum
   755  	if err := m.validateLabelEnum("feed_leg"+"."+"label", "body", *m.Label); err != nil {
   756  		return err
   757  	}
   758  
   759  	return nil
   760  }
   761  
   762  var powerOutletFeedLegTypeValuePropEnum []interface{}
   763  
   764  func init() {
   765  	var res []string
   766  	if err := json.Unmarshal([]byte(`["A","B","C"]`), &res); err != nil {
   767  		panic(err)
   768  	}
   769  	for _, v := range res {
   770  		powerOutletFeedLegTypeValuePropEnum = append(powerOutletFeedLegTypeValuePropEnum, v)
   771  	}
   772  }
   773  
   774  const (
   775  
   776  	// PowerOutletFeedLegValueA captures enum value "A"
   777  	PowerOutletFeedLegValueA string = "A"
   778  
   779  	// PowerOutletFeedLegValueB captures enum value "B"
   780  	PowerOutletFeedLegValueB string = "B"
   781  
   782  	// PowerOutletFeedLegValueC captures enum value "C"
   783  	PowerOutletFeedLegValueC string = "C"
   784  )
   785  
   786  // prop value enum
   787  func (m *PowerOutletFeedLeg) validateValueEnum(path, location string, value string) error {
   788  	if err := validate.EnumCase(path, location, value, powerOutletFeedLegTypeValuePropEnum, true); err != nil {
   789  		return err
   790  	}
   791  	return nil
   792  }
   793  
   794  func (m *PowerOutletFeedLeg) validateValue(formats strfmt.Registry) error {
   795  
   796  	if err := validate.Required("feed_leg"+"."+"value", "body", m.Value); err != nil {
   797  		return err
   798  	}
   799  
   800  	// value enum
   801  	if err := m.validateValueEnum("feed_leg"+"."+"value", "body", *m.Value); err != nil {
   802  		return err
   803  	}
   804  
   805  	return nil
   806  }
   807  
   808  // ContextValidate validates this power outlet feed leg based on context it is used
   809  func (m *PowerOutletFeedLeg) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
   810  	return nil
   811  }
   812  
   813  // MarshalBinary interface implementation
   814  func (m *PowerOutletFeedLeg) MarshalBinary() ([]byte, error) {
   815  	if m == nil {
   816  		return nil, nil
   817  	}
   818  	return swag.WriteJSON(m)
   819  }
   820  
   821  // UnmarshalBinary interface implementation
   822  func (m *PowerOutletFeedLeg) UnmarshalBinary(b []byte) error {
   823  	var res PowerOutletFeedLeg
   824  	if err := swag.ReadJSON(b, &res); err != nil {
   825  		return err
   826  	}
   827  	*m = res
   828  	return nil
   829  }
   830  
   831  // PowerOutletType Type
   832  //
   833  // swagger:model PowerOutletType
   834  type PowerOutletType struct {
   835  
   836  	// label
   837  	// Required: true
   838  	// Enum: [C5 C7 C13 C15 C19 C21 P+N+E 4H P+N+E 6H P+N+E 9H 2P+E 4H 2P+E 6H 2P+E 9H 3P+E 4H 3P+E 6H 3P+E 9H 3P+N+E 4H 3P+N+E 6H 3P+N+E 9H NEMA 1-15R NEMA 5-15R NEMA 5-20R NEMA 5-30R NEMA 5-50R NEMA 6-15R NEMA 6-20R NEMA 6-30R NEMA 6-50R NEMA 10-30R NEMA 10-50R NEMA 14-20R NEMA 14-30R NEMA 14-50R NEMA 14-60R NEMA 15-15R NEMA 15-20R NEMA 15-30R NEMA 15-50R NEMA 15-60R NEMA L1-15R NEMA L5-15R NEMA L5-20R NEMA L5-30R NEMA L5-50R NEMA L6-15R NEMA L6-20R NEMA L6-30R NEMA L6-50R NEMA L10-30R NEMA L14-20R NEMA L14-30R NEMA L14-50R NEMA L14-60R NEMA L15-20R NEMA L15-30R NEMA L15-50R NEMA L15-60R NEMA L21-20R NEMA L21-30R CS6360C CS6364C CS8164C CS8264C CS8364C CS8464C ITA Type E (CEE7/5) ITA Type F (CEE7/3) ITA Type G (BS 1363) ITA Type H ITA Type I ITA Type J ITA Type K ITA Type L (CEI 23-50) ITA Type M (BS 546) ITA Type N ITA Type O USB Type A USB Micro B USB Type C DC Terminal HDOT Cx Saf-D-Grid]
   839  	Label *string `json:"label"`
   840  
   841  	// value
   842  	// Required: true
   843  	// Enum: [iec-60320-c5 iec-60320-c7 iec-60320-c13 iec-60320-c15 iec-60320-c19 iec-60320-c21 iec-60309-p-n-e-4h iec-60309-p-n-e-6h iec-60309-p-n-e-9h iec-60309-2p-e-4h iec-60309-2p-e-6h iec-60309-2p-e-9h iec-60309-3p-e-4h iec-60309-3p-e-6h iec-60309-3p-e-9h iec-60309-3p-n-e-4h iec-60309-3p-n-e-6h iec-60309-3p-n-e-9h nema-1-15r nema-5-15r nema-5-20r nema-5-30r nema-5-50r nema-6-15r nema-6-20r nema-6-30r nema-6-50r nema-10-30r nema-10-50r nema-14-20r nema-14-30r nema-14-50r nema-14-60r nema-15-15r nema-15-20r nema-15-30r nema-15-50r nema-15-60r nema-l1-15r nema-l5-15r nema-l5-20r nema-l5-30r nema-l5-50r nema-l6-15r nema-l6-20r nema-l6-30r nema-l6-50r nema-l10-30r nema-l14-20r nema-l14-30r nema-l14-50r nema-l14-60r nema-l15-20r nema-l15-30r nema-l15-50r nema-l15-60r nema-l21-20r nema-l21-30r CS6360C CS6364C CS8164C CS8264C CS8364C CS8464C ita-e ita-f ita-g ita-h ita-i ita-j ita-k ita-l ita-m ita-n ita-o usb-a usb-micro-b usb-c dc-terminal hdot-cx saf-d-grid]
   844  	Value *string `json:"value"`
   845  }
   846  
   847  // Validate validates this power outlet type
   848  func (m *PowerOutletType) Validate(formats strfmt.Registry) error {
   849  	var res []error
   850  
   851  	if err := m.validateLabel(formats); err != nil {
   852  		res = append(res, err)
   853  	}
   854  
   855  	if err := m.validateValue(formats); err != nil {
   856  		res = append(res, err)
   857  	}
   858  
   859  	if len(res) > 0 {
   860  		return errors.CompositeValidationError(res...)
   861  	}
   862  	return nil
   863  }
   864  
   865  var powerOutletTypeTypeLabelPropEnum []interface{}
   866  
   867  func init() {
   868  	var res []string
   869  	if err := json.Unmarshal([]byte(`["C5","C7","C13","C15","C19","C21","P+N+E 4H","P+N+E 6H","P+N+E 9H","2P+E 4H","2P+E 6H","2P+E 9H","3P+E 4H","3P+E 6H","3P+E 9H","3P+N+E 4H","3P+N+E 6H","3P+N+E 9H","NEMA 1-15R","NEMA 5-15R","NEMA 5-20R","NEMA 5-30R","NEMA 5-50R","NEMA 6-15R","NEMA 6-20R","NEMA 6-30R","NEMA 6-50R","NEMA 10-30R","NEMA 10-50R","NEMA 14-20R","NEMA 14-30R","NEMA 14-50R","NEMA 14-60R","NEMA 15-15R","NEMA 15-20R","NEMA 15-30R","NEMA 15-50R","NEMA 15-60R","NEMA L1-15R","NEMA L5-15R","NEMA L5-20R","NEMA L5-30R","NEMA L5-50R","NEMA L6-15R","NEMA L6-20R","NEMA L6-30R","NEMA L6-50R","NEMA L10-30R","NEMA L14-20R","NEMA L14-30R","NEMA L14-50R","NEMA L14-60R","NEMA L15-20R","NEMA L15-30R","NEMA L15-50R","NEMA L15-60R","NEMA L21-20R","NEMA L21-30R","CS6360C","CS6364C","CS8164C","CS8264C","CS8364C","CS8464C","ITA Type E (CEE7/5)","ITA Type F (CEE7/3)","ITA Type G (BS 1363)","ITA Type H","ITA Type I","ITA Type J","ITA Type K","ITA Type L (CEI 23-50)","ITA Type M (BS 546)","ITA Type N","ITA Type O","USB Type A","USB Micro B","USB Type C","DC Terminal","HDOT Cx","Saf-D-Grid"]`), &res); err != nil {
   870  		panic(err)
   871  	}
   872  	for _, v := range res {
   873  		powerOutletTypeTypeLabelPropEnum = append(powerOutletTypeTypeLabelPropEnum, v)
   874  	}
   875  }
   876  
   877  const (
   878  
   879  	// PowerOutletTypeLabelC5 captures enum value "C5"
   880  	PowerOutletTypeLabelC5 string = "C5"
   881  
   882  	// PowerOutletTypeLabelC7 captures enum value "C7"
   883  	PowerOutletTypeLabelC7 string = "C7"
   884  
   885  	// PowerOutletTypeLabelC13 captures enum value "C13"
   886  	PowerOutletTypeLabelC13 string = "C13"
   887  
   888  	// PowerOutletTypeLabelC15 captures enum value "C15"
   889  	PowerOutletTypeLabelC15 string = "C15"
   890  
   891  	// PowerOutletTypeLabelC19 captures enum value "C19"
   892  	PowerOutletTypeLabelC19 string = "C19"
   893  
   894  	// PowerOutletTypeLabelC21 captures enum value "C21"
   895  	PowerOutletTypeLabelC21 string = "C21"
   896  
   897  	// PowerOutletTypeLabelPPlusNPlusE4H captures enum value "P+N+E 4H"
   898  	PowerOutletTypeLabelPPlusNPlusE4H string = "P+N+E 4H"
   899  
   900  	// PowerOutletTypeLabelPPlusNPlusE6H captures enum value "P+N+E 6H"
   901  	PowerOutletTypeLabelPPlusNPlusE6H string = "P+N+E 6H"
   902  
   903  	// PowerOutletTypeLabelPPlusNPlusE9H captures enum value "P+N+E 9H"
   904  	PowerOutletTypeLabelPPlusNPlusE9H string = "P+N+E 9H"
   905  
   906  	// PowerOutletTypeLabelNr2PPlusE4H captures enum value "2P+E 4H"
   907  	PowerOutletTypeLabelNr2PPlusE4H string = "2P+E 4H"
   908  
   909  	// PowerOutletTypeLabelNr2PPlusE6H captures enum value "2P+E 6H"
   910  	PowerOutletTypeLabelNr2PPlusE6H string = "2P+E 6H"
   911  
   912  	// PowerOutletTypeLabelNr2PPlusE9H captures enum value "2P+E 9H"
   913  	PowerOutletTypeLabelNr2PPlusE9H string = "2P+E 9H"
   914  
   915  	// PowerOutletTypeLabelNr3PPlusE4H captures enum value "3P+E 4H"
   916  	PowerOutletTypeLabelNr3PPlusE4H string = "3P+E 4H"
   917  
   918  	// PowerOutletTypeLabelNr3PPlusE6H captures enum value "3P+E 6H"
   919  	PowerOutletTypeLabelNr3PPlusE6H string = "3P+E 6H"
   920  
   921  	// PowerOutletTypeLabelNr3PPlusE9H captures enum value "3P+E 9H"
   922  	PowerOutletTypeLabelNr3PPlusE9H string = "3P+E 9H"
   923  
   924  	// PowerOutletTypeLabelNr3PPlusNPlusE4H captures enum value "3P+N+E 4H"
   925  	PowerOutletTypeLabelNr3PPlusNPlusE4H string = "3P+N+E 4H"
   926  
   927  	// PowerOutletTypeLabelNr3PPlusNPlusE6H captures enum value "3P+N+E 6H"
   928  	PowerOutletTypeLabelNr3PPlusNPlusE6H string = "3P+N+E 6H"
   929  
   930  	// PowerOutletTypeLabelNr3PPlusNPlusE9H captures enum value "3P+N+E 9H"
   931  	PowerOutletTypeLabelNr3PPlusNPlusE9H string = "3P+N+E 9H"
   932  
   933  	// PowerOutletTypeLabelNEMA1Dash15R captures enum value "NEMA 1-15R"
   934  	PowerOutletTypeLabelNEMA1Dash15R string = "NEMA 1-15R"
   935  
   936  	// PowerOutletTypeLabelNEMA5Dash15R captures enum value "NEMA 5-15R"
   937  	PowerOutletTypeLabelNEMA5Dash15R string = "NEMA 5-15R"
   938  
   939  	// PowerOutletTypeLabelNEMA5Dash20R captures enum value "NEMA 5-20R"
   940  	PowerOutletTypeLabelNEMA5Dash20R string = "NEMA 5-20R"
   941  
   942  	// PowerOutletTypeLabelNEMA5Dash30R captures enum value "NEMA 5-30R"
   943  	PowerOutletTypeLabelNEMA5Dash30R string = "NEMA 5-30R"
   944  
   945  	// PowerOutletTypeLabelNEMA5Dash50R captures enum value "NEMA 5-50R"
   946  	PowerOutletTypeLabelNEMA5Dash50R string = "NEMA 5-50R"
   947  
   948  	// PowerOutletTypeLabelNEMA6Dash15R captures enum value "NEMA 6-15R"
   949  	PowerOutletTypeLabelNEMA6Dash15R string = "NEMA 6-15R"
   950  
   951  	// PowerOutletTypeLabelNEMA6Dash20R captures enum value "NEMA 6-20R"
   952  	PowerOutletTypeLabelNEMA6Dash20R string = "NEMA 6-20R"
   953  
   954  	// PowerOutletTypeLabelNEMA6Dash30R captures enum value "NEMA 6-30R"
   955  	PowerOutletTypeLabelNEMA6Dash30R string = "NEMA 6-30R"
   956  
   957  	// PowerOutletTypeLabelNEMA6Dash50R captures enum value "NEMA 6-50R"
   958  	PowerOutletTypeLabelNEMA6Dash50R string = "NEMA 6-50R"
   959  
   960  	// PowerOutletTypeLabelNEMA10Dash30R captures enum value "NEMA 10-30R"
   961  	PowerOutletTypeLabelNEMA10Dash30R string = "NEMA 10-30R"
   962  
   963  	// PowerOutletTypeLabelNEMA10Dash50R captures enum value "NEMA 10-50R"
   964  	PowerOutletTypeLabelNEMA10Dash50R string = "NEMA 10-50R"
   965  
   966  	// PowerOutletTypeLabelNEMA14Dash20R captures enum value "NEMA 14-20R"
   967  	PowerOutletTypeLabelNEMA14Dash20R string = "NEMA 14-20R"
   968  
   969  	// PowerOutletTypeLabelNEMA14Dash30R captures enum value "NEMA 14-30R"
   970  	PowerOutletTypeLabelNEMA14Dash30R string = "NEMA 14-30R"
   971  
   972  	// PowerOutletTypeLabelNEMA14Dash50R captures enum value "NEMA 14-50R"
   973  	PowerOutletTypeLabelNEMA14Dash50R string = "NEMA 14-50R"
   974  
   975  	// PowerOutletTypeLabelNEMA14Dash60R captures enum value "NEMA 14-60R"
   976  	PowerOutletTypeLabelNEMA14Dash60R string = "NEMA 14-60R"
   977  
   978  	// PowerOutletTypeLabelNEMA15Dash15R captures enum value "NEMA 15-15R"
   979  	PowerOutletTypeLabelNEMA15Dash15R string = "NEMA 15-15R"
   980  
   981  	// PowerOutletTypeLabelNEMA15Dash20R captures enum value "NEMA 15-20R"
   982  	PowerOutletTypeLabelNEMA15Dash20R string = "NEMA 15-20R"
   983  
   984  	// PowerOutletTypeLabelNEMA15Dash30R captures enum value "NEMA 15-30R"
   985  	PowerOutletTypeLabelNEMA15Dash30R string = "NEMA 15-30R"
   986  
   987  	// PowerOutletTypeLabelNEMA15Dash50R captures enum value "NEMA 15-50R"
   988  	PowerOutletTypeLabelNEMA15Dash50R string = "NEMA 15-50R"
   989  
   990  	// PowerOutletTypeLabelNEMA15Dash60R captures enum value "NEMA 15-60R"
   991  	PowerOutletTypeLabelNEMA15Dash60R string = "NEMA 15-60R"
   992  
   993  	// PowerOutletTypeLabelNEMAL1Dash15R captures enum value "NEMA L1-15R"
   994  	PowerOutletTypeLabelNEMAL1Dash15R string = "NEMA L1-15R"
   995  
   996  	// PowerOutletTypeLabelNEMAL5Dash15R captures enum value "NEMA L5-15R"
   997  	PowerOutletTypeLabelNEMAL5Dash15R string = "NEMA L5-15R"
   998  
   999  	// PowerOutletTypeLabelNEMAL5Dash20R captures enum value "NEMA L5-20R"
  1000  	PowerOutletTypeLabelNEMAL5Dash20R string = "NEMA L5-20R"
  1001  
  1002  	// PowerOutletTypeLabelNEMAL5Dash30R captures enum value "NEMA L5-30R"
  1003  	PowerOutletTypeLabelNEMAL5Dash30R string = "NEMA L5-30R"
  1004  
  1005  	// PowerOutletTypeLabelNEMAL5Dash50R captures enum value "NEMA L5-50R"
  1006  	PowerOutletTypeLabelNEMAL5Dash50R string = "NEMA L5-50R"
  1007  
  1008  	// PowerOutletTypeLabelNEMAL6Dash15R captures enum value "NEMA L6-15R"
  1009  	PowerOutletTypeLabelNEMAL6Dash15R string = "NEMA L6-15R"
  1010  
  1011  	// PowerOutletTypeLabelNEMAL6Dash20R captures enum value "NEMA L6-20R"
  1012  	PowerOutletTypeLabelNEMAL6Dash20R string = "NEMA L6-20R"
  1013  
  1014  	// PowerOutletTypeLabelNEMAL6Dash30R captures enum value "NEMA L6-30R"
  1015  	PowerOutletTypeLabelNEMAL6Dash30R string = "NEMA L6-30R"
  1016  
  1017  	// PowerOutletTypeLabelNEMAL6Dash50R captures enum value "NEMA L6-50R"
  1018  	PowerOutletTypeLabelNEMAL6Dash50R string = "NEMA L6-50R"
  1019  
  1020  	// PowerOutletTypeLabelNEMAL10Dash30R captures enum value "NEMA L10-30R"
  1021  	PowerOutletTypeLabelNEMAL10Dash30R string = "NEMA L10-30R"
  1022  
  1023  	// PowerOutletTypeLabelNEMAL14Dash20R captures enum value "NEMA L14-20R"
  1024  	PowerOutletTypeLabelNEMAL14Dash20R string = "NEMA L14-20R"
  1025  
  1026  	// PowerOutletTypeLabelNEMAL14Dash30R captures enum value "NEMA L14-30R"
  1027  	PowerOutletTypeLabelNEMAL14Dash30R string = "NEMA L14-30R"
  1028  
  1029  	// PowerOutletTypeLabelNEMAL14Dash50R captures enum value "NEMA L14-50R"
  1030  	PowerOutletTypeLabelNEMAL14Dash50R string = "NEMA L14-50R"
  1031  
  1032  	// PowerOutletTypeLabelNEMAL14Dash60R captures enum value "NEMA L14-60R"
  1033  	PowerOutletTypeLabelNEMAL14Dash60R string = "NEMA L14-60R"
  1034  
  1035  	// PowerOutletTypeLabelNEMAL15Dash20R captures enum value "NEMA L15-20R"
  1036  	PowerOutletTypeLabelNEMAL15Dash20R string = "NEMA L15-20R"
  1037  
  1038  	// PowerOutletTypeLabelNEMAL15Dash30R captures enum value "NEMA L15-30R"
  1039  	PowerOutletTypeLabelNEMAL15Dash30R string = "NEMA L15-30R"
  1040  
  1041  	// PowerOutletTypeLabelNEMAL15Dash50R captures enum value "NEMA L15-50R"
  1042  	PowerOutletTypeLabelNEMAL15Dash50R string = "NEMA L15-50R"
  1043  
  1044  	// PowerOutletTypeLabelNEMAL15Dash60R captures enum value "NEMA L15-60R"
  1045  	PowerOutletTypeLabelNEMAL15Dash60R string = "NEMA L15-60R"
  1046  
  1047  	// PowerOutletTypeLabelNEMAL21Dash20R captures enum value "NEMA L21-20R"
  1048  	PowerOutletTypeLabelNEMAL21Dash20R string = "NEMA L21-20R"
  1049  
  1050  	// PowerOutletTypeLabelNEMAL21Dash30R captures enum value "NEMA L21-30R"
  1051  	PowerOutletTypeLabelNEMAL21Dash30R string = "NEMA L21-30R"
  1052  
  1053  	// PowerOutletTypeLabelCS6360C captures enum value "CS6360C"
  1054  	PowerOutletTypeLabelCS6360C string = "CS6360C"
  1055  
  1056  	// PowerOutletTypeLabelCS6364C captures enum value "CS6364C"
  1057  	PowerOutletTypeLabelCS6364C string = "CS6364C"
  1058  
  1059  	// PowerOutletTypeLabelCS8164C captures enum value "CS8164C"
  1060  	PowerOutletTypeLabelCS8164C string = "CS8164C"
  1061  
  1062  	// PowerOutletTypeLabelCS8264C captures enum value "CS8264C"
  1063  	PowerOutletTypeLabelCS8264C string = "CS8264C"
  1064  
  1065  	// PowerOutletTypeLabelCS8364C captures enum value "CS8364C"
  1066  	PowerOutletTypeLabelCS8364C string = "CS8364C"
  1067  
  1068  	// PowerOutletTypeLabelCS8464C captures enum value "CS8464C"
  1069  	PowerOutletTypeLabelCS8464C string = "CS8464C"
  1070  
  1071  	// PowerOutletTypeLabelITATypeECEE75 captures enum value "ITA Type E (CEE7/5)"
  1072  	PowerOutletTypeLabelITATypeECEE75 string = "ITA Type E (CEE7/5)"
  1073  
  1074  	// PowerOutletTypeLabelITATypeFCEE73 captures enum value "ITA Type F (CEE7/3)"
  1075  	PowerOutletTypeLabelITATypeFCEE73 string = "ITA Type F (CEE7/3)"
  1076  
  1077  	// PowerOutletTypeLabelITATypeGBS1363 captures enum value "ITA Type G (BS 1363)"
  1078  	PowerOutletTypeLabelITATypeGBS1363 string = "ITA Type G (BS 1363)"
  1079  
  1080  	// PowerOutletTypeLabelITATypeH captures enum value "ITA Type H"
  1081  	PowerOutletTypeLabelITATypeH string = "ITA Type H"
  1082  
  1083  	// PowerOutletTypeLabelITATypeI captures enum value "ITA Type I"
  1084  	PowerOutletTypeLabelITATypeI string = "ITA Type I"
  1085  
  1086  	// PowerOutletTypeLabelITATypeJ captures enum value "ITA Type J"
  1087  	PowerOutletTypeLabelITATypeJ string = "ITA Type J"
  1088  
  1089  	// PowerOutletTypeLabelITATypeK captures enum value "ITA Type K"
  1090  	PowerOutletTypeLabelITATypeK string = "ITA Type K"
  1091  
  1092  	// PowerOutletTypeLabelITATypeLCEI23Dash50 captures enum value "ITA Type L (CEI 23-50)"
  1093  	PowerOutletTypeLabelITATypeLCEI23Dash50 string = "ITA Type L (CEI 23-50)"
  1094  
  1095  	// PowerOutletTypeLabelITATypeMBS546 captures enum value "ITA Type M (BS 546)"
  1096  	PowerOutletTypeLabelITATypeMBS546 string = "ITA Type M (BS 546)"
  1097  
  1098  	// PowerOutletTypeLabelITATypeN captures enum value "ITA Type N"
  1099  	PowerOutletTypeLabelITATypeN string = "ITA Type N"
  1100  
  1101  	// PowerOutletTypeLabelITATypeO captures enum value "ITA Type O"
  1102  	PowerOutletTypeLabelITATypeO string = "ITA Type O"
  1103  
  1104  	// PowerOutletTypeLabelUSBTypeA captures enum value "USB Type A"
  1105  	PowerOutletTypeLabelUSBTypeA string = "USB Type A"
  1106  
  1107  	// PowerOutletTypeLabelUSBMicroB captures enum value "USB Micro B"
  1108  	PowerOutletTypeLabelUSBMicroB string = "USB Micro B"
  1109  
  1110  	// PowerOutletTypeLabelUSBTypeC captures enum value "USB Type C"
  1111  	PowerOutletTypeLabelUSBTypeC string = "USB Type C"
  1112  
  1113  	// PowerOutletTypeLabelDCTerminal captures enum value "DC Terminal"
  1114  	PowerOutletTypeLabelDCTerminal string = "DC Terminal"
  1115  
  1116  	// PowerOutletTypeLabelHDOTCx captures enum value "HDOT Cx"
  1117  	PowerOutletTypeLabelHDOTCx string = "HDOT Cx"
  1118  
  1119  	// PowerOutletTypeLabelSafDashDDashGrid captures enum value "Saf-D-Grid"
  1120  	PowerOutletTypeLabelSafDashDDashGrid string = "Saf-D-Grid"
  1121  )
  1122  
  1123  // prop value enum
  1124  func (m *PowerOutletType) validateLabelEnum(path, location string, value string) error {
  1125  	if err := validate.EnumCase(path, location, value, powerOutletTypeTypeLabelPropEnum, true); err != nil {
  1126  		return err
  1127  	}
  1128  	return nil
  1129  }
  1130  
  1131  func (m *PowerOutletType) validateLabel(formats strfmt.Registry) error {
  1132  
  1133  	if err := validate.Required("type"+"."+"label", "body", m.Label); err != nil {
  1134  		return err
  1135  	}
  1136  
  1137  	// value enum
  1138  	if err := m.validateLabelEnum("type"+"."+"label", "body", *m.Label); err != nil {
  1139  		return err
  1140  	}
  1141  
  1142  	return nil
  1143  }
  1144  
  1145  var powerOutletTypeTypeValuePropEnum []interface{}
  1146  
  1147  func init() {
  1148  	var res []string
  1149  	if err := json.Unmarshal([]byte(`["iec-60320-c5","iec-60320-c7","iec-60320-c13","iec-60320-c15","iec-60320-c19","iec-60320-c21","iec-60309-p-n-e-4h","iec-60309-p-n-e-6h","iec-60309-p-n-e-9h","iec-60309-2p-e-4h","iec-60309-2p-e-6h","iec-60309-2p-e-9h","iec-60309-3p-e-4h","iec-60309-3p-e-6h","iec-60309-3p-e-9h","iec-60309-3p-n-e-4h","iec-60309-3p-n-e-6h","iec-60309-3p-n-e-9h","nema-1-15r","nema-5-15r","nema-5-20r","nema-5-30r","nema-5-50r","nema-6-15r","nema-6-20r","nema-6-30r","nema-6-50r","nema-10-30r","nema-10-50r","nema-14-20r","nema-14-30r","nema-14-50r","nema-14-60r","nema-15-15r","nema-15-20r","nema-15-30r","nema-15-50r","nema-15-60r","nema-l1-15r","nema-l5-15r","nema-l5-20r","nema-l5-30r","nema-l5-50r","nema-l6-15r","nema-l6-20r","nema-l6-30r","nema-l6-50r","nema-l10-30r","nema-l14-20r","nema-l14-30r","nema-l14-50r","nema-l14-60r","nema-l15-20r","nema-l15-30r","nema-l15-50r","nema-l15-60r","nema-l21-20r","nema-l21-30r","CS6360C","CS6364C","CS8164C","CS8264C","CS8364C","CS8464C","ita-e","ita-f","ita-g","ita-h","ita-i","ita-j","ita-k","ita-l","ita-m","ita-n","ita-o","usb-a","usb-micro-b","usb-c","dc-terminal","hdot-cx","saf-d-grid"]`), &res); err != nil {
  1150  		panic(err)
  1151  	}
  1152  	for _, v := range res {
  1153  		powerOutletTypeTypeValuePropEnum = append(powerOutletTypeTypeValuePropEnum, v)
  1154  	}
  1155  }
  1156  
  1157  const (
  1158  
  1159  	// PowerOutletTypeValueIecDash60320DashC5 captures enum value "iec-60320-c5"
  1160  	PowerOutletTypeValueIecDash60320DashC5 string = "iec-60320-c5"
  1161  
  1162  	// PowerOutletTypeValueIecDash60320DashC7 captures enum value "iec-60320-c7"
  1163  	PowerOutletTypeValueIecDash60320DashC7 string = "iec-60320-c7"
  1164  
  1165  	// PowerOutletTypeValueIecDash60320DashC13 captures enum value "iec-60320-c13"
  1166  	PowerOutletTypeValueIecDash60320DashC13 string = "iec-60320-c13"
  1167  
  1168  	// PowerOutletTypeValueIecDash60320DashC15 captures enum value "iec-60320-c15"
  1169  	PowerOutletTypeValueIecDash60320DashC15 string = "iec-60320-c15"
  1170  
  1171  	// PowerOutletTypeValueIecDash60320DashC19 captures enum value "iec-60320-c19"
  1172  	PowerOutletTypeValueIecDash60320DashC19 string = "iec-60320-c19"
  1173  
  1174  	// PowerOutletTypeValueIecDash60320DashC21 captures enum value "iec-60320-c21"
  1175  	PowerOutletTypeValueIecDash60320DashC21 string = "iec-60320-c21"
  1176  
  1177  	// PowerOutletTypeValueIecDash60309DashpDashnDasheDash4h captures enum value "iec-60309-p-n-e-4h"
  1178  	PowerOutletTypeValueIecDash60309DashpDashnDasheDash4h string = "iec-60309-p-n-e-4h"
  1179  
  1180  	// PowerOutletTypeValueIecDash60309DashpDashnDasheDash6h captures enum value "iec-60309-p-n-e-6h"
  1181  	PowerOutletTypeValueIecDash60309DashpDashnDasheDash6h string = "iec-60309-p-n-e-6h"
  1182  
  1183  	// PowerOutletTypeValueIecDash60309DashpDashnDasheDash9h captures enum value "iec-60309-p-n-e-9h"
  1184  	PowerOutletTypeValueIecDash60309DashpDashnDasheDash9h string = "iec-60309-p-n-e-9h"
  1185  
  1186  	// PowerOutletTypeValueIecDash60309Dash2pDasheDash4h captures enum value "iec-60309-2p-e-4h"
  1187  	PowerOutletTypeValueIecDash60309Dash2pDasheDash4h string = "iec-60309-2p-e-4h"
  1188  
  1189  	// PowerOutletTypeValueIecDash60309Dash2pDasheDash6h captures enum value "iec-60309-2p-e-6h"
  1190  	PowerOutletTypeValueIecDash60309Dash2pDasheDash6h string = "iec-60309-2p-e-6h"
  1191  
  1192  	// PowerOutletTypeValueIecDash60309Dash2pDasheDash9h captures enum value "iec-60309-2p-e-9h"
  1193  	PowerOutletTypeValueIecDash60309Dash2pDasheDash9h string = "iec-60309-2p-e-9h"
  1194  
  1195  	// PowerOutletTypeValueIecDash60309Dash3pDasheDash4h captures enum value "iec-60309-3p-e-4h"
  1196  	PowerOutletTypeValueIecDash60309Dash3pDasheDash4h string = "iec-60309-3p-e-4h"
  1197  
  1198  	// PowerOutletTypeValueIecDash60309Dash3pDasheDash6h captures enum value "iec-60309-3p-e-6h"
  1199  	PowerOutletTypeValueIecDash60309Dash3pDasheDash6h string = "iec-60309-3p-e-6h"
  1200  
  1201  	// PowerOutletTypeValueIecDash60309Dash3pDasheDash9h captures enum value "iec-60309-3p-e-9h"
  1202  	PowerOutletTypeValueIecDash60309Dash3pDasheDash9h string = "iec-60309-3p-e-9h"
  1203  
  1204  	// PowerOutletTypeValueIecDash60309Dash3pDashnDasheDash4h captures enum value "iec-60309-3p-n-e-4h"
  1205  	PowerOutletTypeValueIecDash60309Dash3pDashnDasheDash4h string = "iec-60309-3p-n-e-4h"
  1206  
  1207  	// PowerOutletTypeValueIecDash60309Dash3pDashnDasheDash6h captures enum value "iec-60309-3p-n-e-6h"
  1208  	PowerOutletTypeValueIecDash60309Dash3pDashnDasheDash6h string = "iec-60309-3p-n-e-6h"
  1209  
  1210  	// PowerOutletTypeValueIecDash60309Dash3pDashnDasheDash9h captures enum value "iec-60309-3p-n-e-9h"
  1211  	PowerOutletTypeValueIecDash60309Dash3pDashnDasheDash9h string = "iec-60309-3p-n-e-9h"
  1212  
  1213  	// PowerOutletTypeValueNemaDash1Dash15r captures enum value "nema-1-15r"
  1214  	PowerOutletTypeValueNemaDash1Dash15r string = "nema-1-15r"
  1215  
  1216  	// PowerOutletTypeValueNemaDash5Dash15r captures enum value "nema-5-15r"
  1217  	PowerOutletTypeValueNemaDash5Dash15r string = "nema-5-15r"
  1218  
  1219  	// PowerOutletTypeValueNemaDash5Dash20r captures enum value "nema-5-20r"
  1220  	PowerOutletTypeValueNemaDash5Dash20r string = "nema-5-20r"
  1221  
  1222  	// PowerOutletTypeValueNemaDash5Dash30r captures enum value "nema-5-30r"
  1223  	PowerOutletTypeValueNemaDash5Dash30r string = "nema-5-30r"
  1224  
  1225  	// PowerOutletTypeValueNemaDash5Dash50r captures enum value "nema-5-50r"
  1226  	PowerOutletTypeValueNemaDash5Dash50r string = "nema-5-50r"
  1227  
  1228  	// PowerOutletTypeValueNemaDash6Dash15r captures enum value "nema-6-15r"
  1229  	PowerOutletTypeValueNemaDash6Dash15r string = "nema-6-15r"
  1230  
  1231  	// PowerOutletTypeValueNemaDash6Dash20r captures enum value "nema-6-20r"
  1232  	PowerOutletTypeValueNemaDash6Dash20r string = "nema-6-20r"
  1233  
  1234  	// PowerOutletTypeValueNemaDash6Dash30r captures enum value "nema-6-30r"
  1235  	PowerOutletTypeValueNemaDash6Dash30r string = "nema-6-30r"
  1236  
  1237  	// PowerOutletTypeValueNemaDash6Dash50r captures enum value "nema-6-50r"
  1238  	PowerOutletTypeValueNemaDash6Dash50r string = "nema-6-50r"
  1239  
  1240  	// PowerOutletTypeValueNemaDash10Dash30r captures enum value "nema-10-30r"
  1241  	PowerOutletTypeValueNemaDash10Dash30r string = "nema-10-30r"
  1242  
  1243  	// PowerOutletTypeValueNemaDash10Dash50r captures enum value "nema-10-50r"
  1244  	PowerOutletTypeValueNemaDash10Dash50r string = "nema-10-50r"
  1245  
  1246  	// PowerOutletTypeValueNemaDash14Dash20r captures enum value "nema-14-20r"
  1247  	PowerOutletTypeValueNemaDash14Dash20r string = "nema-14-20r"
  1248  
  1249  	// PowerOutletTypeValueNemaDash14Dash30r captures enum value "nema-14-30r"
  1250  	PowerOutletTypeValueNemaDash14Dash30r string = "nema-14-30r"
  1251  
  1252  	// PowerOutletTypeValueNemaDash14Dash50r captures enum value "nema-14-50r"
  1253  	PowerOutletTypeValueNemaDash14Dash50r string = "nema-14-50r"
  1254  
  1255  	// PowerOutletTypeValueNemaDash14Dash60r captures enum value "nema-14-60r"
  1256  	PowerOutletTypeValueNemaDash14Dash60r string = "nema-14-60r"
  1257  
  1258  	// PowerOutletTypeValueNemaDash15Dash15r captures enum value "nema-15-15r"
  1259  	PowerOutletTypeValueNemaDash15Dash15r string = "nema-15-15r"
  1260  
  1261  	// PowerOutletTypeValueNemaDash15Dash20r captures enum value "nema-15-20r"
  1262  	PowerOutletTypeValueNemaDash15Dash20r string = "nema-15-20r"
  1263  
  1264  	// PowerOutletTypeValueNemaDash15Dash30r captures enum value "nema-15-30r"
  1265  	PowerOutletTypeValueNemaDash15Dash30r string = "nema-15-30r"
  1266  
  1267  	// PowerOutletTypeValueNemaDash15Dash50r captures enum value "nema-15-50r"
  1268  	PowerOutletTypeValueNemaDash15Dash50r string = "nema-15-50r"
  1269  
  1270  	// PowerOutletTypeValueNemaDash15Dash60r captures enum value "nema-15-60r"
  1271  	PowerOutletTypeValueNemaDash15Dash60r string = "nema-15-60r"
  1272  
  1273  	// PowerOutletTypeValueNemaDashL1Dash15r captures enum value "nema-l1-15r"
  1274  	PowerOutletTypeValueNemaDashL1Dash15r string = "nema-l1-15r"
  1275  
  1276  	// PowerOutletTypeValueNemaDashL5Dash15r captures enum value "nema-l5-15r"
  1277  	PowerOutletTypeValueNemaDashL5Dash15r string = "nema-l5-15r"
  1278  
  1279  	// PowerOutletTypeValueNemaDashL5Dash20r captures enum value "nema-l5-20r"
  1280  	PowerOutletTypeValueNemaDashL5Dash20r string = "nema-l5-20r"
  1281  
  1282  	// PowerOutletTypeValueNemaDashL5Dash30r captures enum value "nema-l5-30r"
  1283  	PowerOutletTypeValueNemaDashL5Dash30r string = "nema-l5-30r"
  1284  
  1285  	// PowerOutletTypeValueNemaDashL5Dash50r captures enum value "nema-l5-50r"
  1286  	PowerOutletTypeValueNemaDashL5Dash50r string = "nema-l5-50r"
  1287  
  1288  	// PowerOutletTypeValueNemaDashL6Dash15r captures enum value "nema-l6-15r"
  1289  	PowerOutletTypeValueNemaDashL6Dash15r string = "nema-l6-15r"
  1290  
  1291  	// PowerOutletTypeValueNemaDashL6Dash20r captures enum value "nema-l6-20r"
  1292  	PowerOutletTypeValueNemaDashL6Dash20r string = "nema-l6-20r"
  1293  
  1294  	// PowerOutletTypeValueNemaDashL6Dash30r captures enum value "nema-l6-30r"
  1295  	PowerOutletTypeValueNemaDashL6Dash30r string = "nema-l6-30r"
  1296  
  1297  	// PowerOutletTypeValueNemaDashL6Dash50r captures enum value "nema-l6-50r"
  1298  	PowerOutletTypeValueNemaDashL6Dash50r string = "nema-l6-50r"
  1299  
  1300  	// PowerOutletTypeValueNemaDashL10Dash30r captures enum value "nema-l10-30r"
  1301  	PowerOutletTypeValueNemaDashL10Dash30r string = "nema-l10-30r"
  1302  
  1303  	// PowerOutletTypeValueNemaDashL14Dash20r captures enum value "nema-l14-20r"
  1304  	PowerOutletTypeValueNemaDashL14Dash20r string = "nema-l14-20r"
  1305  
  1306  	// PowerOutletTypeValueNemaDashL14Dash30r captures enum value "nema-l14-30r"
  1307  	PowerOutletTypeValueNemaDashL14Dash30r string = "nema-l14-30r"
  1308  
  1309  	// PowerOutletTypeValueNemaDashL14Dash50r captures enum value "nema-l14-50r"
  1310  	PowerOutletTypeValueNemaDashL14Dash50r string = "nema-l14-50r"
  1311  
  1312  	// PowerOutletTypeValueNemaDashL14Dash60r captures enum value "nema-l14-60r"
  1313  	PowerOutletTypeValueNemaDashL14Dash60r string = "nema-l14-60r"
  1314  
  1315  	// PowerOutletTypeValueNemaDashL15Dash20r captures enum value "nema-l15-20r"
  1316  	PowerOutletTypeValueNemaDashL15Dash20r string = "nema-l15-20r"
  1317  
  1318  	// PowerOutletTypeValueNemaDashL15Dash30r captures enum value "nema-l15-30r"
  1319  	PowerOutletTypeValueNemaDashL15Dash30r string = "nema-l15-30r"
  1320  
  1321  	// PowerOutletTypeValueNemaDashL15Dash50r captures enum value "nema-l15-50r"
  1322  	PowerOutletTypeValueNemaDashL15Dash50r string = "nema-l15-50r"
  1323  
  1324  	// PowerOutletTypeValueNemaDashL15Dash60r captures enum value "nema-l15-60r"
  1325  	PowerOutletTypeValueNemaDashL15Dash60r string = "nema-l15-60r"
  1326  
  1327  	// PowerOutletTypeValueNemaDashL21Dash20r captures enum value "nema-l21-20r"
  1328  	PowerOutletTypeValueNemaDashL21Dash20r string = "nema-l21-20r"
  1329  
  1330  	// PowerOutletTypeValueNemaDashL21Dash30r captures enum value "nema-l21-30r"
  1331  	PowerOutletTypeValueNemaDashL21Dash30r string = "nema-l21-30r"
  1332  
  1333  	// PowerOutletTypeValueCS6360C captures enum value "CS6360C"
  1334  	PowerOutletTypeValueCS6360C string = "CS6360C"
  1335  
  1336  	// PowerOutletTypeValueCS6364C captures enum value "CS6364C"
  1337  	PowerOutletTypeValueCS6364C string = "CS6364C"
  1338  
  1339  	// PowerOutletTypeValueCS8164C captures enum value "CS8164C"
  1340  	PowerOutletTypeValueCS8164C string = "CS8164C"
  1341  
  1342  	// PowerOutletTypeValueCS8264C captures enum value "CS8264C"
  1343  	PowerOutletTypeValueCS8264C string = "CS8264C"
  1344  
  1345  	// PowerOutletTypeValueCS8364C captures enum value "CS8364C"
  1346  	PowerOutletTypeValueCS8364C string = "CS8364C"
  1347  
  1348  	// PowerOutletTypeValueCS8464C captures enum value "CS8464C"
  1349  	PowerOutletTypeValueCS8464C string = "CS8464C"
  1350  
  1351  	// PowerOutletTypeValueItaDashe captures enum value "ita-e"
  1352  	PowerOutletTypeValueItaDashe string = "ita-e"
  1353  
  1354  	// PowerOutletTypeValueItaDashf captures enum value "ita-f"
  1355  	PowerOutletTypeValueItaDashf string = "ita-f"
  1356  
  1357  	// PowerOutletTypeValueItaDashg captures enum value "ita-g"
  1358  	PowerOutletTypeValueItaDashg string = "ita-g"
  1359  
  1360  	// PowerOutletTypeValueItaDashh captures enum value "ita-h"
  1361  	PowerOutletTypeValueItaDashh string = "ita-h"
  1362  
  1363  	// PowerOutletTypeValueItaDashi captures enum value "ita-i"
  1364  	PowerOutletTypeValueItaDashi string = "ita-i"
  1365  
  1366  	// PowerOutletTypeValueItaDashj captures enum value "ita-j"
  1367  	PowerOutletTypeValueItaDashj string = "ita-j"
  1368  
  1369  	// PowerOutletTypeValueItaDashk captures enum value "ita-k"
  1370  	PowerOutletTypeValueItaDashk string = "ita-k"
  1371  
  1372  	// PowerOutletTypeValueItaDashl captures enum value "ita-l"
  1373  	PowerOutletTypeValueItaDashl string = "ita-l"
  1374  
  1375  	// PowerOutletTypeValueItaDashm captures enum value "ita-m"
  1376  	PowerOutletTypeValueItaDashm string = "ita-m"
  1377  
  1378  	// PowerOutletTypeValueItaDashn captures enum value "ita-n"
  1379  	PowerOutletTypeValueItaDashn string = "ita-n"
  1380  
  1381  	// PowerOutletTypeValueItaDasho captures enum value "ita-o"
  1382  	PowerOutletTypeValueItaDasho string = "ita-o"
  1383  
  1384  	// PowerOutletTypeValueUsbDasha captures enum value "usb-a"
  1385  	PowerOutletTypeValueUsbDasha string = "usb-a"
  1386  
  1387  	// PowerOutletTypeValueUsbDashMicroDashb captures enum value "usb-micro-b"
  1388  	PowerOutletTypeValueUsbDashMicroDashb string = "usb-micro-b"
  1389  
  1390  	// PowerOutletTypeValueUsbDashc captures enum value "usb-c"
  1391  	PowerOutletTypeValueUsbDashc string = "usb-c"
  1392  
  1393  	// PowerOutletTypeValueDcDashTerminal captures enum value "dc-terminal"
  1394  	PowerOutletTypeValueDcDashTerminal string = "dc-terminal"
  1395  
  1396  	// PowerOutletTypeValueHdotDashCx captures enum value "hdot-cx"
  1397  	PowerOutletTypeValueHdotDashCx string = "hdot-cx"
  1398  
  1399  	// PowerOutletTypeValueSafDashdDashGrid captures enum value "saf-d-grid"
  1400  	PowerOutletTypeValueSafDashdDashGrid string = "saf-d-grid"
  1401  )
  1402  
  1403  // prop value enum
  1404  func (m *PowerOutletType) validateValueEnum(path, location string, value string) error {
  1405  	if err := validate.EnumCase(path, location, value, powerOutletTypeTypeValuePropEnum, true); err != nil {
  1406  		return err
  1407  	}
  1408  	return nil
  1409  }
  1410  
  1411  func (m *PowerOutletType) validateValue(formats strfmt.Registry) error {
  1412  
  1413  	if err := validate.Required("type"+"."+"value", "body", m.Value); err != nil {
  1414  		return err
  1415  	}
  1416  
  1417  	// value enum
  1418  	if err := m.validateValueEnum("type"+"."+"value", "body", *m.Value); err != nil {
  1419  		return err
  1420  	}
  1421  
  1422  	return nil
  1423  }
  1424  
  1425  // ContextValidate validates this power outlet type based on context it is used
  1426  func (m *PowerOutletType) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
  1427  	return nil
  1428  }
  1429  
  1430  // MarshalBinary interface implementation
  1431  func (m *PowerOutletType) MarshalBinary() ([]byte, error) {
  1432  	if m == nil {
  1433  		return nil, nil
  1434  	}
  1435  	return swag.WriteJSON(m)
  1436  }
  1437  
  1438  // UnmarshalBinary interface implementation
  1439  func (m *PowerOutletType) UnmarshalBinary(b []byte) error {
  1440  	var res PowerOutletType
  1441  	if err := swag.ReadJSON(b, &res); err != nil {
  1442  		return err
  1443  	}
  1444  	*m = res
  1445  	return nil
  1446  }