$fallbackKeys * @param array $oneTimeKeys */ public function __construct( private ?DeviceKeys $deviceKeys = null, private ?array $fallbackKeys = null, private ?array $oneTimeKeys = null, ) {} public function getUri(string $scheme, string $serverName, ApiPathVersion $version): string { return "{$scheme}://{$serverName}/_matrix/client/{$version}/keys/upload"; } public function getQueryParameters(): array { return []; } public function getBody(): array { return array_filter([ "device_keys" => $this->deviceKeys, "fallback_keys" => $this->fallbackKeys, "one_time_keys" => $this->oneTimeKeys, ], fn ($value) => ! is_null($value)); } }