:return: save this IP Address on Ariane server (create or update)

def save(self):
        """
        :return: save this IP Address on Ariane server (create or update)
        """
        LOGGER.debug("IPAddress.save")
        post_payload = {}

        if self.id is not None:
            post_payload['ipAddressID'] = self.id

        if self.ip_address is not None:
            post_payload['ipAddressIPA'] = self.ip_address

        if self.fqdn is not None:
            post_payload['ipAddressFQDN'] = self.fqdn

        if self.ipa_os_instance_id is not None:
            post_payload['ipAddressOSInstanceID'] = self.ipa_os_instance_id

        if self.ipa_subnet_id is not None:
            post_payload['ipAddressSubnetID'] = self.ipa_subnet_id

        args = {'http_operation': 'POST', 'operation_path': '', 'parameters': {'payload': json.dumps(post_payload)}}
        response = IPAddressService.requester.call(args)
        if response.rc != 0:
            LOGGER.warning(
                'IPAddress.save - Problem while saving IP Address ' + self.ip_address +
                '. Reason: ' + str(response.response_content) + '-' + str(response.error_message) +
                " (" + str(response.rc) + ")"
            )
        else:
            self.id = response.response_content['ipAddressID']

        self.sync()
        return self