diff options
Diffstat (limited to 'vendor/github.com/hashicorp/terraform/internal/tfplugin5/tfplugin5.proto')
-rw-r--r-- | vendor/github.com/hashicorp/terraform/internal/tfplugin5/tfplugin5.proto | 351 |
1 files changed, 0 insertions, 351 deletions
diff --git a/vendor/github.com/hashicorp/terraform/internal/tfplugin5/tfplugin5.proto b/vendor/github.com/hashicorp/terraform/internal/tfplugin5/tfplugin5.proto deleted file mode 100644 index 370faf7..0000000 --- a/vendor/github.com/hashicorp/terraform/internal/tfplugin5/tfplugin5.proto +++ /dev/null | |||
@@ -1,351 +0,0 @@ | |||
1 | // Terraform Plugin RPC protocol version 5.0 | ||
2 | // | ||
3 | // This file defines version 5.0 of the RPC protocol. To implement a plugin | ||
4 | // against this protocol, copy this definition into your own codebase and | ||
5 | // use protoc to generate stubs for your target language. | ||
6 | // | ||
7 | // This file will be updated in-place in the source Terraform repository for | ||
8 | // any minor versions of protocol 5, but later minor versions will always be | ||
9 | // backwards compatible. Breaking changes, if any are required, will come | ||
10 | // in a subsequent major version with its own separate proto definition. | ||
11 | // | ||
12 | // Note that only the proto files included in a release tag of Terraform are | ||
13 | // official protocol releases. Proto files taken from other commits may include | ||
14 | // incomplete changes or features that did not make it into a final release. | ||
15 | // In all reasonable cases, plugin developers should take the proto file from | ||
16 | // the tag of the most recent release of Terraform, and not from the master | ||
17 | // branch or any other development branch. | ||
18 | // | ||
19 | syntax = "proto3"; | ||
20 | |||
21 | package tfplugin5; | ||
22 | |||
23 | // DynamicValue is an opaque encoding of terraform data, with the field name | ||
24 | // indicating the encoding scheme used. | ||
25 | message DynamicValue { | ||
26 | bytes msgpack = 1; | ||
27 | bytes json = 2; | ||
28 | } | ||
29 | |||
30 | message Diagnostic { | ||
31 | enum Severity { | ||
32 | INVALID = 0; | ||
33 | ERROR = 1; | ||
34 | WARNING = 2; | ||
35 | } | ||
36 | Severity severity = 1; | ||
37 | string summary = 2; | ||
38 | string detail = 3; | ||
39 | AttributePath attribute = 4; | ||
40 | } | ||
41 | |||
42 | message AttributePath { | ||
43 | message Step { | ||
44 | oneof selector { | ||
45 | // Set "attribute_name" to represent looking up an attribute | ||
46 | // in the current object value. | ||
47 | string attribute_name = 1; | ||
48 | // Set "element_key_*" to represent looking up an element in | ||
49 | // an indexable collection type. | ||
50 | string element_key_string = 2; | ||
51 | int64 element_key_int = 3; | ||
52 | } | ||
53 | } | ||
54 | repeated Step steps = 1; | ||
55 | } | ||
56 | |||
57 | message Stop { | ||
58 | message Request { | ||
59 | } | ||
60 | message Response { | ||
61 | string Error = 1; | ||
62 | } | ||
63 | } | ||
64 | |||
65 | // RawState holds the stored state for a resource to be upgraded by the | ||
66 | // provider. It can be in one of two formats, the current json encoded format | ||
67 | // in bytes, or the legacy flatmap format as a map of strings. | ||
68 | message RawState { | ||
69 | bytes json = 1; | ||
70 | map<string, string> flatmap = 2; | ||
71 | } | ||
72 | |||
73 | // Schema is the configuration schema for a Resource, Provider, or Provisioner. | ||
74 | message Schema { | ||
75 | message Block { | ||
76 | int64 version = 1; | ||
77 | repeated Attribute attributes = 2; | ||
78 | repeated NestedBlock block_types = 3; | ||
79 | } | ||
80 | |||
81 | message Attribute { | ||
82 | string name = 1; | ||
83 | bytes type = 2; | ||
84 | string description = 3; | ||
85 | bool required = 4; | ||
86 | bool optional = 5; | ||
87 | bool computed = 6; | ||
88 | bool sensitive = 7; | ||
89 | } | ||
90 | |||
91 | message NestedBlock { | ||
92 | enum NestingMode { | ||
93 | INVALID = 0; | ||
94 | SINGLE = 1; | ||
95 | LIST = 2; | ||
96 | SET = 3; | ||
97 | MAP = 4; | ||
98 | GROUP = 5; | ||
99 | } | ||
100 | |||
101 | string type_name = 1; | ||
102 | Block block = 2; | ||
103 | NestingMode nesting = 3; | ||
104 | int64 min_items = 4; | ||
105 | int64 max_items = 5; | ||
106 | } | ||
107 | |||
108 | // The version of the schema. | ||
109 | // Schemas are versioned, so that providers can upgrade a saved resource | ||
110 | // state when the schema is changed. | ||
111 | int64 version = 1; | ||
112 | |||
113 | // Block is the top level configuration block for this schema. | ||
114 | Block block = 2; | ||
115 | } | ||
116 | |||
117 | service Provider { | ||
118 | //////// Information about what a provider supports/expects | ||
119 | rpc GetSchema(GetProviderSchema.Request) returns (GetProviderSchema.Response); | ||
120 | rpc PrepareProviderConfig(PrepareProviderConfig.Request) returns (PrepareProviderConfig.Response); | ||
121 | rpc ValidateResourceTypeConfig(ValidateResourceTypeConfig.Request) returns (ValidateResourceTypeConfig.Response); | ||
122 | rpc ValidateDataSourceConfig(ValidateDataSourceConfig.Request) returns (ValidateDataSourceConfig.Response); | ||
123 | rpc UpgradeResourceState(UpgradeResourceState.Request) returns (UpgradeResourceState.Response); | ||
124 | |||
125 | //////// One-time initialization, called before other functions below | ||
126 | rpc Configure(Configure.Request) returns (Configure.Response); | ||
127 | |||
128 | //////// Managed Resource Lifecycle | ||
129 | rpc ReadResource(ReadResource.Request) returns (ReadResource.Response); | ||
130 | rpc PlanResourceChange(PlanResourceChange.Request) returns (PlanResourceChange.Response); | ||
131 | rpc ApplyResourceChange(ApplyResourceChange.Request) returns (ApplyResourceChange.Response); | ||
132 | rpc ImportResourceState(ImportResourceState.Request) returns (ImportResourceState.Response); | ||
133 | |||
134 | rpc ReadDataSource(ReadDataSource.Request) returns (ReadDataSource.Response); | ||
135 | |||
136 | //////// Graceful Shutdown | ||
137 | rpc Stop(Stop.Request) returns (Stop.Response); | ||
138 | } | ||
139 | |||
140 | message GetProviderSchema { | ||
141 | message Request { | ||
142 | } | ||
143 | message Response { | ||
144 | Schema provider = 1; | ||
145 | map<string, Schema> resource_schemas = 2; | ||
146 | map<string, Schema> data_source_schemas = 3; | ||
147 | repeated Diagnostic diagnostics = 4; | ||
148 | } | ||
149 | } | ||
150 | |||
151 | message PrepareProviderConfig { | ||
152 | message Request { | ||
153 | DynamicValue config = 1; | ||
154 | } | ||
155 | message Response { | ||
156 | DynamicValue prepared_config = 1; | ||
157 | repeated Diagnostic diagnostics = 2; | ||
158 | } | ||
159 | } | ||
160 | |||
161 | message UpgradeResourceState { | ||
162 | message Request { | ||
163 | string type_name = 1; | ||
164 | |||
165 | // version is the schema_version number recorded in the state file | ||
166 | int64 version = 2; | ||
167 | |||
168 | // raw_state is the raw states as stored for the resource. Core does | ||
169 | // not have access to the schema of prior_version, so it's the | ||
170 | // provider's responsibility to interpret this value using the | ||
171 | // appropriate older schema. The raw_state will be the json encoded | ||
172 | // state, or a legacy flat-mapped format. | ||
173 | RawState raw_state = 3; | ||
174 | } | ||
175 | message Response { | ||
176 | // new_state is a msgpack-encoded data structure that, when interpreted with | ||
177 | // the _current_ schema for this resource type, is functionally equivalent to | ||
178 | // that which was given in prior_state_raw. | ||
179 | DynamicValue upgraded_state = 1; | ||
180 | |||
181 | // diagnostics describes any errors encountered during migration that could not | ||
182 | // be safely resolved, and warnings about any possibly-risky assumptions made | ||
183 | // in the upgrade process. | ||
184 | repeated Diagnostic diagnostics = 2; | ||
185 | } | ||
186 | } | ||
187 | |||
188 | message ValidateResourceTypeConfig { | ||
189 | message Request { | ||
190 | string type_name = 1; | ||
191 | DynamicValue config = 2; | ||
192 | } | ||
193 | message Response { | ||
194 | repeated Diagnostic diagnostics = 1; | ||
195 | } | ||
196 | } | ||
197 | |||
198 | message ValidateDataSourceConfig { | ||
199 | message Request { | ||
200 | string type_name = 1; | ||
201 | DynamicValue config = 2; | ||
202 | } | ||
203 | message Response { | ||
204 | repeated Diagnostic diagnostics = 1; | ||
205 | } | ||
206 | } | ||
207 | |||
208 | message Configure { | ||
209 | message Request { | ||
210 | string terraform_version = 1; | ||
211 | DynamicValue config = 2; | ||
212 | } | ||
213 | message Response { | ||
214 | repeated Diagnostic diagnostics = 1; | ||
215 | } | ||
216 | } | ||
217 | |||
218 | message ReadResource { | ||
219 | message Request { | ||
220 | string type_name = 1; | ||
221 | DynamicValue current_state = 2; | ||
222 | } | ||
223 | message Response { | ||
224 | DynamicValue new_state = 1; | ||
225 | repeated Diagnostic diagnostics = 2; | ||
226 | } | ||
227 | } | ||
228 | |||
229 | message PlanResourceChange { | ||
230 | message Request { | ||
231 | string type_name = 1; | ||
232 | DynamicValue prior_state = 2; | ||
233 | DynamicValue proposed_new_state = 3; | ||
234 | DynamicValue config = 4; | ||
235 | bytes prior_private = 5; | ||
236 | } | ||
237 | |||
238 | message Response { | ||
239 | DynamicValue planned_state = 1; | ||
240 | repeated AttributePath requires_replace = 2; | ||
241 | bytes planned_private = 3; | ||
242 | repeated Diagnostic diagnostics = 4; | ||
243 | |||
244 | |||
245 | // This may be set only by the helper/schema "SDK" in the main Terraform | ||
246 | // repository, to request that Terraform Core >=0.12 permit additional | ||
247 | // inconsistencies that can result from the legacy SDK type system | ||
248 | // and its imprecise mapping to the >=0.12 type system. | ||
249 | // The change in behavior implied by this flag makes sense only for the | ||
250 | // specific details of the legacy SDK type system, and are not a general | ||
251 | // mechanism to avoid proper type handling in providers. | ||
252 | // | ||
253 | // ==== DO NOT USE THIS ==== | ||
254 | // ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ==== | ||
255 | // ==== DO NOT USE THIS ==== | ||
256 | bool legacy_type_system = 5; | ||
257 | } | ||
258 | } | ||
259 | |||
260 | message ApplyResourceChange { | ||
261 | message Request { | ||
262 | string type_name = 1; | ||
263 | DynamicValue prior_state = 2; | ||
264 | DynamicValue planned_state = 3; | ||
265 | DynamicValue config = 4; | ||
266 | bytes planned_private = 5; | ||
267 | } | ||
268 | message Response { | ||
269 | DynamicValue new_state = 1; | ||
270 | bytes private = 2; | ||
271 | repeated Diagnostic diagnostics = 3; | ||
272 | |||
273 | // This may be set only by the helper/schema "SDK" in the main Terraform | ||
274 | // repository, to request that Terraform Core >=0.12 permit additional | ||
275 | // inconsistencies that can result from the legacy SDK type system | ||
276 | // and its imprecise mapping to the >=0.12 type system. | ||
277 | // The change in behavior implied by this flag makes sense only for the | ||
278 | // specific details of the legacy SDK type system, and are not a general | ||
279 | // mechanism to avoid proper type handling in providers. | ||
280 | // | ||
281 | // ==== DO NOT USE THIS ==== | ||
282 | // ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ==== | ||
283 | // ==== DO NOT USE THIS ==== | ||
284 | bool legacy_type_system = 4; | ||
285 | } | ||
286 | } | ||
287 | |||
288 | message ImportResourceState { | ||
289 | message Request { | ||
290 | string type_name = 1; | ||
291 | string id = 2; | ||
292 | } | ||
293 | |||
294 | message ImportedResource { | ||
295 | string type_name = 1; | ||
296 | DynamicValue state = 2; | ||
297 | bytes private = 3; | ||
298 | } | ||
299 | |||
300 | message Response { | ||
301 | repeated ImportedResource imported_resources = 1; | ||
302 | repeated Diagnostic diagnostics = 2; | ||
303 | } | ||
304 | } | ||
305 | |||
306 | message ReadDataSource { | ||
307 | message Request { | ||
308 | string type_name = 1; | ||
309 | DynamicValue config = 2; | ||
310 | } | ||
311 | message Response { | ||
312 | DynamicValue state = 1; | ||
313 | repeated Diagnostic diagnostics = 2; | ||
314 | } | ||
315 | } | ||
316 | |||
317 | service Provisioner { | ||
318 | rpc GetSchema(GetProvisionerSchema.Request) returns (GetProvisionerSchema.Response); | ||
319 | rpc ValidateProvisionerConfig(ValidateProvisionerConfig.Request) returns (ValidateProvisionerConfig.Response); | ||
320 | rpc ProvisionResource(ProvisionResource.Request) returns (stream ProvisionResource.Response); | ||
321 | rpc Stop(Stop.Request) returns (Stop.Response); | ||
322 | } | ||
323 | |||
324 | message GetProvisionerSchema { | ||
325 | message Request { | ||
326 | } | ||
327 | message Response { | ||
328 | Schema provisioner = 1; | ||
329 | repeated Diagnostic diagnostics = 2; | ||
330 | } | ||
331 | } | ||
332 | |||
333 | message ValidateProvisionerConfig { | ||
334 | message Request { | ||
335 | DynamicValue config = 1; | ||
336 | } | ||
337 | message Response { | ||
338 | repeated Diagnostic diagnostics = 1; | ||
339 | } | ||
340 | } | ||
341 | |||
342 | message ProvisionResource { | ||
343 | message Request { | ||
344 | DynamicValue config = 1; | ||
345 | DynamicValue connection = 2; | ||
346 | } | ||
347 | message Response { | ||
348 | string output = 1; | ||
349 | repeated Diagnostic diagnostics = 2; | ||
350 | } | ||
351 | } | ||