terraform_parser/
values_representation.rs1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4#[derive(Serialize, Deserialize)]
5pub struct ValuesRepresentation {
6 pub outputs: HashMap<String, Output>,
7 pub root_module: Module,
8}
9
10#[derive(Serialize, Deserialize)]
11pub struct Output {
12 pub value: serde_json::Value,
13 pub sensitive: bool,
14}
15
16#[derive(Serialize, Deserialize)]
17pub struct Module {
18 pub address: Option<String>,
20 pub resources: Vec<Resource>,
21 pub child_modules: Option<Vec<Module>>,
22}
23
24#[derive(Serialize, Deserialize)]
25pub struct Resource {
26 pub address: String,
27 pub mode: Mode,
28 #[serde(rename = "type")]
29 pub resource_type: String,
30 pub name: String,
31 pub index: Option<serde_json::Value>,
32 pub provider_name: String,
33 pub schema_version: i8,
34 pub values: HashMap<String, serde_json::Value>,
35 pub sensitive_values: HashMap<String, serde_json::Value>,
36}
37
38#[derive(Serialize, Deserialize)]
39#[serde(rename_all = "lowercase")]
40pub enum Mode {
41 Managed,
42 Data,
43}