//! The data types sent to and returned from the API client.
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
/// JSON template for Alias object in Directory API.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Alias {
/**
* JSON template for Alias object in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub alias: String,
/**
* JSON template for Alias object in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* JSON template for Alias object in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub id: String,
/**
* JSON template for Alias object in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* JSON template for Alias object in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "primaryEmail"
)]
pub primary_email: String,
}
/// JSON response template to list aliases in Directory API.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Aliases {
/**
* JSON response template to list aliases in Directory API.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub aliases: Vec<String>,
/**
* JSON response template to list aliases in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* JSON response template to list aliases in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
}
/// An application-specific password (ASP) is used with applications that do not accept a verification code when logging into the application on certain devices. The ASP access code is used instead of the login and password you commonly use when accessing an application through a browser. For more information about ASPs and how to create one, see the [help center](https://support.google.com/a/answer/2537800#asp).
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Asp {
/**
* An application-specific password (ASP) is used with applications that do not accept a verification code when logging into the application on certain devices. The ASP access code is used instead of the login and password you commonly use when accessing an application through a browser. For more information about ASPs and how to create one, see the [help center](https://support.google.com/a/answer/2537800#asp).
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "codeId"
)]
pub code_id: i64,
/**
* An application-specific password (ASP) is used with applications that do not accept a verification code when logging into the application on certain devices. The ASP access code is used instead of the login and password you commonly use when accessing an application through a browser. For more information about ASPs and how to create one, see the [help center](https://support.google.com/a/answer/2537800#asp).
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "creationTime"
)]
pub creation_time: i64,
/**
* An application-specific password (ASP) is used with applications that do not accept a verification code when logging into the application on certain devices. The ASP access code is used instead of the login and password you commonly use when accessing an application through a browser. For more information about ASPs and how to create one, see the [help center](https://support.google.com/a/answer/2537800#asp).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* An application-specific password (ASP) is used with applications that do not accept a verification code when logging into the application on certain devices. The ASP access code is used instead of the login and password you commonly use when accessing an application through a browser. For more information about ASPs and how to create one, see the [help center](https://support.google.com/a/answer/2537800#asp).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* An application-specific password (ASP) is used with applications that do not accept a verification code when logging into the application on certain devices. The ASP access code is used instead of the login and password you commonly use when accessing an application through a browser. For more information about ASPs and how to create one, see the [help center](https://support.google.com/a/answer/2537800#asp).
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "lastTimeUsed"
)]
pub last_time_used: i64,
/**
* An application-specific password (ASP) is used with applications that do not accept a verification code when logging into the application on certain devices. The ASP access code is used instead of the login and password you commonly use when accessing an application through a browser. For more information about ASPs and how to create one, see the [help center](https://support.google.com/a/answer/2537800#asp).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub name: String,
/**
* An application-specific password (ASP) is used with applications that do not accept a verification code when logging into the application on certain devices. The ASP access code is used instead of the login and password you commonly use when accessing an application through a browser. For more information about ASPs and how to create one, see the [help center](https://support.google.com/a/answer/2537800#asp).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "userKey"
)]
pub user_key: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Asps {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* A list of ASP resources.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub items: Vec<Asp>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
}
/**
* Message severity
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum Severity {
#[serde(rename = "SEVERITY_ERROR")]
SeverityError,
#[serde(rename = "SEVERITY_INFO")]
SeverityInfo,
#[serde(rename = "SEVERITY_UNSPECIFIED")]
SeverityUnspecified,
#[serde(rename = "SEVERITY_WARNING")]
SeverityWarning,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for Severity {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Severity::SeverityError => "SEVERITY_ERROR",
Severity::SeverityInfo => "SEVERITY_INFO",
Severity::SeverityUnspecified => "SEVERITY_UNSPECIFIED",
Severity::SeverityWarning => "SEVERITY_WARNING",
Severity::Noop => "",
Severity::FallthroughString => "*",
}
.fmt(f)
}
}
impl Severity {
pub fn is_noop(&self) -> bool {
matches!(self, Severity::Noop)
}
}
/// Auxiliary message about issues with printers or settings. Example: {message_type:AUXILIARY_MESSAGE_WARNING, field_mask:make_and_model, message:"Given printer is invalid or no longer supported."}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct AuxiliaryMessage {
/**
* Auxiliary message about issues with printers or settings. Example: {message_type:AUXILIARY_MESSAGE_WARNING, field_mask:make_and_model, message:"Given printer is invalid or no longer supported."}
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "auxiliaryMessage"
)]
pub auxiliary_message: String,
/**
* Auxiliary message about issues with printers or settings. Example: {message_type:AUXILIARY_MESSAGE_WARNING, field_mask:make_and_model, message:"Given printer is invalid or no longer supported."}
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "fieldMask"
)]
pub field_mask: String,
/**
* Auxiliary message about issues with printers or settings. Example: {message_type:AUXILIARY_MESSAGE_WARNING, field_mask:make_and_model, message:"Given printer is invalid or no longer supported."}
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub severity: Option<Severity>,
}
/// Request for adding new printers in batch.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct BatchCreatePrintersRequest {
/**
* Request for adding new printers in batch.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub requests: Vec<CreatePrinterRequest>,
}
/// Response for adding new printers in batch.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct BatchCreatePrintersResponse {
/**
* Response for adding new printers in batch.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub failures: Vec<FailureInfo>,
/**
* Response for adding new printers in batch.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub printers: Vec<Printer>,
}
/// Request for deleting existing printers in batch.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct BatchDeletePrintersRequest {
/**
* Request for deleting existing printers in batch.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "printerIds"
)]
pub printer_ids: Vec<String>,
}
/// Response for deleting existing printers in batch.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct BatchDeletePrintersResponse {
/**
* Response for deleting existing printers in batch.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "failedPrinters"
)]
pub failed_printers: Vec<FailureInfo>,
/**
* Response for deleting existing printers in batch.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "printerIds"
)]
pub printer_ids: Vec<String>,
}
/// Public API: Resources.buildings
#[derive(Serialize, Default, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Building {
/**
* Public API: Resources.buildings
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address: Option<BuildingAddress>,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "buildingId"
)]
pub building_id: String,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "buildingName"
)]
pub building_name: String,
/**
* Public API: Resources.buildings
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub coordinates: Option<BuildingCoordinates>,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub description: String,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etags: String,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "floorNames"
)]
pub floor_names: Vec<String>,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
}
/// Public API: Resources.buildings
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct BuildingAddress {
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "addressLines"
)]
pub address_lines: Vec<String>,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "administrativeArea"
)]
pub administrative_area: String,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "languageCode"
)]
pub language_code: String,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub locality: String,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "postalCode"
)]
pub postal_code: String,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "regionCode"
)]
pub region_code: String,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub sublocality: String,
}
/// Public API: Resources.buildings
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct BuildingCoordinates {
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_f64",
deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
)]
pub latitude: f64,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_f64",
deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
)]
pub longitude: f64,
}
/// Public API: Resources.buildings
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Buildings {
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub buildings: Vec<Building>,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* Public API: Resources.buildings
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "nextPageToken"
)]
pub next_page_token: String,
}
/// Public API: Resources.calendars
#[derive(Serialize, Default, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct CalendarResource {
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "buildingId"
)]
pub building_id: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
)]
pub capacity: i64,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etags: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "featureInstances"
)]
pub feature_instances: Option<serde_json::Value>,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "floorName"
)]
pub floor_name: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "floorSection"
)]
pub floor_section: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "generatedResourceName"
)]
pub generated_resource_name: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "resourceCategory"
)]
pub resource_category: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "resourceDescription"
)]
pub resource_description: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "resourceEmail"
)]
pub resource_email: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "resourceId"
)]
pub resource_id: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "resourceName"
)]
pub resource_name: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "resourceType"
)]
pub resource_type: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "userVisibleDescription"
)]
pub user_visible_description: String,
}
/// Public API: Resources.calendars
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct CalendarResources {
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub items: Vec<CalendarResource>,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* Public API: Resources.calendars
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "nextPageToken"
)]
pub next_page_token: String,
}
/// An notification channel used to watch for resource changes.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Channel {
/**
* An notification channel used to watch for resource changes.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub address: String,
/**
* An notification channel used to watch for resource changes.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
)]
pub expiration: i64,
/**
* An notification channel used to watch for resource changes.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub id: String,
/**
* An notification channel used to watch for resource changes.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* An notification channel used to watch for resource changes.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub params: String,
/**
* An notification channel used to watch for resource changes.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub payload: bool,
/**
* An notification channel used to watch for resource changes.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "resourceId"
)]
pub resource_id: String,
/**
* An notification channel used to watch for resource changes.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "resourceUri"
)]
pub resource_uri: String,
/**
* An notification channel used to watch for resource changes.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub token: String,
/**
* An notification channel used to watch for resource changes.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct ActiveTimeRanges {
/**
* The unique ID of the ASP.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "activeTime"
)]
pub active_time: i64,
/**
* Date of usage
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_format::deserialize"
)]
pub date: Option<chrono::NaiveDate>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct CpuTemperatureInfo {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub label: String,
/**
* The unique ID of the ASP.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
)]
pub temperature: i64,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct CpuStatusReports {
/**
* List of CPU temperature samples.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "cpuTemperatureInfo"
)]
pub cpu_temperature_info: Vec<CpuTemperatureInfo>,
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "cpuUtilizationPercentageInfo"
)]
pub cpu_utilization_percentage_info: Vec<i64>,
/**
* Date and time the report was received.
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "reportTime"
)]
pub report_time: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct DeviceFiles {
/**
* Date and time the report was received.
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "createTime"
)]
pub create_time: Option<chrono::DateTime<chrono::Utc>>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "downloadUrl"
)]
pub download_url: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub name: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct VolumeInfo {
/**
* The unique ID of the ASP.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "storageFree"
)]
pub storage_free: i64,
/**
* The unique ID of the ASP.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "storageTotal"
)]
pub storage_total: i64,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "volumeId"
)]
pub volume_id: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct DiskVolumeReports {
/**
* Disk volumes
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "volumeInfo"
)]
pub volume_info: Vec<VolumeInfo>,
}
/// Information for an ip address.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct LastKnownNetwork {
/**
* Information for an ip address.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "ipAddress"
)]
pub ip_address: String,
/**
* Information for an ip address.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "wanIpAddress"
)]
pub wan_ip_address: String,
}
/// List of recent device users, in descending order, by last login time.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct RecentUsers {
/**
* List of recent device users, in descending order, by last login time.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub email: String,
/**
* List of recent device users, in descending order, by last login time.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct SystemRamFreeReports {
/**
* Date and time the report was received.
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "reportTime"
)]
pub report_time: Option<chrono::DateTime<chrono::Utc>>,
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "systemRamFreeInfo"
)]
pub system_ram_free_info: Vec<i64>,
}
/// Trusted Platform Module (TPM) (Read-only)
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct TpmVersionInfo {
/**
* Trusted Platform Module (TPM) (Read-only)
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub family: String,
/**
* Trusted Platform Module (TPM) (Read-only)
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "firmwareVersion"
)]
pub firmware_version: String,
/**
* Trusted Platform Module (TPM) (Read-only)
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub manufacturer: String,
/**
* Trusted Platform Module (TPM) (Read-only)
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "specLevel"
)]
pub spec_level: String,
/**
* Trusted Platform Module (TPM) (Read-only)
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "tpmModel"
)]
pub tpm_model: String,
/**
* Trusted Platform Module (TPM) (Read-only)
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "vendorSpecific"
)]
pub vendor_specific: String,
}
/// Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct ChromeOsDevice {
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "activeTimeRanges"
)]
pub active_time_ranges: Vec<ActiveTimeRanges>,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "annotatedAssetId"
)]
pub annotated_asset_id: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "annotatedLocation"
)]
pub annotated_location: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "annotatedUser"
)]
pub annotated_user: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "autoUpdateExpiration"
)]
pub auto_update_expiration: i64,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "bootMode"
)]
pub boot_mode: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "cpuStatusReports"
)]
pub cpu_status_reports: Vec<CpuStatusReports>,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "deviceFiles"
)]
pub device_files: Vec<DeviceFiles>,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "deviceId"
)]
pub device_id: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "diskVolumeReports"
)]
pub disk_volume_reports: Vec<DiskVolumeReports>,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "dockMacAddress"
)]
pub dock_mac_address: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "ethernetMacAddress"
)]
pub ethernet_mac_address: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "ethernetMacAddress0"
)]
pub ethernet_mac_address_0: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "firmwareVersion"
)]
pub firmware_version: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "lastEnrollmentTime"
)]
pub last_enrollment_time: Option<chrono::DateTime<chrono::Utc>>,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "lastKnownNetwork"
)]
pub last_known_network: Vec<LastKnownNetwork>,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "lastSync"
)]
pub last_sync: Option<chrono::DateTime<chrono::Utc>>,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "macAddress"
)]
pub mac_address: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_format::deserialize",
rename = "manufactureDate"
)]
pub manufacture_date: Option<chrono::NaiveDate>,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub meid: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub model: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub notes: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "orderNumber"
)]
pub order_number: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "orgUnitPath"
)]
pub org_unit_path: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "osVersion"
)]
pub os_version: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "platformVersion"
)]
pub platform_version: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "recentUsers"
)]
pub recent_users: Vec<RecentUsers>,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "screenshotFiles"
)]
pub screenshot_files: Vec<DeviceFiles>,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "serialNumber"
)]
pub serial_number: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub status: String,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "supportEndDate"
)]
pub support_end_date: Option<chrono::DateTime<chrono::Utc>>,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "systemRamFreeReports"
)]
pub system_ram_free_reports: Vec<SystemRamFreeReports>,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "systemRamTotal"
)]
pub system_ram_total: i64,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "tpmVersionInfo"
)]
pub tpm_version_info: Option<TpmVersionInfo>,
/**
* Google Chrome devices run on the [Chrome OS](https://support.google.com/chromeos). For more information about common API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "willAutoRenew"
)]
pub will_auto_renew: bool,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct ChromeOsDeviceAction {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub action: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "deprovisionReason"
)]
pub deprovision_reason: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct ChromeOsDevices {
/**
* List of Chrome OS Device objects.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub chromeosdevices: Vec<ChromeOsDevice>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "nextPageToken"
)]
pub next_page_token: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct ChromeOsMoveDevicesOu {
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "deviceIds"
)]
pub device_ids: Vec<String>,
}
/// Request for adding a new printer.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct CreatePrinterRequest {
/**
* Request for adding a new printer.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub parent: String,
/**
* Request for adding a new printer.
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub printer: Option<Printer>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Customer {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "alternateEmail"
)]
pub alternate_email: String,
/**
* Date and time the report was received.
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "customerCreationTime"
)]
pub customer_creation_time: Option<chrono::DateTime<chrono::Utc>>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customerDomain"
)]
pub customer_domain: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub id: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub language: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "phoneNumber"
)]
pub phone_number: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "postalAddress"
)]
pub postal_address: Option<CustomerPostalAddress>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct CustomerPostalAddress {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "addressLine1"
)]
pub address_line_1: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "addressLine2"
)]
pub address_line_2: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "addressLine3"
)]
pub address_line_3: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "contactName"
)]
pub contact_name: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "countryCode"
)]
pub country_code: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub locality: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "organizationName"
)]
pub organization_name: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "postalCode"
)]
pub postal_code: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub region: String,
}
/**
* Indicates the command state.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum State {
#[serde(rename = "ACKED_BY_CLIENT")]
AckedByClient,
#[serde(rename = "CANCELLED")]
Cancelled,
#[serde(rename = "EXECUTED_BY_CLIENT")]
ExecutedByClient,
#[serde(rename = "EXPIRED")]
Expired,
#[serde(rename = "PENDING")]
Pending,
#[serde(rename = "SENT_TO_CLIENT")]
SentToClient,
#[serde(rename = "STATE_UNSPECIFIED")]
StateUnspecified,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for State {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
State::AckedByClient => "ACKED_BY_CLIENT",
State::Cancelled => "CANCELLED",
State::ExecutedByClient => "EXECUTED_BY_CLIENT",
State::Expired => "EXPIRED",
State::Pending => "PENDING",
State::SentToClient => "SENT_TO_CLIENT",
State::StateUnspecified => "STATE_UNSPECIFIED",
State::Noop => "",
State::FallthroughString => "*",
}
.fmt(f)
}
}
impl State {
pub fn is_noop(&self) -> bool {
matches!(self, State::Noop)
}
}
/**
* The type of the command.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum Type {
#[serde(rename = "COMMAND_TYPE_UNSPECIFIED")]
CommandTypeUnspecified,
#[serde(rename = "REBOOT")]
Reboot,
#[serde(rename = "REMOTE_POWERWASH")]
RemotePowerwash,
#[serde(rename = "SET_VOLUME")]
SetVolume,
#[serde(rename = "TAKE_A_SCREENSHOT")]
TakeAScreenshot,
#[serde(rename = "WIPE_USERS")]
WipeUsers,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for Type {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Type::CommandTypeUnspecified => "COMMAND_TYPE_UNSPECIFIED",
Type::Reboot => "REBOOT",
Type::RemotePowerwash => "REMOTE_POWERWASH",
Type::SetVolume => "SET_VOLUME",
Type::TakeAScreenshot => "TAKE_A_SCREENSHOT",
Type::WipeUsers => "WIPE_USERS",
Type::Noop => "",
Type::FallthroughString => "*",
}
.fmt(f)
}
}
impl Type {
pub fn is_noop(&self) -> bool {
matches!(self, Type::Noop)
}
}
/// Information regarding a command that was issued to a device.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct DirectoryChromeosdevicesCommand {
/**
* Information regarding a command that was issued to a device.
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "commandExpireTime"
)]
pub command_expire_time: Option<chrono::DateTime<chrono::Utc>>,
/**
* Information regarding a command that was issued to a device.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "commandId"
)]
pub command_id: i64,
/**
* Information regarding a command that was issued to a device.
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "commandResult"
)]
pub command_result: Option<DirectoryChromeosdevicesCommandResult>,
/**
* Information regarding a command that was issued to a device.
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "issueTime"
)]
pub issue_time: Option<chrono::DateTime<chrono::Utc>>,
/**
* Information regarding a command that was issued to a device.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub payload: String,
/**
* Information regarding a command that was issued to a device.
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub state: Option<State>,
/**
* Information regarding a command that was issued to a device.
*/
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub type_: Option<Type>,
}
/**
* The result of the command.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum Result {
#[serde(rename = "COMMAND_RESULT_TYPE_UNSPECIFIED")]
CommandResultTypeUnspecified,
#[serde(rename = "FAILURE")]
Failure,
#[serde(rename = "IGNORED")]
Ignored,
#[serde(rename = "SUCCESS")]
Success,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for Result {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Result::CommandResultTypeUnspecified => "COMMAND_RESULT_TYPE_UNSPECIFIED",
Result::Failure => "FAILURE",
Result::Ignored => "IGNORED",
Result::Success => "SUCCESS",
Result::Noop => "",
Result::FallthroughString => "*",
}
.fmt(f)
}
}
impl Result {
pub fn is_noop(&self) -> bool {
matches!(self, Result::Noop)
}
}
/// The result of executing a command.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct DirectoryChromeosdevicesCommandResult {
/**
* The result of executing a command.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "errorMessage"
)]
pub error_message: String,
/**
* The result of executing a command.
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "executeTime"
)]
pub execute_time: Option<chrono::DateTime<chrono::Utc>>,
/**
* The result of executing a command.
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub result: Option<Result>,
}
/// A request for issuing a command.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct DirectoryChromeosdevicesIssueCommandRequest {
/**
* A request for issuing a command.
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "commandType"
)]
pub command_type: Option<Type>,
/**
* A request for issuing a command.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub payload: String,
}
/// A response for issuing a command.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct DirectoryChromeosdevicesIssueCommandResponse {
/**
* A response for issuing a command.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "commandId"
)]
pub command_id: i64,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct DomainAlias {
/**
* The unique ID of the ASP.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "creationTime"
)]
pub creation_time: i64,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "domainAliasName"
)]
pub domain_alias_name: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "parentDomainName"
)]
pub parent_domain_name: String,
/**
* A Boolean value to indicate whether payload is wanted. Optional.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub verified: bool,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct DomainAliases {
/**
* List of domain alias objects.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "domainAliases"
)]
pub domain_aliases: Vec<DomainAlias>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Domains {
/**
* The unique ID of the ASP.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "creationTime"
)]
pub creation_time: i64,
/**
* List of domain alias objects.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "domainAliases"
)]
pub domain_aliases: Vec<DomainAlias>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "domainName"
)]
pub domain_name: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* A Boolean value to indicate whether payload is wanted. Optional.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "isPrimary"
)]
pub is_primary: bool,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* A Boolean value to indicate whether payload is wanted. Optional.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub verified: bool,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Domains2 {
/**
* List of domain objects.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub domains: Vec<Domains>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
}
/// A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Empty {}
/**
* Canonical code for why the update failed to apply.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum ErrorCode {
#[serde(rename = "ABORTED")]
Aborted,
#[serde(rename = "ALREADY_EXISTS")]
AlreadyExists,
#[serde(rename = "CANCELLED")]
Cancelled,
#[serde(rename = "DATA_LOSS")]
DataLoss,
#[serde(rename = "DEADLINE_EXCEEDED")]
DeadlineExceeded,
#[serde(rename = "FAILED_PRECONDITION")]
FailedPrecondition,
#[serde(rename = "INTERNAL")]
Internal,
#[serde(rename = "INVALID_ARGUMENT")]
InvalidArgument,
#[serde(rename = "NOT_FOUND")]
NotFound,
#[serde(rename = "OK")]
Ok,
#[serde(rename = "OUT_OF_RANGE")]
OutOfRange,
#[serde(rename = "PERMISSION_DENIED")]
PermissionDenied,
#[serde(rename = "RESOURCE_EXHAUSTED")]
ResourceExhausted,
#[serde(rename = "UNAUTHENTICATED")]
Unauthenticated,
#[serde(rename = "UNAVAILABLE")]
Unavailable,
#[serde(rename = "UNIMPLEMENTED")]
Unimplemented,
#[serde(rename = "UNKNOWN")]
Unknown,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for ErrorCode {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
ErrorCode::Aborted => "ABORTED",
ErrorCode::AlreadyExists => "ALREADY_EXISTS",
ErrorCode::Cancelled => "CANCELLED",
ErrorCode::DataLoss => "DATA_LOSS",
ErrorCode::DeadlineExceeded => "DEADLINE_EXCEEDED",
ErrorCode::FailedPrecondition => "FAILED_PRECONDITION",
ErrorCode::Internal => "INTERNAL",
ErrorCode::InvalidArgument => "INVALID_ARGUMENT",
ErrorCode::NotFound => "NOT_FOUND",
ErrorCode::Ok => "OK",
ErrorCode::OutOfRange => "OUT_OF_RANGE",
ErrorCode::PermissionDenied => "PERMISSION_DENIED",
ErrorCode::ResourceExhausted => "RESOURCE_EXHAUSTED",
ErrorCode::Unauthenticated => "UNAUTHENTICATED",
ErrorCode::Unavailable => "UNAVAILABLE",
ErrorCode::Unimplemented => "UNIMPLEMENTED",
ErrorCode::Unknown => "UNKNOWN",
ErrorCode::Noop => "",
ErrorCode::FallthroughString => "*",
}
.fmt(f)
}
}
impl ErrorCode {
pub fn is_noop(&self) -> bool {
matches!(self, ErrorCode::Noop)
}
}
/// Info about failures
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct FailureInfo {
/**
* Info about failures
*/
#[serde(default, skip_serializing_if = "Option::is_none", rename = "errorCode")]
pub error_code: Option<ErrorCode>,
/**
* Info about failures
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "errorMessage"
)]
pub error_message: String,
/**
* Info about failures
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub printer: Option<Printer>,
/**
* Info about failures
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "printerId"
)]
pub printer_id: String,
}
/// JSON template for Feature object in Directory API.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Feature {
/**
* JSON template for Feature object in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etags: String,
/**
* JSON template for Feature object in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* JSON template for Feature object in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub name: String,
}
/// JSON template for a feature instance.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct FeatureInstance {
/**
* JSON template for a feature instance.
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub feature: Option<Feature>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct FeatureRename {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "newName"
)]
pub new_name: String,
}
/// Public API: Resources.features
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Features {
/**
* Public API: Resources.features
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* Public API: Resources.features
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub features: Vec<Feature>,
/**
* Public API: Resources.features
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* Public API: Resources.features
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "nextPageToken"
)]
pub next_page_token: String,
}
/// Google Groups provide your users the ability to send messages to groups of people using the group's email address. For more information about common tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-groups).
#[derive(Serialize, Default, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Group {
/**
* Google Groups provide your users the ability to send messages to groups of people using the group's email address. For more information about common tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-groups).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "adminCreated"
)]
pub admin_created: bool,
/**
* Google Groups provide your users the ability to send messages to groups of people using the group's email address. For more information about common tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-groups).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub aliases: Vec<String>,
/**
* Google Groups provide your users the ability to send messages to groups of people using the group's email address. For more information about common tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-groups).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub description: String,
/**
* Google Groups provide your users the ability to send messages to groups of people using the group's email address. For more information about common tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-groups).
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "directMembersCount"
)]
pub direct_members_count: i64,
/**
* Google Groups provide your users the ability to send messages to groups of people using the group's email address. For more information about common tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-groups).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub email: String,
/**
* Google Groups provide your users the ability to send messages to groups of people using the group's email address. For more information about common tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-groups).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* Google Groups provide your users the ability to send messages to groups of people using the group's email address. For more information about common tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-groups).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub id: String,
/**
* Google Groups provide your users the ability to send messages to groups of people using the group's email address. For more information about common tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-groups).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* Google Groups provide your users the ability to send messages to groups of people using the group's email address. For more information about common tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-groups).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub name: String,
/**
* Google Groups provide your users the ability to send messages to groups of people using the group's email address. For more information about common tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-groups).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "nonEditableAliases"
)]
pub non_editable_aliases: Vec<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Groups {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* List of group objects.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub groups: Vec<Group>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "nextPageToken"
)]
pub next_page_token: String,
}
/// Response for listing allowed printer models.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct ListPrinterModelsResponse {
/**
* Response for listing allowed printer models.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "nextPageToken"
)]
pub next_page_token: String,
/**
* Response for listing allowed printer models.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "printerModels"
)]
pub printer_models: Vec<PrinterModel>,
}
/// Response for listing printers.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct ListPrintersResponse {
/**
* Response for listing printers.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "nextPageToken"
)]
pub next_page_token: String,
/**
* Response for listing printers.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub printers: Vec<Printer>,
}
/// A Google Groups member can be a user or another group. This member can be inside or outside of your account's domains. For more information about common group member tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-group-members).
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Member {
/**
* A Google Groups member can be a user or another group. This member can be inside or outside of your account's domains. For more information about common group member tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-group-members).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub delivery_settings: String,
/**
* A Google Groups member can be a user or another group. This member can be inside or outside of your account's domains. For more information about common group member tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-group-members).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub email: String,
/**
* A Google Groups member can be a user or another group. This member can be inside or outside of your account's domains. For more information about common group member tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-group-members).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* A Google Groups member can be a user or another group. This member can be inside or outside of your account's domains. For more information about common group member tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-group-members).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub id: String,
/**
* A Google Groups member can be a user or another group. This member can be inside or outside of your account's domains. For more information about common group member tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-group-members).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* A Google Groups member can be a user or another group. This member can be inside or outside of your account's domains. For more information about common group member tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-group-members).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub role: String,
/**
* A Google Groups member can be a user or another group. This member can be inside or outside of your account's domains. For more information about common group member tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-group-members).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub status: String,
/**
* A Google Groups member can be a user or another group. This member can be inside or outside of your account's domains. For more information about common group member tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-group-members).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Members {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* List of member objects.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub members: Vec<Member>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "nextPageToken"
)]
pub next_page_token: String,
}
/// JSON template for Has Member response in Directory API.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct MembersHasMember {
/**
* JSON template for Has Member response in Directory API.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "isMember"
)]
pub is_member: bool,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Applications {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "displayName"
)]
pub display_name: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "packageName"
)]
pub package_name: String,
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub permission: Vec<String>,
/**
* The unique ID of the ASP.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "versionCode"
)]
pub version_code: i64,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "versionName"
)]
pub version_name: String,
}
/// Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct MobileDevice {
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "adbStatus"
)]
pub adb_status: bool,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub applications: Vec<Applications>,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "basebandVersion"
)]
pub baseband_version: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "bootloaderVersion"
)]
pub bootloader_version: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub brand: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "buildNumber"
)]
pub build_number: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "defaultLanguage"
)]
pub default_language: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "developerOptionsStatus"
)]
pub developer_options_status: bool,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "deviceCompromisedStatus"
)]
pub device_compromised_status: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "deviceId"
)]
pub device_id: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "devicePasswordStatus"
)]
pub device_password_status: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub email: Vec<String>,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "encryptionStatus"
)]
pub encryption_status: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "firstSync"
)]
pub first_sync: Option<chrono::DateTime<chrono::Utc>>,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub hardware: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "hardwareId"
)]
pub hardware_id: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub imei: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "kernelVersion"
)]
pub kernel_version: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "lastSync"
)]
pub last_sync: Option<chrono::DateTime<chrono::Utc>>,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "managedAccountIsOnOwnerProfile"
)]
pub managed_account_is_on_owner_profile: bool,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub manufacturer: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub meid: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub model: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub name: Vec<String>,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "networkOperator"
)]
pub network_operator: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub os: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "otherAccountsInfo"
)]
pub other_accounts_info: Vec<String>,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub privilege: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "releaseVersion"
)]
pub release_version: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "resourceId"
)]
pub resource_id: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "securityPatchLevel"
)]
pub security_patch_level: i64,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "serialNumber"
)]
pub serial_number: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub status: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "supportsWorkProfile"
)]
pub supports_work_profile: bool,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "unknownSourcesStatus"
)]
pub unknown_sources_status: bool,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "userAgent"
)]
pub user_agent: String,
/**
* Google Workspace Mobile Management includes Android, [Google Sync](https://support.google.com/a/answer/135937), and iOS devices. For more information about common group mobile device API tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "wifiMacAddress"
)]
pub wifi_mac_address: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct MobileDeviceAction {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub action: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct MobileDevices {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* List of Mobile Device objects.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub mobiledevices: Vec<MobileDevice>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "nextPageToken"
)]
pub next_page_token: String,
}
/// Managing your account's organizational units allows you to configure your users' access to services and custom settings. For more information about common organizational unit tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-org-units.html).
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct OrgUnit {
/**
* Managing your account's organizational units allows you to configure your users' access to services and custom settings. For more information about common organizational unit tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-org-units.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "blockInheritance"
)]
pub block_inheritance: bool,
/**
* Managing your account's organizational units allows you to configure your users' access to services and custom settings. For more information about common organizational unit tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-org-units.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub description: String,
/**
* Managing your account's organizational units allows you to configure your users' access to services and custom settings. For more information about common organizational unit tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-org-units.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* Managing your account's organizational units allows you to configure your users' access to services and custom settings. For more information about common organizational unit tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-org-units.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* Managing your account's organizational units allows you to configure your users' access to services and custom settings. For more information about common organizational unit tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-org-units.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub name: String,
/**
* Managing your account's organizational units allows you to configure your users' access to services and custom settings. For more information about common organizational unit tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-org-units.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "orgUnitId"
)]
pub org_unit_id: String,
/**
* Managing your account's organizational units allows you to configure your users' access to services and custom settings. For more information about common organizational unit tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-org-units.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "orgUnitPath"
)]
pub org_unit_path: String,
/**
* Managing your account's organizational units allows you to configure your users' access to services and custom settings. For more information about common organizational unit tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-org-units.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "parentOrgUnitId"
)]
pub parent_org_unit_id: String,
/**
* Managing your account's organizational units allows you to configure your users' access to services and custom settings. For more information about common organizational unit tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-org-units.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "parentOrgUnitPath"
)]
pub parent_org_unit_path: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct OrgUnits {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* List of organizational unit objects.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "organizationUnits"
)]
pub organization_units: Vec<OrgUnit>,
}
/// Printer configuration.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Printer {
/**
* Printer configuration.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "auxiliaryMessages"
)]
pub auxiliary_messages: Vec<AuxiliaryMessage>,
/**
* Printer configuration.
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "createTime"
)]
pub create_time: Option<chrono::DateTime<chrono::Utc>>,
/**
* Printer configuration.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub description: String,
/**
* Printer configuration.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "displayName"
)]
pub display_name: String,
/**
* Printer configuration.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub id: String,
/**
* Printer configuration.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "makeAndModel"
)]
pub make_and_model: String,
/**
* Printer configuration.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub name: String,
/**
* Printer configuration.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "orgUnitId"
)]
pub org_unit_id: String,
/**
* Printer configuration.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub uri: String,
/**
* Printer configuration.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "useDriverlessConfig"
)]
pub use_driverless_config: bool,
}
/// Printer manufacturer and model
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct PrinterModel {
/**
* Printer manufacturer and model
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "displayName"
)]
pub display_name: String,
/**
* Printer manufacturer and model
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "makeAndModel"
)]
pub make_and_model: String,
/**
* Printer manufacturer and model
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub manufacturer: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Privilege {
/**
* A list of child privileges. Privileges for a service form a tree. Each privilege can have a list of child privileges; this list is empty for a leaf privilege.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "childPrivileges"
)]
pub child_privileges: Vec<Privilege>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* A Boolean value to indicate whether payload is wanted. Optional.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "isOuScopable"
)]
pub is_ou_scopable: bool,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "privilegeName"
)]
pub privilege_name: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "serviceId"
)]
pub service_id: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "serviceName"
)]
pub service_name: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Privileges {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* A list of child privileges. Privileges for a service form a tree. Each privilege can have a list of child privileges; this list is empty for a leaf privilege.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub items: Vec<Privilege>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct RolePrivileges {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "privilegeName"
)]
pub privilege_name: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "serviceId"
)]
pub service_id: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Role {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* A Boolean value to indicate whether payload is wanted. Optional.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "isSuperAdminRole"
)]
pub is_super_admin_role: bool,
/**
* A Boolean value to indicate whether payload is wanted. Optional.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "isSystemRole"
)]
pub is_system_role: bool,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "roleDescription"
)]
pub role_description: String,
/**
* The unique ID of the ASP.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "roleId"
)]
pub role_id: i64,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "roleName"
)]
pub role_name: String,
/**
* The set of privileges that are granted to this role.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "rolePrivileges"
)]
pub role_privileges: Vec<RolePrivileges>,
}
/// Defines an assignment of a role.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct RoleAssignment {
/**
* Defines an assignment of a role.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "assignedTo"
)]
pub assigned_to: String,
/**
* Defines an assignment of a role.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* Defines an assignment of a role.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* Defines an assignment of a role.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "orgUnitId"
)]
pub org_unit_id: String,
/**
* Defines an assignment of a role.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "roleAssignmentId"
)]
pub role_assignment_id: i64,
/**
* Defines an assignment of a role.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "roleId"
)]
pub role_id: i64,
/**
* Defines an assignment of a role.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "scopeType"
)]
pub scope_type: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct RoleAssignments {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* A list of RoleAssignment resources.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub items: Vec<RoleAssignment>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "nextPageToken"
)]
pub next_page_token: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Roles {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* A list of Role resources.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub items: Vec<Role>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "nextPageToken"
)]
pub next_page_token: String,
}
/// The type of API resource. For Schema resources, this is always `admin#directory#schema`.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Schema {
/**
* The type of API resource. For Schema resources, this is always `admin#directory#schema`.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "displayName"
)]
pub display_name: String,
/**
* The type of API resource. For Schema resources, this is always `admin#directory#schema`.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* The type of API resource. For Schema resources, this is always `admin#directory#schema`.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub fields: Vec<SchemaFieldSpec>,
/**
* The type of API resource. For Schema resources, this is always `admin#directory#schema`.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* The type of API resource. For Schema resources, this is always `admin#directory#schema`.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "schemaId"
)]
pub schema_id: String,
/**
* The type of API resource. For Schema resources, this is always `admin#directory#schema`.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "schemaName"
)]
pub schema_name: String,
}
/// Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the `numericIndexingSpec` allows range queries to be supported.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct NumericIndexingSpec {
/**
* Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the `numericIndexingSpec` allows range queries to be supported.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_f64",
deserialize_with = "crate::utils::deserialize_null_f64::deserialize",
rename = "maxValue"
)]
pub max_value: f64,
/**
* Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the `numericIndexingSpec` allows range queries to be supported.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_f64",
deserialize_with = "crate::utils::deserialize_null_f64::deserialize",
rename = "minValue"
)]
pub min_value: f64,
}
/// You can use schemas to add custom fields to user profiles. You can use these fields to store information such as the projects your users work on, their physical locations, their hire dates, or whatever else fits your business needs. For more information, see [Custom User Fields](/admin-sdk/directory/v1/guides/manage-schemas).
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct SchemaFieldSpec {
/**
* You can use schemas to add custom fields to user profiles. You can use these fields to store information such as the projects your users work on, their physical locations, their hire dates, or whatever else fits your business needs. For more information, see [Custom User Fields](/admin-sdk/directory/v1/guides/manage-schemas).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "displayName"
)]
pub display_name: String,
/**
* You can use schemas to add custom fields to user profiles. You can use these fields to store information such as the projects your users work on, their physical locations, their hire dates, or whatever else fits your business needs. For more information, see [Custom User Fields](/admin-sdk/directory/v1/guides/manage-schemas).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* You can use schemas to add custom fields to user profiles. You can use these fields to store information such as the projects your users work on, their physical locations, their hire dates, or whatever else fits your business needs. For more information, see [Custom User Fields](/admin-sdk/directory/v1/guides/manage-schemas).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "fieldId"
)]
pub field_id: String,
/**
* You can use schemas to add custom fields to user profiles. You can use these fields to store information such as the projects your users work on, their physical locations, their hire dates, or whatever else fits your business needs. For more information, see [Custom User Fields](/admin-sdk/directory/v1/guides/manage-schemas).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "fieldName"
)]
pub field_name: String,
/**
* You can use schemas to add custom fields to user profiles. You can use these fields to store information such as the projects your users work on, their physical locations, their hire dates, or whatever else fits your business needs. For more information, see [Custom User Fields](/admin-sdk/directory/v1/guides/manage-schemas).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "fieldType"
)]
pub field_type: String,
/**
* You can use schemas to add custom fields to user profiles. You can use these fields to store information such as the projects your users work on, their physical locations, their hire dates, or whatever else fits your business needs. For more information, see [Custom User Fields](/admin-sdk/directory/v1/guides/manage-schemas).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub indexed: bool,
/**
* You can use schemas to add custom fields to user profiles. You can use these fields to store information such as the projects your users work on, their physical locations, their hire dates, or whatever else fits your business needs. For more information, see [Custom User Fields](/admin-sdk/directory/v1/guides/manage-schemas).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* You can use schemas to add custom fields to user profiles. You can use these fields to store information such as the projects your users work on, their physical locations, their hire dates, or whatever else fits your business needs. For more information, see [Custom User Fields](/admin-sdk/directory/v1/guides/manage-schemas).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "multiValued"
)]
pub multi_valued: bool,
/**
* You can use schemas to add custom fields to user profiles. You can use these fields to store information such as the projects your users work on, their physical locations, their hire dates, or whatever else fits your business needs. For more information, see [Custom User Fields](/admin-sdk/directory/v1/guides/manage-schemas).
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "numericIndexingSpec"
)]
pub numeric_indexing_spec: Option<NumericIndexingSpec>,
/**
* You can use schemas to add custom fields to user profiles. You can use these fields to store information such as the projects your users work on, their physical locations, their hire dates, or whatever else fits your business needs. For more information, see [Custom User Fields](/admin-sdk/directory/v1/guides/manage-schemas).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "readAccessType"
)]
pub read_access_type: String,
}
/// JSON response template for List Schema operation in Directory API.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Schemas {
/**
* JSON response template for List Schema operation in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* JSON response template for List Schema operation in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* JSON response template for List Schema operation in Directory API.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub schemas: Vec<Schema>,
}
/// JSON template for token resource in Directory API.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Token {
/**
* JSON template for token resource in Directory API.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub anonymous: bool,
/**
* JSON template for token resource in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "clientId"
)]
pub client_id: String,
/**
* JSON template for token resource in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "displayText"
)]
pub display_text: String,
/**
* JSON template for token resource in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* JSON template for token resource in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* JSON template for token resource in Directory API.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "nativeApp"
)]
pub native_app: bool,
/**
* JSON template for token resource in Directory API.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub scopes: Vec<String>,
/**
* JSON template for token resource in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "userKey"
)]
pub user_key: String,
}
/// JSON response template for List tokens operation in Directory API.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Tokens {
/**
* JSON response template for List tokens operation in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* JSON response template for List tokens operation in Directory API.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub items: Vec<Token>,
/**
* JSON response template for List tokens operation in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Ims {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customProtocol"
)]
pub custom_protocol: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customType"
)]
pub custom_type: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub im: String,
/**
* A Boolean value to indicate whether payload is wanted. Optional.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub primary: bool,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub protocol: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
}
/// The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
#[derive(Serialize, Default, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct User {
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub addresses: Vec<UserAddress>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "agreedToTerms"
)]
pub agreed_to_terms: bool,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub aliases: Vec<String>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub archived: bool,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "changePasswordAtNextLogin"
)]
pub change_password_at_next_login: bool,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "creationTime"
)]
pub creation_time: Option<chrono::DateTime<chrono::Utc>>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "std::collections::HashMap::is_empty",
rename = "customSchemas"
)]
pub custom_schemas:
std::collections::HashMap<String, std::collections::HashMap<String, serde_json::Value>>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customerId"
)]
pub customer_id: String,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "deletionTime"
)]
pub deletion_time: Option<chrono::DateTime<chrono::Utc>>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub emails: Vec<UserEmail>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "externalIds"
)]
pub external_ids: Option<serde_json::Value>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gender: Option<UserGender>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "hashFunction"
)]
pub hash_function: String,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub id: String,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub ims: Vec<Ims>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "includeInGlobalAddressList"
)]
pub include_in_global_address_list: bool,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "ipWhitelisted"
)]
pub ip_whitelisted: bool,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "isAdmin"
)]
pub is_admin: bool,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "isDelegatedAdmin"
)]
pub is_delegated_admin: bool,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "isEnforcedIn2Sv"
)]
pub is_enforced_in_2_sv: bool,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "isEnrolledIn2Sv"
)]
pub is_enrolled_in_2_sv: bool,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "isMailboxSetup"
)]
pub is_mailbox_setup: bool,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub keywords: Option<serde_json::Value>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub languages: Option<serde_json::Value>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "crate::utils::date_time_format::deserialize",
rename = "lastLoginTime"
)]
pub last_login_time: Option<chrono::DateTime<chrono::Utc>>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub locations: Vec<UserLocation>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<UserName>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "nonEditableAliases"
)]
pub non_editable_aliases: Vec<String>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub notes: Option<serde_json::Value>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "orgUnitPath"
)]
pub org_unit_path: String,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub organizations: Option<serde_json::Value>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub password: String,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub phones: Vec<UserPhone>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "posixAccounts"
)]
pub posix_accounts: Option<serde_json::Value>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "primaryEmail"
)]
pub primary_email: String,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "recoveryEmail"
)]
pub recovery_email: String,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "recoveryPhone"
)]
pub recovery_phone: String,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub relations: Option<serde_json::Value>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
rename = "sshPublicKeys"
)]
pub ssh_public_keys: Vec<UserSshPublicKey>,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub suspended: bool,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "suspensionReason"
)]
pub suspension_reason: String,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "thumbnailPhotoEtag"
)]
pub thumbnail_photo_etag: String,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "thumbnailPhotoUrl"
)]
pub thumbnail_photo_url: String,
/**
* The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub websites: Option<serde_json::Value>,
}
/// JSON template for About (notes) of a user in Directory API.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserAbout {
/**
* JSON template for About (notes) of a user in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "contentType"
)]
pub content_type: String,
/**
* JSON template for About (notes) of a user in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub value: String,
}
/// JSON template for address.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserAddress {
/**
* JSON template for address.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub country: String,
/**
* JSON template for address.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "countryCode"
)]
pub country_code: String,
/**
* JSON template for address.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customType"
)]
pub custom_type: String,
/**
* JSON template for address.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "extendedAddress"
)]
pub extended_address: String,
/**
* JSON template for address.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub formatted: String,
/**
* JSON template for address.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub locality: String,
/**
* JSON template for address.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "poBox"
)]
pub po_box: String,
/**
* JSON template for address.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "postalCode"
)]
pub postal_code: String,
/**
* JSON template for address.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub primary: bool,
/**
* JSON template for address.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub region: String,
/**
* JSON template for address.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize",
rename = "sourceIsStructured"
)]
pub source_is_structured: bool,
/**
* JSON template for address.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "streetAddress"
)]
pub street_address: String,
/**
* JSON template for address.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
}
/// JSON template for an email.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserEmail {
/**
* JSON template for an email.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub address: String,
/**
* JSON template for an email.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customType"
)]
pub custom_type: String,
/**
* JSON template for an email.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub primary: bool,
/**
* JSON template for an email.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
}
/// JSON template for an externalId entry.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserExternalId {
/**
* JSON template for an externalId entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customType"
)]
pub custom_type: String,
/**
* JSON template for an externalId entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
/**
* JSON template for an externalId entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub value: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserGender {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "addressMeAs"
)]
pub address_me_as: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customGender"
)]
pub custom_gender: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
}
/// JSON template for instant messenger of an user.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserIm {
/**
* JSON template for instant messenger of an user.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customProtocol"
)]
pub custom_protocol: String,
/**
* JSON template for instant messenger of an user.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customType"
)]
pub custom_type: String,
/**
* JSON template for instant messenger of an user.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub im: String,
/**
* JSON template for instant messenger of an user.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub primary: bool,
/**
* JSON template for instant messenger of an user.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub protocol: String,
/**
* JSON template for instant messenger of an user.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
}
/// JSON template for a keyword entry.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserKeyword {
/**
* JSON template for a keyword entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customType"
)]
pub custom_type: String,
/**
* JSON template for a keyword entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
/**
* JSON template for a keyword entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub value: String,
}
/// JSON template for a language entry.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserLanguage {
/**
* JSON template for a language entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customLanguage"
)]
pub custom_language: String,
/**
* JSON template for a language entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "languageCode"
)]
pub language_code: String,
}
/// JSON template for a location entry.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserLocation {
/**
* JSON template for a location entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub area: String,
/**
* JSON template for a location entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "buildingId"
)]
pub building_id: String,
/**
* JSON template for a location entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customType"
)]
pub custom_type: String,
/**
* JSON template for a location entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "deskCode"
)]
pub desk_code: String,
/**
* JSON template for a location entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "floorName"
)]
pub floor_name: String,
/**
* JSON template for a location entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "floorSection"
)]
pub floor_section: String,
/**
* JSON template for a location entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserMakeAdmin {
/**
* A Boolean value to indicate whether payload is wanted. Optional.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub status: bool,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserName {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "familyName"
)]
pub family_name: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "fullName"
)]
pub full_name: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "givenName"
)]
pub given_name: String,
}
/// JSON template for an organization entry.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserOrganization {
/**
* JSON template for an organization entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "costCenter"
)]
pub cost_center: String,
/**
* JSON template for an organization entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customType"
)]
pub custom_type: String,
/**
* JSON template for an organization entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub department: String,
/**
* JSON template for an organization entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub description: String,
/**
* JSON template for an organization entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub domain: String,
/**
* JSON template for an organization entry.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "fullTimeEquivalent"
)]
pub full_time_equivalent: i64,
/**
* JSON template for an organization entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub location: String,
/**
* JSON template for an organization entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub name: String,
/**
* JSON template for an organization entry.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub primary: bool,
/**
* JSON template for an organization entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub symbol: String,
/**
* JSON template for an organization entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub title: String,
/**
* JSON template for an organization entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
}
/// JSON template for a phone entry.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserPhone {
/**
* JSON template for a phone entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customType"
)]
pub custom_type: String,
/**
* JSON template for a phone entry.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub primary: bool,
/**
* JSON template for a phone entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
/**
* JSON template for a phone entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub value: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserPhoto {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* The unique ID of the ASP.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
)]
pub height: i64,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub id: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "mimeType"
)]
pub mime_type: String,
/**
* The user photo's upload data in [web-safe Base64](https://en.wikipedia.org/wiki/Base64#URL_applications) format in bytes. This means: \* The slash (/) character is replaced with the underscore (_) character. \* The plus sign (+) character is replaced with the hyphen (-) character. \* The equals sign (=) character is replaced with the asterisk (\*). \* For padding, the period (.) character is used instead of the RFC-4648 baseURL definition which uses the equals sign (=) for padding. This is done to simplify URL-parsing. \* Whatever the size of the photo being uploaded, the API downsizes it to 96x96 pixels.
*/
#[serde(default, skip_serializing_if = "Option::is_none", rename = "photoData")]
pub photo_data: Option<bytes::Bytes>,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "primaryEmail"
)]
pub primary_email: String,
/**
* The unique ID of the ASP.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
)]
pub width: i64,
}
/// JSON template for a POSIX account entry.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserPosixAccount {
/**
* JSON template for a POSIX account entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "accountId"
)]
pub account_id: String,
/**
* JSON template for a POSIX account entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub gecos: String,
/**
* JSON template for a POSIX account entry.
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gid: Option<u64>,
/**
* JSON template for a POSIX account entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "homeDirectory"
)]
pub home_directory: String,
/**
* JSON template for a POSIX account entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "operatingSystemType"
)]
pub operating_system_type: String,
/**
* JSON template for a POSIX account entry.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub primary: bool,
/**
* JSON template for a POSIX account entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub shell: String,
/**
* JSON template for a POSIX account entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "systemId"
)]
pub system_id: String,
/**
* JSON template for a POSIX account entry.
*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uid: Option<u64>,
/**
* JSON template for a POSIX account entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub username: String,
}
/// JSON template for a relation entry.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserRelation {
/**
* JSON template for a relation entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customType"
)]
pub custom_type: String,
/**
* JSON template for a relation entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
/**
* JSON template for a relation entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub value: String,
}
/// JSON template for a POSIX account entry.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserSshPublicKey {
/**
* JSON template for a POSIX account entry.
*/
#[serde(
default,
skip_serializing_if = "crate::utils::zero_i64",
deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
rename = "expirationTimeUsec"
)]
pub expiration_time_usec: i64,
/**
* JSON template for a POSIX account entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub fingerprint: String,
/**
* JSON template for a POSIX account entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub key: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserUndelete {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "orgUnitPath"
)]
pub org_unit_path: String,
}
/// JSON template for a website entry.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct UserWebsite {
/**
* JSON template for a website entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "customType"
)]
pub custom_type: String,
/**
* JSON template for a website entry.
*/
#[serde(
default,
deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
)]
pub primary: bool,
/**
* JSON template for a website entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "type"
)]
pub type_: String,
/**
* JSON template for a website entry.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub value: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct Users {
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "nextPageToken"
)]
pub next_page_token: String,
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub trigger_event: String,
/**
* List of user objects.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub users: Vec<User>,
}
/// The Directory API allows you to view, generate, and invalidate backup verification codes for a user.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct VerificationCode {
/**
* The Directory API allows you to view, generate, and invalidate backup verification codes for a user.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* The Directory API allows you to view, generate, and invalidate backup verification codes for a user.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
/**
* The Directory API allows you to view, generate, and invalidate backup verification codes for a user.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "userId"
)]
pub user_id: String,
/**
* The Directory API allows you to view, generate, and invalidate backup verification codes for a user.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize",
rename = "verificationCode"
)]
pub verification_code: String,
}
/// JSON response template for List verification codes operation in Directory API.
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
pub struct VerificationCodes {
/**
* JSON response template for List verification codes operation in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub etag: String,
/**
* JSON response template for List verification codes operation in Directory API.
*/
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
)]
pub items: Vec<VerificationCode>,
/**
* JSON response template for List verification codes operation in Directory API.
*/
#[serde(
default,
skip_serializing_if = "String::is_empty",
deserialize_with = "crate::utils::deserialize_null_string::deserialize"
)]
pub kind: String,
}
/**
* V1 error format.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum Xgafv {
#[serde(rename = "1")]
One,
#[serde(rename = "2")]
Two,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for Xgafv {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Xgafv::One => "1",
Xgafv::Two => "2",
Xgafv::Noop => "",
Xgafv::FallthroughString => "*",
}
.fmt(f)
}
}
impl Xgafv {
pub fn is_noop(&self) -> bool {
matches!(self, Xgafv::Noop)
}
}
/**
* Data format for response.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum Alt {
#[serde(rename = "json")]
Json,
#[serde(rename = "media")]
Media,
#[serde(rename = "proto")]
Proto,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for Alt {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Alt::Json => "json",
Alt::Media => "media",
Alt::Proto => "proto",
Alt::Noop => "",
Alt::FallthroughString => "*",
}
.fmt(f)
}
}
impl Alt {
pub fn is_noop(&self) -> bool {
matches!(self, Alt::Noop)
}
}
/**
* Device property to use for sorting results.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum OrderBy {
#[serde(rename = "annotatedLocation")]
AnnotatedLocation,
#[serde(rename = "annotatedUser")]
AnnotatedUser,
#[serde(rename = "lastSync")]
LastSync,
#[serde(rename = "notes")]
Notes,
#[serde(rename = "serialNumber")]
SerialNumber,
#[serde(rename = "status")]
Status,
#[serde(rename = "supportEndDate")]
SupportEndDate,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for OrderBy {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
OrderBy::AnnotatedLocation => "annotatedLocation",
OrderBy::AnnotatedUser => "annotatedUser",
OrderBy::LastSync => "lastSync",
OrderBy::Notes => "notes",
OrderBy::SerialNumber => "serialNumber",
OrderBy::Status => "status",
OrderBy::SupportEndDate => "supportEndDate",
OrderBy::Noop => "",
OrderBy::FallthroughString => "*",
}
.fmt(f)
}
}
impl OrderBy {
pub fn is_noop(&self) -> bool {
matches!(self, OrderBy::Noop)
}
}
/**
* Restrict information returned to a set of selected fields.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum Projection {
#[serde(rename = "BASIC")]
Basic,
#[serde(rename = "FULL")]
Full,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for Projection {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Projection::Basic => "BASIC",
Projection::Full => "FULL",
Projection::Noop => "",
Projection::FallthroughString => "*",
}
.fmt(f)
}
}
impl Projection {
pub fn is_noop(&self) -> bool {
matches!(self, Projection::Noop)
}
}
/**
* Whether to return results in ascending or descending order. Must be used with the `orderBy` parameter.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum SortOrder {
#[serde(rename = "ASCENDING")]
Ascending,
#[serde(rename = "DESCENDING")]
Descending,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for SortOrder {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
SortOrder::Ascending => "ASCENDING",
SortOrder::Descending => "DESCENDING",
SortOrder::Noop => "",
SortOrder::FallthroughString => "*",
}
.fmt(f)
}
}
impl SortOrder {
pub fn is_noop(&self) -> bool {
matches!(self, SortOrder::Noop)
}
}
/**
* Device property to use for sorting results.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum DirectoryMobiledevicesListOrderBy {
#[serde(rename = "deviceId")]
DeviceId,
#[serde(rename = "email")]
Email,
#[serde(rename = "lastSync")]
LastSync,
#[serde(rename = "model")]
Model,
#[serde(rename = "name")]
Name,
#[serde(rename = "os")]
Os,
#[serde(rename = "status")]
Status,
#[serde(rename = "type")]
Type,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for DirectoryMobiledevicesListOrderBy {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
DirectoryMobiledevicesListOrderBy::DeviceId => "deviceId",
DirectoryMobiledevicesListOrderBy::Email => "email",
DirectoryMobiledevicesListOrderBy::LastSync => "lastSync",
DirectoryMobiledevicesListOrderBy::Model => "model",
DirectoryMobiledevicesListOrderBy::Name => "name",
DirectoryMobiledevicesListOrderBy::Os => "os",
DirectoryMobiledevicesListOrderBy::Status => "status",
DirectoryMobiledevicesListOrderBy::Type => "type",
DirectoryMobiledevicesListOrderBy::Noop => "",
DirectoryMobiledevicesListOrderBy::FallthroughString => "*",
}
.fmt(f)
}
}
impl DirectoryMobiledevicesListOrderBy {
pub fn is_noop(&self) -> bool {
matches!(self, DirectoryMobiledevicesListOrderBy::Noop)
}
}
/**
* Whether to return all sub-organizations or just immediate children.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum DirectoryOrgunitsListType {
#[serde(rename = "all")]
All,
#[serde(rename = "children")]
Children,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for DirectoryOrgunitsListType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
DirectoryOrgunitsListType::All => "all",
DirectoryOrgunitsListType::Children => "children",
DirectoryOrgunitsListType::Noop => "",
DirectoryOrgunitsListType::FallthroughString => "*",
}
.fmt(f)
}
}
impl DirectoryOrgunitsListType {
pub fn is_noop(&self) -> bool {
matches!(self, DirectoryOrgunitsListType::Noop)
}
}
/**
* Source from which Building.coordinates are derived.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum CoordinatesSource {
#[serde(rename = "CLIENT_SPECIFIED")]
ClientSpecified,
#[serde(rename = "RESOLVED_FROM_ADDRESS")]
ResolvedFromAddress,
#[serde(rename = "SOURCE_UNSPECIFIED")]
SourceUnspecified,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for CoordinatesSource {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
CoordinatesSource::ClientSpecified => "CLIENT_SPECIFIED",
CoordinatesSource::ResolvedFromAddress => "RESOLVED_FROM_ADDRESS",
CoordinatesSource::SourceUnspecified => "SOURCE_UNSPECIFIED",
CoordinatesSource::Noop => "",
CoordinatesSource::FallthroughString => "*",
}
.fmt(f)
}
}
impl CoordinatesSource {
pub fn is_noop(&self) -> bool {
matches!(self, CoordinatesSource::Noop)
}
}
/**
* Column to use for sorting results
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum DirectoryGroupsListOrderBy {
#[serde(rename = "email")]
Email,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for DirectoryGroupsListOrderBy {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
DirectoryGroupsListOrderBy::Email => "email",
DirectoryGroupsListOrderBy::Noop => "",
DirectoryGroupsListOrderBy::FallthroughString => "*",
}
.fmt(f)
}
}
impl DirectoryGroupsListOrderBy {
pub fn is_noop(&self) -> bool {
matches!(self, DirectoryGroupsListOrderBy::Noop)
}
}
/**
* Event on which subscription is intended (if subscribing)
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum Event {
#[serde(rename = "add")]
Add,
#[serde(rename = "delete")]
Delete,
#[serde(rename = "makeAdmin")]
MakeAdmin,
#[serde(rename = "undelete")]
Undelete,
#[serde(rename = "update")]
Update,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for Event {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Event::Add => "add",
Event::Delete => "delete",
Event::MakeAdmin => "makeAdmin",
Event::Undelete => "undelete",
Event::Update => "update",
Event::Noop => "",
Event::FallthroughString => "*",
}
.fmt(f)
}
}
impl Event {
pub fn is_noop(&self) -> bool {
matches!(self, Event::Noop)
}
}
/**
* Property to use for sorting results.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum DirectoryUsersListOrderBy {
#[serde(rename = "email")]
Email,
#[serde(rename = "familyName")]
FamilyName,
#[serde(rename = "givenName")]
GivenName,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for DirectoryUsersListOrderBy {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
DirectoryUsersListOrderBy::Email => "email",
DirectoryUsersListOrderBy::FamilyName => "familyName",
DirectoryUsersListOrderBy::GivenName => "givenName",
DirectoryUsersListOrderBy::Noop => "",
DirectoryUsersListOrderBy::FallthroughString => "*",
}
.fmt(f)
}
}
impl DirectoryUsersListOrderBy {
pub fn is_noop(&self) -> bool {
matches!(self, DirectoryUsersListOrderBy::Noop)
}
}
/**
* What subset of fields to fetch for this user.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum DirectoryUsersListProjection {
#[serde(rename = "basic")]
Basic,
#[serde(rename = "custom")]
Custom,
#[serde(rename = "full")]
Full,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for DirectoryUsersListProjection {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
DirectoryUsersListProjection::Basic => "basic",
DirectoryUsersListProjection::Custom => "custom",
DirectoryUsersListProjection::Full => "full",
DirectoryUsersListProjection::Noop => "",
DirectoryUsersListProjection::FallthroughString => "*",
}
.fmt(f)
}
}
impl DirectoryUsersListProjection {
pub fn is_noop(&self) -> bool {
matches!(self, DirectoryUsersListProjection::Noop)
}
}
/**
* Whether to fetch the administrator-only or domain-wide public view of the user. For more information, see [Retrieve a user as a non-administrator](/admin-sdk/directory/v1/guides/manage-users#retrieve_users_non_admin).
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum ViewType {
#[serde(rename = "admin_view")]
AdminView,
#[serde(rename = "domain_public")]
DomainPublic,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for ViewType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
ViewType::AdminView => "admin_view",
ViewType::DomainPublic => "domain_public",
ViewType::Noop => "",
ViewType::FallthroughString => "*",
}
.fmt(f)
}
}
impl ViewType {
pub fn is_noop(&self) -> bool {
matches!(self, ViewType::Noop)
}
}
/**
* Events to watch for.
*/
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
pub enum DirectoryUsersAliasesListEvent {
#[serde(rename = "add")]
Add,
#[serde(rename = "delete")]
Delete,
#[serde(rename = "")]
#[default]
Noop,
#[serde(other)]
FallthroughString,
}
impl std::fmt::Display for DirectoryUsersAliasesListEvent {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
DirectoryUsersAliasesListEvent::Add => "add",
DirectoryUsersAliasesListEvent::Delete => "delete",
DirectoryUsersAliasesListEvent::Noop => "",
DirectoryUsersAliasesListEvent::FallthroughString => "*",
}
.fmt(f)
}
}
impl DirectoryUsersAliasesListEvent {
pub fn is_noop(&self) -> bool {
matches!(self, DirectoryUsersAliasesListEvent::Noop)
}
}