code: def update_cors_configuration(
              self,
              enable_cors=True,
              allow_credentials=True,
              origins=None,
              overwrite_origins=False):
          
          if origins is None:
              origins = []
  
          cors_config = {
              'enable_cors': enable_cors,
              'allow_credentials': allow_credentials,
              'origins': origins
          }
  
          if overwrite_origins:
              return self._write_cors_configuration(cors_config)
  
          old_config = self.cors_configuration()
  
          # update config values
          updated_config = old_config.copy()
  
          updated_config['enable_cors'] = cors_config.get('enable_cors')
          updated_config['allow_credentials'] = cors_config.get('allow_credentials')
  
          if cors_config.get('origins') == ["*"]:
              updated_config['origins'] = ["*"]
          elif old_config.get('origins') != cors_config.get('origins'):
              new_origins = list(
                  set(old_config.get('origins')).union(
                      set(cors_config.get('origins')))
              )
              updated_config['origins'] = new_origins
  
          return self._write_cors_configuration(updated_config)
docs: Merges existing CORS configuration with updated values.
  
          :param bool enable_cors: Enables/disables CORS.  Defaults to True.
          :param bool allow_credentials: Allows authentication credentials.
              Defaults to True.
          :param list origins: List of allowed CORS origin(s).  Special cases are
              a list containing a single "*" which will allow any origin and
              an empty list which will not allow any origin.  Defaults to None.
          :param bool overwrite_origins: Dictates whether the origins list is
              overwritten of appended to.  Defaults to False.
  
          :returns: CORS configuration update status in JSON format