interface store { /// An error type that encapsulates the different errors that can occur fetching configuration values. variant error { /// This indicates an error from an "upstream" config source. /// As this could be almost _anything_ (such as Vault, Kubernetes ConfigMaps, KeyValue buckets, etc), /// the error message is a string. upstream(string), /// This indicates an error from an I/O operation. /// As this could be almost _anything_ (such as a file read, network connection, etc), /// the error message is a string. /// Depending on how this ends up being consumed, /// we may consider moving this to use the `wasi:io/error` type instead. /// For simplicity right now in supporting multiple implementations, it is being left as a string. io(string), } /// Gets a configuration value of type `string` associated with the `key`. /// /// The value is returned as an `option`. If the key is not found, /// `Ok(none)` is returned. If an error occurs, an `Err(error)` is returned. get: func( /// A string key to fetch key: string ) -> result, error>; /// Gets a list of configuration key-value pairs of type `string`. /// /// If an error occurs, an `Err(error)` is returned. get-all: func() -> result>, error>; }