As per discussion in https://s.apache.org/beam-fn-api-container-contract, we need to define the provision API to allow boot code access to pipeline options, in particular.
It is proposed as a separate API instead of merging it with control or artifact:
(1) Not merging with control avoids having the boot code talk to control, only to disconnect and have the SDK harness connect. The runner can't then use the lifetime of the connection to be the lifetime of the SDK harness.
(2) Not merging with artifact allows for simple, reusable artifact proxies.