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

package rest_model_zrok

import (
	"context"

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

// LimitClass limit class
//
// swagger:model limitClass
type LimitClass struct {

	// backend mode
	BackendMode string `json:"backendMode,omitempty"`

	// created at
	CreatedAt int64 `json:"createdAt,omitempty"`

	// environments
	Environments int64 `json:"environments,omitempty"`

	// id
	ID int64 `json:"id,omitempty"`

	// label
	Label string `json:"label,omitempty"`

	// limit action
	LimitAction string `json:"limitAction,omitempty"`

	// period minutes
	PeriodMinutes int64 `json:"periodMinutes,omitempty"`

	// reserved shares
	ReservedShares int64 `json:"reservedShares,omitempty"`

	// rx bytes
	RxBytes int64 `json:"rxBytes,omitempty"`

	// share frontends
	ShareFrontends int64 `json:"shareFrontends,omitempty"`

	// shares
	Shares int64 `json:"shares,omitempty"`

	// total bytes
	TotalBytes int64 `json:"totalBytes,omitempty"`

	// tx bytes
	TxBytes int64 `json:"txBytes,omitempty"`

	// unique names
	UniqueNames int64 `json:"uniqueNames,omitempty"`

	// updated at
	UpdatedAt int64 `json:"updatedAt,omitempty"`
}

// Validate validates this limit class
func (m *LimitClass) Validate(formats strfmt.Registry) error {
	return nil
}

// ContextValidate validates this limit class based on context it is used
func (m *LimitClass) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
	return nil
}

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

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