just a quick update: egress IPs are now part of the IP assignments endpoints in Machines API.
you can create IPs with type: "egress_v4" | "egress_v6" | "egress_pair" (egress_pair assigns both a v4 and v6 at the same time, which is recommended) and they will show up with egress: true in responses.
note this only allows managing app-scoped egress IPs - machine-scoped egress IPs are deprecated, but can still be managed via flyctl.