code: def _populate(self, json):
          
          Base._populate(self, json)
  
          mapped_udfs = []
          for udf in self.user_defined_fields:
              t = UserDefinedFieldType.text
              choices = None
              if hasattr(udf, 'oneof'):
                  t = UserDefinedFieldType.select_one
                  choices = udf.oneof.split(',')
              elif hasattr(udf, 'manyof'):
                  t = UserDefinedFieldType.select_many
                  choices = udf.manyof.split(',')
  
              mapped_udfs.append(UserDefinedField(udf.name,
                      udf.label if hasattr(udf, 'label') else None,
                      udf.example if hasattr(udf, 'example') else None,
                      t, choices=choices))
  
          self._set('user_defined_fields', mapped_udfs)
          ndist = [ Image(self._client, d) for d in self.images ]
          self._set('images', ndist)
docs: Override the populate method to map user_defined_fields to
          fancy values