github.com/terraform-linters/tflint-plugin-sdk@v0.22.0/plugin/internal/proto/tflint.proto (about)

     1  syntax = "proto3";
     2  option go_package = "github.com/terraform-linters/tflint-plugin-sdk/plugin/internal/proto";
     3  
     4  package proto;
     5  
     6  service RuleSet {
     7      rpc GetName(GetName.Request) returns (GetName.Response);
     8      rpc GetVersion(GetVersion.Request) returns (GetVersion.Response);
     9      rpc GetVersionConstraint(GetVersionConstraint.Request) returns (GetVersionConstraint.Response);
    10      rpc GetSDKVersion(GetSDKVersion.Request) returns (GetSDKVersion.Response);
    11      rpc GetRuleNames(GetRuleNames.Request) returns (GetRuleNames.Response);
    12      rpc GetConfigSchema(GetConfigSchema.Request) returns (GetConfigSchema.Response);
    13      rpc ApplyGlobalConfig(ApplyGlobalConfig.Request) returns (ApplyGlobalConfig.Response);
    14      rpc ApplyConfig(ApplyConfig.Request) returns (ApplyConfig.Response);
    15      rpc Check(Check.Request) returns (Check.Response);
    16  }
    17  
    18  message GetName {
    19      message Request {}
    20      message Response {
    21          string name = 1;
    22      }
    23  }
    24  
    25  message GetVersion {
    26      message Request {}
    27      message Response {
    28          string version = 1;
    29      }
    30  }
    31  
    32  message GetVersionConstraint {
    33      message Request {}
    34      message Response {
    35          string constraint = 1;
    36      }
    37  }
    38  
    39  message GetSDKVersion {
    40      message Request {}
    41      message Response {
    42          string version = 1;
    43      }
    44  }
    45  
    46  message GetRuleNames {
    47      message Request {}
    48      message Response {
    49          repeated string names = 1;
    50      }
    51  }
    52  
    53  message GetConfigSchema {
    54      message Request {}
    55      message Response {
    56          BodySchema schema = 1;
    57      }
    58  }
    59  
    60  message ApplyGlobalConfig {
    61      message Config {
    62          map<string, RuleConfig> rules = 1;
    63          bool disabled_by_default = 2;
    64          repeated string only = 3;
    65          bool fix = 4;
    66      }
    67      message RuleConfig {
    68          string name = 1;
    69          bool enabled = 2;
    70      }
    71  
    72      message Request {
    73          Config config = 1;
    74      }
    75      message Response {}
    76  }
    77  
    78  message ApplyConfig {
    79      message Request {
    80          BodyContent content = 1;
    81      }
    82      message Response {}
    83  }
    84  
    85  message Check {
    86      message Request {
    87          uint32 runner = 1;
    88      }
    89      message Response {}
    90  }
    91  
    92  service Runner {
    93      rpc GetOriginalwd(GetOriginalwd.Request) returns (GetOriginalwd.Response);
    94      rpc GetModulePath(GetModulePath.Request) returns (GetModulePath.Response);
    95      rpc GetModuleContent(GetModuleContent.Request) returns (GetModuleContent.Response);
    96      rpc GetFile(GetFile.Request) returns (GetFile.Response);
    97      rpc GetFiles(GetFiles.Request) returns (GetFiles.Response);
    98      rpc GetRuleConfigContent(GetRuleConfigContent.Request) returns (GetRuleConfigContent.Response);
    99      rpc EvaluateExpr(EvaluateExpr.Request) returns (EvaluateExpr.Response);
   100      rpc EmitIssue(EmitIssue.Request) returns (EmitIssue.Response);
   101      rpc ApplyChanges(ApplyChanges.Request) returns (ApplyChanges.Response);
   102  }
   103  
   104  enum ModuleCtxType {
   105      MODULE_CTX_TYPE_UNSPECIFIED = 0;
   106      MODULE_CTX_TYPE_SELF = 1;
   107      MODULE_CTX_TYPE_ROOT = 2;
   108  }
   109  
   110  message GetOriginalwd {
   111      message Request {}
   112      message Response {
   113          string path = 1;
   114      }
   115  }
   116  
   117  message GetModulePath {
   118      message Request {}
   119      message Response {
   120          repeated string path = 1;
   121      }
   122  }
   123  
   124  message GetModuleContent {
   125      message Hint {
   126          string resource_type = 1;
   127      }
   128      enum ExpandMode {
   129          EXPAND_MODE_UNSPECIFIED = 0;
   130          EXPAND_MODE_NONE = 1;
   131          EXPAND_MODE_EXPAND = 2;
   132      }
   133      message Option {
   134          reserved 3;
   135          ModuleCtxType module_ctx = 1;
   136          Hint hint = 2;
   137          ExpandMode expand_mode = 4;
   138      }
   139  
   140      message Request {
   141          BodySchema schema = 1;
   142          Option option = 2;
   143      }
   144      message Response {
   145          BodyContent content = 1;
   146      }
   147  }
   148  
   149  message GetFile {
   150      message Request {
   151          string name = 1;
   152      }
   153      message Response {
   154          bytes file = 1;
   155      }
   156  }
   157  
   158  message GetFiles {
   159      message Request {
   160      }
   161      message Response {
   162          map<string, bytes> files = 1;
   163      }
   164  }
   165  
   166  message GetRuleConfigContent {
   167      message Request {
   168          string name = 1;
   169          BodySchema schema = 2;
   170      }
   171      message Response {
   172          BodyContent content = 1;
   173      }
   174  }
   175  
   176  message EvaluateExpr {
   177      message Option {
   178          bytes type = 1;
   179          ModuleCtxType module_ctx = 2;
   180      }
   181  
   182      message Request {
   183          reserved 1, 2;
   184          Option option = 3;
   185          Expression expression = 4;
   186      }
   187      message Response {
   188          bytes value = 1;
   189          repeated ValueMark marks = 2;
   190      }
   191  }
   192  
   193  message EmitIssue {
   194      enum Severity {
   195          SEVERITY_UNSPECIFIED = 0;
   196          SEVERITY_ERROR = 1;
   197          SEVERITY_WARNING = 2;
   198          SEVERITY_NOTICE = 3;
   199      }
   200      message Rule {
   201          string name = 1;
   202          bool enabled = 2;
   203          Severity severity = 3;
   204          string link = 4;
   205      }
   206  
   207      message Request {
   208          Rule rule = 1;
   209          string message = 2;
   210          Range range = 3;
   211          bool fixable = 4;
   212      }
   213      message Response {
   214          bool applied = 1;
   215      }
   216  }
   217  
   218  message ApplyChanges {
   219      message Request {
   220          map<string, bytes> changes = 1;
   221      }
   222      message Response {}
   223  }
   224  
   225  enum SchemaMode {
   226      SCHEMA_MODE_UNSPECIFIED = 0;
   227      SCHEMA_MODE_DEFAULT = 1;
   228      SCHEMA_MODE_JUST_ATTRIBUTES = 2;
   229  }
   230  
   231  message BodySchema {
   232      message Attribute {
   233          string name = 1;
   234          bool required = 2;
   235      }
   236      message Block {
   237          string type = 1;
   238          repeated string label_names = 2;
   239          BodySchema body = 3;
   240      }
   241  
   242      repeated Attribute attributes = 1;
   243      repeated Block blocks = 2;
   244      SchemaMode Mode = 3;
   245  }
   246  
   247  message BodyContent {
   248      message Attribute {
   249          reserved 2, 3;
   250          string name = 1;
   251          Range range = 4;
   252          Range name_range = 5;
   253          Expression expression = 6;
   254      }
   255      message Block {
   256          string type = 1;
   257          repeated string labels = 2;
   258          BodyContent body = 3;
   259          Range def_range = 4;
   260          Range type_range = 5;
   261          repeated Range label_ranges = 6;
   262      }
   263  
   264      map<string, Attribute> attributes = 1;
   265      repeated Block blocks = 2;
   266  }
   267  
   268  message Expression {
   269      bytes bytes = 1;
   270      Range range = 2;
   271      bytes value = 3;
   272      repeated ValueMark value_marks = 4;
   273  }
   274  
   275  message Range {
   276      message Pos {
   277          int64 line = 1;
   278          int64 column = 2;
   279          int64 byte = 3;
   280      }
   281  
   282      string filename = 1;
   283      Pos start = 2;
   284      Pos end = 3;
   285  }
   286  
   287  message AttributePath {
   288      message Step {
   289          oneof selector {
   290              string attribute_name = 1;
   291              string element_key_string = 2;
   292              int64 element_key_int = 3;
   293          }
   294      }
   295      repeated Step steps = 1;
   296  }
   297  
   298  message ValueMark {
   299      AttributePath path = 1;
   300      bool sensitive = 2;
   301      bool ephemeral = 3;
   302  }
   303  
   304  enum ErrorCode {
   305      ERROR_CODE_UNSPECIFIED = 0;
   306      ERROR_CODE_UNKNOWN_VALUE = 1;
   307      ERROR_CODE_NULL_VALUE = 2;
   308      ERROR_CODE_UNEVALUABLE = 3;
   309      ERROR_CODE_SENSITIVE = 4;
   310  }
   311  
   312  message ErrorDetail {
   313      ErrorCode code = 1;
   314      string message = 2;
   315  }