/// Container for `Deploy` construction options.
#[derive(Default, Debug)]
pub struct DeployStrParams<'a> {
/// Path to secret key file if the `std-fs-io` feature is enabled (enabled by default), or a
/// PEM-encoded secret key if not.
///
/// If `secret_key` is empty, the new deploy will not be signed and will need to be signed (e.g.
/// via [`sign_deploy_file`](super::sign_deploy_file)) at least once in order to be made valid.
pub secret_key: &'a str,
/// RFC3339-like formatted timestamp. e.g. `2018-02-16T00:31:37Z`.
///
/// If `timestamp` is empty, the current time will be used. Note that timestamp is UTC, not
/// local.
///
/// See [`humantime::parse_rfc3339_weak`] for more information.
pub timestamp: &'a str,
/// Time that the `Deploy` will remain valid for.
///
/// A `Deploy` can only be included in a `Block` between `timestamp` and `timestamp + ttl`.
/// Input examples: '1hr 12min', '30min 50sec', '1day'.
///
/// See [`humantime::parse_duration`] for more information.
pub ttl: &'a str,
/// Name of the chain, to avoid the `Deploy` from being accidentally or maliciously included in
/// a different chain.
pub chain_name: &'a str,
/// The hex-encoded public key of the account context under which the session code will be
/// executed.
///
/// If `session_account` is empty, the account's public key will be derived from the provided
/// `secret_key`. It is an error for both fields to be empty.
pub session_account: &'a str,
/// Gas price for the deploy.
pub gas_price_tolerance: &'a str,
}