#[async_trait::async_trait]
pub trait CloudBilling: std::fmt::Debug + Send + Sync {
async fn get_billing_account(
&self,
req: crate::model::GetBillingAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::BillingAccount>>;
async fn list_billing_accounts(
&self,
req: crate::model::ListBillingAccountsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListBillingAccountsResponse>>;
async fn update_billing_account(
&self,
req: crate::model::UpdateBillingAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::BillingAccount>>;
async fn create_billing_account(
&self,
req: crate::model::CreateBillingAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::BillingAccount>>;
async fn list_project_billing_info(
&self,
req: crate::model::ListProjectBillingInfoRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListProjectBillingInfoResponse>>;
async fn get_project_billing_info(
&self,
req: crate::model::GetProjectBillingInfoRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ProjectBillingInfo>>;
async fn update_project_billing_info(
&self,
req: crate::model::UpdateProjectBillingInfoRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ProjectBillingInfo>>;
async fn get_iam_policy(
&self,
req: google_cloud_iam_v1::model::GetIamPolicyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_iam_v1::model::Policy>>;
async fn set_iam_policy(
&self,
req: google_cloud_iam_v1::model::SetIamPolicyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_iam_v1::model::Policy>>;
async fn test_iam_permissions(
&self,
req: google_cloud_iam_v1::model::TestIamPermissionsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_iam_v1::model::TestIamPermissionsResponse>>;
async fn move_billing_account(
&self,
req: crate::model::MoveBillingAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::BillingAccount>>;
}
#[async_trait::async_trait]
impl<T: super::CloudBilling> CloudBilling for T {
async fn get_billing_account(
&self,
req: crate::model::GetBillingAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::BillingAccount>> {
T::get_billing_account(self, req, options).await
}
async fn list_billing_accounts(
&self,
req: crate::model::ListBillingAccountsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListBillingAccountsResponse>> {
T::list_billing_accounts(self, req, options).await
}
async fn update_billing_account(
&self,
req: crate::model::UpdateBillingAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::BillingAccount>> {
T::update_billing_account(self, req, options).await
}
async fn create_billing_account(
&self,
req: crate::model::CreateBillingAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::BillingAccount>> {
T::create_billing_account(self, req, options).await
}
async fn list_project_billing_info(
&self,
req: crate::model::ListProjectBillingInfoRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListProjectBillingInfoResponse>> {
T::list_project_billing_info(self, req, options).await
}
async fn get_project_billing_info(
&self,
req: crate::model::GetProjectBillingInfoRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ProjectBillingInfo>> {
T::get_project_billing_info(self, req, options).await
}
async fn update_project_billing_info(
&self,
req: crate::model::UpdateProjectBillingInfoRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ProjectBillingInfo>> {
T::update_project_billing_info(self, req, options).await
}
async fn get_iam_policy(
&self,
req: google_cloud_iam_v1::model::GetIamPolicyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_iam_v1::model::Policy>> {
T::get_iam_policy(self, req, options).await
}
async fn set_iam_policy(
&self,
req: google_cloud_iam_v1::model::SetIamPolicyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_iam_v1::model::Policy>> {
T::set_iam_policy(self, req, options).await
}
async fn test_iam_permissions(
&self,
req: google_cloud_iam_v1::model::TestIamPermissionsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<google_cloud_iam_v1::model::TestIamPermissionsResponse>>
{
T::test_iam_permissions(self, req, options).await
}
async fn move_billing_account(
&self,
req: crate::model::MoveBillingAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::BillingAccount>> {
T::move_billing_account(self, req, options).await
}
}
#[async_trait::async_trait]
pub trait CloudCatalog: std::fmt::Debug + Send + Sync {
async fn list_services(
&self,
req: crate::model::ListServicesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListServicesResponse>>;
async fn list_skus(
&self,
req: crate::model::ListSkusRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListSkusResponse>>;
}
#[async_trait::async_trait]
impl<T: super::CloudCatalog> CloudCatalog for T {
async fn list_services(
&self,
req: crate::model::ListServicesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListServicesResponse>> {
T::list_services(self, req, options).await
}
async fn list_skus(
&self,
req: crate::model::ListSkusRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListSkusResponse>> {
T::list_skus(self, req, options).await
}
}