text: # coding: utf-8
  
  """
      grafeas.proto
  
      No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501
  
      OpenAPI spec version: v1beta1
      
      Generated by: https://github.com/swagger-api/swagger-codegen.git
  """
  
  
  import pprint
  import re  # noqa: F401
  
  import six
  
  
  class VulnerabilityCVSS(object):
      """NOTE: This class is auto generated by the swagger code generator program.
  
      Do not edit the class manually.
      """
  
      """
      Attributes:
        swagger_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.
      """
      swagger_types = {
          'base_score': 'float',
          'exploitability_score': 'float',
          'impact_score': 'float',
          'attack_vector': 'CVSSAttackVector',
          'attack_complexity': 'CVSSAttackComplexity',
          'authentication': 'CVSSAuthentication',
          'privileges_required': 'CVSSPrivilegesRequired',
          'user_interaction': 'CVSSUserInteraction',
          'scope': 'CVSSScope',
          'confidentiality_impact': 'CVSSImpact',
          'integrity_impact': 'CVSSImpact',
          'availability_impact': 'CVSSImpact'
      }
  
      attribute_map = {
          'base_score': 'baseScore',
          'exploitability_score': 'exploitabilityScore',
          'impact_score': 'impactScore',
          'attack_vector': 'attackVector',
          'attack_complexity': 'attackComplexity',
          'authentication': 'authentication',
          'privileges_required': 'privilegesRequired',
          'user_interaction': 'userInteraction',
          'scope': 'scope',
          'confidentiality_impact': 'confidentialityImpact',
          'integrity_impact': 'integrityImpact',
          'availability_impact': 'availabilityImpact'
      }
  
      def __init__(self, base_score=None, exploitability_score=None, impact_score=None, attack_vector=None, attack_complexity=None, authentication=None, privileges_required=None, user_interaction=None, scope=None, confidentiality_impact=None, integrity_impact=None, availability_impact=None):  # noqa: E501
          """VulnerabilityCVSS - a model defined in Swagger"""  # noqa: E501
  
          self._base_score = None
          self._exploitability_score = None
          self._impact_score = None
          self._attack_vector = None
          self._attack_complexity = None
          self._authentication = None
          self._privileges_required = None
          self._user_interaction = None
          self._scope = None
          self._confidentiality_impact = None
          self._integrity_impact = None
          self._availability_impact = None
          self.discriminator = None
  
          if base_score is not None:
              self.base_score = base_score
          if exploitability_score is not None:
              self.exploitability_score = exploitability_score
          if impact_score is not None:
              self.impact_score = impact_score
          if attack_vector is not None:
              self.attack_vector = attack_vector
          if attack_complexity is not None:
              self.attack_complexity = attack_complexity
          if authentication is not None:
              self.authentication = authentication
          if privileges_required is not None:
              self.privileges_required = privileges_required
          if user_interaction is not None:
              self.user_interaction = user_interaction
          if scope is not None:
              self.scope = scope
          if confidentiality_impact is not None:
              self.confidentiality_impact = confidentiality_impact
          if integrity_impact is not None:
              self.integrity_impact = integrity_impact
          if availability_impact is not None:
              self.availability_impact = availability_impact
  
      @property
      def base_score(self):
          """Gets the base_score of this VulnerabilityCVSS.  # noqa: E501
  
          The base score is a function of the base metric scores.  # noqa: E501
  
          :return: The base_score of this VulnerabilityCVSS.  # noqa: E501
          :rtype: float
          """
          return self._base_score
  
      @base_score.setter
      def base_score(self, base_score):
          """Sets the base_score of this VulnerabilityCVSS.
  
          The base score is a function of the base metric scores.  # noqa: E501
  
          :param base_score: The base_score of this VulnerabilityCVSS.  # noqa: E501
          :type: float
          """
  
          self._base_score = base_score
  
      @property
      def exploitability_score(self):
          """Gets the exploitability_score of this VulnerabilityCVSS.  # noqa: E501
  
  
          :return: The exploitability_score of this VulnerabilityCVSS.  # noqa: E501
          :rtype: float
          """
          return self._exploitability_score
  
      @exploitability_score.setter
      def exploitability_score(self, exploitability_score):
          """Sets the exploitability_score of this VulnerabilityCVSS.
  
  
          :param exploitability_score: The exploitability_score of this VulnerabilityCVSS.  # noqa: E501
          :type: float
          """
  
          self._exploitability_score = exploitability_score
  
      @property
      def impact_score(self):
          """Gets the impact_score of this VulnerabilityCVSS.  # noqa: E501
  
  
          :return: The impact_score of this VulnerabilityCVSS.  # noqa: E501
          :rtype: float
          """
          return self._impact_score
  
      @impact_score.setter
      def impact_score(self, impact_score):
          """Sets the impact_score of this VulnerabilityCVSS.
  
  
          :param impact_score: The impact_score of this VulnerabilityCVSS.  # noqa: E501
          :type: float
          """
  
          self._impact_score = impact_score
  
      @property
      def attack_vector(self):
          """Gets the attack_vector of this VulnerabilityCVSS.  # noqa: E501
  
          Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments.  # noqa: E501
  
          :return: The attack_vector of this VulnerabilityCVSS.  # noqa: E501
          :rtype: CVSSAttackVector
          """
          return self._attack_vector
  
      @attack_vector.setter
      def attack_vector(self, attack_vector):
          """Sets the attack_vector of this VulnerabilityCVSS.
  
          Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments.  # noqa: E501
  
          :param attack_vector: The attack_vector of this VulnerabilityCVSS.  # noqa: E501
          :type: CVSSAttackVector
          """
  
          self._attack_vector = attack_vector
  
      @property
      def attack_complexity(self):
          """Gets the attack_complexity of this VulnerabilityCVSS.  # noqa: E501
  
  
          :return: The attack_complexity of this VulnerabilityCVSS.  # noqa: E501
          :rtype: CVSSAttackComplexity
          """
          return self._attack_complexity
  
      @attack_complexity.setter
      def attack_complexity(self, attack_complexity):
          """Sets the attack_complexity of this VulnerabilityCVSS.
  
  
          :param attack_complexity: The attack_complexity of this VulnerabilityCVSS.  # noqa: E501
          :type: CVSSAttackComplexity
          """
  
          self._attack_complexity = attack_complexity
  
      @property
      def authentication(self):
          """Gets the authentication of this VulnerabilityCVSS.  # noqa: E501
  
  
          :return: The authentication of this VulnerabilityCVSS.  # noqa: E501
          :rtype: CVSSAuthentication
          """
          return self._authentication
  
      @authentication.setter
      def authentication(self, authentication):
          """Sets the authentication of this VulnerabilityCVSS.
  
  
          :param authentication: The authentication of this VulnerabilityCVSS.  # noqa: E501
          :type: CVSSAuthentication
          """
  
          self._authentication = authentication
  
      @property
      def privileges_required(self):
          """Gets the privileges_required of this VulnerabilityCVSS.  # noqa: E501
  
  
          :return: The privileges_required of this VulnerabilityCVSS.  # noqa: E501
          :rtype: CVSSPrivilegesRequired
          """
          return self._privileges_required
  
      @privileges_required.setter
      def privileges_required(self, privileges_required):
          """Sets the privileges_required of this VulnerabilityCVSS.
  
  
          :param privileges_required: The privileges_required of this VulnerabilityCVSS.  # noqa: E501
          :type: CVSSPrivilegesRequired
          """
  
          self._privileges_required = privileges_required
  
      @property
      def user_interaction(self):
          """Gets the user_interaction of this VulnerabilityCVSS.  # noqa: E501
  
  
          :return: The user_interaction of this VulnerabilityCVSS.  # noqa: E501
          :rtype: CVSSUserInteraction
          """
          return self._user_interaction
  
      @user_interaction.setter
      def user_interaction(self, user_interaction):
          """Sets the user_interaction of this VulnerabilityCVSS.
  
  
          :param user_interaction: The user_interaction of this VulnerabilityCVSS.  # noqa: E501
          :type: CVSSUserInteraction
          """
  
          self._user_interaction = user_interaction
  
      @property
      def scope(self):
          """Gets the scope of this VulnerabilityCVSS.  # noqa: E501
  
  
          :return: The scope of this VulnerabilityCVSS.  # noqa: E501
          :rtype: CVSSScope
          """
          return self._scope
  
      @scope.setter
      def scope(self, scope):
          """Sets the scope of this VulnerabilityCVSS.
  
  
          :param scope: The scope of this VulnerabilityCVSS.  # noqa: E501
          :type: CVSSScope
          """
  
          self._scope = scope
  
      @property
      def confidentiality_impact(self):
          """Gets the confidentiality_impact of this VulnerabilityCVSS.  # noqa: E501
  
  
          :return: The confidentiality_impact of this VulnerabilityCVSS.  # noqa: E501
          :rtype: CVSSImpact
          """
          return self._confidentiality_impact
  
      @confidentiality_impact.setter
      def confidentiality_impact(self, confidentiality_impact):
          """Sets the confidentiality_impact of this VulnerabilityCVSS.
  
  
          :param confidentiality_impact: The confidentiality_impact of this VulnerabilityCVSS.  # noqa: E501
          :type: CVSSImpact
          """
  
          self._confidentiality_impact = confidentiality_impact
  
      @property
      def integrity_impact(self):
          """Gets the integrity_impact of this VulnerabilityCVSS.  # noqa: E501
  
  
          :return: The integrity_impact of this VulnerabilityCVSS.  # noqa: E501
          :rtype: CVSSImpact
          """
          return self._integrity_impact
  
      @integrity_impact.setter
      def integrity_impact(self, integrity_impact):
          """Sets the integrity_impact of this VulnerabilityCVSS.
  
  
          :param integrity_impact: The integrity_impact of this VulnerabilityCVSS.  # noqa: E501
          :type: CVSSImpact
          """
  
          self._integrity_impact = integrity_impact
  
      @property
      def availability_impact(self):
          """Gets the availability_impact of this VulnerabilityCVSS.  # noqa: E501
  
  
          :return: The availability_impact of this VulnerabilityCVSS.  # noqa: E501
          :rtype: CVSSImpact
          """
          return self._availability_impact
  
      @availability_impact.setter
      def availability_impact(self, availability_impact):
          """Sets the availability_impact of this VulnerabilityCVSS.
  
  
          :param availability_impact: The availability_impact of this VulnerabilityCVSS.  # noqa: E501
          :type: CVSSImpact
          """
  
          self._availability_impact = availability_impact
  
      def to_dict(self):
          """Returns the model properties as a dict"""
          result = {}
  
          for attr, _ in six.iteritems(self.swagger_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
          if issubclass(VulnerabilityCVSS, dict):
              for key, value in self.items():
                  result[key] = 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, VulnerabilityCVSS):
              return False
  
          return self.__dict__ == other.__dict__
  
      def __ne__(self, other):
          """Returns true if both objects are not equal"""
          return not self == other
  