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 }