docs: def save(self):
          """
          :return: save this company on Ariane server (create or update)
          """
          LOGGER.debug("Company.save")
          post_payload = {}
          consolidated_app_id = []
          consolidated_ost_id = []
  
          if self.id is not None:
              post_payload['companyID'] = self.id
  
          if self.name is not None:
              post_payload['companyName'] = self.name
  
          if self.description is not None:
              post_payload['companyDescription'] = self.description
  
          if self.ost_ids is not None:
              consolidated_ost_id = copy.deepcopy(self.ost_ids)
          if self.ost_2_rm is not None:
              for ost_2_rm in self.ost_2_rm:
                  if ost_2_rm.id is None:
                      ost_2_rm.sync()
                  consolidated_ost_id.remove(ost_2_rm.id)
          if self.ost_2_add is not None:
              for ost_id_2_add in self.ost_2_add:
                  if ost_id_2_add.id is None:
                      ost_id_2_add.save()
                  consolidated_ost_id.append(ost_id_2_add.id)
          post_payload['companyOSTypesID'] = consolidated_ost_id
  
          if self.applications_ids is not None:
              consolidated_app_id = copy.deepcopy(self.applications_ids)
          if self.applications_2_rm is not None:
              for app_2_rm in self.applications_2_rm:
                  if app_2_rm.id is None:
                      app_2_rm.sync()
                  consolidated_app_id.remove(app_2_rm.id)
          if self.applications_2_add is not None:
              for app_id_2_add in self.applications_2_add:
                  if app_id_2_add.id is None:
                      app_id_2_add.save()
                  consolidated_app_id.append(app_id_2_add.id)
          post_payload['companyApplicationsID'] = consolidated_app_id
  
          args = {'http_operation': 'POST', 'operation_path': '', 'parameters': {'payload': json.dumps(post_payload)}}
          response = CompanyService.requester.call(args)
          if response.rc != 0:
              LOGGER.warning(
                  'Company.save - Problem while saving company' + self.name +
                  '. Reason: ' + str(response.response_content) + '-' + str(response.error_message) +
                  " (" + str(response.rc) + ")"
              )
          else:
              self.id = response.response_content['companyID']
              if self.ost_2_add is not None:
                  for ost_2_add in self.ost_2_add:
                      ost_2_add.sync()
              if self.ost_2_rm is not None:
                  for ost_2_rm in self.ost_2_rm:
                      ost_2_rm.sync()
              if self.applications_2_add is not None:
                  for app_2_add in self.applications_2_add:
                      app_2_add.sync()
              if self.applications_2_rm is not None:
                  for app_2_rm in self.applications_2_rm:
                      app_2_rm.sync()
          self.ost_2_add.clear()
          self.ost_2_rm.clear()
          self.applications_2_add.clear()
          self.applications_2_rm.clear()
          self.sync()
          return self