#![allow(rustdoc::redundant_explicit_links)]
#![allow(rustdoc::broken_intra_doc_links)]
#[derive(Clone, Debug)]
pub struct Iam {
inner: std::sync::Arc<dyn super::stub::dynamic::Iam>,
}
impl Iam {
pub fn builder() -> super::builder::iam::ClientBuilder {
crate::new_client_builder(super::builder::iam::client::Factory)
}
pub fn from_stub<T>(stub: T) -> Self
where
T: super::stub::Iam + 'static,
{
Self {
inner: std::sync::Arc::new(stub),
}
}
pub(crate) async fn new(
config: gaxi::options::ClientConfig,
) -> crate::ClientBuilderResult<Self> {
let inner = Self::build_inner(config).await?;
Ok(Self { inner })
}
async fn build_inner(
conf: gaxi::options::ClientConfig,
) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::Iam>> {
if gaxi::options::tracing_enabled(&conf) {
return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
}
Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
}
async fn build_transport(
conf: gaxi::options::ClientConfig,
) -> crate::ClientBuilderResult<impl super::stub::Iam> {
super::transport::Iam::new(conf).await
}
async fn build_with_tracing(
conf: gaxi::options::ClientConfig,
) -> crate::ClientBuilderResult<impl super::stub::Iam> {
Self::build_transport(conf)
.await
.map(super::tracing::Iam::new)
}
pub fn list_service_accounts(&self) -> super::builder::iam::ListServiceAccounts {
super::builder::iam::ListServiceAccounts::new(self.inner.clone())
}
pub fn get_service_account(&self) -> super::builder::iam::GetServiceAccount {
super::builder::iam::GetServiceAccount::new(self.inner.clone())
}
pub fn create_service_account(&self) -> super::builder::iam::CreateServiceAccount {
super::builder::iam::CreateServiceAccount::new(self.inner.clone())
}
pub fn update_service_account(&self) -> super::builder::iam::UpdateServiceAccount {
super::builder::iam::UpdateServiceAccount::new(self.inner.clone())
}
pub fn patch_service_account(&self) -> super::builder::iam::PatchServiceAccount {
super::builder::iam::PatchServiceAccount::new(self.inner.clone())
}
pub fn delete_service_account(&self) -> super::builder::iam::DeleteServiceAccount {
super::builder::iam::DeleteServiceAccount::new(self.inner.clone())
}
pub fn undelete_service_account(&self) -> super::builder::iam::UndeleteServiceAccount {
super::builder::iam::UndeleteServiceAccount::new(self.inner.clone())
}
pub fn enable_service_account(&self) -> super::builder::iam::EnableServiceAccount {
super::builder::iam::EnableServiceAccount::new(self.inner.clone())
}
pub fn disable_service_account(&self) -> super::builder::iam::DisableServiceAccount {
super::builder::iam::DisableServiceAccount::new(self.inner.clone())
}
pub fn list_service_account_keys(&self) -> super::builder::iam::ListServiceAccountKeys {
super::builder::iam::ListServiceAccountKeys::new(self.inner.clone())
}
pub fn get_service_account_key(&self) -> super::builder::iam::GetServiceAccountKey {
super::builder::iam::GetServiceAccountKey::new(self.inner.clone())
}
pub fn create_service_account_key(&self) -> super::builder::iam::CreateServiceAccountKey {
super::builder::iam::CreateServiceAccountKey::new(self.inner.clone())
}
pub fn upload_service_account_key(&self) -> super::builder::iam::UploadServiceAccountKey {
super::builder::iam::UploadServiceAccountKey::new(self.inner.clone())
}
pub fn delete_service_account_key(&self) -> super::builder::iam::DeleteServiceAccountKey {
super::builder::iam::DeleteServiceAccountKey::new(self.inner.clone())
}
pub fn disable_service_account_key(&self) -> super::builder::iam::DisableServiceAccountKey {
super::builder::iam::DisableServiceAccountKey::new(self.inner.clone())
}
pub fn enable_service_account_key(&self) -> super::builder::iam::EnableServiceAccountKey {
super::builder::iam::EnableServiceAccountKey::new(self.inner.clone())
}
#[deprecated]
pub fn sign_blob(&self) -> super::builder::iam::SignBlob {
super::builder::iam::SignBlob::new(self.inner.clone())
}
#[deprecated]
pub fn sign_jwt(&self) -> super::builder::iam::SignJwt {
super::builder::iam::SignJwt::new(self.inner.clone())
}
pub fn get_iam_policy(&self) -> super::builder::iam::GetIamPolicy {
super::builder::iam::GetIamPolicy::new(self.inner.clone())
}
pub fn set_iam_policy(&self) -> super::builder::iam::SetIamPolicy {
super::builder::iam::SetIamPolicy::new(self.inner.clone())
}
pub fn test_iam_permissions(&self) -> super::builder::iam::TestIamPermissions {
super::builder::iam::TestIamPermissions::new(self.inner.clone())
}
pub fn query_grantable_roles(&self) -> super::builder::iam::QueryGrantableRoles {
super::builder::iam::QueryGrantableRoles::new(self.inner.clone())
}
pub fn list_roles(&self) -> super::builder::iam::ListRoles {
super::builder::iam::ListRoles::new(self.inner.clone())
}
pub fn get_role(&self) -> super::builder::iam::GetRole {
super::builder::iam::GetRole::new(self.inner.clone())
}
pub fn create_role(&self) -> super::builder::iam::CreateRole {
super::builder::iam::CreateRole::new(self.inner.clone())
}
pub fn update_role(&self) -> super::builder::iam::UpdateRole {
super::builder::iam::UpdateRole::new(self.inner.clone())
}
pub fn delete_role(&self) -> super::builder::iam::DeleteRole {
super::builder::iam::DeleteRole::new(self.inner.clone())
}
pub fn undelete_role(&self) -> super::builder::iam::UndeleteRole {
super::builder::iam::UndeleteRole::new(self.inner.clone())
}
pub fn query_testable_permissions(&self) -> super::builder::iam::QueryTestablePermissions {
super::builder::iam::QueryTestablePermissions::new(self.inner.clone())
}
pub fn query_auditable_services(&self) -> super::builder::iam::QueryAuditableServices {
super::builder::iam::QueryAuditableServices::new(self.inner.clone())
}
pub fn lint_policy(&self) -> super::builder::iam::LintPolicy {
super::builder::iam::LintPolicy::new(self.inner.clone())
}
}