or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.mdpolicy-events.mdpolicy-metadata.mdpolicy-restrictions.mdpolicy-states.mdpolicy-tracked-resources.mdremediations.md
tile.json

tessl/pypi-azure-mgmt-policyinsights

Microsoft Azure Policy Insights Client Library for Python providing comprehensive Azure Policy services management.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/azure-mgmt-policyinsights@1.0.x

To install, run

npx @tessl/cli install tessl/pypi-azure-mgmt-policyinsights@1.0.0

index.mddocs/

Azure Policy Insights Client Library

Overview

The Azure Policy Insights Client Library provides comprehensive programmatic access to Azure Policy services, enabling developers to query policy compliance states, policy events, policy metadata, remediations, tracked resources, and policy restrictions. This library supports both synchronous and asynchronous operations and integrates seamlessly with Azure authentication and management workflows.

Package Information

  • Package Name: azure-mgmt-policyinsights
  • Language: Python
  • Installation: pip install azure-mgmt-policyinsights
  • Version: 1.0.0
  • License: MIT

Core Imports

# Main synchronous client
from azure.mgmt.policyinsights import PolicyInsightsClient

# Asynchronous client
from azure.mgmt.policyinsights.aio import PolicyInsightsClient as AsyncPolicyInsightsClient

# Models and data types
from azure.mgmt.policyinsights.models import (
    PolicyEvent,
    PolicyState,
    Remediation,
    PolicyMetadata,
    CheckRestrictionsRequest,
    FieldRestrictionResult,
    PolicyStatesResource,
    ResourceDiscoveryMode
)

Basic Usage

Client Authentication and Initialization

from azure.identity import DefaultAzureCredential
from azure.mgmt.policyinsights import PolicyInsightsClient

# Initialize client with Azure credentials
credential = DefaultAzureCredential()
subscription_id = "your-subscription-id"
client = PolicyInsightsClient(credential, subscription_id)

# Context manager usage for automatic cleanup
with PolicyInsightsClient(credential, subscription_id) as client:
    # Use client operations
    pass

Asynchronous Client Usage

from azure.identity.aio import DefaultAzureCredential
from azure.mgmt.policyinsights.aio import PolicyInsightsClient

async def async_example():
    credential = DefaultAzureCredential()
    async with PolicyInsightsClient(credential, subscription_id) as client:
        # Use async client operations
        pass

Core Capabilities

Policy States Management

Query and summarize policy compliance states across different Azure scopes (management groups, subscriptions, resource groups, and individual resources). Supports filtering, triggering evaluations, and comprehensive compliance reporting.

# Query policy states for subscription  
policy_states = client.policy_states.list_query_results_for_subscription(
    subscription_id=subscription_id,
    policy_states_resource="latest"
)

# Summarize compliance for resource group
summary = client.policy_states.summarize_for_resource_group(
    resource_group_name="my-rg",
    subscription_id=subscription_id
)

Details: Policy States Operations

Policy Events Monitoring

Query policy evaluation events to track when policies are evaluated and what results are produced. Essential for compliance monitoring and auditing workflows.

# Query policy events for subscription
events = client.policy_events.list_query_results_for_subscription(
    subscription_id=subscription_id
)

# Query events for specific resource
resource_events = client.policy_events.list_query_results_for_resource(
    resource_id="/subscriptions/{subscription-id}/resourceGroups/{rg}/providers/{provider}/{resource}"
)

Details: Policy Events Operations

Remediation Management

Create, manage, and monitor policy remediations to automatically fix non-compliant resources. Supports management group, subscription, resource group, and individual resource scopes.

# Create remediation at subscription level
remediation = client.remediations.create_or_update_at_subscription(
    subscription_id=subscription_id,
    remediation_name="fix-non-compliant-resources",
    parameters={
        "properties": {
            "policyAssignmentId": "/subscriptions/{sub}/providers/Microsoft.Authorization/policyAssignments/{assignment}",
            "resourceDiscoveryMode": "ExistingNonCompliant"
        }
    }
)

# List remediation deployments
deployments = client.remediations.list_deployments_at_subscription(
    subscription_id=subscription_id,
    remediation_name="fix-non-compliant-resources"
)

Details: Remediations Operations

Policy Metadata Discovery

Access policy metadata including built-in policy definitions, categories, and detailed policy information for governance and compliance workflows.

# List all policy metadata
metadata_list = client.policy_metadata.list()

# Get specific policy metadata
metadata = client.policy_metadata.get_resource(
    resource_name="policy-metadata-name"
)

Details: Policy Metadata Operations

Policy Tracked Resources

Query resources that are tracked by Azure Policy to understand which resources are being monitored for compliance.

# Query tracked resources for subscription
tracked_resources = client.policy_tracked_resources.list_query_results_for_subscription(
    subscription_id=subscription_id
)

Details: Policy Tracked Resources Operations

Policy Restrictions Validation

Check what policy restrictions would apply to resource operations before attempting to perform them, enabling proactive compliance validation.

from azure.mgmt.policyinsights.models import CheckRestrictionsRequest

# Check restrictions for subscription scope
request = CheckRestrictionsRequest(
    resource_details={
        "resource_content": {"location": "eastus", "kind": "web"},
        "api_version": "2021-01-01"
    }
)

restrictions = client.policy_restrictions.check_at_subscription_scope(
    subscription_id=subscription_id,
    parameters=request
)

Details: Policy Restrictions Operations

Operations Discovery

Query available operations and capabilities provided by the Policy Insights service for programmatic discovery of supported API functionality.

# List all available operations
operations = client.operations.list()

Usage example:

# Discover available operations
operations_list = client.operations.list()
for operation in operations_list:
    print(f"Operation: {operation.name}")
    print(f"Display Name: {operation.display.operation}")
    print(f"Description: {operation.display.description}")

Architecture

The Azure Policy Insights Client Library follows the Azure SDK design patterns:

  • Client Class: PolicyInsightsClient serves as the main entry point with operation groups as properties
  • Operation Groups: Seven specialized operation classes handle different policy aspects:
    • policy_states: Policy compliance state queries and summaries
    • policy_events: Policy evaluation event queries
    • remediations: Policy remediation management
    • policy_metadata: Policy metadata and definition discovery
    • policy_tracked_resources: Tracked resource queries
    • policy_restrictions: Policy restriction validation
    • operations: API operation discovery
  • Models: Comprehensive data models for all API interactions
  • Authentication: Integrates with Azure Identity for credential management
  • Async Support: Full async/await support through the aio module
  • Error Handling: Consistent error handling with Azure-specific exception types

Error Handling

The library uses standard Azure SDK exceptions:

from azure.core.exceptions import HttpResponseError, ClientAuthenticationError

try:
    policy_states = client.policy_states.list_query_results_for_subscription(
        subscription_id=subscription_id,
        policy_states_resource="latest"
    )
except ClientAuthenticationError:
    # Handle authentication issues
    pass
except HttpResponseError as e:
    # Handle HTTP errors (4xx, 5xx)
    print(f"HTTP error: {e.status_code} - {e.message}")