Microsoft Azure Container Registry Client Library for managing container registries, replications, webhooks, and access control through Azure Resource Manager APIs.
npx @tessl/cli install tessl/pypi-azure-mgmt-containerregistry@14.0.0A comprehensive Python client library for managing Azure Container Registry resources through the Azure Resource Manager (ARM) API. This library enables developers to programmatically create, configure, and manage container registries, handle registry operations like replications, webhooks, and access policies, and integrate container registry management into Azure infrastructure automation workflows.
pip install azure-mgmt-containerregistryMain client import for multi-API version support:
from azure.mgmt.containerregistry import ContainerRegistryManagementClientAsync client import:
from azure.mgmt.containerregistry.aio import ContainerRegistryManagementClientSpecific API version import:
from azure.mgmt.containerregistry.v2025_04_01 import ContainerRegistryManagementClientModel imports:
from azure.mgmt.containerregistry.models import (
# Core registry models
Registry,
RegistryUpdateParameters,
Sku,
RegistryNameCheckRequest,
RegistryNameStatus,
RegistryListCredentialsResult,
RegenerateCredentialParameters,
ImportImageParameters,
RegistryUsageListResult,
GenerateCredentialsParameters,
GenerateCredentialsResult,
# Replication models
Replication,
ReplicationUpdateParameters,
# Webhook models
Webhook,
WebhookCreateParameters,
WebhookUpdateParameters,
CallbackConfig,
Event,
EventInfo,
# Access control models
ScopeMap,
ScopeMapUpdateParameters,
Token,
TokenUpdateParameters,
TokenCredentialsProperties,
# Private networking models
PrivateEndpointConnection,
PrivateEndpoint,
PrivateLinkServiceConnectionState,
PrivateLinkResource,
# Connected registry models
ConnectedRegistry,
ConnectedRegistryUpdateParameters,
ActivationProperties,
LoginServerProperties,
# Cache and credentials models
CacheRule,
CacheRuleUpdateParameters,
CredentialSet,
CredentialSetUpdateParameters,
AuthCredential,
# Common enums
ProvisioningState,
WebhookAction,
WebhookStatus,
TokenStatus,
ConnectionStatus,
ConnectedRegistryMode,
ZoneRedundancy
)from azure.identity import DefaultAzureCredential
from azure.mgmt.containerregistry import ContainerRegistryManagementClient
# Initialize client with Azure credentials
credential = DefaultAzureCredential()
subscription_id = "your-subscription-id"
client = ContainerRegistryManagementClient(credential, subscription_id)
# List all registries in subscription
registries = client.registries.list()
for registry in registries:
print(f"Registry: {registry.name}, Location: {registry.location}")
# Get specific registry
registry = client.registries.get("resource-group-name", "registry-name")
print(f"Registry SKU: {registry.sku.name}")
# Create a basic registry
from azure.mgmt.containerregistry.models import Registry, Sku
registry_params = Registry(
location="East US",
sku=Sku(name="Standard"),
admin_user_enabled=True
)
registry_creation = client.registries.begin_create(
"resource-group-name",
"new-registry-name",
registry_params
)
registry = registry_creation.result() # Wait for completionThe client follows Azure SDK patterns with multi-API version support:
The library supports both synchronous and asynchronous programming patterns and provides comprehensive coverage of Azure Container Registry management capabilities including advanced features like connected registries for edge scenarios, build automation, and sophisticated access control.
Core container registry lifecycle management including creation, configuration, updates, deletion, and administrative operations. Supports all registry SKUs (Basic, Standard, Premium) and advanced features like geo-replication and networking controls.
class RegistriesOperations:
def begin_create(resource_group_name: str, registry_name: str, registry: Registry, **kwargs) -> LROPoller[Registry]: ...
def begin_delete(resource_group_name: str, registry_name: str, **kwargs) -> LROPoller[None]: ...
def begin_update(resource_group_name: str, registry_name: str, registry_update_parameters: RegistryUpdateParameters, **kwargs) -> LROPoller[Registry]: ...
def get(resource_group_name: str, registry_name: str, **kwargs) -> Registry: ...
def list(**kwargs) -> ItemPaged[Registry]: ...
def list_by_resource_group(resource_group_name: str, **kwargs) -> ItemPaged[Registry]: ...
def check_name_availability(registry_name_check_request: RegistryNameCheckRequest, **kwargs) -> RegistryNameStatus: ...
def list_credentials(resource_group_name: str, registry_name: str, **kwargs) -> RegistryListCredentialsResult: ...
def regenerate_credential(resource_group_name: str, registry_name: str, regenerate_credential_parameters: RegenerateCredentialParameters, **kwargs) -> RegistryListCredentialsResult: ...
def begin_import_image(resource_group_name: str, registry_name: str, parameters: ImportImageParameters, **kwargs) -> LROPoller[None]: ...
def list_usages(resource_group_name: str, registry_name: str, **kwargs) -> RegistryUsageListResult: ...
def list_private_link_resources(resource_group_name: str, registry_name: str, **kwargs) -> ItemPaged[PrivateLinkResource]: ...
def get_private_link_resource(resource_group_name: str, registry_name: str, group_name: str, **kwargs) -> PrivateLinkResource: ...
def begin_generate_credentials(resource_group_name: str, registry_name: str, generate_credentials_parameters: GenerateCredentialsParameters, **kwargs) -> LROPoller[GenerateCredentialsResult]: ...Geographic replication management for Premium registries, enabling registry content distribution across multiple Azure regions for performance and disaster recovery.
class ReplicationsOperations:
def begin_create(resource_group_name: str, registry_name: str, replication_name: str, replication: Replication, **kwargs) -> LROPoller[Replication]: ...
def begin_delete(resource_group_name: str, registry_name: str, replication_name: str, **kwargs) -> LROPoller[None]: ...
def begin_update(resource_group_name: str, registry_name: str, replication_name: str, replication_update_parameters: ReplicationUpdateParameters, **kwargs) -> LROPoller[Replication]: ...
def get(resource_group_name: str, registry_name: str, replication_name: str, **kwargs) -> Replication: ...
def list(resource_group_name: str, registry_name: str, **kwargs) -> ItemPaged[Replication]: ...Registry webhook configuration for receiving notifications about registry events like image pushes, deletions, and quarantine actions. Supports custom endpoints and filtering.
class WebhooksOperations:
def begin_create(resource_group_name: str, registry_name: str, webhook_name: str, webhook_create_parameters: WebhookCreateParameters, **kwargs) -> LROPoller[Webhook]: ...
def begin_delete(resource_group_name: str, registry_name: str, webhook_name: str, **kwargs) -> LROPoller[None]: ...
def begin_update(resource_group_name: str, registry_name: str, webhook_name: str, webhook_update_parameters: WebhookUpdateParameters, **kwargs) -> LROPoller[Webhook]: ...
def get(resource_group_name: str, registry_name: str, webhook_name: str, **kwargs) -> Webhook: ...
def list(resource_group_name: str, registry_name: str, **kwargs) -> ItemPaged[Webhook]: ...
def ping(resource_group_name: str, registry_name: str, webhook_name: str, **kwargs) -> EventInfo: ...
def list_events(resource_group_name: str, registry_name: str, webhook_name: str, **kwargs) -> ItemPaged[Event]: ...
def get_callback_config(resource_group_name: str, registry_name: str, webhook_name: str, **kwargs) -> CallbackConfig: ...Repository-level access control through scope maps and tokens, providing fine-grained permissions for registry access without using admin credentials.
class ScopeMapsOperations:
def begin_create(resource_group_name: str, registry_name: str, scope_map_name: str, scope_map_create_parameters: ScopeMap, **kwargs) -> LROPoller[ScopeMap]: ...
def begin_delete(resource_group_name: str, registry_name: str, scope_map_name: str, **kwargs) -> LROPoller[None]: ...
def begin_update(resource_group_name: str, registry_name: str, scope_map_name: str, scope_map_update_parameters: ScopeMapUpdateParameters, **kwargs) -> LROPoller[ScopeMap]: ...
def get(resource_group_name: str, registry_name: str, scope_map_name: str, **kwargs) -> ScopeMap: ...
def list(resource_group_name: str, registry_name: str, **kwargs) -> ItemPaged[ScopeMap]: ...
class TokensOperations:
def begin_create(resource_group_name: str, registry_name: str, token_name: str, token_create_parameters: Token, **kwargs) -> LROPoller[Token]: ...
def begin_delete(resource_group_name: str, registry_name: str, token_name: str, **kwargs) -> LROPoller[None]: ...
def begin_update(resource_group_name: str, registry_name: str, token_name: str, token_update_parameters: TokenUpdateParameters, **kwargs) -> LROPoller[Token]: ...
def get(resource_group_name: str, registry_name: str, token_name: str, **kwargs) -> Token: ...
def list(resource_group_name: str, registry_name: str, **kwargs) -> ItemPaged[Token]: ...Private endpoint connections for secure registry access through Azure Virtual Networks, supporting private connectivity and network isolation.
class PrivateEndpointConnectionsOperations:
def begin_create_or_update(resource_group_name: str, registry_name: str, private_endpoint_connection_name: str, private_endpoint_connection: PrivateEndpointConnection, **kwargs) -> LROPoller[PrivateEndpointConnection]: ...
def begin_delete(resource_group_name: str, registry_name: str, private_endpoint_connection_name: str, **kwargs) -> LROPoller[None]: ...
def get(resource_group_name: str, registry_name: str, private_endpoint_connection_name: str, **kwargs) -> PrivateEndpointConnection: ...
def list(resource_group_name: str, registry_name: str, **kwargs) -> ItemPaged[PrivateEndpointConnection]: ...Connected registry management for edge computing scenarios, enabling synchronized registry instances at edge locations with configurable sync policies.
class ConnectedRegistriesOperations:
def begin_create(resource_group_name: str, registry_name: str, connected_registry_name: str, connected_registry_create_parameters: ConnectedRegistry, **kwargs) -> LROPoller[ConnectedRegistry]: ...
def begin_delete(resource_group_name: str, registry_name: str, connected_registry_name: str, **kwargs) -> LROPoller[None]: ...
def begin_update(resource_group_name: str, registry_name: str, connected_registry_name: str, connected_registry_update_parameters: ConnectedRegistryUpdateParameters, **kwargs) -> LROPoller[ConnectedRegistry]: ...
def begin_deactivate(resource_group_name: str, registry_name: str, connected_registry_name: str, **kwargs) -> LROPoller[None]: ...
def get(resource_group_name: str, registry_name: str, connected_registry_name: str, **kwargs) -> ConnectedRegistry: ...
def list(resource_group_name: str, registry_name: str, **kwargs) -> ItemPaged[ConnectedRegistry]: ...Cache rule management for upstream registry caching and credential set management for secure authentication to external registries.
class CacheRulesOperations:
def begin_create(resource_group_name: str, registry_name: str, cache_rule_name: str, cache_rule_create_parameters: CacheRule, **kwargs) -> LROPoller[CacheRule]: ...
def begin_delete(resource_group_name: str, registry_name: str, cache_rule_name: str, **kwargs) -> LROPoller[None]: ...
def begin_update(resource_group_name: str, registry_name: str, cache_rule_name: str, cache_rule_update_parameters: CacheRuleUpdateParameters, **kwargs) -> LROPoller[CacheRule]: ...
def get(resource_group_name: str, registry_name: str, cache_rule_name: str, **kwargs) -> CacheRule: ...
def list(resource_group_name: str, registry_name: str, **kwargs) -> ItemPaged[CacheRule]: ...
class CredentialSetsOperations:
def begin_create(resource_group_name: str, registry_name: str, credential_set_name: str, credential_set_create_parameters: CredentialSet, **kwargs) -> LROPoller[CredentialSet]: ...
def begin_delete(resource_group_name: str, registry_name: str, credential_set_name: str, **kwargs) -> LROPoller[None]: ...
def begin_update(resource_group_name: str, registry_name: str, credential_set_name: str, credential_set_update_parameters: CredentialSetUpdateParameters, **kwargs) -> LROPoller[CredentialSet]: ...
def get(resource_group_name: str, registry_name: str, credential_set_name: str, **kwargs) -> CredentialSet: ...
def list(resource_group_name: str, registry_name: str, **kwargs) -> ItemPaged[CredentialSet]: ...