code: def combined_message_class(self):
      
      if self.__combined_message_class is not None:
        return self.__combined_message_class
  
      fields = {}
      # We don't need to preserve field.number since this combined class is only
      # used for the protorpc remote.method and is not needed for the API config.
      # The only place field.number matters is in parameterOrder, but this is set
      # based on container.parameters_message_class which will use the field
      # numbers originally passed in.
  
      # Counter for fields.
      field_number = 1
      for field in self.body_message_class.all_fields():
        fields[field.name] = _CopyField(field, number=field_number)
        field_number += 1
      for field in self.parameters_message_class.all_fields():
        if field.name in fields:
          if not _CompareFields(field, fields[field.name]):
            raise TypeError('Field %r contained in both parameters and request '
                            'body, but the fields differ.' % (field.name,))
          else:
            # Skip a field that's already there.
            continue
        fields[field.name] = _CopyField(field, number=field_number)
        field_number += 1
  
      self.__combined_message_class = type('CombinedContainer',
                                           (messages.Message,), fields)
      return self.__combined_message_class
docs: A ProtoRPC message class with both request and parameters fields.
  
      Caches the result in a local private variable. Uses _CopyField to create
      copies of the fields from the existing request and parameters classes since
      those fields are "owned" by the message classes.
  
      Raises:
        TypeError: If a field name is used in both the request message and the
          parameters but the two fields do not represent the same type.
  
      Returns:
        Value of combined message class for this property.