mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-10-31 16:13:45 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			150 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
| syntax = "proto3";
 | |
| 
 | |
| package moby.buildkit.v1;
 | |
| 
 | |
| // The control API is currently considered experimental and may break in a backwards
 | |
| // incompatible way.
 | |
| 
 | |
| import "github.com/gogo/protobuf/gogoproto/gogo.proto";
 | |
| import "google/protobuf/timestamp.proto";
 | |
| import "github.com/moby/buildkit/solver/pb/ops.proto";
 | |
| import "github.com/moby/buildkit/api/types/worker.proto";
 | |
| 
 | |
| option (gogoproto.sizer_all) = true;
 | |
| option (gogoproto.marshaler_all) = true;
 | |
| option (gogoproto.unmarshaler_all) = true;
 | |
| 
 | |
| service Control {
 | |
| 	rpc DiskUsage(DiskUsageRequest) returns (DiskUsageResponse);
 | |
| 	rpc Prune(PruneRequest) returns (stream UsageRecord);
 | |
| 	rpc Solve(SolveRequest) returns (SolveResponse);
 | |
| 	rpc Status(StatusRequest) returns (stream StatusResponse);
 | |
| 	rpc Session(stream BytesMessage) returns (stream BytesMessage);
 | |
| 	rpc ListWorkers(ListWorkersRequest) returns (ListWorkersResponse);
 | |
| 	// rpc Info(InfoRequest) returns (InfoResponse);
 | |
| }
 | |
| 
 | |
| message PruneRequest {
 | |
| 	repeated string filter = 1;
 | |
| 	bool all = 2;
 | |
| 	int64 keepDuration = 3 [(gogoproto.nullable) = true];
 | |
| 	int64 keepBytes = 4 [(gogoproto.nullable) = true];
 | |
| }
 | |
| 
 | |
| message DiskUsageRequest {
 | |
| 	repeated string filter = 1; 
 | |
| }
 | |
| 
 | |
| message DiskUsageResponse {
 | |
| 	repeated UsageRecord record = 1;
 | |
| }
 | |
| 
 | |
| message UsageRecord {
 | |
| 	string ID = 1;
 | |
| 	bool Mutable = 2;
 | |
| 	bool InUse = 3;
 | |
| 	int64 Size = 4;
 | |
| 	string Parent = 5;
 | |
| 	google.protobuf.Timestamp CreatedAt = 6 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
 | |
| 	google.protobuf.Timestamp LastUsedAt = 7 [(gogoproto.stdtime) = true];
 | |
| 	int64 UsageCount = 8;
 | |
| 	string Description = 9;
 | |
| 	string RecordType = 10;
 | |
| 	bool Shared = 11;
 | |
| }
 | |
| 
 | |
| message SolveRequest {
 | |
| 	string Ref = 1;
 | |
| 	pb.Definition Definition = 2;
 | |
| 	string Exporter = 3;
 | |
| 	map<string, string> ExporterAttrs = 4;
 | |
| 	string Session = 5;
 | |
| 	string Frontend = 6;
 | |
| 	map<string, string> FrontendAttrs = 7;
 | |
| 	CacheOptions Cache = 8 [(gogoproto.nullable) = false];
 | |
| 	repeated string Entitlements = 9 [(gogoproto.customtype) = "github.com/moby/buildkit/util/entitlements.Entitlement" ];
 | |
| }
 | |
| 
 | |
| message CacheOptions {
 | |
| 	// ExportRefDeprecated is deprecated in favor or the new Exports since BuildKit v0.4.0.
 | |
| 	// When ExportRefDeprecated is set, the solver appends
 | |
| 	// {.Type = "registry", .Attrs = ExportAttrs.add("ref", ExportRef)}
 | |
| 	// to Exports for compatibility. (planned to be removed)
 | |
| 	string ExportRefDeprecated = 1;
 | |
| 	// ImportRefsDeprecated is deprecated in favor or the new Imports since BuildKit v0.4.0.
 | |
| 	// When ImportRefsDeprecated is set, the solver appends
 | |
| 	// {.Type = "registry", .Attrs = {"ref": importRef}}
 | |
| 	// for each of the ImportRefs entry to Imports for compatibility. (planned to be removed)
 | |
| 	repeated string ImportRefsDeprecated = 2;
 | |
| 	// ExportAttrsDeprecated is deprecated since BuildKit v0.4.0.
 | |
| 	// See the description of ExportRefDeprecated.
 | |
| 	map<string, string> ExportAttrsDeprecated = 3;
 | |
| 	// Exports was introduced in BuildKit v0.4.0.
 | |
| 	repeated CacheOptionsEntry Exports = 4;
 | |
| 	// Imports was introduced in BuildKit v0.4.0.
 | |
| 	repeated CacheOptionsEntry Imports = 5;
 | |
| }
 | |
| 
 | |
| message CacheOptionsEntry {
 | |
| 	// Type is like "registry" or "local"
 | |
| 	string Type = 1;
 | |
| 	// Attrs are like mode=(min,max), ref=example.com:5000/foo/bar .
 | |
| 	// See cache importer/exporter implementations' documentation.
 | |
| 	map<string, string> Attrs = 2;
 | |
| }
 | |
| 
 | |
| message SolveResponse {
 | |
| 	map<string, string> ExporterResponse = 1;
 | |
| }
 | |
| 
 | |
| message StatusRequest {
 | |
| 	string Ref = 1;
 | |
| }
 | |
| 
 | |
| message StatusResponse {
 | |
| 	repeated Vertex vertexes = 1;
 | |
| 	repeated VertexStatus statuses = 2;
 | |
| 	repeated VertexLog logs = 3;
 | |
| }
 | |
| 
 | |
| message Vertex {
 | |
| 	string digest = 1 [(gogoproto.customtype) = "github.com/opencontainers/go-digest.Digest", (gogoproto.nullable) = false];
 | |
| 	repeated string inputs = 2 [(gogoproto.customtype) = "github.com/opencontainers/go-digest.Digest", (gogoproto.nullable) = false];
 | |
| 	string name = 3;
 | |
| 	bool cached = 4;
 | |
| 	google.protobuf.Timestamp started = 5 [(gogoproto.stdtime) = true ];
 | |
| 	google.protobuf.Timestamp completed = 6 [(gogoproto.stdtime) = true ];
 | |
| 	string error = 7; // typed errors?
 | |
| }
 | |
| 
 | |
| message VertexStatus {
 | |
| 	string ID = 1;
 | |
| 	string vertex = 2 [(gogoproto.customtype) = "github.com/opencontainers/go-digest.Digest", (gogoproto.nullable) = false];
 | |
| 	string name = 3;
 | |
| 	int64 current = 4;
 | |
| 	int64 total = 5;
 | |
| 	// TODO: add started, completed
 | |
| 	google.protobuf.Timestamp timestamp = 6 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
 | |
| 	google.protobuf.Timestamp started = 7 [(gogoproto.stdtime) = true ];
 | |
| 	google.protobuf.Timestamp completed = 8 [(gogoproto.stdtime) = true ];
 | |
| }
 | |
| 
 | |
| message VertexLog {
 | |
| 	string vertex = 1 [(gogoproto.customtype) = "github.com/opencontainers/go-digest.Digest", (gogoproto.nullable) = false];
 | |
| 	google.protobuf.Timestamp timestamp = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
 | |
| 	int64 stream = 3;
 | |
| 	bytes msg = 4;
 | |
| }
 | |
| 
 | |
| message BytesMessage {
 | |
| 	bytes data = 1;
 | |
| }
 | |
| 
 | |
| message ListWorkersRequest {
 | |
| 	repeated string filter = 1; // containerd style
 | |
| }
 | |
| 
 | |
| message ListWorkersResponse {
 | |
| 	repeated moby.buildkit.v1.types.WorkerRecord record = 1;
 | |
| }
 | 
