pub struct ArmClient { /* private fields */ }Expand description
Azure Resource Manager client for subscription/service discovery
Implementations§
Source§impl ArmClient
impl ArmClient
Sourcepub fn new() -> Result<Self, ClientError>
pub fn new() -> Result<Self, ClientError>
Create a new ARM client using Azure CLI credentials
Sourcepub async fn get_resource_identity(
&self,
resource_id: &str,
api_version: &str,
) -> Result<Option<ResourceIdentity>, ClientError>
pub async fn get_resource_identity( &self, resource_id: &str, api_version: &str, ) -> Result<Option<ResourceIdentity>, ClientError>
Read a resource’s managed identity block: GET {id}?api-version=....
Sourcepub async fn list_role_assignments(
&self,
scope: &str,
principal_id: &str,
) -> Result<Vec<String>, ClientError>
pub async fn list_role_assignments( &self, scope: &str, principal_id: &str, ) -> Result<Vec<String>, ClientError>
Role definition IDs assigned to principal_id at (or inherited by) scope.
Sourcepub async fn create_role_assignment(
&self,
scope: &str,
principal_id: &str,
role_definition_guid: &str,
) -> Result<(), ClientError>
pub async fn create_role_assignment( &self, scope: &str, principal_id: &str, role_definition_guid: &str, ) -> Result<(), ClientError>
Create a role assignment for a principal at a scope.
Sourcepub async fn enable_system_identity(
&self,
resource_id: &str,
api_version: &str,
) -> Result<(), ClientError>
pub async fn enable_system_identity( &self, resource_id: &str, api_version: &str, ) -> Result<(), ClientError>
Enable a system-assigned managed identity on a resource (PATCH).
Sourcepub async fn find_search_service_id(
&self,
name: &str,
) -> Result<String, ClientError>
pub async fn find_search_service_id( &self, name: &str, ) -> Result<String, ClientError>
Find the full ARM resource id of a search service by name.
Sourcepub async fn list_subscriptions(&self) -> Result<Vec<Subscription>, ClientError>
pub async fn list_subscriptions(&self) -> Result<Vec<Subscription>, ClientError>
List subscriptions the user has access to
Sourcepub async fn list_search_services(
&self,
subscription_id: &str,
) -> Result<Vec<SearchService>, ClientError>
pub async fn list_search_services( &self, subscription_id: &str, ) -> Result<Vec<SearchService>, ClientError>
List Azure AI Search services in a subscription
Sourcepub async fn find_resource_group(
&self,
subscription_id: &str,
service_name: &str,
) -> Result<String, ClientError>
pub async fn find_resource_group( &self, subscription_id: &str, service_name: &str, ) -> Result<String, ClientError>
Find the resource group of a search service by scanning the subscription.
Returns the resource group name extracted from the service’s ARM resource ID.
Sourcepub async fn list_ai_services_accounts(
&self,
subscription_id: &str,
) -> Result<Vec<AiServicesAccount>, ClientError>
pub async fn list_ai_services_accounts( &self, subscription_id: &str, ) -> Result<Vec<AiServicesAccount>, ClientError>
List Azure AI Services accounts in a subscription (filtered to kind=AIServices)
Sourcepub async fn find_cognitive_account_id(
&self,
name: &str,
) -> Result<String, ClientError>
pub async fn find_cognitive_account_id( &self, name: &str, ) -> Result<String, ClientError>
Find the ARM resource id of ANY Microsoft.CognitiveServices account
by name — regardless of kind (AIServices, CognitiveServices, OpenAI,
…). Unlike Self::list_ai_services_accounts (which serves
Foundry discovery and filters to kind AIServices), this covers e.g.
the plain CognitiveServices accounts skillsets use for enrichment.
Sourcepub async fn find_cognitive_account(
&self,
name: &str,
) -> Result<AiServicesAccount, ClientError>
pub async fn find_cognitive_account( &self, name: &str, ) -> Result<AiServicesAccount, ClientError>
Find ANY Microsoft.CognitiveServices account by name (full document,
including its kind — needed to tell Foundry/AIServices resources
apart from legacy CognitiveServices accounts).
Sourcepub async fn list_cognitive_accounts(
&self,
subscription_id: &str,
) -> Result<Vec<AiServicesAccount>, ClientError>
pub async fn list_cognitive_accounts( &self, subscription_id: &str, ) -> Result<Vec<AiServicesAccount>, ClientError>
List every Microsoft.CognitiveServices account in a subscription (any kind). Subscriptions the caller cannot read yield an empty list.
Sourcepub async fn all_foundry_accounts(
&self,
) -> Result<Vec<AiServicesAccount>, ClientError>
pub async fn all_foundry_accounts( &self, ) -> Result<Vec<AiServicesAccount>, ClientError>
Every kind=AIServices (Foundry) account visible to the caller, across all subscriptions.
Sourcepub async fn list_web_sites(&self) -> Result<Vec<String>, ClientError>
pub async fn list_web_sites(&self) -> Result<Vec<String>, ClientError>
All Microsoft.Web sites (function apps / web apps) visible to this login, by name, across every subscription. Sorted, de-duplicated.
Sourcepub async fn find_web_site_id(&self, name: &str) -> Result<String, ClientError>
pub async fn find_web_site_id(&self, name: &str) -> Result<String, ClientError>
Find a Microsoft.Web site (function app / web app) by name across all visible subscriptions; returns its ARM resource id.
Sourcepub async fn function_key(
&self,
site_id: &str,
function_name: &str,
) -> Result<String, ClientError>
pub async fn function_key( &self, site_id: &str, function_name: &str, ) -> Result<String, ClientError>
Fetch a usable key for one function of a function app: the
function-scoped default key when present, else any function key,
else the host’s default function key.
Sourcepub async fn site_auth_settings(
&self,
site_id: &str,
) -> Result<Value, ClientError>
pub async fn site_auth_settings( &self, site_id: &str, ) -> Result<Value, ClientError>
The site’s Easy Auth (authSettingsV2) configuration.
Sourcepub async fn list_foundry_projects(
&self,
account: &AiServicesAccount,
subscription_id: &str,
) -> Result<Vec<FoundryProject>, ClientError>
pub async fn list_foundry_projects( &self, account: &AiServicesAccount, subscription_id: &str, ) -> Result<Vec<FoundryProject>, ClientError>
List Microsoft Foundry projects under a specific AI Services account.
Projects are sub-resources at:
Microsoft.CognitiveServices/accounts/{accountName}/projects
The account_id should be the full ARM resource ID of the account,
from which we extract the resource group.
Sourcepub async fn list_storage_accounts(
&self,
subscription_id: &str,
resource_group: &str,
) -> Result<Vec<StorageAccount>, ClientError>
pub async fn list_storage_accounts( &self, subscription_id: &str, resource_group: &str, ) -> Result<Vec<StorageAccount>, ClientError>
List storage accounts in a resource group.
Sourcepub async fn list_storage_accounts_subscription(
&self,
subscription_id: &str,
) -> Result<Vec<StorageAccount>, ClientError>
pub async fn list_storage_accounts_subscription( &self, subscription_id: &str, ) -> Result<Vec<StorageAccount>, ClientError>
List storage accounts across a whole subscription.
Sourcepub async fn storage_account_has_container(
&self,
account_id: &str,
container: &str,
) -> Result<bool, ClientError>
pub async fn storage_account_has_container( &self, account_id: &str, container: &str, ) -> Result<bool, ClientError>
Whether a storage account contains a blob container with this name (checked via ARM with the caller’s CLI token — no data-plane access or account keys involved).
Sourcepub async fn find_storage_accounts_with_container(
&self,
container: &str,
) -> Result<Vec<StorageAccount>, ClientError>
pub async fn find_storage_accounts_with_container( &self, container: &str, ) -> Result<Vec<StorageAccount>, ClientError>
Find every storage account (across all visible subscriptions) that
holds a blob container named container. Used to auto-construct
identity-based ResourceId= data-source connections — the user is
already logged in via Azure CLI, so rigg discovers instead of asking.
Accounts that fail the container check (e.g. insufficient RBAC on an
unrelated subscription) are skipped, not fatal.
Sourcepub async fn get_storage_account_key(
&self,
subscription_id: &str,
resource_group: &str,
account_name: &str,
) -> Result<String, ClientError>
pub async fn get_storage_account_key( &self, subscription_id: &str, resource_group: &str, account_name: &str, ) -> Result<String, ClientError>
Get the primary access key for a storage account.
Sourcepub async fn list_model_deployments(
&self,
account: &AiServicesAccount,
subscription_id: &str,
) -> Result<Vec<ModelDeployment>, ClientError>
pub async fn list_model_deployments( &self, account: &AiServicesAccount, subscription_id: &str, ) -> Result<Vec<ModelDeployment>, ClientError>
List model deployments for an AI Services account.
Sourcepub async fn create_model_deployment(
&self,
account: &AiServicesAccount,
subscription_id: &str,
deployment_name: &str,
model_name: &str,
model_version: &str,
) -> Result<(), ClientError>
pub async fn create_model_deployment( &self, account: &AiServicesAccount, subscription_id: &str, deployment_name: &str, model_name: &str, model_version: &str, ) -> Result<(), ClientError>
Create a model deployment on an AI Services account.
Sourcepub async fn get_storage_connection_string(
&self,
subscription_id: &str,
resource_group: &str,
account_name: &str,
) -> Result<String, ClientError>
pub async fn get_storage_connection_string( &self, subscription_id: &str, resource_group: &str, account_name: &str, ) -> Result<String, ClientError>
Build a full connection string for a storage account.