diff --git a/rust/cubesql/cubeclient/src/models/mod.rs b/rust/cubesql/cubeclient/src/models/mod.rs index 8b83cf4497450..823af0dbd51d5 100644 --- a/rust/cubesql/cubeclient/src/models/mod.rs +++ b/rust/cubesql/cubeclient/src/models/mod.rs @@ -14,6 +14,7 @@ pub mod v1_cube_meta_measure; pub use self::v1_cube_meta_measure::V1CubeMetaMeasure; pub mod v1_cube_meta_nested_folder; pub use self::v1_cube_meta_nested_folder::V1CubeMetaNestedFolder; +pub use self::v1_cube_meta_nested_folder::V1CubeMetaNestedFolderMember; pub mod v1_cube_meta_segment; pub use self::v1_cube_meta_segment::V1CubeMetaSegment; pub mod v1_cube_meta_type; diff --git a/rust/cubesql/cubeclient/src/models/v1_cube_meta_nested_folder.rs b/rust/cubesql/cubeclient/src/models/v1_cube_meta_nested_folder.rs index 0ce0fb480b6a7..249d00d09cb20 100644 --- a/rust/cubesql/cubeclient/src/models/v1_cube_meta_nested_folder.rs +++ b/rust/cubesql/cubeclient/src/models/v1_cube_meta_nested_folder.rs @@ -11,16 +11,23 @@ use crate::models; use serde::{Deserialize, Serialize}; +#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] +#[serde(untagged)] +pub enum V1CubeMetaNestedFolderMember { + Simple(String), + Folder(V1CubeMetaNestedFolder), +} + #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct V1CubeMetaNestedFolder { #[serde(rename = "name")] pub name: String, #[serde(rename = "members")] - pub members: Vec, + pub members: Vec, } impl V1CubeMetaNestedFolder { - pub fn new(name: String, members: Vec) -> V1CubeMetaNestedFolder { + pub fn new(name: String, members: Vec) -> V1CubeMetaNestedFolder { V1CubeMetaNestedFolder { name, members } } } diff --git a/rust/cubesql/cubesql/src/transport/mod.rs b/rust/cubesql/cubesql/src/transport/mod.rs index 4f2afe344384d..4df745ae01b04 100644 --- a/rust/cubesql/cubesql/src/transport/mod.rs +++ b/rust/cubesql/cubesql/src/transport/mod.rs @@ -10,6 +10,8 @@ pub type CubeMetaMeasure = cubeclient::models::V1CubeMetaMeasure; pub type CubeMetaSegment = cubeclient::models::V1CubeMetaSegment; pub type CubeMetaJoin = cubeclient::models::V1CubeMetaJoin; pub type CubeMetaFolder = cubeclient::models::V1CubeMetaFolder; +pub type CubeMetaNestedFolder = cubeclient::models::V1CubeMetaNestedFolder; +pub type CubeMetaNestedFolderMember = cubeclient::models::V1CubeMetaNestedFolderMember; pub type CubeMetaHierarchy = cubeclient::models::V1CubeMetaHierarchy; // Request/Response pub type TransportLoadResponse = cubeclient::models::V1LoadResponse;