code: def update_case(self, case, fields=[]):
          
          req = self.url + "/api/case/{}".format(case.id)
  
          # Choose which attributes to send
          update_keys = [
              'title', 'description', 'severity', 'startDate', 'owner', 'flag', 'tlp', 'tags', 'status', 'resolutionStatus',
              'impactStatus', 'summary', 'endDate', 'metrics', 'customFields'
          ]
          data = {k: v for k, v in case.__dict__.items() if (len(fields) > 0 and k in fields) or (len(fields) == 0 and k in update_keys)}
          try:
              return requests.patch(req, headers={'Content-Type': 'application/json'}, json=data, proxies=self.proxies, auth=self.auth, verify=self.cert)
          except requests.exceptions.RequestException:
              raise CaseException("Case update error: {}".format(e))
docs: Update a case.
          :param case: The case to update. The case's `id` determines which case to update.
          :param fields: Optional parameter, an array of fields names, the ones we want to update
          :return: