// Code generated by protoc-gen-validate. DO NOT EDIT.
// source: rpc/k8s_ops.proto

package rpc

import (
	"bytes"
	"errors"
	"fmt"
	"net"
	"net/mail"
	"net/url"
	"regexp"
	"sort"
	"strings"
	"time"
	"unicode/utf8"

	"google.golang.org/protobuf/types/known/anypb"
)

// ensure the imports are used
var (
	_ = bytes.MinRead
	_ = errors.New("")
	_ = fmt.Print
	_ = utf8.UTFMax
	_ = (*regexp.Regexp)(nil)
	_ = (*strings.Reader)(nil)
	_ = net.IPv4len
	_ = time.Duration(0)
	_ = (*url.URL)(nil)
	_ = (*mail.Address)(nil)
	_ = anypb.Any{}
	_ = sort.Sort
)

// Validate checks the field values on ListGatewayHPAInfosResponse with the
// rules defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *ListGatewayHPAInfosResponse) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on ListGatewayHPAInfosResponse with the
// rules defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// ListGatewayHPAInfosResponseMultiError, or nil if none found.
func (m *ListGatewayHPAInfosResponse) ValidateAll() error {
	return m.validate(true)
}

func (m *ListGatewayHPAInfosResponse) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	for idx, item := range m.GetInfos() {
		_, _ = idx, item

		if all {
			switch v := interface{}(item).(type) {
			case interface{ ValidateAll() error }:
				if err := v.ValidateAll(); err != nil {
					errors = append(errors, ListGatewayHPAInfosResponseValidationError{
						field:  fmt.Sprintf("Infos[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			case interface{ Validate() error }:
				if err := v.Validate(); err != nil {
					errors = append(errors, ListGatewayHPAInfosResponseValidationError{
						field:  fmt.Sprintf("Infos[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			}
		} else if v, ok := interface{}(item).(interface{ Validate() error }); ok {
			if err := v.Validate(); err != nil {
				return ListGatewayHPAInfosResponseValidationError{
					field:  fmt.Sprintf("Infos[%v]", idx),
					reason: "embedded message failed validation",
					cause:  err,
				}
			}
		}

	}

	if len(errors) > 0 {
		return ListGatewayHPAInfosResponseMultiError(errors)
	}

	return nil
}

// ListGatewayHPAInfosResponseMultiError is an error wrapping multiple
// validation errors returned by ListGatewayHPAInfosResponse.ValidateAll() if
// the designated constraints aren't met.
type ListGatewayHPAInfosResponseMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m ListGatewayHPAInfosResponseMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m ListGatewayHPAInfosResponseMultiError) AllErrors() []error { return m }

// ListGatewayHPAInfosResponseValidationError is the validation error returned
// by ListGatewayHPAInfosResponse.Validate if the designated constraints
// aren't met.
type ListGatewayHPAInfosResponseValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e ListGatewayHPAInfosResponseValidationError) Field() string { return e.field }

// Reason function returns reason value.
func (e ListGatewayHPAInfosResponseValidationError) Reason() string { return e.reason }

// Cause function returns cause value.
func (e ListGatewayHPAInfosResponseValidationError) Cause() error { return e.cause }

// Key function returns key value.
func (e ListGatewayHPAInfosResponseValidationError) Key() bool { return e.key }

// ErrorName returns error name.
func (e ListGatewayHPAInfosResponseValidationError) ErrorName() string {
	return "ListGatewayHPAInfosResponseValidationError"
}

// Error satisfies the builtin error interface
func (e ListGatewayHPAInfosResponseValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sListGatewayHPAInfosResponse.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = ListGatewayHPAInfosResponseValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = ListGatewayHPAInfosResponseValidationError{}

// Validate checks the field values on RegionalGatewayHPAInfos with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *RegionalGatewayHPAInfos) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on RegionalGatewayHPAInfos with the
// rules defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// RegionalGatewayHPAInfosMultiError, or nil if none found.
func (m *RegionalGatewayHPAInfos) ValidateAll() error {
	return m.validate(true)
}

func (m *RegionalGatewayHPAInfos) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	// no validation rules for Provider

	// no validation rules for Region

	for idx, item := range m.GetK8SClusterGatewayHpaInfos() {
		_, _ = idx, item

		if all {
			switch v := interface{}(item).(type) {
			case interface{ ValidateAll() error }:
				if err := v.ValidateAll(); err != nil {
					errors = append(errors, RegionalGatewayHPAInfosValidationError{
						field:  fmt.Sprintf("K8SClusterGatewayHpaInfos[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			case interface{ Validate() error }:
				if err := v.Validate(); err != nil {
					errors = append(errors, RegionalGatewayHPAInfosValidationError{
						field:  fmt.Sprintf("K8SClusterGatewayHpaInfos[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			}
		} else if v, ok := interface{}(item).(interface{ Validate() error }); ok {
			if err := v.Validate(); err != nil {
				return RegionalGatewayHPAInfosValidationError{
					field:  fmt.Sprintf("K8SClusterGatewayHpaInfos[%v]", idx),
					reason: "embedded message failed validation",
					cause:  err,
				}
			}
		}

	}

	if len(errors) > 0 {
		return RegionalGatewayHPAInfosMultiError(errors)
	}

	return nil
}

// RegionalGatewayHPAInfosMultiError is an error wrapping multiple validation
// errors returned by RegionalGatewayHPAInfos.ValidateAll() if the designated
// constraints aren't met.
type RegionalGatewayHPAInfosMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m RegionalGatewayHPAInfosMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m RegionalGatewayHPAInfosMultiError) AllErrors() []error { return m }

// RegionalGatewayHPAInfosValidationError is the validation error returned by
// RegionalGatewayHPAInfos.Validate if the designated constraints aren't met.
type RegionalGatewayHPAInfosValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e RegionalGatewayHPAInfosValidationError) Field() string { return e.field }

// Reason function returns reason value.
func (e RegionalGatewayHPAInfosValidationError) Reason() string { return e.reason }

// Cause function returns cause value.
func (e RegionalGatewayHPAInfosValidationError) Cause() error { return e.cause }

// Key function returns key value.
func (e RegionalGatewayHPAInfosValidationError) Key() bool { return e.key }

// ErrorName returns error name.
func (e RegionalGatewayHPAInfosValidationError) ErrorName() string {
	return "RegionalGatewayHPAInfosValidationError"
}

// Error satisfies the builtin error interface
func (e RegionalGatewayHPAInfosValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sRegionalGatewayHPAInfos.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = RegionalGatewayHPAInfosValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = RegionalGatewayHPAInfosValidationError{}

// Validate checks the field values on UpdateGatewayHPAMinReplicasRequest with
// the rules defined in the proto definition for this message. If any rules
// are violated, the first error encountered is returned, or nil if there are
// no violations.
func (m *UpdateGatewayHPAMinReplicasRequest) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on UpdateGatewayHPAMinReplicasRequest
// with the rules defined in the proto definition for this message. If any
// rules are violated, the result is a list of violation errors wrapped in
// UpdateGatewayHPAMinReplicasRequestMultiError, or nil if none found.
func (m *UpdateGatewayHPAMinReplicasRequest) ValidateAll() error {
	return m.validate(true)
}

func (m *UpdateGatewayHPAMinReplicasRequest) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	if utf8.RuneCountInString(m.GetProvider()) < 1 {
		err := UpdateGatewayHPAMinReplicasRequestValidationError{
			field:  "Provider",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetRegion()) < 1 {
		err := UpdateGatewayHPAMinReplicasRequestValidationError{
			field:  "Region",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetK8SCluster()) < 1 {
		err := UpdateGatewayHPAMinReplicasRequestValidationError{
			field:  "K8SCluster",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetNamespace()) < 1 {
		err := UpdateGatewayHPAMinReplicasRequestValidationError{
			field:  "Namespace",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if val := m.GetMinReplicas(); val <= 0 || val > 7 {
		err := UpdateGatewayHPAMinReplicasRequestValidationError{
			field:  "MinReplicas",
			reason: "value must be inside range (0, 7]",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if len(errors) > 0 {
		return UpdateGatewayHPAMinReplicasRequestMultiError(errors)
	}

	return nil
}

// UpdateGatewayHPAMinReplicasRequestMultiError is an error wrapping multiple
// validation errors returned by
// UpdateGatewayHPAMinReplicasRequest.ValidateAll() if the designated
// constraints aren't met.
type UpdateGatewayHPAMinReplicasRequestMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m UpdateGatewayHPAMinReplicasRequestMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m UpdateGatewayHPAMinReplicasRequestMultiError) AllErrors() []error { return m }

// UpdateGatewayHPAMinReplicasRequestValidationError is the validation error
// returned by UpdateGatewayHPAMinReplicasRequest.Validate if the designated
// constraints aren't met.
type UpdateGatewayHPAMinReplicasRequestValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e UpdateGatewayHPAMinReplicasRequestValidationError) Field() string { return e.field }

// Reason function returns reason value.
func (e UpdateGatewayHPAMinReplicasRequestValidationError) Reason() string { return e.reason }

// Cause function returns cause value.
func (e UpdateGatewayHPAMinReplicasRequestValidationError) Cause() error { return e.cause }

// Key function returns key value.
func (e UpdateGatewayHPAMinReplicasRequestValidationError) Key() bool { return e.key }

// ErrorName returns error name.
func (e UpdateGatewayHPAMinReplicasRequestValidationError) ErrorName() string {
	return "UpdateGatewayHPAMinReplicasRequestValidationError"
}

// Error satisfies the builtin error interface
func (e UpdateGatewayHPAMinReplicasRequestValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sUpdateGatewayHPAMinReplicasRequest.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = UpdateGatewayHPAMinReplicasRequestValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = UpdateGatewayHPAMinReplicasRequestValidationError{}

// Validate checks the field values on ListTiDBAutoscalingInfosResponse with
// the rules defined in the proto definition for this message. If any rules
// are violated, the first error encountered is returned, or nil if there are
// no violations.
func (m *ListTiDBAutoscalingInfosResponse) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on ListTiDBAutoscalingInfosResponse with
// the rules defined in the proto definition for this message. If any rules
// are violated, the result is a list of violation errors wrapped in
// ListTiDBAutoscalingInfosResponseMultiError, or nil if none found.
func (m *ListTiDBAutoscalingInfosResponse) ValidateAll() error {
	return m.validate(true)
}

func (m *ListTiDBAutoscalingInfosResponse) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	for idx, item := range m.GetInfos() {
		_, _ = idx, item

		if all {
			switch v := interface{}(item).(type) {
			case interface{ ValidateAll() error }:
				if err := v.ValidateAll(); err != nil {
					errors = append(errors, ListTiDBAutoscalingInfosResponseValidationError{
						field:  fmt.Sprintf("Infos[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			case interface{ Validate() error }:
				if err := v.Validate(); err != nil {
					errors = append(errors, ListTiDBAutoscalingInfosResponseValidationError{
						field:  fmt.Sprintf("Infos[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			}
		} else if v, ok := interface{}(item).(interface{ Validate() error }); ok {
			if err := v.Validate(); err != nil {
				return ListTiDBAutoscalingInfosResponseValidationError{
					field:  fmt.Sprintf("Infos[%v]", idx),
					reason: "embedded message failed validation",
					cause:  err,
				}
			}
		}

	}

	if len(errors) > 0 {
		return ListTiDBAutoscalingInfosResponseMultiError(errors)
	}

	return nil
}

// ListTiDBAutoscalingInfosResponseMultiError is an error wrapping multiple
// validation errors returned by
// ListTiDBAutoscalingInfosResponse.ValidateAll() if the designated
// constraints aren't met.
type ListTiDBAutoscalingInfosResponseMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m ListTiDBAutoscalingInfosResponseMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m ListTiDBAutoscalingInfosResponseMultiError) AllErrors() []error { return m }

// ListTiDBAutoscalingInfosResponseValidationError is the validation error
// returned by ListTiDBAutoscalingInfosResponse.Validate if the designated
// constraints aren't met.
type ListTiDBAutoscalingInfosResponseValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e ListTiDBAutoscalingInfosResponseValidationError) Field() string { return e.field }

// Reason function returns reason value.
func (e ListTiDBAutoscalingInfosResponseValidationError) Reason() string { return e.reason }

// Cause function returns cause value.
func (e ListTiDBAutoscalingInfosResponseValidationError) Cause() error { return e.cause }

// Key function returns key value.
func (e ListTiDBAutoscalingInfosResponseValidationError) Key() bool { return e.key }

// ErrorName returns error name.
func (e ListTiDBAutoscalingInfosResponseValidationError) ErrorName() string {
	return "ListTiDBAutoscalingInfosResponseValidationError"
}

// Error satisfies the builtin error interface
func (e ListTiDBAutoscalingInfosResponseValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sListTiDBAutoscalingInfosResponse.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = ListTiDBAutoscalingInfosResponseValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = ListTiDBAutoscalingInfosResponseValidationError{}

// Validate checks the field values on RegionalTiDBAutoscalingInfos with the
// rules defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *RegionalTiDBAutoscalingInfos) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on RegionalTiDBAutoscalingInfos with the
// rules defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// RegionalTiDBAutoscalingInfosMultiError, or nil if none found.
func (m *RegionalTiDBAutoscalingInfos) ValidateAll() error {
	return m.validate(true)
}

func (m *RegionalTiDBAutoscalingInfos) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	// no validation rules for Provider

	// no validation rules for Region

	for idx, item := range m.GetK8SClusterTidbAutoscalingInfos() {
		_, _ = idx, item

		if all {
			switch v := interface{}(item).(type) {
			case interface{ ValidateAll() error }:
				if err := v.ValidateAll(); err != nil {
					errors = append(errors, RegionalTiDBAutoscalingInfosValidationError{
						field:  fmt.Sprintf("K8SClusterTidbAutoscalingInfos[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			case interface{ Validate() error }:
				if err := v.Validate(); err != nil {
					errors = append(errors, RegionalTiDBAutoscalingInfosValidationError{
						field:  fmt.Sprintf("K8SClusterTidbAutoscalingInfos[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			}
		} else if v, ok := interface{}(item).(interface{ Validate() error }); ok {
			if err := v.Validate(); err != nil {
				return RegionalTiDBAutoscalingInfosValidationError{
					field:  fmt.Sprintf("K8SClusterTidbAutoscalingInfos[%v]", idx),
					reason: "embedded message failed validation",
					cause:  err,
				}
			}
		}

	}

	if len(errors) > 0 {
		return RegionalTiDBAutoscalingInfosMultiError(errors)
	}

	return nil
}

// RegionalTiDBAutoscalingInfosMultiError is an error wrapping multiple
// validation errors returned by RegionalTiDBAutoscalingInfos.ValidateAll() if
// the designated constraints aren't met.
type RegionalTiDBAutoscalingInfosMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m RegionalTiDBAutoscalingInfosMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m RegionalTiDBAutoscalingInfosMultiError) AllErrors() []error { return m }

// RegionalTiDBAutoscalingInfosValidationError is the validation error returned
// by RegionalTiDBAutoscalingInfos.Validate if the designated constraints
// aren't met.
type RegionalTiDBAutoscalingInfosValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e RegionalTiDBAutoscalingInfosValidationError) Field() string { return e.field }

// Reason function returns reason value.
func (e RegionalTiDBAutoscalingInfosValidationError) Reason() string { return e.reason }

// Cause function returns cause value.
func (e RegionalTiDBAutoscalingInfosValidationError) Cause() error { return e.cause }

// Key function returns key value.
func (e RegionalTiDBAutoscalingInfosValidationError) Key() bool { return e.key }

// ErrorName returns error name.
func (e RegionalTiDBAutoscalingInfosValidationError) ErrorName() string {
	return "RegionalTiDBAutoscalingInfosValidationError"
}

// Error satisfies the builtin error interface
func (e RegionalTiDBAutoscalingInfosValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sRegionalTiDBAutoscalingInfos.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = RegionalTiDBAutoscalingInfosValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = RegionalTiDBAutoscalingInfosValidationError{}

// Validate checks the field values on UpdateTiDBAutoscalingThresholdRequest
// with the rules defined in the proto definition for this message. If any
// rules are violated, the first error encountered is returned, or nil if
// there are no violations.
func (m *UpdateTiDBAutoscalingThresholdRequest) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on UpdateTiDBAutoscalingThresholdRequest
// with the rules defined in the proto definition for this message. If any
// rules are violated, the result is a list of violation errors wrapped in
// UpdateTiDBAutoscalingThresholdRequestMultiError, or nil if none found.
func (m *UpdateTiDBAutoscalingThresholdRequest) ValidateAll() error {
	return m.validate(true)
}

func (m *UpdateTiDBAutoscalingThresholdRequest) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	if utf8.RuneCountInString(m.GetProvider()) < 1 {
		err := UpdateTiDBAutoscalingThresholdRequestValidationError{
			field:  "Provider",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetRegion()) < 1 {
		err := UpdateTiDBAutoscalingThresholdRequestValidationError{
			field:  "Region",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetK8SCluster()) < 1 {
		err := UpdateTiDBAutoscalingThresholdRequestValidationError{
			field:  "K8SCluster",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetNamespace()) < 1 {
		err := UpdateTiDBAutoscalingThresholdRequestValidationError{
			field:  "Namespace",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetMetric()) < 1 {
		err := UpdateTiDBAutoscalingThresholdRequestValidationError{
			field:  "Metric",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if val := m.GetAvgValue(); val < 0 || val > 1 {
		err := UpdateTiDBAutoscalingThresholdRequestValidationError{
			field:  "AvgValue",
			reason: "value must be inside range [0, 1]",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if len(errors) > 0 {
		return UpdateTiDBAutoscalingThresholdRequestMultiError(errors)
	}

	return nil
}

// UpdateTiDBAutoscalingThresholdRequestMultiError is an error wrapping
// multiple validation errors returned by
// UpdateTiDBAutoscalingThresholdRequest.ValidateAll() if the designated
// constraints aren't met.
type UpdateTiDBAutoscalingThresholdRequestMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m UpdateTiDBAutoscalingThresholdRequestMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m UpdateTiDBAutoscalingThresholdRequestMultiError) AllErrors() []error { return m }

// UpdateTiDBAutoscalingThresholdRequestValidationError is the validation error
// returned by UpdateTiDBAutoscalingThresholdRequest.Validate if the
// designated constraints aren't met.
type UpdateTiDBAutoscalingThresholdRequestValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e UpdateTiDBAutoscalingThresholdRequestValidationError) Field() string { return e.field }

// Reason function returns reason value.
func (e UpdateTiDBAutoscalingThresholdRequestValidationError) Reason() string { return e.reason }

// Cause function returns cause value.
func (e UpdateTiDBAutoscalingThresholdRequestValidationError) Cause() error { return e.cause }

// Key function returns key value.
func (e UpdateTiDBAutoscalingThresholdRequestValidationError) Key() bool { return e.key }

// ErrorName returns error name.
func (e UpdateTiDBAutoscalingThresholdRequestValidationError) ErrorName() string {
	return "UpdateTiDBAutoscalingThresholdRequestValidationError"
}

// Error satisfies the builtin error interface
func (e UpdateTiDBAutoscalingThresholdRequestValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sUpdateTiDBAutoscalingThresholdRequest.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = UpdateTiDBAutoscalingThresholdRequestValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = UpdateTiDBAutoscalingThresholdRequestValidationError{}

// Validate checks the field values on OpsExecuteCommandRequest with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *OpsExecuteCommandRequest) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on OpsExecuteCommandRequest with the
// rules defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// OpsExecuteCommandRequestMultiError, or nil if none found.
func (m *OpsExecuteCommandRequest) ValidateAll() error {
	return m.validate(true)
}

func (m *OpsExecuteCommandRequest) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	if utf8.RuneCountInString(m.GetProvider()) < 1 {
		err := OpsExecuteCommandRequestValidationError{
			field:  "Provider",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetRegion()) < 1 {
		err := OpsExecuteCommandRequestValidationError{
			field:  "Region",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetK8SCluster()) < 1 {
		err := OpsExecuteCommandRequestValidationError{
			field:  "K8SCluster",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetCommand()) < 1 {
		err := OpsExecuteCommandRequestValidationError{
			field:  "Command",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if len(errors) > 0 {
		return OpsExecuteCommandRequestMultiError(errors)
	}

	return nil
}

// OpsExecuteCommandRequestMultiError is an error wrapping multiple validation
// errors returned by OpsExecuteCommandRequest.ValidateAll() if the designated
// constraints aren't met.
type OpsExecuteCommandRequestMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m OpsExecuteCommandRequestMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m OpsExecuteCommandRequestMultiError) AllErrors() []error { return m }

// OpsExecuteCommandRequestValidationError is the validation error returned by
// OpsExecuteCommandRequest.Validate if the designated constraints aren't met.
type OpsExecuteCommandRequestValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e OpsExecuteCommandRequestValidationError) Field() string { return e.field }

// Reason function returns reason value.
func (e OpsExecuteCommandRequestValidationError) Reason() string { return e.reason }

// Cause function returns cause value.
func (e OpsExecuteCommandRequestValidationError) Cause() error { return e.cause }

// Key function returns key value.
func (e OpsExecuteCommandRequestValidationError) Key() bool { return e.key }

// ErrorName returns error name.
func (e OpsExecuteCommandRequestValidationError) ErrorName() string {
	return "OpsExecuteCommandRequestValidationError"
}

// Error satisfies the builtin error interface
func (e OpsExecuteCommandRequestValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sOpsExecuteCommandRequest.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = OpsExecuteCommandRequestValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = OpsExecuteCommandRequestValidationError{}

// Validate checks the field values on OpsExecuteCommandResponse with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *OpsExecuteCommandResponse) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on OpsExecuteCommandResponse with the
// rules defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// OpsExecuteCommandResponseMultiError, or nil if none found.
func (m *OpsExecuteCommandResponse) ValidateAll() error {
	return m.validate(true)
}

func (m *OpsExecuteCommandResponse) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	// no validation rules for Stdout

	// no validation rules for Stderr

	// no validation rules for ExitCode

	if len(errors) > 0 {
		return OpsExecuteCommandResponseMultiError(errors)
	}

	return nil
}

// OpsExecuteCommandResponseMultiError is an error wrapping multiple validation
// errors returned by OpsExecuteCommandResponse.ValidateAll() if the
// designated constraints aren't met.
type OpsExecuteCommandResponseMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m OpsExecuteCommandResponseMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m OpsExecuteCommandResponseMultiError) AllErrors() []error { return m }

// OpsExecuteCommandResponseValidationError is the validation error returned by
// OpsExecuteCommandResponse.Validate if the designated constraints aren't met.
type OpsExecuteCommandResponseValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e OpsExecuteCommandResponseValidationError) Field() string { return e.field }

// Reason function returns reason value.
func (e OpsExecuteCommandResponseValidationError) Reason() string { return e.reason }

// Cause function returns cause value.
func (e OpsExecuteCommandResponseValidationError) Cause() error { return e.cause }

// Key function returns key value.
func (e OpsExecuteCommandResponseValidationError) Key() bool { return e.key }

// ErrorName returns error name.
func (e OpsExecuteCommandResponseValidationError) ErrorName() string {
	return "OpsExecuteCommandResponseValidationError"
}

// Error satisfies the builtin error interface
func (e OpsExecuteCommandResponseValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sOpsExecuteCommandResponse.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = OpsExecuteCommandResponseValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = OpsExecuteCommandResponseValidationError{}

// Validate checks the field values on OpsRestartByNamespaceRequest with the
// rules defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *OpsRestartByNamespaceRequest) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on OpsRestartByNamespaceRequest with the
// rules defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// OpsRestartByNamespaceRequestMultiError, or nil if none found.
func (m *OpsRestartByNamespaceRequest) ValidateAll() error {
	return m.validate(true)
}

func (m *OpsRestartByNamespaceRequest) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	if utf8.RuneCountInString(m.GetProvider()) < 1 {
		err := OpsRestartByNamespaceRequestValidationError{
			field:  "Provider",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetRegion()) < 1 {
		err := OpsRestartByNamespaceRequestValidationError{
			field:  "Region",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetK8SCluster()) < 1 {
		err := OpsRestartByNamespaceRequestValidationError{
			field:  "K8SCluster",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetNamespace()) < 1 {
		err := OpsRestartByNamespaceRequestValidationError{
			field:  "Namespace",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	// no validation rules for Force

	if len(errors) > 0 {
		return OpsRestartByNamespaceRequestMultiError(errors)
	}

	return nil
}

// OpsRestartByNamespaceRequestMultiError is an error wrapping multiple
// validation errors returned by OpsRestartByNamespaceRequest.ValidateAll() if
// the designated constraints aren't met.
type OpsRestartByNamespaceRequestMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m OpsRestartByNamespaceRequestMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m OpsRestartByNamespaceRequestMultiError) AllErrors() []error { return m }

// OpsRestartByNamespaceRequestValidationError is the validation error returned
// by OpsRestartByNamespaceRequest.Validate if the designated constraints
// aren't met.
type OpsRestartByNamespaceRequestValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e OpsRestartByNamespaceRequestValidationError) Field() string { return e.field }

// Reason function returns reason value.
func (e OpsRestartByNamespaceRequestValidationError) Reason() string { return e.reason }

// Cause function returns cause value.
func (e OpsRestartByNamespaceRequestValidationError) Cause() error { return e.cause }

// Key function returns key value.
func (e OpsRestartByNamespaceRequestValidationError) Key() bool { return e.key }

// ErrorName returns error name.
func (e OpsRestartByNamespaceRequestValidationError) ErrorName() string {
	return "OpsRestartByNamespaceRequestValidationError"
}

// Error satisfies the builtin error interface
func (e OpsRestartByNamespaceRequestValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sOpsRestartByNamespaceRequest.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = OpsRestartByNamespaceRequestValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = OpsRestartByNamespaceRequestValidationError{}

// Validate checks the field values on OpsRestartByNamespaceResponse with the
// rules defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *OpsRestartByNamespaceResponse) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on OpsRestartByNamespaceResponse with
// the rules defined in the proto definition for this message. If any rules
// are violated, the result is a list of violation errors wrapped in
// OpsRestartByNamespaceResponseMultiError, or nil if none found.
func (m *OpsRestartByNamespaceResponse) ValidateAll() error {
	return m.validate(true)
}

func (m *OpsRestartByNamespaceResponse) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	// no validation rules for Message

	if len(errors) > 0 {
		return OpsRestartByNamespaceResponseMultiError(errors)
	}

	return nil
}

// OpsRestartByNamespaceResponseMultiError is an error wrapping multiple
// validation errors returned by OpsRestartByNamespaceResponse.ValidateAll()
// if the designated constraints aren't met.
type OpsRestartByNamespaceResponseMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m OpsRestartByNamespaceResponseMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m OpsRestartByNamespaceResponseMultiError) AllErrors() []error { return m }

// OpsRestartByNamespaceResponseValidationError is the validation error
// returned by OpsRestartByNamespaceResponse.Validate if the designated
// constraints aren't met.
type OpsRestartByNamespaceResponseValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e OpsRestartByNamespaceResponseValidationError) Field() string { return e.field }

// Reason function returns reason value.
func (e OpsRestartByNamespaceResponseValidationError) Reason() string { return e.reason }

// Cause function returns cause value.
func (e OpsRestartByNamespaceResponseValidationError) Cause() error { return e.cause }

// Key function returns key value.
func (e OpsRestartByNamespaceResponseValidationError) Key() bool { return e.key }

// ErrorName returns error name.
func (e OpsRestartByNamespaceResponseValidationError) ErrorName() string {
	return "OpsRestartByNamespaceResponseValidationError"
}

// Error satisfies the builtin error interface
func (e OpsRestartByNamespaceResponseValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sOpsRestartByNamespaceResponse.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = OpsRestartByNamespaceResponseValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = OpsRestartByNamespaceResponseValidationError{}

// Validate checks the field values on OpsRestartByClusterRequest with the
// rules defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *OpsRestartByClusterRequest) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on OpsRestartByClusterRequest with the
// rules defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// OpsRestartByClusterRequestMultiError, or nil if none found.
func (m *OpsRestartByClusterRequest) ValidateAll() error {
	return m.validate(true)
}

func (m *OpsRestartByClusterRequest) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	if utf8.RuneCountInString(m.GetProvider()) < 1 {
		err := OpsRestartByClusterRequestValidationError{
			field:  "Provider",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetRegion()) < 1 {
		err := OpsRestartByClusterRequestValidationError{
			field:  "Region",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetK8SCluster()) < 1 {
		err := OpsRestartByClusterRequestValidationError{
			field:  "K8SCluster",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	if utf8.RuneCountInString(m.GetKeyspaceToken()) < 1 {
		err := OpsRestartByClusterRequestValidationError{
			field:  "KeyspaceToken",
			reason: "value length must be at least 1 runes",
		}
		if !all {
			return err
		}
		errors = append(errors, err)
	}

	// no validation rules for Force

	if len(errors) > 0 {
		return OpsRestartByClusterRequestMultiError(errors)
	}

	return nil
}

// OpsRestartByClusterRequestMultiError is an error wrapping multiple
// validation errors returned by OpsRestartByClusterRequest.ValidateAll() if
// the designated constraints aren't met.
type OpsRestartByClusterRequestMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m OpsRestartByClusterRequestMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m OpsRestartByClusterRequestMultiError) AllErrors() []error { return m }

// OpsRestartByClusterRequestValidationError is the validation error returned
// by OpsRestartByClusterRequest.Validate if the designated constraints aren't met.
type OpsRestartByClusterRequestValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e OpsRestartByClusterRequestValidationError) Field() string { return e.field }

// Reason function returns reason value.
func (e OpsRestartByClusterRequestValidationError) Reason() string { return e.reason }

// Cause function returns cause value.
func (e OpsRestartByClusterRequestValidationError) Cause() error { return e.cause }

// Key function returns key value.
func (e OpsRestartByClusterRequestValidationError) Key() bool { return e.key }

// ErrorName returns error name.
func (e OpsRestartByClusterRequestValidationError) ErrorName() string {
	return "OpsRestartByClusterRequestValidationError"
}

// Error satisfies the builtin error interface
func (e OpsRestartByClusterRequestValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sOpsRestartByClusterRequest.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = OpsRestartByClusterRequestValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = OpsRestartByClusterRequestValidationError{}

// Validate checks the field values on OpsRestartByClusterResponse with the
// rules defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *OpsRestartByClusterResponse) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on OpsRestartByClusterResponse with the
// rules defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// OpsRestartByClusterResponseMultiError, or nil if none found.
func (m *OpsRestartByClusterResponse) ValidateAll() error {
	return m.validate(true)
}

func (m *OpsRestartByClusterResponse) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	// no validation rules for Message

	if len(errors) > 0 {
		return OpsRestartByClusterResponseMultiError(errors)
	}

	return nil
}

// OpsRestartByClusterResponseMultiError is an error wrapping multiple
// validation errors returned by OpsRestartByClusterResponse.ValidateAll() if
// the designated constraints aren't met.
type OpsRestartByClusterResponseMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m OpsRestartByClusterResponseMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m OpsRestartByClusterResponseMultiError) AllErrors() []error { return m }

// OpsRestartByClusterResponseValidationError is the validation error returned
// by OpsRestartByClusterResponse.Validate if the designated constraints
// aren't met.
type OpsRestartByClusterResponseValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e OpsRestartByClusterResponseValidationError) Field() string { return e.field }

// Reason function returns reason value.
func (e OpsRestartByClusterResponseValidationError) Reason() string { return e.reason }

// Cause function returns cause value.
func (e OpsRestartByClusterResponseValidationError) Cause() error { return e.cause }

// Key function returns key value.
func (e OpsRestartByClusterResponseValidationError) Key() bool { return e.key }

// ErrorName returns error name.
func (e OpsRestartByClusterResponseValidationError) ErrorName() string {
	return "OpsRestartByClusterResponseValidationError"
}

// Error satisfies the builtin error interface
func (e OpsRestartByClusterResponseValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sOpsRestartByClusterResponse.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = OpsRestartByClusterResponseValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = OpsRestartByClusterResponseValidationError{}

// Validate checks the field values on
// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos with the rules defined in
// the proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on
// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos with the rules defined in
// the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in
// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosMultiError, or nil if none found.
func (m *RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos) ValidateAll() error {
	return m.validate(true)
}

func (m *RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	// no validation rules for K8SCluster

	for idx, item := range m.GetGatewayHpaInfos() {
		_, _ = idx, item

		if all {
			switch v := interface{}(item).(type) {
			case interface{ ValidateAll() error }:
				if err := v.ValidateAll(); err != nil {
					errors = append(errors, RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError{
						field:  fmt.Sprintf("GatewayHpaInfos[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			case interface{ Validate() error }:
				if err := v.Validate(); err != nil {
					errors = append(errors, RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError{
						field:  fmt.Sprintf("GatewayHpaInfos[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			}
		} else if v, ok := interface{}(item).(interface{ Validate() error }); ok {
			if err := v.Validate(); err != nil {
				return RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError{
					field:  fmt.Sprintf("GatewayHpaInfos[%v]", idx),
					reason: "embedded message failed validation",
					cause:  err,
				}
			}
		}

	}

	if len(errors) > 0 {
		return RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosMultiError(errors)
	}

	return nil
}

// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosMultiError is an error
// wrapping multiple validation errors returned by
// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos.ValidateAll() if the
// designated constraints aren't met.
type RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosMultiError) AllErrors() []error { return m }

// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError is the
// validation error returned by
// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos.Validate if the
// designated constraints aren't met.
type RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError) Field() string {
	return e.field
}

// Reason function returns reason value.
func (e RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError) Reason() string {
	return e.reason
}

// Cause function returns cause value.
func (e RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError) Cause() error {
	return e.cause
}

// Key function returns key value.
func (e RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError) Key() bool { return e.key }

// ErrorName returns error name.
func (e RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError) ErrorName() string {
	return "RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError"
}

// Error satisfies the builtin error interface
func (e RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sRegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfosValidationError{}

// Validate checks the field values on
// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfo with the
// rules defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfo) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on
// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfo with the
// rules defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoMultiError,
// or nil if none found.
func (m *RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfo) ValidateAll() error {
	return m.validate(true)
}

func (m *RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfo) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	// no validation rules for Namespace

	// no validation rules for Name

	// no validation rules for MinReplicas

	// no validation rules for MaxReplicas

	// no validation rules for DesiredReplicas

	if len(errors) > 0 {
		return RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoMultiError(errors)
	}

	return nil
}

// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoMultiError
// is an error wrapping multiple validation errors returned by
// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfo.ValidateAll()
// if the designated constraints aren't met.
type RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoMultiError) AllErrors() []error {
	return m
}

// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoValidationError
// is the validation error returned by
// RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfo.Validate
// if the designated constraints aren't met.
type RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoValidationError) Field() string {
	return e.field
}

// Reason function returns reason value.
func (e RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoValidationError) Reason() string {
	return e.reason
}

// Cause function returns cause value.
func (e RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoValidationError) Cause() error {
	return e.cause
}

// Key function returns key value.
func (e RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoValidationError) Key() bool {
	return e.key
}

// ErrorName returns error name.
func (e RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoValidationError) ErrorName() string {
	return "RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoValidationError"
}

// Error satisfies the builtin error interface
func (e RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sRegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfo.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = RegionalGatewayHPAInfos_K8SClusterGatewayHPAInfos_GatewayHPAInfoValidationError{}

// Validate checks the field values on
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosMultiError, or
// nil if none found.
func (m *RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos) ValidateAll() error {
	return m.validate(true)
}

func (m *RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	// no validation rules for K8SCluster

	for idx, item := range m.GetTidbAutoscalingInfos() {
		_, _ = idx, item

		if all {
			switch v := interface{}(item).(type) {
			case interface{ ValidateAll() error }:
				if err := v.ValidateAll(); err != nil {
					errors = append(errors, RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError{
						field:  fmt.Sprintf("TidbAutoscalingInfos[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			case interface{ Validate() error }:
				if err := v.Validate(); err != nil {
					errors = append(errors, RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError{
						field:  fmt.Sprintf("TidbAutoscalingInfos[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			}
		} else if v, ok := interface{}(item).(interface{ Validate() error }); ok {
			if err := v.Validate(); err != nil {
				return RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError{
					field:  fmt.Sprintf("TidbAutoscalingInfos[%v]", idx),
					reason: "embedded message failed validation",
					cause:  err,
				}
			}
		}

	}

	if len(errors) > 0 {
		return RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosMultiError(errors)
	}

	return nil
}

// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosMultiError is an
// error wrapping multiple validation errors returned by
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos.ValidateAll()
// if the designated constraints aren't met.
type RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosMultiError) AllErrors() []error {
	return m
}

// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError
// is the validation error returned by
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos.Validate if the
// designated constraints aren't met.
type RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError) Field() string {
	return e.field
}

// Reason function returns reason value.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError) Reason() string {
	return e.reason
}

// Cause function returns cause value.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError) Cause() error {
	return e.cause
}

// Key function returns key value.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError) Key() bool {
	return e.key
}

// ErrorName returns error name.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError) ErrorName() string {
	return "RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError"
}

// Error satisfies the builtin error interface
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sRegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfosValidationError{}

// Validate checks the field values on
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo
// with the rules defined in the proto definition for this message. If any
// rules are violated, the first error encountered is returned, or nil if
// there are no violations.
func (m *RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo
// with the rules defined in the proto definition for this message. If any
// rules are violated, the result is a list of violation errors wrapped in
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoMultiError,
// or nil if none found.
func (m *RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo) ValidateAll() error {
	return m.validate(true)
}

func (m *RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	// no validation rules for Namespace

	// no validation rules for Name

	for idx, item := range m.GetMetrics() {
		_, _ = idx, item

		if all {
			switch v := interface{}(item).(type) {
			case interface{ ValidateAll() error }:
				if err := v.ValidateAll(); err != nil {
					errors = append(errors, RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError{
						field:  fmt.Sprintf("Metrics[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			case interface{ Validate() error }:
				if err := v.Validate(); err != nil {
					errors = append(errors, RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError{
						field:  fmt.Sprintf("Metrics[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			}
		} else if v, ok := interface{}(item).(interface{ Validate() error }); ok {
			if err := v.Validate(); err != nil {
				return RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError{
					field:  fmt.Sprintf("Metrics[%v]", idx),
					reason: "embedded message failed validation",
					cause:  err,
				}
			}
		}

	}

	if len(errors) > 0 {
		return RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoMultiError(errors)
	}

	return nil
}

// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoMultiError
// is an error wrapping multiple validation errors returned by
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo.ValidateAll()
// if the designated constraints aren't met.
type RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoMultiError) AllErrors() []error {
	return m
}

// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError
// is the validation error returned by
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo.Validate
// if the designated constraints aren't met.
type RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError) Field() string {
	return e.field
}

// Reason function returns reason value.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError) Reason() string {
	return e.reason
}

// Cause function returns cause value.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError) Cause() error {
	return e.cause
}

// Key function returns key value.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError) Key() bool {
	return e.key
}

// ErrorName returns error name.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError) ErrorName() string {
	return "RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError"
}

// Error satisfies the builtin error interface
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sRegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfoValidationError{}

// Validate checks the field values on
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_Metrics
// with the rules defined in the proto definition for this message. If any
// rules are violated, the first error encountered is returned, or nil if
// there are no violations.
func (m *RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_Metrics) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_Metrics
// with the rules defined in the proto definition for this message. If any
// rules are violated, the result is a list of violation errors wrapped in
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsMultiError,
// or nil if none found.
func (m *RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_Metrics) ValidateAll() error {
	return m.validate(true)
}

func (m *RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_Metrics) validate(all bool) error {
	if m == nil {
		return nil
	}

	var errors []error

	// no validation rules for Name

	// no validation rules for PodLabel

	// no validation rules for PromSql

	// no validation rules for ScaleFlapping

	// no validation rules for AvgValue

	if len(errors) > 0 {
		return RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsMultiError(errors)
	}

	return nil
}

// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsMultiError
// is an error wrapping multiple validation errors returned by
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_Metrics.ValidateAll()
// if the designated constraints aren't met.
type RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsMultiError []error

// Error returns a concatenation of all the error messages it wraps.
func (m RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsMultiError) Error() string {
	var msgs []string
	for _, err := range m {
		msgs = append(msgs, err.Error())
	}
	return strings.Join(msgs, "; ")
}

// AllErrors returns a list of validation violation errors.
func (m RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsMultiError) AllErrors() []error {
	return m
}

// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsValidationError
// is the validation error returned by
// RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_Metrics.Validate
// if the designated constraints aren't met.
type RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsValidationError struct {
	field  string
	reason string
	cause  error
	key    bool
}

// Field function returns field value.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsValidationError) Field() string {
	return e.field
}

// Reason function returns reason value.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsValidationError) Reason() string {
	return e.reason
}

// Cause function returns cause value.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsValidationError) Cause() error {
	return e.cause
}

// Key function returns key value.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsValidationError) Key() bool {
	return e.key
}

// ErrorName returns error name.
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsValidationError) ErrorName() string {
	return "RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsValidationError"
}

// Error satisfies the builtin error interface
func (e RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsValidationError) Error() string {
	cause := ""
	if e.cause != nil {
		cause = fmt.Sprintf(" | caused by: %v", e.cause)
	}

	key := ""
	if e.key {
		key = "key for "
	}

	return fmt.Sprintf(
		"invalid %sRegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_Metrics.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsValidationError{}

var _ interface {
	Field() string
	Reason() string
	Key() bool
	Cause() error
	ErrorName() string
} = RegionalTiDBAutoscalingInfos_K8SClusterTiDBAutoscalingInfos_TiDBAutoscalingInfo_MetricsValidationError{}
