pipebuilder_common 0.2.2

lib for pipebuilder components
syntax = "proto3";
package build;

import "google/protobuf/timestamp.proto";

message BuildRequest {
    // project namespace
    string namespace = 1;
    // project id
    string id = 2;
    // project manifest version
    uint64 manifest_version = 3;
    // target platform
    string target_platform = 4;
}

message BuildResponse {
    // version: build version
    uint64 version = 1;
}

message CancelBuildRequest {
    // project namespace
    string namespace = 1;
    // project id
    string id = 2;
    // project build version
    uint64 build_version = 3;
}

message CancelBuildResponse {}

message ScanBuildRequest {}

message BuildMetadataKey {
    // project namespace
    string namespace = 1;
    // project id
    string id = 2;
    // project build version
    uint64 version = 3;
}

message ScanBuildResponse {
    repeated BuildMetadataKey builds = 1;
}

message GetBuildLogRequest {
    // project namespace
    string namespace = 1;
    // project id
    string id = 2;
    // project build version
    uint64 build_version = 3;
}

message GetBuildLogResponse {
    // log context
    bytes buffer = 1;
}

message DeleteBuildCacheRequest {
    // project namespace
    string namespace = 1;
    // project id
    string id = 2;
    // target platform
    string target_platform = 4;
}

message DeleteBuildCacheResponse {}

message ScanBuildCacheRequest {}

message BuildCacheMetadata {
    // project namespace
    string namespace = 1;
    // project id
    string id = 2;
    // target platform
    string target_platform = 3;
    // cache hit timestamp
    google.protobuf.Timestamp timestamp = 4;
}

message ScanBuildCacheResponse {
    repeated BuildCacheMetadata caches = 1;
}

service Builder {
    rpc Build(BuildRequest) returns (BuildResponse) {}
    rpc CancelBuild(CancelBuildRequest) returns (CancelBuildResponse) {}
    rpc GetBuildLog(GetBuildLogRequest) returns (GetBuildLogResponse) {}
    rpc ScanBuild(ScanBuildRequest) returns (ScanBuildResponse) {}
    rpc DeleteBuildCache(DeleteBuildCacheRequest) returns (DeleteBuildCacheResponse) {}
    rpc ScanBuildCache(ScanBuildCacheRequest) returns (ScanBuildCacheResponse) {}
}