#[async_trait::async_trait]
pub trait Iam: std::fmt::Debug + Send + Sync {
async fn list_service_accounts(
&self,
req: crate::model::ListServiceAccountsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListServiceAccountsResponse>>;
async fn get_service_account(
&self,
req: crate::model::GetServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccount>>;
async fn create_service_account(
&self,
req: crate::model::CreateServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccount>>;
async fn update_service_account(
&self,
req: crate::model::ServiceAccount,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccount>>;
async fn patch_service_account(
&self,
req: crate::model::PatchServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccount>>;
async fn delete_service_account(
&self,
req: crate::model::DeleteServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn undelete_service_account(
&self,
req: crate::model::UndeleteServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::UndeleteServiceAccountResponse>>;
async fn enable_service_account(
&self,
req: crate::model::EnableServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn disable_service_account(
&self,
req: crate::model::DisableServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn list_service_account_keys(
&self,
req: crate::model::ListServiceAccountKeysRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListServiceAccountKeysResponse>>;
async fn get_service_account_key(
&self,
req: crate::model::GetServiceAccountKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccountKey>>;
async fn create_service_account_key(
&self,
req: crate::model::CreateServiceAccountKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccountKey>>;
async fn upload_service_account_key(
&self,
req: crate::model::UploadServiceAccountKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccountKey>>;
async fn delete_service_account_key(
&self,
req: crate::model::DeleteServiceAccountKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn disable_service_account_key(
&self,
req: crate::model::DisableServiceAccountKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn enable_service_account_key(
&self,
req: crate::model::EnableServiceAccountKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn sign_blob(
&self,
req: crate::model::SignBlobRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SignBlobResponse>>;
async fn sign_jwt(
&self,
req: crate::model::SignJwtRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SignJwtResponse>>;
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 query_grantable_roles(
&self,
req: crate::model::QueryGrantableRolesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::QueryGrantableRolesResponse>>;
async fn list_roles(
&self,
req: crate::model::ListRolesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListRolesResponse>>;
async fn get_role(
&self,
req: crate::model::GetRoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Role>>;
async fn create_role(
&self,
req: crate::model::CreateRoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Role>>;
async fn update_role(
&self,
req: crate::model::UpdateRoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Role>>;
async fn delete_role(
&self,
req: crate::model::DeleteRoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Role>>;
async fn undelete_role(
&self,
req: crate::model::UndeleteRoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Role>>;
async fn query_testable_permissions(
&self,
req: crate::model::QueryTestablePermissionsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::QueryTestablePermissionsResponse>>;
async fn query_auditable_services(
&self,
req: crate::model::QueryAuditableServicesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::QueryAuditableServicesResponse>>;
async fn lint_policy(
&self,
req: crate::model::LintPolicyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LintPolicyResponse>>;
}
#[async_trait::async_trait]
impl<T: super::Iam> Iam for T {
async fn list_service_accounts(
&self,
req: crate::model::ListServiceAccountsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListServiceAccountsResponse>> {
T::list_service_accounts(self, req, options).await
}
async fn get_service_account(
&self,
req: crate::model::GetServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccount>> {
T::get_service_account(self, req, options).await
}
async fn create_service_account(
&self,
req: crate::model::CreateServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccount>> {
T::create_service_account(self, req, options).await
}
async fn update_service_account(
&self,
req: crate::model::ServiceAccount,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccount>> {
T::update_service_account(self, req, options).await
}
async fn patch_service_account(
&self,
req: crate::model::PatchServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccount>> {
T::patch_service_account(self, req, options).await
}
async fn delete_service_account(
&self,
req: crate::model::DeleteServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_service_account(self, req, options).await
}
async fn undelete_service_account(
&self,
req: crate::model::UndeleteServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::UndeleteServiceAccountResponse>> {
T::undelete_service_account(self, req, options).await
}
async fn enable_service_account(
&self,
req: crate::model::EnableServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::enable_service_account(self, req, options).await
}
async fn disable_service_account(
&self,
req: crate::model::DisableServiceAccountRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::disable_service_account(self, req, options).await
}
async fn list_service_account_keys(
&self,
req: crate::model::ListServiceAccountKeysRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListServiceAccountKeysResponse>> {
T::list_service_account_keys(self, req, options).await
}
async fn get_service_account_key(
&self,
req: crate::model::GetServiceAccountKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccountKey>> {
T::get_service_account_key(self, req, options).await
}
async fn create_service_account_key(
&self,
req: crate::model::CreateServiceAccountKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccountKey>> {
T::create_service_account_key(self, req, options).await
}
async fn upload_service_account_key(
&self,
req: crate::model::UploadServiceAccountKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ServiceAccountKey>> {
T::upload_service_account_key(self, req, options).await
}
async fn delete_service_account_key(
&self,
req: crate::model::DeleteServiceAccountKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_service_account_key(self, req, options).await
}
async fn disable_service_account_key(
&self,
req: crate::model::DisableServiceAccountKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::disable_service_account_key(self, req, options).await
}
async fn enable_service_account_key(
&self,
req: crate::model::EnableServiceAccountKeyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::enable_service_account_key(self, req, options).await
}
async fn sign_blob(
&self,
req: crate::model::SignBlobRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SignBlobResponse>> {
T::sign_blob(self, req, options).await
}
async fn sign_jwt(
&self,
req: crate::model::SignJwtRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SignJwtResponse>> {
T::sign_jwt(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 query_grantable_roles(
&self,
req: crate::model::QueryGrantableRolesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::QueryGrantableRolesResponse>> {
T::query_grantable_roles(self, req, options).await
}
async fn list_roles(
&self,
req: crate::model::ListRolesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListRolesResponse>> {
T::list_roles(self, req, options).await
}
async fn get_role(
&self,
req: crate::model::GetRoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Role>> {
T::get_role(self, req, options).await
}
async fn create_role(
&self,
req: crate::model::CreateRoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Role>> {
T::create_role(self, req, options).await
}
async fn update_role(
&self,
req: crate::model::UpdateRoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Role>> {
T::update_role(self, req, options).await
}
async fn delete_role(
&self,
req: crate::model::DeleteRoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Role>> {
T::delete_role(self, req, options).await
}
async fn undelete_role(
&self,
req: crate::model::UndeleteRoleRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Role>> {
T::undelete_role(self, req, options).await
}
async fn query_testable_permissions(
&self,
req: crate::model::QueryTestablePermissionsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::QueryTestablePermissionsResponse>> {
T::query_testable_permissions(self, req, options).await
}
async fn query_auditable_services(
&self,
req: crate::model::QueryAuditableServicesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::QueryAuditableServicesResponse>> {
T::query_auditable_services(self, req, options).await
}
async fn lint_policy(
&self,
req: crate::model::LintPolicyRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::LintPolicyResponse>> {
T::lint_policy(self, req, options).await
}
}