def ip_allocate(self, public=False):
result = self._client.post(<EOL>"<STR_LIT>".format(Instance.api_endpoint),<EOL>model=self,<EOL>data={<EOL>"<STR_LIT:type>": "<STR_LIT>",<EOL>"<STR_LIT>": public,<EOL>})<EOL>if not '<STR_LIT:address>' in result:<EOL><INDENT>raise UnexpectedResponseError('<STR_LIT>',<EOL>json=result)<EOL><DEDENT>i = IPAddress(self._client, result['<STR_LIT:address>'], result)<EOL>return i<EOL>
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