syntax = "proto3";
package smartnoise;
import "base.proto";
import "components.proto";
import "value.proto";
// REQUESTS
// VALIDATOR API
message RequestValidateAnalysis {
Analysis analysis = 1;
Release release = 2;
}
message RequestComputePrivacyUsage {
Analysis analysis = 1;
Release release = 2;
}
message RequestGenerateReport {
Analysis analysis = 1;
Release release = 2;
}
message RequestGetProperties {
Analysis analysis = 1;
Release release = 2;
// only compute properties for these nodes. If empty, properties for all nodes are returned
repeated uint32 node_ids = 3;
}
message RequestAccuracyToPrivacyUsage {
PrivacyDefinition privacy_definition = 1;
Component component = 2;
ArgumentProperties properties = 3;
Accuracies accuracies = 4;
IndexmapReleaseNode public_arguments = 5;
}
message RequestPrivacyUsageToAccuracy {
PrivacyDefinition privacy_definition = 1;
Component component = 2;
ArgumentProperties properties = 3;
double alpha = 4;
IndexmapReleaseNode public_arguments = 5;
}
message RequestExpandComponent {
Component component = 1;
ArgumentProperties properties = 2;
IndexmapReleaseNode arguments = 3;
PrivacyDefinition privacy_definition = 4;
uint32 component_id = 5;
uint32 maximum_id = 6;
}
// REQUESTS
// RUNTIME API
message RequestRelease {
Analysis analysis = 1;
Release release = 2;
// enable to return stack traces in the error response variant
bool stack_trace = 10;
// configure how much data should be returned from runtime
FilterLevel filter_level = 11;
}
// RESPONSES
// VALIDATOR API
message ResponseValidateAnalysis {
message Validated {
bool value = 1;
string message = 2;
}
oneof value {
Validated data = 1;
Error error = 2;
}
}
message ResponseComputePrivacyUsage {
oneof value {
PrivacyUsage data = 1;
Error error = 2;
}
}
message ResponseGenerateReport {
oneof value {
string data = 1;
Error error = 2;
}
}
message ResponseGetProperties {
oneof value {
GraphProperties data = 1;
Error error = 2;
}
}
message ResponseAccuracyToPrivacyUsage {
oneof value {
PrivacyUsages data = 1;
Error error = 2;
}
}
message ResponsePrivacyUsageToAccuracy {
oneof value {
Accuracies data = 1;
Error error = 2;
}
}
message ResponseExpandComponent {
oneof value {
ComponentExpansion data = 1;
Error error = 2;
}
}
// RESPONSES
// RUNTIME API
message ResponseRelease {
message Success {
Release release = 1;
repeated Error warnings = 2;
}
oneof value {
Success data = 1;
Error error = 2;
}
}