func NewGetMonitoringReportRequest() *GetMonitoringReportRequest {
	return &GetMonitoringReportRequest{}
}
Creates a new GetMonitoringReportRequest. All fields are optional and may be set afterwards.
package diagnostics
import (
	"reflect"
	"github.com/lorenzodonini/ocpp-go/ocpp2.0.1/types"
	"gopkg.in/go-playground/validator.v9"
)
const GetMonitoringReportFeatureName = "GetMonitoringReport"
type MonitoringCriteriaType string
const (
	MonitoringCriteriaThresholdMonitoring MonitoringCriteriaType = "ThresholdMonitoring"
	MonitoringCriteriaDeltaMonitoring     MonitoringCriteriaType = "DeltaMonitoring"
	MonitoringCriteriaPeriodicMonitoring  MonitoringCriteriaType = "PeriodicMonitoring"
)
func isValidMonitoringCriteriaType(fl validator.FieldLevel) bool {
	status := MonitoringCriteriaType(fl.Field().String())
	switch status {
	case MonitoringCriteriaThresholdMonitoring, MonitoringCriteriaDeltaMonitoring, MonitoringCriteriaPeriodicMonitoring:
		return true
	default:
		return false
	}
}
type GetMonitoringReportRequest struct {
	RequestID          *int                      `json:"requestId,omitempty" validate:"omitempty,gte=0"`                                   
	MonitoringCriteria []MonitoringCriteriaType  `json:"monitoringCriteria,omitempty" validate:"omitempty,max=3,dive,monitoringCriteria"`  
	ComponentVariable  []types.ComponentVariable `json:"componentVariable,omitempty" validate:"omitempty,dive"`                            
}
type GetMonitoringReportResponse struct {
	Status types.GenericDeviceModelStatus `json:"status" validate:"required,genericDeviceModelStatus"`  
}
type GetMonitoringReportFeature struct{}
func (f GetMonitoringReportFeature) GetFeatureName() string {
	return GetMonitoringReportFeatureName
}
func (f GetMonitoringReportFeature) GetRequestType() reflect.Type {
	return reflect.TypeOf(GetMonitoringReportRequest{})
}
func (f GetMonitoringReportFeature) GetResponseType() reflect.Type {
	return reflect.TypeOf(GetMonitoringReportResponse{})
}
func (r GetMonitoringReportRequest) GetFeatureName() string {
	return GetMonitoringReportFeatureName
}
func (c GetMonitoringReportResponse) GetFeatureName() string {
	return GetMonitoringReportFeatureName
}