// Code generated by protoc-gen-jsonshim. DO NOT EDIT.
package v1alpha1

import (
	bytes "bytes"
	jsonpb "github.com/golang/protobuf/jsonpb"
)

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

// UnmarshalJSON is a custom unmarshaler for Tracing
func (this *Tracing) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for Tracing_Zipkin
func (this *Tracing_Zipkin) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for Tracing_Lightstep
func (this *Tracing_Lightstep) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for Tracing_Datadog
func (this *Tracing_Datadog) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for Tracing_Stackdriver
func (this *Tracing_Stackdriver) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for Tracing_OpenCensusAgent
func (this *Tracing_OpenCensusAgent) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for Tracing_CustomTag
func (this *Tracing_CustomTag) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for Tracing_Literal
func (this *Tracing_Literal) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for Tracing_Environment
func (this *Tracing_Environment) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for Tracing_RequestHeader
func (this *Tracing_RequestHeader) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for SDS
func (this *SDS) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for Topology
func (this *Topology) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for Topology_ProxyProtocolConfiguration
func (this *Topology_ProxyProtocolConfiguration) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for PrivateKeyProvider
func (this *PrivateKeyProvider) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for PrivateKeyProvider_CryptoMb
func (this *PrivateKeyProvider_CryptoMb) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for PrivateKeyProvider_QAT
func (this *PrivateKeyProvider_QAT) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for ProxyConfig
func (this *ProxyConfig) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for ProxyConfig_ProxyStatsMatcher
func (this *ProxyConfig_ProxyStatsMatcher) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for ProxyConfig_ProxyHeaders
func (this *ProxyConfig_ProxyHeaders) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for ProxyConfig_ProxyHeaders_Server
func (this *ProxyConfig_ProxyHeaders_Server) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for ProxyConfig_ProxyHeaders_RequestId
func (this *ProxyConfig_ProxyHeaders_RequestId) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for ProxyConfig_ProxyHeaders_AttemptCount
func (this *ProxyConfig_ProxyHeaders_AttemptCount) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for ProxyConfig_ProxyHeaders_XForwardedHost
func (this *ProxyConfig_ProxyHeaders_XForwardedHost) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for ProxyConfig_ProxyHeaders_XForwardedPort
func (this *ProxyConfig_ProxyHeaders_XForwardedPort) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for ProxyConfig_ProxyHeaders_EnvoyDebugHeaders
func (this *ProxyConfig_ProxyHeaders_EnvoyDebugHeaders) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for ProxyConfig_ProxyHeaders_MetadataExchangeHeaders
func (this *ProxyConfig_ProxyHeaders_MetadataExchangeHeaders) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for ProxyConfig_ProxyHeaders_SetCurrentClientCertDetails
func (this *ProxyConfig_ProxyHeaders_SetCurrentClientCertDetails) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

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

// UnmarshalJSON is a custom unmarshaler for RemoteService
func (this *RemoteService) UnmarshalJSON(b []byte) error {
	return ProxyUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}

var (
	ProxyMarshaler   = &jsonpb.Marshaler{}
	ProxyUnmarshaler = &jsonpb.Unmarshaler{AllowUnknownFields: true}
)
