Skip to main content

ArmClient

Struct ArmClient 

Source
pub struct ArmClient { /* private fields */ }
Expand description

Azure Resource Manager client for subscription/service discovery

Implementations§

Source§

impl ArmClient

Source

pub fn new() -> Result<Self, ClientError>

Create a new ARM client using Azure CLI credentials

Source

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=....

Source

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.

Source

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.

Source

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).

Source

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.

Source

pub fn token(&self) -> &str

The ARM bearer token this client authenticated with.

Source

pub async fn list_subscriptions(&self) -> Result<Vec<Subscription>, ClientError>

List subscriptions the user has access to

Source

pub async fn list_search_services( &self, subscription_id: &str, ) -> Result<Vec<SearchService>, ClientError>

List Azure AI Search services in a subscription

Source

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.

Source

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)

Source

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.

Source

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.

Source

pub async fn list_storage_accounts( &self, subscription_id: &str, resource_group: &str, ) -> Result<Vec<StorageAccount>, ClientError>

List storage accounts in a resource group.

Source

pub async fn list_storage_accounts_subscription( &self, subscription_id: &str, ) -> Result<Vec<StorageAccount>, ClientError>

List storage accounts across a whole subscription.

Source

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).

Source

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.

Source

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.

Source

pub async fn list_model_deployments( &self, account: &AiServicesAccount, subscription_id: &str, ) -> Result<Vec<ModelDeployment>, ClientError>

List model deployments for an AI Services account.

Source

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.

Source

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.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more