// Code generated by protoc-json-shim. DO NOT EDIT.
package meshv2beta1

import (
	protojson "google.golang.org/protobuf/encoding/protojson"
)

// MarshalJSON is a custom marshaler for GRPCRoute
func (this *GRPCRoute) MarshalJSON() ([]byte, error) {
	str, err := GrpcRouteMarshaler.Marshal(this)
	return []byte(str), err
}

// UnmarshalJSON is a custom unmarshaler for GRPCRoute
func (this *GRPCRoute) UnmarshalJSON(b []byte) error {
	return GrpcRouteUnmarshaler.Unmarshal(b, this)
}

// MarshalJSON is a custom marshaler for GRPCRouteRule
func (this *GRPCRouteRule) MarshalJSON() ([]byte, error) {
	str, err := GrpcRouteMarshaler.Marshal(this)
	return []byte(str), err
}

// UnmarshalJSON is a custom unmarshaler for GRPCRouteRule
func (this *GRPCRouteRule) UnmarshalJSON(b []byte) error {
	return GrpcRouteUnmarshaler.Unmarshal(b, this)
}

// MarshalJSON is a custom marshaler for GRPCRouteMatch
func (this *GRPCRouteMatch) MarshalJSON() ([]byte, error) {
	str, err := GrpcRouteMarshaler.Marshal(this)
	return []byte(str), err
}

// UnmarshalJSON is a custom unmarshaler for GRPCRouteMatch
func (this *GRPCRouteMatch) UnmarshalJSON(b []byte) error {
	return GrpcRouteUnmarshaler.Unmarshal(b, this)
}

// MarshalJSON is a custom marshaler for GRPCMethodMatch
func (this *GRPCMethodMatch) MarshalJSON() ([]byte, error) {
	str, err := GrpcRouteMarshaler.Marshal(this)
	return []byte(str), err
}

// UnmarshalJSON is a custom unmarshaler for GRPCMethodMatch
func (this *GRPCMethodMatch) UnmarshalJSON(b []byte) error {
	return GrpcRouteUnmarshaler.Unmarshal(b, this)
}

// MarshalJSON is a custom marshaler for GRPCHeaderMatch
func (this *GRPCHeaderMatch) MarshalJSON() ([]byte, error) {
	str, err := GrpcRouteMarshaler.Marshal(this)
	return []byte(str), err
}

// UnmarshalJSON is a custom unmarshaler for GRPCHeaderMatch
func (this *GRPCHeaderMatch) UnmarshalJSON(b []byte) error {
	return GrpcRouteUnmarshaler.Unmarshal(b, this)
}

// MarshalJSON is a custom marshaler for GRPCRouteFilter
func (this *GRPCRouteFilter) MarshalJSON() ([]byte, error) {
	str, err := GrpcRouteMarshaler.Marshal(this)
	return []byte(str), err
}

// UnmarshalJSON is a custom unmarshaler for GRPCRouteFilter
func (this *GRPCRouteFilter) UnmarshalJSON(b []byte) error {
	return GrpcRouteUnmarshaler.Unmarshal(b, this)
}

// MarshalJSON is a custom marshaler for GRPCBackendRef
func (this *GRPCBackendRef) MarshalJSON() ([]byte, error) {
	str, err := GrpcRouteMarshaler.Marshal(this)
	return []byte(str), err
}

// UnmarshalJSON is a custom unmarshaler for GRPCBackendRef
func (this *GRPCBackendRef) UnmarshalJSON(b []byte) error {
	return GrpcRouteUnmarshaler.Unmarshal(b, this)
}

var (
	GrpcRouteMarshaler   = &protojson.MarshalOptions{}
	GrpcRouteUnmarshaler = &protojson.UnmarshalOptions{DiscardUnknown: false}
)
