docs: def save(self):
          """
          :return: save this NIC on Ariane server (create or update)
          """
          LOGGER.debug("NIC.save")
          post_payload = {}
  
          if self.id is not None:
              post_payload['nicID'] = self.id
  
          if self.name is not None:
              post_payload['nicName'] = self.name
  
          if self.mac_address is not None:
              post_payload['nicMacAddress'] = self.mac_address
  
          if self.duplex is not None:
              post_payload['nicDuplex'] = self.duplex
  
          if self.speed is not None:
              post_payload['nicSpeed'] = self.speed
  
          if self.mtu is not None:
              post_payload['nicMtu'] = self.mtu
  
          if self.nic_osi_id is not None:
              post_payload['nicOSInstanceID'] = self.nic_osi_id
  
          if self.nic_ipa_id is not None:
              post_payload['nicIPAddressID'] = self.nic_ipa_id
  
          args = {'http_operation': 'POST', 'operation_path': '', 'parameters': {'payload': json.dumps(post_payload)}}
          response = NICService.requester.call(args)
          if response.rc != 0:
              LOGGER.warning(
                  'NIC.save - Problem while saving NIC ' + self.name +
                  '. Reason: ' + str(response.response_content) + '-' + str(response.error_message) +
                  " (" + str(response.rc) + ")"
              )
          else:
              self.id = response.response_content['nicID']
  
          self.sync()
          return self