google_cloud_bigquery/http/routine/
list.rs1use reqwest_middleware::{ClientWithMiddleware as Client, RequestBuilder};
2
3use crate::http::routine::{Language, RemoteFunctionOptions, RoutineReference, RoutineType};
4
5#[derive(Clone, PartialEq, serde::Deserialize, serde::Serialize, Debug, Default)]
6#[serde(rename_all = "camelCase")]
7pub struct ListRoutinesRequest {
8 pub max_results: Option<i64>,
11 pub filter: Option<String>,
15}
16
17#[derive(Clone, PartialEq, serde::Deserialize, serde::Serialize, Debug, Default)]
18#[serde(rename_all = "camelCase")]
19pub struct ListRoutinesResponse {
20 pub routines: Vec<RoutineOverview>,
24 pub next_page_token: Option<String>,
26}
27
28#[derive(Clone, PartialEq, Eq, serde::Deserialize, serde::Serialize, Debug, Default)]
29#[serde(rename_all = "camelCase")]
30pub struct RoutineOverview {
31 pub etag: String,
33 pub routine_reference: RoutineReference,
35 pub routine_type: RoutineType,
37 #[serde(default, deserialize_with = "crate::http::from_str_option")]
39 pub creation_time: Option<i64>,
40 #[serde(default, deserialize_with = "crate::http::from_str_option")]
42 pub last_modified_time: Option<i64>,
43 pub language: Option<Language>,
45 pub remote_function_options: Option<RemoteFunctionOptions>,
47}
48
49pub fn build(
50 base_url: &str,
51 client: &Client,
52 project_id: &str,
53 dataset_id: &str,
54 data: &ListRoutinesRequest,
55 page_token: Option<String>,
56) -> RequestBuilder {
57 let url = format!("{}/projects/{}/datasets/{}/routines", base_url, project_id, dataset_id);
58 let builder = client.get(url).query(data);
59 if let Some(page_token) = page_token {
60 builder.query(&[("pageToken", page_token.as_str())])
61 } else {
62 builder
63 }
64}