def site=(new_site)
      return nil unless updatable? || creatable?

      # unset the site? Use nil or an empty string
      if NON_SITES.include? new_site
        unset_site
        return
      end

      new_id = JSS::Site.valid_id new_site, api: @api
      new_name = JSS::Site.map_all_ids_to(:name, api: @api)[new_id]
      # no change, go home.
      return nil if new_name == @site_name

      raise JSS::NoSuchItemError, "Site '#{new_site}' is not known to the JSS" unless new_id

      @site_name = new_name
      @site_id = new_id
      @need_to_update = true
    end
def site=(new_site)
      return nil unless updatable? || creatable?

      # unset the site? Use nil or an empty string
      if NON_SITES.include? new_site
        unset_site
        return
      end

      new_id = JSS::Site.valid_id new_site, api: @api
      new_name = JSS::Site.map_all_ids_to(:name, api: @api)[new_id]
      # no change, go home.
      return nil if new_name == @site_name

      raise JSS::NoSuchItemError, "Site '#{new_site}' is not known to the JSS" unless new_id

      @site_name = new_name
      @site_id = new_id
      @need_to_update = true
    end
cat assigned?
 Change the site of this object.
 Any of the NON_SITES values will
 unset the site

 @param new_site[Integer, String] The new site

 @return [void]