code: def shared_ips(self, linode, *ips):
          
          if not isinstance(linode, Instance):
              # make this an object
              linode = Instance(self.client, linode)
  
          params = []
          for ip in ips:
              if isinstance(ip, str):
                  params.append(ip)
              elif isinstance(ip, IPAddress):
                  params.append(ip.address)
              else:
                  params.append(str(ip)) # and hope that works
  
          params = {
              "ips": params
          }
  
          self.client.post('{}/networking/ipv4/share'.format(Instance.api_endpoint),
                           model=linode, data=params)
  
          linode.invalidate()
docs: Shares the given list of :any:`IPAddresses<IPAddress>` with the provided
          :any:`Instance`.  This will enable the provided Instance to bring up the
          shared IP Addresses even though it does not own them.
  
          :param linode: The Instance to share the IPAddresses with.  This Instance
                         will be able to bring up the given addresses.
          :type: linode: int or Instance
          :param ips: Any number of IPAddresses to share to the Instance.
          :type ips: str or IPAddress