President Donald Trump pressured Ukraine to interfere in the 2020 election and White House officials tried to cover it up, according to a U.S. government whistleblower’s complaint revealed Thursday.

The whistleblower says “deeply disturbed” White House officials raised alarm about Trump’s efforts to persuade Ukraine’s leader to open an investigation into potential White House rival Joe Biden and his son Hunter’s activities in Ukraine. Trump enlisted his personal attorney, Rudy Giuliani, who met with Ukrainian officials for dirt on the Bidens.

Trump also allegedly forced the issue by suspending military aid to Ukraine and canceling a trip by Vice President Mike Pence to Kyiv, according to the complaint. U.S. officials said Ukrainian leaders were led to believe they had to “play ball” or else, the whistleblower wrote.

Central to Trump’s efforts was a July 25 phone call with Ukraine President Volodymyr Zelensky in which Trump asked Ukraine’s leader to do him a “favor” and investigate the Bidens, according to a previously released transcript.

That call was so disturbing that White House officials began discussing with administration lawyers how to handle it because of the likelihood “that they had witnessed the President abuse his office for personal gain,” the complaint said.

Within days, the whistleblower alleged, officials moved to “lock down” the transcript of the conversation, transferring records of it to codeword-protected servers that handle classified national security secrets.

“This set of actions underscored to me that White House officials understood the gravity of what had transpired in the call,” the whistleblower wrote.

The complaint also says White House officials told the whistleblower that this wasn’t the first time that a transcript of a talk between Trump and a world leader had been placed into classified system “for the purpose of protecting politically sensitive…information.”

Though not a direct witness to the events described, the anonymous whistleblower said more than half a dozen U.S. officials informed him of what allegedly happened and their accounts were consistent with one another.

Trump reportedly demanded to know who in the White House spoke to the whistleblower, calling them spies and alluding to their execution on Thursday.

“I want to know who’s the person who gave the whistleblower the information because that’s close to a spy,” Trump told U.S. staff at the United Nations, according to The New York Times. “You know what we used to do in the old days when we were smart with spies and treason, right? We used to handle it a little differently than we do now.”

That same morning, Acting Director of National Intelligence Joseph Maguire praised the anonymous official for speaking out.

“I think the whistleblower did the right thing,” Maguire said before the House Intelligence Committee. “I think he followed the law every step of the way.”

Maguire provided a redacted version of the complaint to lawmakers after he initially declined to issue a report on it to Congress.

A partial transcript of the July 25 call between Trump and Zelensky was released days before the complaint, showing Trump asked Ukraine’s leader to do him a “favor” by investigating the Bidens and a discredited conspiracy theory clearing Russia for the 2016 election hacks.

“I would like to have the attorney general call you or your people and I would like you to get to the bottom of it,” Trump said to Zelensky in the call, referring to William Barr. “Whatever you can do with the attorney general would be great.” (The Justice Department denies Barr spoke to Trump about these matters.)

A week later, Giuliani met with a Zelensky advisor in Spain in what was characterized by U.S. officials as a “direct follow-up” to Trump’s call, according to the complaint.

Giuliani kicked off the saga earlier this year when he met with Yuri Lutsenko, Ukraine’s then-prosecutor general. Lutsenko claimed Hunter Biden was involved in corruption at a Ukrainian energy firm and that his father, as vice president, quashed a purported investigation into the company by forcing Kyiv to fire its top prosecutor.

Lutsenko’s claims have been roundly debunked—he even took back his allegations against Hunter Biden this week—but Giuliani and Trump solicited more information from Ukraine.

And when U.S. Ambassador Marie Yovanovitch had criticized Lutsenko, she was recalled to Washington. U.S. officials told the whistleblower her tour was “curtailed because of pressure stemming from Mr. Lutsenko’s allegations.” (Trump called her “bad news” in the call with Zelensky.)

Following the call, the U.S. special envoy for Ukraine and the EU’s ambassador communicated with Ukrainian officials about how to “navigate” Trump’s demands, according to the complaint.

The complaint details two decisions by Trump before the call to apparently squeeze Zelensky’s new government.

Trump administration officials who traveled to Kyiv for Zelensky’s inauguration in May made clear that Trump would not meet with him until he saw how the new president “chose to act.” Trump also canceled Vice President Mike Pence’s scheduled appearance at Zelensky’s inauguration, the complaint added.

While Trump and his allies worked on Zelensky, the U.S. suspended nearly $400 million in military aid to Ukraine. The decision had come “directly” from the president, the Office of Management and Budget said in meetings, according to the whistleblower. Neither OMB nor National Security Council staff “knew why this instruction had been issued,” reads the complaint.

Trump has admitted both to initially withholding aid and urging the Ukrainian president to look into Hunter Biden, who was an adviser to a Ukrainian firm. Trump has insisted there was no wrongdoing and no “quid pro quo.”

A Justice Department memo made public this week said Intelligence Community Inspector General Michael Atkinson interviewed witnesses after the complaint was filed and concluded that “statements made by the president during the call could be viewed as soliciting a foreign campaign contribution in violation of the campaign-finance laws.”

After receiving the complaint on Aug. 12, Atkinson conducted a “preliminary review” and found “some indicia of an arguable political bias on the part of the Complainant in favor of a rival political candidate,” the memo said. But Atkinson concluded that the complaint’s allegations “nonetheless appeared credible.” Atkinson alerted the House Intelligence Committee, and it subpoenaed Maguire for the complaint.

At that point the contents of the complaint were publicly unknown, but in the coming days it was reported first that it involved Ukraine, and then that it was triggered by the July 25 call with Zelensky.

The call also fueled calls for impeachment. While many Democrats have been calling for impeachment proceedings against Trump ever since the release of the Mueller Report, the whistleblower complaint proved to be the tipping point for House Speaker Nancy Pelosi, who accused Trump of a “betrayal” of his oath of office when she announced a formal impeachment inquiry on Tuesday.

While Trump apparently sought to stifle Democratic criticism by releasing the transcript of his call with Zelensky, even some Republicans seemed to think that plan backfired.

Sen. Mitt Romney (R-UT) called the transcript “troubling in the extreme,” while Sen. Ben Sasse (R-NE) told reporters “there’s obviously a lot that’s very troubling there” after viewing the whistleblower complaint.

House Republicans were apparently concerned enough to join Democrats late Wednesday in voting 421-0 for the passage of a non-binding resolution demanding that the Trump administration release the whistleblower complaint.