#[derive(Debug, Clone, ::serde::Deserialize, ::serde::Serialize)]
pub struct App {
#[serde(rename = "authorized")]
pub authorized: ::core::primitive::bool,
#[serde(rename = "createInFolderTemplate")]
pub create_in_folder_template: ::alloc::string::String,
#[serde(rename = "createUrl")]
pub create_url: ::alloc::string::String,
#[serde(rename = "hasDriveWideScope")]
pub has_drive_wide_scope: ::core::primitive::bool,
#[serde(rename = "icons")]
pub icons: ::alloc::vec::Vec<crate::discovery::schemas::app_icons::AppIcons>,
#[serde(rename = "id")]
pub id: ::alloc::string::String,
#[serde(rename = "installed")]
pub installed: ::core::primitive::bool,
#[serde(rename = "kind")]
pub kind: ::alloc::string::String,
#[serde(rename = "longDescription")]
pub long_description: ::alloc::string::String,
#[serde(rename = "name")]
pub name: ::alloc::string::String,
#[serde(rename = "objectType")]
pub object_type: ::alloc::string::String,
#[serde(rename = "openUrlTemplate")]
pub open_url_template: ::alloc::string::String,
#[serde(rename = "primaryFileExtensions")]
pub primary_file_extensions: ::alloc::vec::Vec<::alloc::string::String>,
#[serde(rename = "primaryMimeTypes")]
pub primary_mime_types: ::alloc::vec::Vec<::alloc::string::String>,
#[serde(rename = "productId")]
pub product_id: ::alloc::string::String,
#[serde(rename = "productUrl")]
pub product_url: ::alloc::string::String,
#[serde(rename = "secondaryFileExtensions")]
pub secondary_file_extensions: ::alloc::vec::Vec<::alloc::string::String>,
#[serde(rename = "secondaryMimeTypes")]
pub secondary_mime_types: ::alloc::vec::Vec<::alloc::string::String>,
#[serde(rename = "shortDescription")]
pub short_description: ::alloc::string::String,
#[serde(rename = "supportsCreate")]
pub supports_create: ::core::primitive::bool,
#[serde(rename = "supportsImport")]
pub supports_import: ::core::primitive::bool,
#[serde(rename = "supportsMultiOpen")]
pub supports_multi_open: ::core::primitive::bool,
#[serde(rename = "supportsOfflineCreate")]
pub supports_offline_create: ::core::primitive::bool,
#[serde(rename = "useByDefault")]
pub use_by_default: ::core::primitive::bool,
}
#[derive(Debug, Clone, ::serde::Deserialize, ::serde::Serialize, Default)]
pub struct AppPartial {
#[serde(rename = "authorized")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub authorized: ::core::option::Option<::core::primitive::bool>,
#[serde(rename = "createInFolderTemplate")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub create_in_folder_template: ::core::option::Option<::alloc::string::String>,
#[serde(rename = "createUrl")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub create_url: ::core::option::Option<::alloc::string::String>,
#[serde(rename = "hasDriveWideScope")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub has_drive_wide_scope: ::core::option::Option<::core::primitive::bool>,
#[serde(rename = "icons")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub icons: ::core::option::Option<
::alloc::vec::Vec<crate::discovery::schemas::app_icons::AppIconsPartial>,
>,
#[serde(rename = "id")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub id: ::core::option::Option<::alloc::string::String>,
#[serde(rename = "installed")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub installed: ::core::option::Option<::core::primitive::bool>,
#[serde(rename = "kind")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub kind: ::core::option::Option<::alloc::string::String>,
#[serde(rename = "longDescription")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub long_description: ::core::option::Option<::alloc::string::String>,
#[serde(rename = "name")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub name: ::core::option::Option<::alloc::string::String>,
#[serde(rename = "objectType")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub object_type: ::core::option::Option<::alloc::string::String>,
#[serde(rename = "openUrlTemplate")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub open_url_template: ::core::option::Option<::alloc::string::String>,
#[serde(rename = "primaryFileExtensions")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub primary_file_extensions: ::core::option::Option<
::alloc::vec::Vec<::alloc::string::String>,
>,
#[serde(rename = "primaryMimeTypes")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub primary_mime_types: ::core::option::Option<
::alloc::vec::Vec<::alloc::string::String>,
>,
#[serde(rename = "productId")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub product_id: ::core::option::Option<::alloc::string::String>,
#[serde(rename = "productUrl")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub product_url: ::core::option::Option<::alloc::string::String>,
#[serde(rename = "secondaryFileExtensions")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub secondary_file_extensions: ::core::option::Option<
::alloc::vec::Vec<::alloc::string::String>,
>,
#[serde(rename = "secondaryMimeTypes")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub secondary_mime_types: ::core::option::Option<
::alloc::vec::Vec<::alloc::string::String>,
>,
#[serde(rename = "shortDescription")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub short_description: ::core::option::Option<::alloc::string::String>,
#[serde(rename = "supportsCreate")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub supports_create: ::core::option::Option<::core::primitive::bool>,
#[serde(rename = "supportsImport")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub supports_import: ::core::option::Option<::core::primitive::bool>,
#[serde(rename = "supportsMultiOpen")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub supports_multi_open: ::core::option::Option<::core::primitive::bool>,
#[serde(rename = "supportsOfflineCreate")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub supports_offline_create: ::core::option::Option<::core::primitive::bool>,
#[serde(rename = "useByDefault")]
#[serde(skip_serializing_if = "::core::option::Option::is_none")]
pub use_by_default: ::core::option::Option<::core::primitive::bool>,
}