// 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 ProxyConfiguration
func (this *ProxyConfiguration) MarshalJSON() ([]byte, error) {
	str, err := ProxyConfigurationMarshaler.Marshal(this)
	return []byte(str), err
}

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

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

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

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

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

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

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

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

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

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

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

var (
	ProxyConfigurationMarshaler   = &protojson.MarshalOptions{}
	ProxyConfigurationUnmarshaler = &protojson.UnmarshalOptions{DiscardUnknown: false}
)
