code: def get_full_hashes(self, prefixes, client_state):
          
          request_body = {
              "client": {
                  "clientId": self.client_id,
                  "clientVersion": self.client_version,
              },
              "clientStates": [],
              "threatInfo": {
                  "threatTypes": [],
                  "platformTypes": [],
                  "threatEntryTypes": [],
                  "threatEntries": [],
              }
          }
          for prefix in prefixes:
              request_body['threatInfo']['threatEntries'].append({"hash": b64encode(prefix).decode()})
          for ((threatType, platformType, threatEntryType), clientState) in client_state.items():
              request_body['clientStates'].append(clientState)
              if threatType not in request_body['threatInfo']['threatTypes']:
                  request_body['threatInfo']['threatTypes'].append(threatType)
              if platformType not in request_body['threatInfo']['platformTypes']:
                  request_body['threatInfo']['platformTypes'].append(platformType)
              if threatEntryType not in request_body['threatInfo']['threatEntryTypes']:
                  request_body['threatInfo']['threatEntryTypes'].append(threatEntryType)
          response = self.service.fullHashes().find(body=request_body).execute()
          self.set_wait_duration(response.get('minimumWaitDuration'))
          return response
docs: Find full hashes matching hash prefixes.
  
          client_state is a dict which looks like {(threatType, platformType, threatEntryType): clientState}