Skip to main content

BillingAccountClient

Struct BillingAccountClient 

Source
pub struct BillingAccountClient { /* private fields */ }
Expand description

Calls BillingAccountService.

Billing accounts, which project each one pays for, and how they are paid.

Implementations§

Source§

impl BillingAccountClient

Source

pub fn new(client: &Client) -> Self

Returns a client of BillingAccountService that sends its calls through client.

Source

pub fn service(&self) -> &Service

The endpoint the client sends its calls to, which also serves the operations its methods answer with.

Source

pub fn with_options(&self, options: CallOptions) -> Self

The same client, whose calls are sent as options says instead of as the Client’s settings do, such as a mutation that must not be sent twice: .with_options(CallOptions::new().max_attempts(1)). See CallOptions.

Source

pub async fn get_billing_account( &self, request: GetBillingAccountRequest, ) -> Result<BillingAccount, Error>

Returns a billing account. Needs admin.billing_account.get on the organization.

Source

pub async fn list_billing_accounts( &self, request: ListBillingAccountsRequest, ) -> Result<ListBillingAccountsResponse, Error>

Lists an organization’s billing accounts, oldest first. Needs admin.billing_account.list on the organization.

Source

pub fn all_billing_accounts( &self, request: ListBillingAccountsRequest, ) -> Pages<BillingAccount>

Returns everything list_billing_accounts lists from request’s page on, fetching the next page as the stream reaches it. A page that fails ends the stream with its error.

Source

pub async fn create_billing_account( &self, request: CreateBillingAccountRequest, ) -> Result<BillingAccount, Error>

Creates a billing account with its profile: display_name, billing_address, invoice_email and contact_person are required, and vat_id too for a billing address outside Germany. The account has no payment method yet: until one is verified, the projects linked to it can’t create billable resources. Creating it grants nobody a role: whoever can create billing accounts can use it. Needs admin.billing_account.create on the organization.

Source

pub async fn update_billing_account( &self, request: UpdateBillingAccountRequest, ) -> Result<BillingAccount, Error>

Changes a billing account’s display_name or its profile. The profile fields named in update_mask are replaced and the others kept; once the update is applied, the account must have a whole profile (billing_address, invoice_email, contact_person, and vat_id for a billing address outside Germany), or the update is refused. Needs admin.billing_account.update on the organization.

Source

pub async fn delete_billing_account( &self, request: DeleteBillingAccountRequest, ) -> Result<Empty, Error>

Deletes a billing account. Refused as a CONFLICT for the organization’s default billing account, while a project is linked to the account (link it to another account first), and while the account has a spend limit (remove it first). Needs admin.billing_account.delete on the organization.

Source

pub async fn start_payment_method_setup( &self, request: StartPaymentMethodSetupRequest, ) -> Result<StartPaymentMethodSetupResponse, Error>

Starts adding a payment method to a billing account, and returns the payment provider’s page to open in a browser: the payment details are entered there and never pass through this API. Once that page is done, call ConfirmPaymentMethodSetup. Starting again replaces a setup that wasn’t confirmed. Refused as INVALID_ARGUMENT for an account whose payment_method.state is payment_method::State::NotRequired. Needs admin.billing_account.update on the organization.

Source

pub async fn confirm_payment_method_setup( &self, request: ConfirmPaymentMethodSetupRequest, ) -> Result<BillingAccount, Error>

Completes the setup StartPaymentMethodSetup started, once its page is done: the payment provider is asked whether it finished, and only a finished setup is recorded. The account’s payment_method is then payment_method::State::Verified, replacing any earlier one, and its projects can create billable resources. An unfinished or abandoned setup is refused as INVALID_ARGUMENT and changes nothing: finish the page, or start again. So is an account with no setup started, which includes a repeat of a confirmation that succeeded: read the account to see whether it did. Needs admin.billing_account.update on the organization.

Source

pub async fn get_project_billing_info( &self, request: GetProjectBillingInfoRequest, ) -> Result<ProjectBillingInfo, Error>

Returns which billing account pays for a project. Needs admin.project.get on the project.

Source

pub async fn update_project_billing_info( &self, request: UpdateProjectBillingInfoRequest, ) -> Result<ProjectBillingInfo, Error>

Links a project to another billing account of its organization, which pays for its usage from then on; what it used before stays charged to the account it was linked to then. A project is always linked to one account, so there is nothing to unlink. Needs admin.project.attach on the project, which is separate from access to billing accounts.

Source

pub async fn list_project_billing_info( &self, request: ListProjectBillingInfoRequest, ) -> Result<ListProjectBillingInfoResponse, Error>

Lists the projects a billing account pays for, oldest first. Needs admin.billing_account.get on the organization.

Source

pub fn all_project_billing_infos( &self, request: ListProjectBillingInfoRequest, ) -> Pages<ProjectBillingInfo>

Returns everything list_project_billing_info lists from request’s page on, fetching the next page as the stream reaches it. A page that fails ends the stream with its error.

Source

pub async fn get_billing_country( &self, request: GetBillingCountryRequest, ) -> Result<BillingCountry, Error>

Returns a country a billing address may be in.

Source

pub async fn list_billing_countries( &self, request: ListBillingCountriesRequest, ) -> Result<ListBillingCountriesResponse, Error>

Lists the countries a billing address may be in, in the order a form shows them, and whether each needs a VAT id.

Source

pub fn all_billing_countries( &self, request: ListBillingCountriesRequest, ) -> Pages<BillingCountry>

Returns everything list_billing_countries lists from request’s page on, fetching the next page as the stream reaches it. A page that fails ends the stream with its error.

Trait Implementations§

Source§

impl Clone for BillingAccountClient

Source§

fn clone(&self) -> Self

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 BillingAccountClient

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<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> 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> MaybeSend for T
where T: Send + ?Sized,

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> 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, !>

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<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