code: async def renew(self, session, *, dc=None):
          
          session_id = extract_attr(session, keys=["ID"])
          response = await self._api.put("/v1/session/renew", session_id,
                                         params={"dc": dc})
          try:
              result = response.body[0]
          except IndexError:
              meta = extract_meta(response.headers)
              raise NotFound("No session for %r" % session_id, meta=meta)
          return consul(result, meta=extract_meta(response.headers))
docs: Renews a TTL-based session
  
          Parameters:
              session (ObjectID): Session ID
              dc (str): Specify datacenter that will be used.
                        Defaults to the agent's local datacenter.
          Returns:
              ObjectMeta: where value is session
          Raises:
              NotFound: session is absent
  
          The response looks like this::
  
              {
                  "LockDelay": datetime.timedelta(0, 15),
                  "Checks": [
                      "serfHealth"
                  ],
                  "Node": "foobar",
                  "ID": "adf4238a-882b-9ddc-4a9d-5b6758e4159e",
                  "CreateIndex": 1086449
                  "Behavior": "release",
                  "TTL": datetime.timedelta(0, 15)
              }
  
          .. note:: Consul MAY return a TTL value higher than the one
                    specified during session creation. This indicates
                    the server is under high load and is requesting
                    clients renew less often.