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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

var (
	TransportSocketMarshaler   = &protojson.MarshalOptions{}
	TransportSocketUnmarshaler = &protojson.UnmarshalOptions{DiscardUnknown: false}
)
