Rei-skills azure-mgmt-arizeaiobservabilityeval-dotnet
install
source · Clone the upstream repo
git clone https://github.com/rootcastleco/rei-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/rootcastleco/rei-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/azure-mgmt-arizeaiobservabilityeval-dotnet" ~/.claude/skills/rootcastleco-rei-skills-azure-mgmt-arizeaiobservabilityeval-dotnet && rm -rf "$T"
manifest:
skills/azure-mgmt-arizeaiobservabilityeval-dotnet/SKILL.mdsource content
Azure.ResourceManager.ArizeAIObservabilityEval
.NET SDK for managing Arize AI Observability and Evaluation resources on Azure.
Installation
dotnet add package Azure.ResourceManager.ArizeAIObservabilityEval --version 1.0.0
Package Info
| Property | Value |
|---|---|
| Package | |
| Version | (GA) |
| API Version | |
| ARM Type | |
| Dependencies | >= 1.46.2, >= 1.13.1 |
Environment Variables
AZURE_SUBSCRIPTION_ID=<your-subscription-id> AZURE_TENANT_ID=<your-tenant-id> AZURE_CLIENT_ID=<your-client-id> AZURE_CLIENT_SECRET=<your-client-secret>
Authentication
using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManager.ArizeAIObservabilityEval; // Always use DefaultAzureCredential var credential = new DefaultAzureCredential(); var armClient = new ArmClient(credential);
Core Workflow
Create an Arize AI Organization
using Azure.Core; using Azure.ResourceManager.Resources; using Azure.ResourceManager.ArizeAIObservabilityEval; using Azure.ResourceManager.ArizeAIObservabilityEval.Models; // Get subscription and resource group var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID"); var subscription = await armClient.GetSubscriptionResource( SubscriptionResource.CreateResourceIdentifier(subscriptionId)).GetAsync(); var resourceGroup = await subscription.Value.GetResourceGroupAsync("my-resource-group"); // Get the organization collection var collection = resourceGroup.Value.GetArizeAIObservabilityEvalOrganizations(); // Create organization data var data = new ArizeAIObservabilityEvalOrganizationData(AzureLocation.EastUS) { Properties = new ArizeAIObservabilityEvalOrganizationProperties { Marketplace = new ArizeAIObservabilityEvalMarketplaceDetails { SubscriptionId = "marketplace-subscription-id", OfferDetails = new ArizeAIObservabilityEvalOfferDetails { PublisherId = "arikimlabs1649082416596", OfferId = "arize-liftr-1", PlanId = "arize-liftr-1-plan", PlanName = "Arize AI Plan", TermUnit = "P1M", TermId = "term-id" } }, User = new ArizeAIObservabilityEvalUserDetails { FirstName = "John", LastName = "Doe", EmailAddress = "john.doe@example.com" } }, Tags = { ["environment"] = "production" } }; // Create (long-running operation) var operation = await collection.CreateOrUpdateAsync( WaitUntil.Completed, "my-arize-org", data); var organization = operation.Value; Console.WriteLine($"Created: {organization.Data.Name}");
Get an Organization
// Option 1: From collection var org = await collection.GetAsync("my-arize-org"); // Option 2: Check if exists first var exists = await collection.ExistsAsync("my-arize-org"); if (exists.Value) { var org = await collection.GetAsync("my-arize-org"); } // Option 3: GetIfExists (returns null if not found) var response = await collection.GetIfExistsAsync("my-arize-org"); if (response.HasValue) { var org = response.Value; }
List Organizations
// List in resource group await foreach (var org in collection.GetAllAsync()) { Console.WriteLine($"Org: {org.Data.Name}, State: {org.Data.Properties?.ProvisioningState}"); } // List in subscription await foreach (var org in subscription.Value.GetArizeAIObservabilityEvalOrganizationsAsync()) { Console.WriteLine($"Org: {org.Data.Name}"); }
Update an Organization
// Update tags var org = await collection.GetAsync("my-arize-org"); var updateData = new ArizeAIObservabilityEvalOrganizationPatch { Tags = { ["environment"] = "staging", ["team"] = "ml-ops" } }; var updated = await org.Value.UpdateAsync(updateData);
Delete an Organization
var org = await collection.GetAsync("my-arize-org"); await org.Value.DeleteAsync(WaitUntil.Completed);
Key Types
| Type | Purpose |
|---|---|
| Main ARM resource for Arize organizations |
| Collection for CRUD operations |
| Resource data model |
| Organization properties |
| Azure Marketplace subscription info |
| Marketplace offer configuration |
| User contact information |
| Patch model for updates |
| SSO configuration |
Enums
| Enum | Values |
|---|---|
| , , , , , , |
| , , , |
| , , |
| , |
Best Practices
- Use async methods — All operations support async/await
- Handle long-running operations — Use
or poll manuallyWaitUntil.Completed - Use GetIfExistsAsync — Avoid exceptions for conditional logic
- Implement retry policies — Configure via
ArmClientOptions - Use resource identifiers — For direct resource access without listing
- Close clients properly — Use
statements or dispose explicitlyusing
Error Handling
try { var org = await collection.GetAsync("my-arize-org"); } catch (Azure.RequestFailedException ex) when (ex.Status == 404) { Console.WriteLine("Organization not found"); } catch (Azure.RequestFailedException ex) { Console.WriteLine($"Azure error: {ex.Message}"); }
Direct Resource Access
// Access resource directly by ID (without listing) var resourceId = ArizeAIObservabilityEvalOrganizationResource.CreateResourceIdentifier( subscriptionId, "my-resource-group", "my-arize-org"); var org = armClient.GetArizeAIObservabilityEvalOrganizationResource(resourceId); var data = await org.GetAsync();
Links
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
🏰 Rei Skills — Curated by Rootcastle Engineering & Innovation | Batuhan Ayrıbaş
Engineering Beyond Boundaries | admin@rootcastle.com