pub struct JobService { /* private fields */ }Expand description
Implements a client for the BigQuery API.
§Example
async fn sample(
) -> anyhow::Result<()> {
let client = JobService::builder().build().await?;
let response = client.cancel_job()
/* set fields */
.send().await?;
println!("response {:?}", response);
Ok(())
}§Service Description
§Configuration
To configure JobService use the with_* methods in the type returned
by builder(). The default configuration should
work for most applications. Common configuration changes include
- with_endpoint(): by default this client uses the global default endpoint
(
https://bigquery.googleapis.com). Applications using regional endpoints or running in restricted networks (e.g. a network configured with Private Google Access with VPC Service Controls) may want to override this default. - with_credentials(): by default this client uses Application Default Credentials. Applications using custom authentication may need to override this default.
§Pooling and Cloning
JobService holds a connection pool internally, it is advised to
create one and reuse it. You do not need to wrap JobService in
an Rc or Arc to reuse it, because it
already uses an Arc internally.
Implementations§
Source§impl JobService
impl JobService
Sourcepub fn builder() -> ClientBuilder
pub fn builder() -> ClientBuilder
Returns a builder for JobService.
let client = JobService::builder().build().await?;Sourcepub fn from_stub<T>(stub: impl Into<Arc<T>>) -> Selfwhere
T: JobService + 'static,
pub fn from_stub<T>(stub: impl Into<Arc<T>>) -> Selfwhere
T: JobService + 'static,
Creates a new client from the provided stub.
The most common case for calling this function is in tests mocking the client’s behavior.
Sourcepub fn cancel_job(&self) -> CancelJob
pub fn cancel_job(&self) -> CancelJob
Requests that a job be cancelled. This call will return immediately, and the client will need to poll for the job status to see if the cancel completed successfully. Cancelled jobs may still incur costs.
§IAM Permissions
Requires the bigquery.jobs.update permission on the job resource.
If the user matches the creator of the job, the bigquery.jobs.create
permission on the project is required instead.
§Example
use google_cloud_bigquery_v2::Result;
async fn sample(
client: &JobService
) -> Result<()> {
let response = client.cancel_job()
/* set fields */
.send().await?;
println!("response {:?}", response);
Ok(())
}Sourcepub fn get_job(&self) -> GetJob
pub fn get_job(&self) -> GetJob
Returns information about a specific job. Job information is available for a six month period after creation. Requires that you’re the person who ran the job, or have the Is Owner project role.
§IAM Permissions
Requires the bigquery.jobs.get permission on the job resource.
If the user matches the creator of the job, the bigquery.jobs.create
permission on the project is required instead.
§Example
use google_cloud_bigquery_v2::Result;
async fn sample(
client: &JobService
) -> Result<()> {
let response = client.get_job()
/* set fields */
.send().await?;
println!("response {:?}", response);
Ok(())
}Sourcepub fn insert_job(&self) -> InsertJob
pub fn insert_job(&self) -> InsertJob
Starts a new asynchronous job.
This API has two different kinds of endpoint URIs, as this method supports a variety of use cases.
- The Metadata URI is used for most interactions, as it accepts the job configuration directly.
- The Upload URI is ONLY for the case when you’re sending both a load job configuration and a data stream together. In this case, the Upload URI accepts the job configuration and the data as two distinct multipart MIME parts.
§IAM Permissions
Requires the bigquery.jobs.create permission on the project resource.
Additional permissions are required depending on the job type:
- Load, Export, and Copy jobs: Generally require data-level
permissions such as
bigquery.tables.exportor access to external storage. - Query jobs: Permissions are dependent on the SQL statement. Complex queries (DDL, DCL) may require additional permissions to create reservations, modify IAM policies, or update project settings.
§Example
use google_cloud_bigquery_v2::Result;
async fn sample(
client: &JobService
) -> Result<()> {
let response = client.insert_job()
/* set fields */
.send().await?;
println!("response {:?}", response);
Ok(())
}Sourcepub fn delete_job(&self) -> DeleteJob
pub fn delete_job(&self) -> DeleteJob
Requests the deletion of the metadata of a job. This call returns when the job’s metadata is deleted.
§IAM Permissions
Requires the bigquery.jobs.delete permission on the job resource.
§Example
use google_cloud_bigquery_v2::Result;
async fn sample(
client: &JobService
) -> Result<()> {
client.delete_job()
/* set fields */
.send().await?;
Ok(())
}Sourcepub fn list_jobs(&self) -> ListJobs
pub fn list_jobs(&self) -> ListJobs
Lists all jobs that you started in the specified project. Job information is available for a six month period after creation. The job list is sorted in reverse chronological order, by job creation time. Requires the Can View project role, or the Is Owner project role if you set the allUsers property.
§IAM Permissions
Requires no specific IAM permission(s) to use this method. Users are able to list the jobs they created.
Additional access is granted based on the following permissions:
- Users with the
bigquery.jobs.listAllpermission can list all jobs with all metadata. - Users with the
bigquery.jobs.listpermission can list all jobs, but with redacted information for jobs they did not create.
§Example
use google_cloud_gax::paginator::ItemPaginator as _;
use google_cloud_bigquery_v2::Result;
async fn sample(
client: &JobService
) -> Result<()> {
let mut list = client.list_jobs()
/* set fields */
.by_item();
while let Some(item) = list.next().await.transpose()? {
println!("{:?}", item);
}
Ok(())
}Sourcepub fn get_query_results(&self) -> GetQueryResults
pub fn get_query_results(&self) -> GetQueryResults
RPC to get the results of a query job.
§IAM Permissions
Requires the following IAM permission(s) to use this method:
bigquery.jobs.geton the job.bigquery.tables.getDataon the destination table.
If the user matches the creator of the job, the following IAM permission(s) are required instead:
bigquery.jobs.createon the project.bigquery.tables.getDataon the destination table.
§Example
use google_cloud_bigquery_v2::Result;
async fn sample(
client: &JobService
) -> Result<()> {
let response = client.get_query_results()
/* set fields */
.send().await?;
println!("response {:?}", response);
Ok(())
}Sourcepub fn query(&self) -> Query
pub fn query(&self) -> Query
Runs a BigQuery SQL query synchronously and returns query results if the query completes within a specified timeout.
§IAM Permissions
Requires the bigquery.jobs.create permission on the project resource.
Data-level permissions are highly dependent on the SQL statement being
executed. While standard queries require data access (such as
bigquery.tables.getData), complex operations like DDL or DCL may require
permissions to manage reservations, IAM policies, or project settings.
§Example
use google_cloud_bigquery_v2::Result;
async fn sample(
client: &JobService
) -> Result<()> {
let response = client.query()
/* set fields */
.send().await?;
println!("response {:?}", response);
Ok(())
}Trait Implementations§
Source§impl Clone for JobService
impl Clone for JobService
Source§fn clone(&self) -> JobService
fn clone(&self) -> JobService
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for JobService
impl !UnwindSafe for JobService
impl Freeze for JobService
impl Send for JobService
impl Sync for JobService
impl Unpin for JobService
impl UnsafeUnpin for JobService
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request