terraform_parser/
values_representation.rs

1use 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    /// `None` for the root module
19    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}