Revenue - Performance obligation (Details) - USD ($) $ in Thousands |
Dec. 31, 2023 |
Dec. 31, 2022 |
Dec. 31, 2021 |
|---|---|---|---|
| Revenue | |||
| Remaining performance obligation | $ 1,878,884 | $ 2,828,588 | $ 2,177,268 |
| Within one year | |||
| Revenue | |||
| Remaining performance obligation | 302,046 | 418,137 | 351,071 |
| 1-2 years | |||
| Revenue | |||
| Remaining performance obligation | 271,463 | 386,416 | 309,861 |
| 2-3 years | |||
| Revenue | |||
| Remaining performance obligation | 214,028 | 309,326 | 255,791 |
| 3-4 years | |||
| Revenue | |||
| Remaining performance obligation | 203,051 | 288,244 | 211,615 |
| 4-5 years | |||
| Revenue | |||
| Remaining performance obligation | 184,186 | 276,816 | 190,018 |
| After 5 years | |||
| Revenue | |||
| Remaining performance obligation | $ 704,110 | $ 1,149,649 | $ 858,912 |