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
impl BillingAccountClient
Sourcepub fn new(client: &Client) -> Self
pub fn new(client: &Client) -> Self
Returns a client of BillingAccountService that sends its calls through client.
Sourcepub fn service(&self) -> &Service
pub fn service(&self) -> &Service
The endpoint the client sends its calls to, which also serves the operations its methods answer with.
Sourcepub fn with_options(&self, options: CallOptions) -> Self
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.
Sourcepub async fn get_billing_account(
&self,
request: GetBillingAccountRequest,
) -> Result<BillingAccount, Error>
pub async fn get_billing_account( &self, request: GetBillingAccountRequest, ) -> Result<BillingAccount, Error>
Returns a billing account. Needs admin.billing_account.get on the
organization.
Sourcepub async fn list_billing_accounts(
&self,
request: ListBillingAccountsRequest,
) -> Result<ListBillingAccountsResponse, Error>
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.
Sourcepub fn all_billing_accounts(
&self,
request: ListBillingAccountsRequest,
) -> Pages<BillingAccount>
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.
Sourcepub async fn create_billing_account(
&self,
request: CreateBillingAccountRequest,
) -> Result<BillingAccount, Error>
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.
Sourcepub async fn update_billing_account(
&self,
request: UpdateBillingAccountRequest,
) -> Result<BillingAccount, Error>
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.
Sourcepub async fn delete_billing_account(
&self,
request: DeleteBillingAccountRequest,
) -> Result<Empty, Error>
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.
Sourcepub async fn start_payment_method_setup(
&self,
request: StartPaymentMethodSetupRequest,
) -> Result<StartPaymentMethodSetupResponse, Error>
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.
Sourcepub async fn confirm_payment_method_setup(
&self,
request: ConfirmPaymentMethodSetupRequest,
) -> Result<BillingAccount, Error>
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.
Sourcepub async fn get_project_billing_info(
&self,
request: GetProjectBillingInfoRequest,
) -> Result<ProjectBillingInfo, Error>
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.
Sourcepub async fn update_project_billing_info(
&self,
request: UpdateProjectBillingInfoRequest,
) -> Result<ProjectBillingInfo, Error>
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.
Sourcepub async fn list_project_billing_info(
&self,
request: ListProjectBillingInfoRequest,
) -> Result<ListProjectBillingInfoResponse, Error>
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.
Sourcepub fn all_project_billing_infos(
&self,
request: ListProjectBillingInfoRequest,
) -> Pages<ProjectBillingInfo>
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.
Sourcepub async fn get_billing_country(
&self,
request: GetBillingCountryRequest,
) -> Result<BillingCountry, Error>
pub async fn get_billing_country( &self, request: GetBillingCountryRequest, ) -> Result<BillingCountry, Error>
Returns a country a billing address may be in.
Sourcepub async fn list_billing_countries(
&self,
request: ListBillingCountriesRequest,
) -> Result<ListBillingCountriesResponse, Error>
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.
Sourcepub fn all_billing_countries(
&self,
request: ListBillingCountriesRequest,
) -> Pages<BillingCountry>
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.