code: def ip_allocate(self, public=False):
          
          result = self._client.post(
              "{}/ips".format(Instance.api_endpoint),
              model=self,
              data={
                  "type": "ipv4",
                  "public": public,
              })
  
          if not 'address' in result:
              raise UnexpectedResponseError('Unexpected response allocating IP!',
                                            json=result)
  
          i = IPAddress(self._client, result['address'], result)
          return i
docs: Allocates a new :any:`IPAddress` for this Instance.  Additional public
          IPs require justification, and you may need to open a :any:`SupportTicket`
          before you can add one.  You may only have, at most, one private IP per
          Instance.
  
          :param public: If the new IP should be public or private.  Defaults to
                         private.
          :type public: bool
  
          :returns: The new IPAddress
          :rtype: IPAddress