text: # coding: utf-8
  
  """
      Kubernetes
  
      No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501
  
      OpenAPI spec version: v1.15.6
      Generated by: https://openapi-generator.tech
  """
  
  
  import pprint
  import re  # noqa: F401
  
  import six
  
  
  class IstioNetworkingV1alpha3EnvoyFilterProxyMatch(object):
      """NOTE: This class is auto generated by OpenAPI Generator.
      Ref: https://openapi-generator.tech
  
      Do not edit the class manually.
      """
  
      """
      Attributes:
        openapi_types (dict): The key is attribute name
                              and the value is attribute type.
        attribute_map (dict): The key is attribute name
                              and the value is json key in definition.
      """
      openapi_types = {
          'proxy_version': 'str',
          'metadata': 'dict(str, str)'
      }
  
      attribute_map = {
          'proxy_version': 'proxyVersion',
          'metadata': 'metadata'
      }
  
      def __init__(self, proxy_version=None, metadata=None):  # noqa: E501
          """IstioNetworkingV1alpha3EnvoyFilterProxyMatch - a model defined in OpenAPI"""  # noqa: E501
  
          self._proxy_version = None
          self._metadata = None
          self.discriminator = None
  
          if proxy_version is not None:
              self.proxy_version = proxy_version
          if metadata is not None:
              self.metadata = metadata
  
      @property
      def proxy_version(self):
          """Gets the proxy_version of this IstioNetworkingV1alpha3EnvoyFilterProxyMatch.  # noqa: E501
  
          A regular expression in golang regex format (RE2) that can be used to select proxies using a specific version of istio proxy. The Istio version for a given proxy is obtained from the node metadata field ISTIO_VERSION supplied by the proxy when connecting to Pilot. This value is embedded as an environment variable (ISTIO_META_ISTIO_VERSION) in the Istio proxy docker image. Custom proxy implementations should provide this metadata variable to take advantage of the Istio version check option.  # noqa: E501
  
          :return: The proxy_version of this IstioNetworkingV1alpha3EnvoyFilterProxyMatch.  # noqa: E501
          :rtype: str
          """
          return self._proxy_version
  
      @proxy_version.setter
      def proxy_version(self, proxy_version):
          """Sets the proxy_version of this IstioNetworkingV1alpha3EnvoyFilterProxyMatch.
  
          A regular expression in golang regex format (RE2) that can be used to select proxies using a specific version of istio proxy. The Istio version for a given proxy is obtained from the node metadata field ISTIO_VERSION supplied by the proxy when connecting to Pilot. This value is embedded as an environment variable (ISTIO_META_ISTIO_VERSION) in the Istio proxy docker image. Custom proxy implementations should provide this metadata variable to take advantage of the Istio version check option.  # noqa: E501
  
          :param proxy_version: The proxy_version of this IstioNetworkingV1alpha3EnvoyFilterProxyMatch.  # noqa: E501
          :type: str
          """
  
          self._proxy_version = proxy_version
  
      @property
      def metadata(self):
          """Gets the metadata of this IstioNetworkingV1alpha3EnvoyFilterProxyMatch.  # noqa: E501
  
          Match on the node metadata supplied by a proxy when connecting to Istio Pilot. Note that while Envoy's node metadata is of type Struct, only string key-value pairs are processed by Pilot. All keys specified in the metadata must match with exact values. The match will fail if any of the specified keys are absent or the values fail to match.  # noqa: E501
  
          :return: The metadata of this IstioNetworkingV1alpha3EnvoyFilterProxyMatch.  # noqa: E501
          :rtype: dict(str, str)
          """
          return self._metadata
  
      @metadata.setter
      def metadata(self, metadata):
          """Sets the metadata of this IstioNetworkingV1alpha3EnvoyFilterProxyMatch.
  
          Match on the node metadata supplied by a proxy when connecting to Istio Pilot. Note that while Envoy's node metadata is of type Struct, only string key-value pairs are processed by Pilot. All keys specified in the metadata must match with exact values. The match will fail if any of the specified keys are absent or the values fail to match.  # noqa: E501
  
          :param metadata: The metadata of this IstioNetworkingV1alpha3EnvoyFilterProxyMatch.  # noqa: E501
          :type: dict(str, str)
          """
  
          self._metadata = metadata
  
      def to_dict(self):
          """Returns the model properties as a dict"""
          result = {}
  
          for attr, _ in six.iteritems(self.openapi_types):
              value = getattr(self, attr)
              if isinstance(value, list):
                  result[attr] = list(map(
                      lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                      value
                  ))
              elif hasattr(value, "to_dict"):
                  result[attr] = value.to_dict()
              elif isinstance(value, dict):
                  result[attr] = dict(map(
                      lambda item: (item[0], item[1].to_dict())
                      if hasattr(item[1], "to_dict") else item,
                      value.items()
                  ))
              else:
                  result[attr] = value
  
          return result
  
      def to_str(self):
          """Returns the string representation of the model"""
          return pprint.pformat(self.to_dict())
  
      def __repr__(self):
          """For `print` and `pprint`"""
          return self.to_str()
  
      def __eq__(self, other):
          """Returns true if both objects are equal"""
          if not isinstance(other, IstioNetworkingV1alpha3EnvoyFilterProxyMatch):
              return False
  
          return self.__dict__ == other.__dict__
  
      def __ne__(self, other):
          """Returns true if both objects are not equal"""
          return not self == other
  