docs: def update_tunnel_context(self, context_id, friendly_name=None,
                                remote_peer=None, preshared_key=None,
                                phase1_auth=None, phase1_crypto=None,
                                phase1_dh=None, phase1_key_ttl=None,
                                phase2_auth=None, phase2_crypto=None,
                                phase2_dh=None, phase2_forward_secrecy=None,
                                phase2_key_ttl=None):
          """Updates a tunnel context using the given values.
  
          :param string context_id: The id-value representing the context.
          :param string friendly_name: The friendly name value to update.
          :param string remote_peer: The remote peer IP address value to update.
          :param string preshared_key: The preshared key value to update.
          :param string phase1_auth: The phase 1 authentication value to update.
          :param string phase1_crypto: The phase 1 encryption value to update.
          :param string phase1_dh: The phase 1 diffie hellman group value
                 to update.
          :param string phase1_key_ttl: The phase 1 key life value to update.
          :param string phase2_auth: The phase 2 authentication value to update.
          :param string phase2_crypto: The phase 2 encryption value to update.
          :param string phase2_df: The phase 2 diffie hellman group value
                 to update.
          :param string phase2_forward_secriecy: The phase 2 perfect forward
                 secrecy value to update.
          :param string phase2_key_ttl: The phase 2 key life value to update.
          :return bool: True if the update was successful.
          """
          context = self.get_tunnel_context(context_id)
  
          if friendly_name is not None:
              context['friendlyName'] = friendly_name
          if remote_peer is not None:
              context['customerPeerIpAddress'] = remote_peer
          if preshared_key is not None:
              context['presharedKey'] = preshared_key
          if phase1_auth is not None:
              context['phaseOneAuthentication'] = phase1_auth
          if phase1_crypto is not None:
              context['phaseOneEncryption'] = phase1_crypto
          if phase1_dh is not None:
              context['phaseOneDiffieHellmanGroup'] = phase1_dh
          if phase1_key_ttl is not None:
              context['phaseOneKeylife'] = phase1_key_ttl
          if phase2_auth is not None:
              context['phaseTwoAuthentication'] = phase2_auth
          if phase2_crypto is not None:
              context['phaseTwoEncryption'] = phase2_crypto
          if phase2_dh is not None:
              context['phaseTwoDiffieHellmanGroup'] = phase2_dh
          if phase2_forward_secrecy is not None:
              context['phaseTwoPerfectForwardSecrecy'] = phase2_forward_secrecy
          if phase2_key_ttl is not None:
              context['phaseTwoKeylife'] = phase2_key_ttl
          return self.context.editObject(context, id=context_id)