docs: def get_terms(self, name, revision=None):
          """ Retrieve a specific term and condition.
  
          @param name of the terms.
          @param revision of the terms,
                 if none provided it will return the latest.
          @return The list of terms.
          @raise ServerError
          """
          url = '{}terms/{}'.format(self.url, name)
          if revision:
              url = '{}?revision={}'.format(url, revision)
          json = make_request(url, timeout=self.timeout, client=self._client)
          try:
              # This is always a list of one element.
              data = json[0]
              return Term(name=data['name'],
                          title=data.get('title'),
                          revision=data['revision'],
                          created_on=datetime.datetime.strptime(
                              data['created-on'],
                              "%Y-%m-%dT%H:%M:%SZ"
                              ),
                          content=data['content'])
          except (KeyError, TypeError, ValueError, IndexError) as err:
              log.info(
                  'cannot process terms: invalid JSON response: {!r}'.format(
                      json))
              raise ServerError(
                  'unable to get terms for {}: {}'.format(name, err))