use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DatasetReference {
pub dataset_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub project_id: Option<String>,
}
impl DatasetReference {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
dataset_id: "test-dataset_id".into(),
project_id: Some("test-project_id".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TableReference {
pub dataset_id: String,
pub project_id: String,
pub table_id: String,
}
impl TableReference {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
dataset_id: "test-dataset_id".into(),
project_id: "test-project_id".into(),
table_id: "test-table_id".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JobReference {
pub job_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub location: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub project_id: Option<String>,
}
impl JobReference {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
job_id: "test-job_id".into(),
location: Some("test-location".into()),
project_id: Some("test-project_id".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ErrorProto {
#[serde(skip_serializing_if = "Option::is_none")]
pub debug_info: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub location: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
}
impl ErrorProto {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
debug_info: Some("test-debug_info".into()),
location: Some("test-location".into()),
message: Some("test-message".into()),
reason: Some("test-reason".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TableSchema {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub fields: Vec<TableFieldSchema>,
}
impl TableSchema {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self { fields: vec![] }
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TableFieldSchema {
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub fields: Vec<TableFieldSchema>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mode: Option<String>,
pub name: String,
#[serde(rename = "type")]
pub field_type: String,
}
impl TableFieldSchema {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
description: Some("test-description".into()),
fields: vec![],
mode: Some("test-mode".into()),
name: "test-table_field_schema".into(),
field_type: "test-type".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TableRow {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub f: Vec<TableCell>,
}
impl TableRow {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self { f: vec![] }
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TableCell {
#[serde(skip_serializing_if = "Option::is_none")]
pub v: Option<serde_json::Value>,
}
impl TableCell {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ExternalDatasetReference {
#[serde(skip_serializing_if = "Option::is_none")]
pub connection: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub external_source: Option<String>,
}
impl ExternalDatasetReference {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
connection: Some("test-connection".into()),
external_source: Some("test-external_source".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Dataset {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub access: Vec<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_reference: Option<DatasetReference>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub friendly_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub labels: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub location: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_table_expiration_ms: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_partition_expiration_ms: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub etag: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_link: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_value: Option<String>,
}
impl Dataset {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
access: vec![],
dataset_reference: Some(DatasetReference::fixture()),
description: Some("test-description".into()),
friendly_name: Some("test-friendly_name".into()),
id: Some("test-id".into()),
kind: Some("test-kind".into()),
labels: Default::default(),
location: Some("test-location".into()),
creation_time: Some("test-creation_time".into()),
last_modified_time: Some("test-last_modified_time".into()),
default_table_expiration_ms: Some("test-default_table_expiration_ms".into()),
default_partition_expiration_ms: Some("test-default_partition_expiration_ms".into()),
etag: Some("test-etag".into()),
self_link: Some("test-self_link".into()),
type_value: Some("test-type".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DatasetList {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub datasets: Vec<DatasetListItem>,
#[serde(skip_serializing_if = "Option::is_none")]
pub etag: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl DatasetList {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
datasets: vec![],
etag: Some("test-etag".into()),
kind: Some("test-kind".into()),
next_page_token: Some("test-next_page_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Table {
#[serde(skip_serializing_if = "Option::is_none")]
pub table_reference: Option<TableReference>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub friendly_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub labels: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub location: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub expiration_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub schema: Option<TableSchema>,
#[serde(skip_serializing_if = "Option::is_none")]
pub num_bytes: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub num_rows: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub num_partitions: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub etag: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_link: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub clustering: Option<Clustering>,
#[serde(skip_serializing_if = "Option::is_none")]
pub time_partitioning: Option<TimePartitioning>,
#[serde(skip_serializing_if = "Option::is_none")]
pub range_partitioning: Option<RangePartitioning>,
#[serde(skip_serializing_if = "Option::is_none")]
pub require_partition_filter: Option<bool>,
}
impl Table {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
table_reference: Some(TableReference::fixture()),
description: Some("test-description".into()),
friendly_name: Some("test-friendly_name".into()),
id: Some("test-id".into()),
kind: Some("test-kind".into()),
labels: Default::default(),
location: Some("test-location".into()),
creation_time: Some("test-creation_time".into()),
last_modified_time: Some("test-last_modified_time".into()),
expiration_time: Some("test-expiration_time".into()),
schema: Some(TableSchema::fixture()),
num_bytes: Some("test-num_bytes".into()),
num_rows: Some("test-num_rows".into()),
num_partitions: Some("test-num_partitions".into()),
type_value: Some("test-type".into()),
etag: Some("test-etag".into()),
self_link: Some("test-self_link".into()),
clustering: Some(Clustering::fixture()),
time_partitioning: Some(TimePartitioning::fixture()),
range_partitioning: Some(RangePartitioning::fixture()),
require_partition_filter: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TableList {
#[serde(skip_serializing_if = "Option::is_none")]
pub etag: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub tables: Vec<TableListItem>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_items: Option<i32>,
}
impl TableList {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
etag: Some("test-etag".into()),
kind: Some("test-kind".into()),
next_page_token: Some("test-next_page_token".into()),
tables: vec![],
total_items: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Clustering {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub fields: Vec<String>,
}
impl Clustering {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self { fields: vec![] }
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TimePartitioning {
#[serde(skip_serializing_if = "Option::is_none")]
pub expiration_ms: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub field: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub partition_type: Option<String>,
}
impl TimePartitioning {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
expiration_ms: Some("test-expiration_ms".into()),
field: Some("test-field".into()),
partition_type: Some("test-type".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RangePartitioning {
#[serde(skip_serializing_if = "Option::is_none")]
pub field: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub range: Option<RangePartitioningRange>,
}
impl RangePartitioning {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
field: Some("test-field".into()),
range: Default::default(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Job {
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration: Option<JobConfiguration>,
#[serde(skip_serializing_if = "Option::is_none")]
pub etag: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub job_reference: Option<JobReference>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_link: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub statistics: Option<JobStatistics>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<JobStatus>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_email: Option<String>,
}
impl Job {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
configuration: Some(JobConfiguration::fixture()),
etag: Some("test-etag".into()),
id: Some("test-id".into()),
job_reference: Some(JobReference::fixture()),
kind: Some("test-kind".into()),
self_link: Some("test-self_link".into()),
statistics: Some(JobStatistics::fixture()),
status: Some(JobStatus::fixture()),
user_email: Some("test-user_email".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JobConfiguration {
#[serde(skip_serializing_if = "Option::is_none")]
pub dry_run: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub job_type: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub labels: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub query: Option<JobConfigurationQuery>,
}
impl JobConfiguration {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
dry_run: Some(false),
job_type: Some("test-job_type".into()),
labels: Default::default(),
query: Some(JobConfigurationQuery::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JobConfigurationQuery {
pub query: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub use_legacy_sql: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub use_query_cache: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_dataset: Option<DatasetReference>,
#[serde(skip_serializing_if = "Option::is_none")]
pub destination_table: Option<TableReference>,
#[serde(skip_serializing_if = "Option::is_none")]
pub create_disposition: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub write_disposition: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub maximum_bytes_billed: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parameter_mode: Option<String>,
}
impl JobConfigurationQuery {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
query: "test-query".into(),
use_legacy_sql: Some(false),
use_query_cache: Some(false),
default_dataset: Some(DatasetReference::fixture()),
destination_table: Some(TableReference::fixture()),
create_disposition: Some("test-create_disposition".into()),
write_disposition: Some("test-write_disposition".into()),
priority: Some("test-priority".into()),
maximum_bytes_billed: Some("test-maximum_bytes_billed".into()),
parameter_mode: Some("test-parameter_mode".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JobStatus {
#[serde(skip_serializing_if = "Option::is_none")]
pub error_result: Option<ErrorProto>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub errors: Vec<ErrorProto>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
}
impl JobStatus {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
error_result: Some(ErrorProto::fixture()),
errors: vec![],
state: Some("test-state".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JobStatistics {
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub start_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_bytes_processed: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_slot_ms: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub num_child_jobs: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parent_job_id: Option<String>,
}
impl JobStatistics {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
creation_time: Some("test-creation_time".into()),
end_time: Some("test-end_time".into()),
start_time: Some("test-start_time".into()),
total_bytes_processed: Some("test-total_bytes_processed".into()),
total_slot_ms: Some("test-total_slot_ms".into()),
num_child_jobs: Some("test-num_child_jobs".into()),
parent_job_id: Some("test-parent_job_id".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JobList {
#[serde(skip_serializing_if = "Option::is_none")]
pub etag: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub jobs: Vec<JobListItem>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl JobList {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
etag: Some("test-etag".into()),
jobs: vec![],
kind: Some("test-kind".into()),
next_page_token: Some("test-next_page_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct QueryRequest {
pub query: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub use_legacy_sql: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub use_query_cache: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_dataset: Option<DatasetReference>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dry_run: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timeout_ms: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub location: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub maximum_bytes_billed: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parameter_mode: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub labels: HashMap<String, String>,
}
impl QueryRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
query: "test-query".into(),
use_legacy_sql: Some(false),
use_query_cache: Some(false),
default_dataset: Some(DatasetReference::fixture()),
dry_run: Some(false),
max_results: Some(100),
timeout_ms: Some(100),
location: Some("test-location".into()),
maximum_bytes_billed: Some("test-maximum_bytes_billed".into()),
parameter_mode: Some("test-parameter_mode".into()),
labels: Default::default(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct QueryResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub job_complete: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub job_reference: Option<JobReference>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub rows: Vec<TableRow>,
#[serde(skip_serializing_if = "Option::is_none")]
pub schema: Option<TableSchema>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_bytes_processed: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_rows: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cache_hit: Option<bool>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub errors: Vec<ErrorProto>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub num_dml_affected_rows: Option<String>,
}
impl QueryResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
job_complete: Some(false),
job_reference: Some(JobReference::fixture()),
kind: Some("test-kind".into()),
rows: vec![],
schema: Some(TableSchema::fixture()),
total_bytes_processed: Some("test-total_bytes_processed".into()),
total_rows: Some("test-total_rows".into()),
cache_hit: Some(false),
errors: vec![],
page_token: Some("test-page_token".into()),
num_dml_affected_rows: Some("test-num_dml_affected_rows".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JobCancelResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub job: Option<Job>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
}
impl JobCancelResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
job: Some(Job::fixture()),
kind: Some("test-kind".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DatasetListItem {
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_reference: Option<DatasetReference>,
#[serde(skip_serializing_if = "Option::is_none")]
pub external_dataset_reference: Option<ExternalDatasetReference>,
#[serde(skip_serializing_if = "Option::is_none")]
pub friendly_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<HashMap<String, String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub location: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TableListItem {
#[serde(skip_serializing_if = "Option::is_none")]
pub clustering: Option<Clustering>,
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub expiration_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub friendly_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<HashMap<String, String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub range_partitioning: Option<RangePartitioning>,
#[serde(skip_serializing_if = "Option::is_none")]
pub require_partition_filter: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub table_reference: Option<TableReference>,
#[serde(skip_serializing_if = "Option::is_none")]
pub time_partitioning: Option<TimePartitioning>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub view: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RangePartitioningRange {
#[serde(skip_serializing_if = "Option::is_none")]
pub end: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub interval: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub start: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JobListItem {
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration: Option<JobConfiguration>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error_result: Option<ErrorProto>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub job_reference: Option<JobReference>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(rename = "principal_subject")]
#[serde(skip_serializing_if = "Option::is_none")]
pub principal_subject: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub statistics: Option<JobStatistics>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<JobStatus>,
#[serde(rename = "user_email")]
#[serde(skip_serializing_if = "Option::is_none")]
pub user_email: Option<String>,
}