Skip to main content

JobService

Struct JobService 

Source
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

§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

Source

pub fn builder() -> ClientBuilder

Returns a builder for JobService.

let client = JobService::builder().build().await?;
Source

pub fn from_stub<T>(stub: impl Into<Arc<T>>) -> Self
where 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.

Source

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(())
}
Source

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(())
}
Source

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.export or 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(())
}
Source

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(())
}
Source

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.listAll permission can list all jobs with all metadata.
  • Users with the bigquery.jobs.list permission 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(())
}
Source

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.get on the job.
  • bigquery.tables.getData on the destination table.

If the user matches the creator of the job, the following IAM permission(s) are required instead:

  • bigquery.jobs.create on the project.
  • bigquery.tables.getData on 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(())
}
Source

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

Source§

fn clone(&self) -> JobService

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for JobService

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more