// Code generated by protoc-gen-validate. DO NOT EDIT.
// source: pb/fiee/cast.proto

package cast

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 MediaUserListReq 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 *MediaUserListReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on MediaUserListReq 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
// MediaUserListReqMultiError, or nil if none found.
func (m *MediaUserListReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for ArtistVal

	// no validation rules for ManagerVal

	// no validation rules for PlatformUserName

	// no validation rules for PlatformID

	// no validation rules for Page

	// no validation rules for PageSize

	// no validation rules for ArtistUuid

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m MediaUserListReqMultiError) 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 MediaUserListReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e MediaUserListReqValidationError) 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 %sMediaUserListReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = MediaUserListReqValidationError{}

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

// Validate checks the field values on MediaUserInfo 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 *MediaUserInfo) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on MediaUserInfo 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 MediaUserInfoMultiError, or
// nil if none found.
func (m *MediaUserInfo) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for PlatformUserName

	// no validation rules for PlatformID

	// no validation rules for ArtistName

	// no validation rules for ArtistPhone

	// no validation rules for ArtistUuid

	// no validation rules for ManagerUserName

	// no validation rules for ManagerUuid

	// no validation rules for MediaAccountUuid

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m MediaUserInfoMultiError) 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 MediaUserInfoMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e MediaUserInfoValidationError) 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 %sMediaUserInfo.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = MediaUserInfoValidationError{}

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

// Validate checks the field values on MediaUserListResp 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 *MediaUserListResp) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on MediaUserListResp 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
// MediaUserListRespMultiError, or nil if none found.
func (m *MediaUserListResp) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

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

		if all {
			switch v := interface{}(item).(type) {
			case interface{ ValidateAll() error }:
				if err := v.ValidateAll(); err != nil {
					errors = append(errors, MediaUserListRespValidationError{
						field:  fmt.Sprintf("Data[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			case interface{ Validate() error }:
				if err := v.Validate(); err != nil {
					errors = append(errors, MediaUserListRespValidationError{
						field:  fmt.Sprintf("Data[%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 MediaUserListRespValidationError{
					field:  fmt.Sprintf("Data[%v]", idx),
					reason: "embedded message failed validation",
					cause:  err,
				}
			}
		}

	}

	// no validation rules for Count

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m MediaUserListRespMultiError) 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 MediaUserListRespMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e MediaUserListRespValidationError) 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 %sMediaUserListResp.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = MediaUserListRespValidationError{}

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

// Validate checks the field values on UpdateMediaAccountReq 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 *UpdateMediaAccountReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on UpdateMediaAccountReq 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
// UpdateMediaAccountReqMultiError, or nil if none found.
func (m *UpdateMediaAccountReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for PlatformID

	// no validation rules for PlatformUserName

	// no validation rules for PlatformUserID

	// no validation rules for ArtistUuid

	// no validation rules for ArtistName

	// no validation rules for ArtistPhone

	// no validation rules for MediaAccountUuid

	// no validation rules for ManagerUuid

	// no validation rules for ManagerUserName

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m UpdateMediaAccountReqMultiError) 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 UpdateMediaAccountReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e UpdateMediaAccountReqValidationError) 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 %sUpdateMediaAccountReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = UpdateMediaAccountReqValidationError{}

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

// Validate checks the field values on UpdateMediaAccountResp 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 *UpdateMediaAccountResp) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on UpdateMediaAccountResp 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
// UpdateMediaAccountRespMultiError, or nil if none found.
func (m *UpdateMediaAccountResp) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for MediaAccountUuid

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m UpdateMediaAccountRespMultiError) 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 UpdateMediaAccountRespMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e UpdateMediaAccountRespValidationError) 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 %sUpdateMediaAccountResp.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = UpdateMediaAccountRespValidationError{}

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

// Validate checks the field values on UnbindManagerReq 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 *UnbindManagerReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on UnbindManagerReq 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
// UnbindManagerReqMultiError, or nil if none found.
func (m *UnbindManagerReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for MediaAccountUuid

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m UnbindManagerReqMultiError) 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 UnbindManagerReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e UnbindManagerReqValidationError) 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 %sUnbindManagerReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = UnbindManagerReqValidationError{}

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

// Validate checks the field values on BindManagerReq 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 *BindManagerReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on BindManagerReq 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 BindManagerReqMultiError,
// or nil if none found.
func (m *BindManagerReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for MediaAccountUuid

	// no validation rules for ManagerUuid

	// no validation rules for ManagerUserName

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m BindManagerReqMultiError) 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 BindManagerReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e BindManagerReqValidationError) 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 %sBindManagerReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = BindManagerReqValidationError{}

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

// Validate checks the field values on UpdateWorkImageReq 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 *UpdateWorkImageReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on UpdateWorkImageReq 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
// UpdateWorkImageReqMultiError, or nil if none found.
func (m *UpdateWorkImageReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for Title

	// no validation rules for Content

	if all {
		switch v := interface{}(m.GetPublishConfig1()).(type) {
		case interface{ ValidateAll() error }:
			if err := v.ValidateAll(); err != nil {
				errors = append(errors, UpdateWorkImageReqValidationError{
					field:  "PublishConfig1",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		case interface{ Validate() error }:
			if err := v.Validate(); err != nil {
				errors = append(errors, UpdateWorkImageReqValidationError{
					field:  "PublishConfig1",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		}
	} else if v, ok := interface{}(m.GetPublishConfig1()).(interface{ Validate() error }); ok {
		if err := v.Validate(); err != nil {
			return UpdateWorkImageReqValidationError{
				field:  "PublishConfig1",
				reason: "embedded message failed validation",
				cause:  err,
			}
		}
	}

	if all {
		switch v := interface{}(m.GetPublishConfig2()).(type) {
		case interface{ ValidateAll() error }:
			if err := v.ValidateAll(); err != nil {
				errors = append(errors, UpdateWorkImageReqValidationError{
					field:  "PublishConfig2",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		case interface{ Validate() error }:
			if err := v.Validate(); err != nil {
				errors = append(errors, UpdateWorkImageReqValidationError{
					field:  "PublishConfig2",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		}
	} else if v, ok := interface{}(m.GetPublishConfig2()).(interface{ Validate() error }); ok {
		if err := v.Validate(); err != nil {
			return UpdateWorkImageReqValidationError{
				field:  "PublishConfig2",
				reason: "embedded message failed validation",
				cause:  err,
			}
		}
	}

	if all {
		switch v := interface{}(m.GetPublishConfig3()).(type) {
		case interface{ ValidateAll() error }:
			if err := v.ValidateAll(); err != nil {
				errors = append(errors, UpdateWorkImageReqValidationError{
					field:  "PublishConfig3",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		case interface{ Validate() error }:
			if err := v.Validate(); err != nil {
				errors = append(errors, UpdateWorkImageReqValidationError{
					field:  "PublishConfig3",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		}
	} else if v, ok := interface{}(m.GetPublishConfig3()).(interface{ Validate() error }); ok {
		if err := v.Validate(); err != nil {
			return UpdateWorkImageReqValidationError{
				field:  "PublishConfig3",
				reason: "embedded message failed validation",
				cause:  err,
			}
		}
	}

	// no validation rules for Action

	// no validation rules for WorkUuid

	// no validation rules for ArtistUuid

	// no validation rules for ArtistPhone

	// no validation rules for ArtistName

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m UpdateWorkImageReqMultiError) 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 UpdateWorkImageReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e UpdateWorkImageReqValidationError) 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 %sUpdateWorkImageReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = UpdateWorkImageReqValidationError{}

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

// Validate checks the field values on UpdateWorkImageResp 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 *UpdateWorkImageResp) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on UpdateWorkImageResp 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
// UpdateWorkImageRespMultiError, or nil if none found.
func (m *UpdateWorkImageResp) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for WorkUuid

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m UpdateWorkImageRespMultiError) 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 UpdateWorkImageRespMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e UpdateWorkImageRespValidationError) 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 %sUpdateWorkImageResp.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = UpdateWorkImageRespValidationError{}

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

// Validate checks the field values on PublishConfig 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 *PublishConfig) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on PublishConfig 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 PublishConfigMultiError, or
// nil if none found.
func (m *PublishConfig) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for ForbidComment

	// no validation rules for PublicType

	// no validation rules for CanJoin

	// no validation rules for CanQuote

	// no validation rules for CanComment

	// no validation rules for IsAI

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m PublishConfigMultiError) 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 PublishConfigMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e PublishConfigValidationError) 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 %sPublishConfig.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = PublishConfigValidationError{}

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

// Validate checks the field values on UpdateWorkVideoReq 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 *UpdateWorkVideoReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on UpdateWorkVideoReq 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
// UpdateWorkVideoReqMultiError, or nil if none found.
func (m *UpdateWorkVideoReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for Title

	// no validation rules for Content

	// no validation rules for VideoUrl

	// no validation rules for CoverUrl

	if all {
		switch v := interface{}(m.GetPublishConfig1()).(type) {
		case interface{ ValidateAll() error }:
			if err := v.ValidateAll(); err != nil {
				errors = append(errors, UpdateWorkVideoReqValidationError{
					field:  "PublishConfig1",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		case interface{ Validate() error }:
			if err := v.Validate(); err != nil {
				errors = append(errors, UpdateWorkVideoReqValidationError{
					field:  "PublishConfig1",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		}
	} else if v, ok := interface{}(m.GetPublishConfig1()).(interface{ Validate() error }); ok {
		if err := v.Validate(); err != nil {
			return UpdateWorkVideoReqValidationError{
				field:  "PublishConfig1",
				reason: "embedded message failed validation",
				cause:  err,
			}
		}
	}

	if all {
		switch v := interface{}(m.GetPublishConfig2()).(type) {
		case interface{ ValidateAll() error }:
			if err := v.ValidateAll(); err != nil {
				errors = append(errors, UpdateWorkVideoReqValidationError{
					field:  "PublishConfig2",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		case interface{ Validate() error }:
			if err := v.Validate(); err != nil {
				errors = append(errors, UpdateWorkVideoReqValidationError{
					field:  "PublishConfig2",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		}
	} else if v, ok := interface{}(m.GetPublishConfig2()).(interface{ Validate() error }); ok {
		if err := v.Validate(); err != nil {
			return UpdateWorkVideoReqValidationError{
				field:  "PublishConfig2",
				reason: "embedded message failed validation",
				cause:  err,
			}
		}
	}

	if all {
		switch v := interface{}(m.GetPublishConfig3()).(type) {
		case interface{ ValidateAll() error }:
			if err := v.ValidateAll(); err != nil {
				errors = append(errors, UpdateWorkVideoReqValidationError{
					field:  "PublishConfig3",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		case interface{ Validate() error }:
			if err := v.Validate(); err != nil {
				errors = append(errors, UpdateWorkVideoReqValidationError{
					field:  "PublishConfig3",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		}
	} else if v, ok := interface{}(m.GetPublishConfig3()).(interface{ Validate() error }); ok {
		if err := v.Validate(); err != nil {
			return UpdateWorkVideoReqValidationError{
				field:  "PublishConfig3",
				reason: "embedded message failed validation",
				cause:  err,
			}
		}
	}

	// no validation rules for Action

	// no validation rules for WorkUuid

	// no validation rules for ArtistUuid

	// no validation rules for ArtistPhone

	// no validation rules for ArtistName

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m UpdateWorkVideoReqMultiError) 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 UpdateWorkVideoReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e UpdateWorkVideoReqValidationError) 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 %sUpdateWorkVideoReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = UpdateWorkVideoReqValidationError{}

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

// Validate checks the field values on UpdateWorkVideoResp 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 *UpdateWorkVideoResp) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on UpdateWorkVideoResp 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
// UpdateWorkVideoRespMultiError, or nil if none found.
func (m *UpdateWorkVideoResp) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for WorkUuid

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m UpdateWorkVideoRespMultiError) 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 UpdateWorkVideoRespMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e UpdateWorkVideoRespValidationError) 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 %sUpdateWorkVideoResp.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = UpdateWorkVideoRespValidationError{}

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

// Validate checks the field values on WorkListReq 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 *WorkListReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on WorkListReq 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 WorkListReqMultiError, or
// nil if none found.
func (m *WorkListReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for ArtistVal

	// no validation rules for PlatformID

	// no validation rules for WorkCategory

	// no validation rules for SubmitStartTime

	// no validation rules for SubmitEndTime

	// no validation rules for StatusUpdateTimeStart

	// no validation rules for StatusUpdateTimeEnd

	// no validation rules for Title

	// no validation rules for WorkStatus

	// no validation rules for MediaAccountUuid

	// no validation rules for Page

	// no validation rules for PageSize

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m WorkListReqMultiError) 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 WorkListReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e WorkListReqValidationError) 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 %sWorkListReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = WorkListReqValidationError{}

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

// Validate checks the field values on WorkListResp 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 *WorkListResp) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on WorkListResp 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 WorkListRespMultiError, or
// nil if none found.
func (m *WorkListResp) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

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

		if all {
			switch v := interface{}(item).(type) {
			case interface{ ValidateAll() error }:
				if err := v.ValidateAll(); err != nil {
					errors = append(errors, WorkListRespValidationError{
						field:  fmt.Sprintf("Data[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			case interface{ Validate() error }:
				if err := v.Validate(); err != nil {
					errors = append(errors, WorkListRespValidationError{
						field:  fmt.Sprintf("Data[%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 WorkListRespValidationError{
					field:  fmt.Sprintf("Data[%v]", idx),
					reason: "embedded message failed validation",
					cause:  err,
				}
			}
		}

	}

	// no validation rules for Count

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m WorkListRespMultiError) 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 WorkListRespMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e WorkListRespValidationError) 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 %sWorkListResp.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = WorkListRespValidationError{}

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

// Validate checks the field values on WorkDetailReq 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 *WorkDetailReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on WorkDetailReq 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 WorkDetailReqMultiError, or
// nil if none found.
func (m *WorkDetailReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for WorkUuid

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m WorkDetailReqMultiError) 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 WorkDetailReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e WorkDetailReqValidationError) 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 %sWorkDetailReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = WorkDetailReqValidationError{}

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

// Validate checks the field values on WorkLogInfo 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 *WorkLogInfo) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on WorkLogInfo 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 WorkLogInfoMultiError, or
// nil if none found.
func (m *WorkLogInfo) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for WorkUuid

	// no validation rules for Title

	// no validation rules for Content

	// no validation rules for OperatorName

	// no validation rules for OperatorID

	// no validation rules for UpdateTime

	// no validation rules for ExtraData

	// no validation rules for WorkStatus

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m WorkLogInfoMultiError) 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 WorkLogInfoMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e WorkLogInfoValidationError) 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 %sWorkLogInfo.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = WorkLogInfoValidationError{}

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

// Validate checks the field values on WorkDetailResp 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 *WorkDetailResp) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on WorkDetailResp 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 WorkDetailRespMultiError,
// or nil if none found.
func (m *WorkDetailResp) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for WorkUuid

	// no validation rules for Title

	// no validation rules for Content

	// no validation rules for WorkStatus

	if all {
		switch v := interface{}(m.GetPublishConfig1()).(type) {
		case interface{ ValidateAll() error }:
			if err := v.ValidateAll(); err != nil {
				errors = append(errors, WorkDetailRespValidationError{
					field:  "PublishConfig1",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		case interface{ Validate() error }:
			if err := v.Validate(); err != nil {
				errors = append(errors, WorkDetailRespValidationError{
					field:  "PublishConfig1",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		}
	} else if v, ok := interface{}(m.GetPublishConfig1()).(interface{ Validate() error }); ok {
		if err := v.Validate(); err != nil {
			return WorkDetailRespValidationError{
				field:  "PublishConfig1",
				reason: "embedded message failed validation",
				cause:  err,
			}
		}
	}

	if all {
		switch v := interface{}(m.GetPublishConfig2()).(type) {
		case interface{ ValidateAll() error }:
			if err := v.ValidateAll(); err != nil {
				errors = append(errors, WorkDetailRespValidationError{
					field:  "PublishConfig2",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		case interface{ Validate() error }:
			if err := v.Validate(); err != nil {
				errors = append(errors, WorkDetailRespValidationError{
					field:  "PublishConfig2",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		}
	} else if v, ok := interface{}(m.GetPublishConfig2()).(interface{ Validate() error }); ok {
		if err := v.Validate(); err != nil {
			return WorkDetailRespValidationError{
				field:  "PublishConfig2",
				reason: "embedded message failed validation",
				cause:  err,
			}
		}
	}

	if all {
		switch v := interface{}(m.GetPublishConfig3()).(type) {
		case interface{ ValidateAll() error }:
			if err := v.ValidateAll(); err != nil {
				errors = append(errors, WorkDetailRespValidationError{
					field:  "PublishConfig3",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		case interface{ Validate() error }:
			if err := v.Validate(); err != nil {
				errors = append(errors, WorkDetailRespValidationError{
					field:  "PublishConfig3",
					reason: "embedded message failed validation",
					cause:  err,
				})
			}
		}
	} else if v, ok := interface{}(m.GetPublishConfig3()).(interface{ Validate() error }); ok {
		if err := v.Validate(); err != nil {
			return WorkDetailRespValidationError{
				field:  "PublishConfig3",
				reason: "embedded message failed validation",
				cause:  err,
			}
		}
	}

	// no validation rules for VideoUrl

	// no validation rules for CoverUrl

	// no validation rules for ApprovalID

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

		if all {
			switch v := interface{}(item).(type) {
			case interface{ ValidateAll() error }:
				if err := v.ValidateAll(); err != nil {
					errors = append(errors, WorkDetailRespValidationError{
						field:  fmt.Sprintf("WorkLogData[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			case interface{ Validate() error }:
				if err := v.Validate(); err != nil {
					errors = append(errors, WorkDetailRespValidationError{
						field:  fmt.Sprintf("WorkLogData[%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 WorkDetailRespValidationError{
					field:  fmt.Sprintf("WorkLogData[%v]", idx),
					reason: "embedded message failed validation",
					cause:  err,
				}
			}
		}

	}

	// no validation rules for WorkCategory

	{
		sorted_keys := make([]string, len(m.GetMediaAccData()))
		i := 0
		for key := range m.GetMediaAccData() {
			sorted_keys[i] = key
			i++
		}
		sort.Slice(sorted_keys, func(i, j int) bool { return sorted_keys[i] < sorted_keys[j] })
		for _, key := range sorted_keys {
			val := m.GetMediaAccData()[key]
			_ = val

			// no validation rules for MediaAccData[key]

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

		}
	}

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m WorkDetailRespMultiError) 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 WorkDetailRespMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e WorkDetailRespValidationError) 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 %sWorkDetailResp.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = WorkDetailRespValidationError{}

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

// Validate checks the field values on UpdateStatusReq 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 *UpdateStatusReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on UpdateStatusReq 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
// UpdateStatusReqMultiError, or nil if none found.
func (m *UpdateStatusReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for WorkAction

	// no validation rules for WorkUuid

	// no validation rules for ApprovalID

	// no validation rules for ConfirmRemark

	// no validation rules for ConfirmStatus

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m UpdateStatusReqMultiError) 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 UpdateStatusReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e UpdateStatusReqValidationError) 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 %sUpdateStatusReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = UpdateStatusReqValidationError{}

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

// Validate checks the field values on MediaAccountsReq 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 *MediaAccountsReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on MediaAccountsReq 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
// MediaAccountsReqMultiError, or nil if none found.
func (m *MediaAccountsReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for ArtistUuid

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m MediaAccountsReqMultiError) 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 MediaAccountsReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e MediaAccountsReqValidationError) 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 %sMediaAccountsReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = MediaAccountsReqValidationError{}

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

// Validate checks the field values on MediaAccountsResp 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 *MediaAccountsResp) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on MediaAccountsResp 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
// MediaAccountsRespMultiError, or nil if none found.
func (m *MediaAccountsResp) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

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

		if all {
			switch v := interface{}(item).(type) {
			case interface{ ValidateAll() error }:
				if err := v.ValidateAll(); err != nil {
					errors = append(errors, MediaAccountsRespValidationError{
						field:  fmt.Sprintf("Data[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			case interface{ Validate() error }:
				if err := v.Validate(); err != nil {
					errors = append(errors, MediaAccountsRespValidationError{
						field:  fmt.Sprintf("Data[%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 MediaAccountsRespValidationError{
					field:  fmt.Sprintf("Data[%v]", idx),
					reason: "embedded message failed validation",
					cause:  err,
				}
			}
		}

	}

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m MediaAccountsRespMultiError) 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 MediaAccountsRespMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e MediaAccountsRespValidationError) 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 %sMediaAccountsResp.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = MediaAccountsRespValidationError{}

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

// Validate checks the field values on MediaWorksReq 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 *MediaWorksReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on MediaWorksReq 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 MediaWorksReqMultiError, or
// nil if none found.
func (m *MediaWorksReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for MediaAccountUuid

	// no validation rules for Page

	// no validation rules for PageSize

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m MediaWorksReqMultiError) 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 MediaWorksReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e MediaWorksReqValidationError) 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 %sMediaWorksReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = MediaWorksReqValidationError{}

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

// Validate checks the field values on MediaWorksResp 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 *MediaWorksResp) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on MediaWorksResp 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 MediaWorksRespMultiError,
// or nil if none found.
func (m *MediaWorksResp) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for Count

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

		if all {
			switch v := interface{}(item).(type) {
			case interface{ ValidateAll() error }:
				if err := v.ValidateAll(); err != nil {
					errors = append(errors, MediaWorksRespValidationError{
						field:  fmt.Sprintf("Data[%v]", idx),
						reason: "embedded message failed validation",
						cause:  err,
					})
				}
			case interface{ Validate() error }:
				if err := v.Validate(); err != nil {
					errors = append(errors, MediaWorksRespValidationError{
						field:  fmt.Sprintf("Data[%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 MediaWorksRespValidationError{
					field:  fmt.Sprintf("Data[%v]", idx),
					reason: "embedded message failed validation",
					cause:  err,
				}
			}
		}

	}

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m MediaWorksRespMultiError) 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 MediaWorksRespMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e MediaWorksRespValidationError) 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 %sMediaWorksResp.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = MediaWorksRespValidationError{}

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

// Validate checks the field values on RePublishReq 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 *RePublishReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on RePublishReq 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 RePublishReqMultiError, or
// nil if none found.
func (m *RePublishReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for WorkUuid

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m RePublishReqMultiError) 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 RePublishReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e RePublishReqValidationError) 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 %sRePublishReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = RePublishReqValidationError{}

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

// Validate checks the field values on RePublishResp 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 *RePublishResp) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on RePublishResp 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 RePublishRespMultiError, or
// nil if none found.
func (m *RePublishResp) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for ArtistUuid

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m RePublishRespMultiError) 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 RePublishRespMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e RePublishRespValidationError) 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 %sRePublishResp.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = RePublishRespValidationError{}

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

// Validate checks the field values on OAuthYoutubeUrlReq 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 *OAuthYoutubeUrlReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on OAuthYoutubeUrlReq 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
// OAuthYoutubeUrlReqMultiError, or nil if none found.
func (m *OAuthYoutubeUrlReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for MediaAccountUuid

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m OAuthYoutubeUrlReqMultiError) 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 OAuthYoutubeUrlReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e OAuthYoutubeUrlReqValidationError) 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 %sOAuthYoutubeUrlReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = OAuthYoutubeUrlReqValidationError{}

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

// Validate checks the field values on OAuthYoutubeUrlResp 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 *OAuthYoutubeUrlResp) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on OAuthYoutubeUrlResp 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
// OAuthYoutubeUrlRespMultiError, or nil if none found.
func (m *OAuthYoutubeUrlResp) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for Url

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m OAuthYoutubeUrlRespMultiError) 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 OAuthYoutubeUrlRespMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e OAuthYoutubeUrlRespValidationError) 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 %sOAuthYoutubeUrlResp.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = OAuthYoutubeUrlRespValidationError{}

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

// Validate checks the field values on OAuthYoutubeTokenReq 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 *OAuthYoutubeTokenReq) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on OAuthYoutubeTokenReq 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
// OAuthYoutubeTokenReqMultiError, or nil if none found.
func (m *OAuthYoutubeTokenReq) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for MediaAccountUuid

	// no validation rules for Code

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m OAuthYoutubeTokenReqMultiError) 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 OAuthYoutubeTokenReqMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e OAuthYoutubeTokenReqValidationError) 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 %sOAuthYoutubeTokenReq.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = OAuthYoutubeTokenReqValidationError{}

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

// Validate checks the field values on OAuthYoutubeTokenResp 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 *OAuthYoutubeTokenResp) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on OAuthYoutubeTokenResp 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
// OAuthYoutubeTokenRespMultiError, or nil if none found.
func (m *OAuthYoutubeTokenResp) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for AccessToken

	// no validation rules for RefreshToken

	// no validation rules for ExpireTime

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m OAuthYoutubeTokenRespMultiError) 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 OAuthYoutubeTokenRespMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e OAuthYoutubeTokenRespValidationError) 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 %sOAuthYoutubeTokenResp.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = OAuthYoutubeTokenRespValidationError{}

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

// Validate checks the field values on WorkListResp_Info 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 *WorkListResp_Info) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on WorkListResp_Info 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
// WorkListResp_InfoMultiError, or nil if none found.
func (m *WorkListResp_Info) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for WorkUuid

	// no validation rules for ArtistName

	// no validation rules for ArtistPhone

	// no validation rules for Title

	// no validation rules for WorkCategory

	// no validation rules for WorkStatus

	// no validation rules for SubmitTime

	// no validation rules for StatusUpdateTime

	// no validation rules for ApprovalID

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m WorkListResp_InfoMultiError) 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 WorkListResp_InfoMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e WorkListResp_InfoValidationError) 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 %sWorkListResp_Info.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = WorkListResp_InfoValidationError{}

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

// Validate checks the field values on MediaAccountsResp_Info 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 *MediaAccountsResp_Info) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on MediaAccountsResp_Info 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
// MediaAccountsResp_InfoMultiError, or nil if none found.
func (m *MediaAccountsResp_Info) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for PlatformID

	// no validation rules for FansCount

	// no validation rules for WorkCount

	// no validation rules for ArtistUuid

	// no validation rules for MediaAccountUuid

	// no validation rules for MediaAccountName

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m MediaAccountsResp_InfoMultiError) 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 MediaAccountsResp_InfoMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e MediaAccountsResp_InfoValidationError) 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 %sMediaAccountsResp_Info.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = MediaAccountsResp_InfoValidationError{}

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

// Validate checks the field values on MediaWorksResp_Info 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 *MediaWorksResp_Info) Validate() error {
	return m.validate(false)
}

// ValidateAll checks the field values on MediaWorksResp_Info 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
// MediaWorksResp_InfoMultiError, or nil if none found.
func (m *MediaWorksResp_Info) ValidateAll() error {
	return m.validate(true)
}

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

	var errors []error

	// no validation rules for WorkUuid

	// no validation rules for Title

	// no validation rules for Content

	// no validation rules for WorkCategory

	// no validation rules for WorkStatus

	// no validation rules for SubmitTime

	// no validation rules for StatusUpdateTime

	// no validation rules for VideoUrl

	// no validation rules for CoverUrl

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

	return nil
}

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

// Error returns a concatenation of all the error messages it wraps.
func (m MediaWorksResp_InfoMultiError) 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 MediaWorksResp_InfoMultiError) AllErrors() []error { return m }

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

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

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

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

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

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

// Error satisfies the builtin error interface
func (e MediaWorksResp_InfoValidationError) 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 %sMediaWorksResp_Info.%s: %s%s",
		key,
		e.field,
		e.reason,
		cause)
}

var _ error = MediaWorksResp_InfoValidationError{}

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