// Copyright 2016-2018, Pulumi Corporation. All rights reserved. syntax = "proto3"; import "plugin.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/struct.proto"; package pulumirpc; // 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) {} // GetPluginInfo returns generic information about this plugin, like its version. rpc GetPluginInfo(google.protobuf.Empty) returns (PluginInfo) {} } 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. }