code: def expose_attribute(self, local_name, attribute_type, remote_name=None, display_name=None, is_required=False, is_readonly=False, max_length=None, min_length=None, is_identifier=False, choices=None, is_unique=False, is_email=False, is_login=False, is_editable=True, is_password=False, can_order=False, can_search=False, subtype=None, min_value=None, max_value=None):
          
          if remote_name is None:
              remote_name = local_name
  
          if display_name is None:
              display_name = local_name
  
          attribute = NURemoteAttribute(local_name=local_name, remote_name=remote_name, attribute_type=attribute_type)
          attribute.display_name = display_name
          attribute.is_required = is_required
          attribute.is_readonly = is_readonly
          attribute.min_length = min_length
          attribute.max_length = max_length
          attribute.is_editable = is_editable
          attribute.is_identifier = is_identifier
          attribute.choices = choices
          attribute.is_unique = is_unique
          attribute.is_email = is_email
          attribute.is_login = is_login
          attribute.is_password = is_password
          attribute.can_order = can_order
          attribute.can_search = can_search
          attribute.subtype = subtype
          attribute.min_value = min_value
          attribute.max_value = max_value
  
          self._attributes[local_name] = attribute
docs: Expose local_name as remote_name
  
              An exposed attribute `local_name` will be sent within the HTTP request as
              a `remote_name`