1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Adapted from
// https://github.com/wasmCloud/wasmcloud-otp/blob/5f13500646d9e077afa1fca67a3fe9c8df5f3381/host_core/native/hostcore_wasmcloud_native/src/oci.rs

use std::path::PathBuf;

use serde::{Deserialize, Serialize};

/// Configuration options for OCI operations.
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct Config {
    /// Additional CAs to include in the OCI client configuration
    pub additional_ca_paths: Vec<PathBuf>,
    /// Whether or not to allow downloading OCI artifacts with the tag `latest`
    pub allow_latest: bool,
    /// A list of OCI registries that are allowed to be accessed over HTTP
    pub allowed_insecure: Vec<String>,
    /// Used in tandem with `oci_user` and `oci_password` to override credentials for a specific OCI registry.
    pub oci_registry: Option<String>,
    /// Username for the OCI registry specified by `oci_registry`.
    pub oci_user: Option<String>,
    /// Password for the OCI registry specified by `oci_registry`.
    pub oci_password: Option<String>,
}