#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Op {
#[prost(message, repeated, tag="1")]
pub inputs: ::std::vec::Vec<Input>,
#[prost(message, optional, tag="10")]
pub platform: ::std::option::Option<Platform>,
#[prost(message, optional, tag="11")]
pub constraints: ::std::option::Option<WorkerConstraints>,
#[prost(oneof="op::Op", tags="2, 3, 4, 5")]
pub op: ::std::option::Option<op::Op>,
}
pub mod op {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Op {
#[prost(message, tag="2")]
Exec(super::ExecOp),
#[prost(message, tag="3")]
Source(super::SourceOp),
#[prost(message, tag="4")]
File(super::FileOp),
#[prost(message, tag="5")]
Build(super::BuildOp),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Platform {
#[prost(string, tag="1")]
pub architecture: std::string::String,
#[prost(string, tag="2")]
pub os: std::string::String,
#[prost(string, tag="3")]
pub variant: std::string::String,
#[prost(string, tag="4")]
pub os_version: std::string::String,
#[prost(string, repeated, tag="5")]
pub os_features: ::std::vec::Vec<std::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Input {
#[prost(string, tag="1")]
pub digest: std::string::String,
#[prost(int64, tag="2")]
pub index: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExecOp {
#[prost(message, optional, tag="1")]
pub meta: ::std::option::Option<Meta>,
#[prost(message, repeated, tag="2")]
pub mounts: ::std::vec::Vec<Mount>,
#[prost(enumeration="NetMode", tag="3")]
pub network: i32,
#[prost(enumeration="SecurityMode", tag="4")]
pub security: i32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Meta {
#[prost(string, repeated, tag="1")]
pub args: ::std::vec::Vec<std::string::String>,
#[prost(string, repeated, tag="2")]
pub env: ::std::vec::Vec<std::string::String>,
#[prost(string, tag="3")]
pub cwd: std::string::String,
#[prost(string, tag="4")]
pub user: std::string::String,
#[prost(message, optional, tag="5")]
pub proxy_env: ::std::option::Option<ProxyEnv>,
#[prost(message, repeated, tag="6")]
pub extra_hosts: ::std::vec::Vec<HostIp>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Mount {
#[prost(int64, tag="1")]
pub input: i64,
#[prost(string, tag="2")]
pub selector: std::string::String,
#[prost(string, tag="3")]
pub dest: std::string::String,
#[prost(int64, tag="4")]
pub output: i64,
#[prost(bool, tag="5")]
pub readonly: bool,
#[prost(enumeration="MountType", tag="6")]
pub mount_type: i32,
#[prost(message, optional, tag="20")]
pub cache_opt: ::std::option::Option<CacheOpt>,
#[prost(message, optional, tag="21")]
pub secret_opt: ::std::option::Option<SecretOpt>,
#[prost(message, optional, tag="22")]
pub ssh_opt: ::std::option::Option<SshOpt>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CacheOpt {
#[prost(string, tag="1")]
pub id: std::string::String,
#[prost(enumeration="CacheSharingOpt", tag="2")]
pub sharing: i32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecretOpt {
#[prost(string, tag="1")]
pub id: std::string::String,
#[prost(uint32, tag="2")]
pub uid: u32,
#[prost(uint32, tag="3")]
pub gid: u32,
#[prost(uint32, tag="4")]
pub mode: u32,
#[prost(bool, tag="5")]
pub optional: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SshOpt {
#[prost(string, tag="1")]
pub id: std::string::String,
#[prost(uint32, tag="2")]
pub uid: u32,
#[prost(uint32, tag="3")]
pub gid: u32,
#[prost(uint32, tag="4")]
pub mode: u32,
#[prost(bool, tag="5")]
pub optional: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SourceOp {
#[prost(string, tag="1")]
pub identifier: std::string::String,
#[prost(map="string, string", tag="2")]
pub attrs: ::std::collections::HashMap<std::string::String, std::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BuildOp {
#[prost(int64, tag="1")]
pub builder: i64,
#[prost(map="string, message", tag="2")]
pub inputs: ::std::collections::HashMap<std::string::String, BuildInput>,
#[prost(message, optional, tag="3")]
pub def: ::std::option::Option<Definition>,
#[prost(map="string, string", tag="4")]
pub attrs: ::std::collections::HashMap<std::string::String, std::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BuildInput {
#[prost(int64, tag="1")]
pub input: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpMetadata {
#[prost(bool, tag="1")]
pub ignore_cache: bool,
#[prost(map="string, string", tag="2")]
pub description: ::std::collections::HashMap<std::string::String, std::string::String>,
#[prost(message, optional, tag="4")]
pub export_cache: ::std::option::Option<ExportCache>,
#[prost(map="string, bool", tag="5")]
pub caps: ::std::collections::HashMap<std::string::String, bool>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExportCache {
#[prost(bool, tag="1")]
pub value: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProxyEnv {
#[prost(string, tag="1")]
pub http_proxy: std::string::String,
#[prost(string, tag="2")]
pub https_proxy: std::string::String,
#[prost(string, tag="3")]
pub ftp_proxy: std::string::String,
#[prost(string, tag="4")]
pub no_proxy: std::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WorkerConstraints {
#[prost(string, repeated, tag="1")]
pub filter: ::std::vec::Vec<std::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Definition {
#[prost(bytes, repeated, tag="1")]
pub def: ::std::vec::Vec<std::vec::Vec<u8>>,
#[prost(map="string, message", tag="2")]
pub metadata: ::std::collections::HashMap<std::string::String, OpMetadata>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HostIp {
#[prost(string, tag="1")]
pub host: std::string::String,
#[prost(string, tag="2")]
pub ip: std::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FileOp {
#[prost(message, repeated, tag="2")]
pub actions: ::std::vec::Vec<FileAction>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FileAction {
#[prost(int64, tag="1")]
pub input: i64,
#[prost(int64, tag="2")]
pub secondary_input: i64,
#[prost(int64, tag="3")]
pub output: i64,
#[prost(oneof="file_action::Action", tags="4, 5, 6, 7")]
pub action: ::std::option::Option<file_action::Action>,
}
pub mod file_action {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Action {
#[prost(message, tag="4")]
Copy(super::FileActionCopy),
#[prost(message, tag="5")]
Mkfile(super::FileActionMkFile),
#[prost(message, tag="6")]
Mkdir(super::FileActionMkDir),
#[prost(message, tag="7")]
Rm(super::FileActionRm),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FileActionCopy {
#[prost(string, tag="1")]
pub src: std::string::String,
#[prost(string, tag="2")]
pub dest: std::string::String,
#[prost(message, optional, tag="3")]
pub owner: ::std::option::Option<ChownOpt>,
#[prost(int32, tag="4")]
pub mode: i32,
#[prost(bool, tag="5")]
pub follow_symlink: bool,
#[prost(bool, tag="6")]
pub dir_copy_contents: bool,
#[prost(bool, tag="7")]
pub attempt_unpack_docker_compatibility: bool,
#[prost(bool, tag="8")]
pub create_dest_path: bool,
#[prost(bool, tag="9")]
pub allow_wildcard: bool,
#[prost(bool, tag="10")]
pub allow_empty_wildcard: bool,
#[prost(int64, tag="11")]
pub timestamp: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FileActionMkFile {
#[prost(string, tag="1")]
pub path: std::string::String,
#[prost(int32, tag="2")]
pub mode: i32,
#[prost(bytes, tag="3")]
pub data: std::vec::Vec<u8>,
#[prost(message, optional, tag="4")]
pub owner: ::std::option::Option<ChownOpt>,
#[prost(int64, tag="5")]
pub timestamp: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FileActionMkDir {
#[prost(string, tag="1")]
pub path: std::string::String,
#[prost(int32, tag="2")]
pub mode: i32,
#[prost(bool, tag="3")]
pub make_parents: bool,
#[prost(message, optional, tag="4")]
pub owner: ::std::option::Option<ChownOpt>,
#[prost(int64, tag="5")]
pub timestamp: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FileActionRm {
#[prost(string, tag="1")]
pub path: std::string::String,
#[prost(bool, tag="2")]
pub allow_not_found: bool,
#[prost(bool, tag="3")]
pub allow_wildcard: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChownOpt {
#[prost(message, optional, tag="1")]
pub user: ::std::option::Option<UserOpt>,
#[prost(message, optional, tag="2")]
pub group: ::std::option::Option<UserOpt>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserOpt {
#[prost(oneof="user_opt::User", tags="1, 2")]
pub user: ::std::option::Option<user_opt::User>,
}
pub mod user_opt {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum User {
#[prost(message, tag="1")]
ByName(super::NamedUserOpt),
#[prost(uint32, tag="2")]
ById(u32),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NamedUserOpt {
#[prost(string, tag="1")]
pub name: std::string::String,
#[prost(int64, tag="2")]
pub input: i64,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum NetMode {
Unset = 0,
Host = 1,
None = 2,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SecurityMode {
Sandbox = 0,
Insecure = 1,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum MountType {
Bind = 0,
Secret = 1,
Ssh = 2,
Cache = 3,
Tmpfs = 4,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum CacheSharingOpt {
Shared = 0,
Private = 1,
Locked = 2,
}