// Code generated by go-swagger; DO NOT EDIT.

package models

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"context"

	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag"
)

// PVMInstanceNetwork A map containing information about a network address
//
// swagger:model PVMInstanceNetwork
type PVMInstanceNetwork struct {

	// The external ip address (for pub-vlan networks)
	ExternalIP string `json:"externalIP,omitempty"`

	// Link to PVM Instance Network
	Href string `json:"href,omitempty"`

	// (deprecated - replaced by ipAddress)
	IP string `json:"ip,omitempty"`

	// The ip address of this network interface
	IPAddress string `json:"ipAddress,omitempty"`

	// The mac address of the network interface
	MacAddress string `json:"macAddress,omitempty"`

	// ID of the network
	NetworkID string `json:"networkID,omitempty"`

	// The name of the network the address is on
	NetworkName string `json:"networkName,omitempty"`

	// The address type (fixed or dynamic)
	Type string `json:"type,omitempty"`

	// The version of the information provided
	Version float64 `json:"version,omitempty"`
}

// Validate validates this p VM instance network
func (m *PVMInstanceNetwork) Validate(formats strfmt.Registry) error {
	return nil
}

// ContextValidate validates this p VM instance network based on context it is used
func (m *PVMInstanceNetwork) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
	return nil
}

// MarshalBinary interface implementation
func (m *PVMInstanceNetwork) MarshalBinary() ([]byte, error) {
	if m == nil {
		return nil, nil
	}
	return swag.WriteJSON(m)
}

// UnmarshalBinary interface implementation
func (m *PVMInstanceNetwork) UnmarshalBinary(b []byte) error {
	var res PVMInstanceNetwork
	if err := swag.ReadJSON(b, &res); err != nil {
		return err
	}
	*m = res
	return nil
}
