This change serializes unknown properties anywhere in the entire property structure, including deeply embedded inside object maps, etc. This is now done in such a way that we can recover both the computed nature of the serialized property, along with its expected eventual type, on the other side of the RPC boundary. This will let us have perfect fidelity with the new bridge's view on computed properties, rather than special casing them on "one side".
29 lines
1 KiB
Protocol Buffer
29 lines
1 KiB
Protocol Buffer
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
|
|
|
syntax = "proto3";
|
|
|
|
import "google/protobuf/struct.proto";
|
|
|
|
package lumirpc;
|
|
|
|
// Analyzer is a pluggable service that checks entire projects/stacks/snapshots, and/or individual resources,
|
|
// for arbitrary issues. These might be style, policy, correctness, security, or performance related.
|
|
service Analyzer {
|
|
// Analyze analyzes a single resource object, and returns any errors that it finds.
|
|
rpc Analyze(AnalyzeRequest) returns (AnalyzeResponse) {}
|
|
}
|
|
|
|
message AnalyzeRequest {
|
|
string type = 1; // the type token of the resource.
|
|
google.protobuf.Struct properties = 2; // the full properties to use for validation.
|
|
}
|
|
|
|
message AnalyzeResponse {
|
|
repeated AnalyzeFailure failures = 1; // the failures (or empty if none).
|
|
}
|
|
|
|
message AnalyzeFailure {
|
|
string property = 1; // the property that the analyzer rejected (or "" if general).
|
|
string reason = 2; // the reason that the analyzer rejected the request.
|
|
}
|
|
|