CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-azure-mgmt-apimanagement

Microsoft Azure API Management Client Library for Python providing comprehensive SDK functionality for managing Azure API Management services.

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

api-management.mddocs/

API Management

Comprehensive API lifecycle management including API creation, versioning, revisions, operations, schemas, policies, and export/import capabilities. Supports REST, SOAP, GraphQL, and WebSocket APIs with full OpenAPI specification support.

Capabilities

Core API Operations

Fundamental API management operations for creating, reading, updating, and deleting APIs within API Management services.

class ApiOperations:
    def get(self, resource_group_name: str, service_name: str, api_id: str, **kwargs) -> ApiContract: ...
    def begin_create_or_update(self, resource_group_name: str, service_name: str, api_id: str, parameters: ApiCreateOrUpdateParameter, if_match: Optional[str] = None, **kwargs) -> LROPoller[ApiContract]: ...
    def begin_update(self, resource_group_name: str, service_name: str, api_id: str, if_match: str, parameters: ApiUpdateContract, **kwargs) -> LROPoller[ApiContract]: ...
    def delete(self, resource_group_name: str, service_name: str, api_id: str, if_match: str, delete_revisions: Optional[bool] = None, **kwargs) -> None: ...
    def list_by_service(self, resource_group_name: str, service_name: str, filter: Optional[str] = None, top: Optional[int] = None, skip: Optional[int] = None, tags: Optional[str] = None, expand_api_version_set: Optional[bool] = None, **kwargs) -> ItemPaged[ApiContract]: ...
    def get_entity_tag(self, resource_group_name: str, service_name: str, api_id: str, **kwargs) -> bool: ...

API Revision Management

API revision system for managing different versions of APIs during development and deployment cycles.

class ApiRevisionOperations:
    def list_by_service(self, resource_group_name: str, service_name: str, api_id: str, filter: Optional[str] = None, top: Optional[int] = None, skip: Optional[int] = None, **kwargs) -> ItemPaged[ApiRevisionContract]: ...

API Release Management

API release management for promoting API revisions to production and managing release cycles.

class ApiReleaseOperations:
    def get(self, resource_group_name: str, service_name: str, api_id: str, release_id: str, **kwargs) -> ApiReleaseContract: ...
    def begin_create_or_update(self, resource_group_name: str, service_name: str, api_id: str, release_id: str, parameters: ApiReleaseContract, if_match: Optional[str] = None, **kwargs) -> LROPoller[ApiReleaseContract]: ...
    def begin_update(self, resource_group_name: str, service_name: str, api_id: str, release_id: str, if_match: str, parameters: ApiReleaseContract, **kwargs) -> LROPoller[ApiReleaseContract]: ...
    def delete(self, resource_group_name: str, service_name: str, api_id: str, release_id: str, if_match: str, **kwargs) -> None: ...
    def list_by_service(self, resource_group_name: str, service_name: str, api_id: str, filter: Optional[str] = None, top: Optional[int] = None, skip: Optional[int] = None, **kwargs) -> ItemPaged[ApiReleaseContract]: ...
    def get_entity_tag(self, resource_group_name: str, service_name: str, api_id: str, release_id: str, **kwargs) -> bool: ...

API Operation Management

Management of individual operations (endpoints) within APIs, including operation-specific policies and configurations.

class ApiOperationOperations:
    def get(self, resource_group_name: str, service_name: str, api_id: str, operation_id: str, **kwargs) -> OperationContract: ...
    def begin_create_or_update(self, resource_group_name: str, service_name: str, api_id: str, operation_id: str, parameters: OperationContract, if_match: Optional[str] = None, **kwargs) -> LROPoller[OperationContract]: ...
    def begin_update(self, resource_group_name: str, service_name: str, api_id: str, operation_id: str, if_match: str, parameters: OperationUpdateContract, **kwargs) -> LROPoller[OperationContract]: ...
    def delete(self, resource_group_name: str, service_name: str, api_id: str, operation_id: str, if_match: str, **kwargs) -> None: ...
    def list_by_api(self, resource_group_name: str, service_name: str, api_id: str, filter: Optional[str] = None, top: Optional[int] = None, skip: Optional[int] = None, tags: Optional[str] = None, **kwargs) -> ItemPaged[OperationContract]: ...
    def get_entity_tag(self, resource_group_name: str, service_name: str, api_id: str, operation_id: str, **kwargs) -> bool: ...

API Schema Management

Schema management for API documentation and validation, supporting OpenAPI, JSON Schema, and other schema formats.

class ApiSchemaOperations:
    def get(self, resource_group_name: str, service_name: str, api_id: str, schema_id: str, **kwargs) -> SchemaContract: ...
    def begin_create_or_update(self, resource_group_name: str, service_name: str, api_id: str, schema_id: str, parameters: SchemaContract, if_match: Optional[str] = None, **kwargs) -> LROPoller[SchemaContract]: ...
    def delete(self, resource_group_name: str, service_name: str, api_id: str, schema_id: str, if_match: str, force: Optional[bool] = None, **kwargs) -> None: ...
    def list_by_api(self, resource_group_name: str, service_name: str, api_id: str, filter: Optional[str] = None, top: Optional[int] = None, skip: Optional[int] = None, **kwargs) -> ItemPaged[SchemaContract]: ...
    def get_entity_tag(self, resource_group_name: str, service_name: str, api_id: str, schema_id: str, **kwargs) -> bool: ...

API Policy Management

API-level policy management for implementing cross-cutting concerns like authentication, rate limiting, and transformations.

class ApiPolicyOperations:
    def get(self, resource_group_name: str, service_name: str, api_id: str, policy_id: str, format: Optional[str] = None, **kwargs) -> PolicyContract: ...
    def create_or_update(self, resource_group_name: str, service_name: str, api_id: str, policy_id: str, parameters: PolicyContract, if_match: Optional[str] = None, **kwargs) -> PolicyContract: ...
    def delete(self, resource_group_name: str, service_name: str, api_id: str, policy_id: str, if_match: str, **kwargs) -> None: ...
    def list_by_api(self, resource_group_name: str, service_name: str, api_id: str, **kwargs) -> PolicyCollection: ...
    def get_entity_tag(self, resource_group_name: str, service_name: str, api_id: str, policy_id: str, **kwargs) -> bool: ...

API Export and Import

Export APIs to various formats (OpenAPI, WADL, WSDL) and import APIs from external sources.

class ApiExportOperations:
    def get(self, resource_group_name: str, service_name: str, api_id: str, format_param: str, export_param: str, **kwargs) -> ApiExportResult: ...

API Version Set Management

Management of API version sets for organizing and versioning related APIs.

class ApiVersionSetOperations:
    def get(self, resource_group_name: str, service_name: str, version_set_id: str, **kwargs) -> ApiVersionSetContract: ...
    def begin_create_or_update(self, resource_group_name: str, service_name: str, version_set_id: str, parameters: ApiVersionSetContract, if_match: Optional[str] = None, **kwargs) -> LROPoller[ApiVersionSetContract]: ...
    def begin_update(self, resource_group_name: str, service_name: str, version_set_id: str, if_match: str, parameters: ApiVersionSetUpdateParameters, **kwargs) -> LROPoller[ApiVersionSetContract]: ...
    def delete(self, resource_group_name: str, service_name: str, version_set_id: str, if_match: str, **kwargs) -> None: ...
    def list_by_service(self, resource_group_name: str, service_name: str, filter: Optional[str] = None, top: Optional[int] = None, skip: Optional[int] = None, **kwargs) -> ItemPaged[ApiVersionSetContract]: ...
    def get_entity_tag(self, resource_group_name: str, service_name: str, version_set_id: str, **kwargs) -> bool: ...

API Documentation Management

Wiki and documentation management for APIs.

class ApiWikiOperations:
    def get(self, resource_group_name: str, service_name: str, api_id: str, **kwargs) -> WikiContract: ...
    def begin_create_or_update(self, resource_group_name: str, service_name: str, api_id: str, parameters: WikiContract, if_match: Optional[str] = None, **kwargs) -> LROPoller[WikiContract]: ...
    def begin_update(self, resource_group_name: str, service_name: str, api_id: str, if_match: str, parameters: WikiUpdateContract, **kwargs) -> LROPoller[WikiContract]: ...
    def delete(self, resource_group_name: str, service_name: str, api_id: str, if_match: str, **kwargs) -> None: ...
    def get_entity_tag(self, resource_group_name: str, service_name: str, api_id: str, **kwargs) -> bool: ...

GraphQL API Support

Specialized operations for GraphQL API management including resolver and policy management.

class GraphQLApiResolverOperations:
    def get(self, resource_group_name: str, service_name: str, api_id: str, resolver_id: str, **kwargs) -> ResolverContract: ...
    def begin_create_or_update(self, resource_group_name: str, service_name: str, api_id: str, resolver_id: str, parameters: ResolverContract, if_match: Optional[str] = None, **kwargs) -> LROPoller[ResolverContract]: ...
    def begin_update(self, resource_group_name: str, service_name: str, api_id: str, resolver_id: str, if_match: str, parameters: ResolverUpdateContract, **kwargs) -> LROPoller[ResolverContract]: ...
    def delete(self, resource_group_name: str, service_name: str, api_id: str, resolver_id: str, if_match: str, **kwargs) -> None: ...
    def list_by_api(self, resource_group_name: str, service_name: str, api_id: str, filter: Optional[str] = None, top: Optional[int] = None, skip: Optional[int] = None, **kwargs) -> ItemPaged[ResolverContract]: ...
    def get_entity_tag(self, resource_group_name: str, service_name: str, api_id: str, resolver_id: str, **kwargs) -> bool: ...

class GraphQLApiResolverPolicyOperations:
    def get(self, resource_group_name: str, service_name: str, api_id: str, resolver_id: str, policy_id: str, format: Optional[str] = None, **kwargs) -> PolicyContract: ...
    def create_or_update(self, resource_group_name: str, service_name: str, api_id: str, resolver_id: str, policy_id: str, parameters: PolicyContract, if_match: Optional[str] = None, **kwargs) -> PolicyContract: ...
    def delete(self, resource_group_name: str, service_name: str, api_id: str, resolver_id: str, policy_id: str, if_match: str, **kwargs) -> None: ...
    def list_by_resolver(self, resource_group_name: str, service_name: str, api_id: str, resolver_id: str, **kwargs) -> PolicyCollection: ...
    def get_entity_tag(self, resource_group_name: str, service_name: str, api_id: str, resolver_id: str, policy_id: str, **kwargs) -> bool: ...

Usage Examples

Creating a New API

from azure.mgmt.apimanagement.models import ApiCreateOrUpdateParameter, ApiType, Protocol

# Create API from OpenAPI specification
api_params = ApiCreateOrUpdateParameter(
    display_name="Pet Store API",
    service_url="https://petstore.swagger.io/v2",
    path="petstore",
    protocols=[Protocol.HTTPS],
    api_type=ApiType.HTTP,
    format="openapi+json",
    value="https://petstore.swagger.io/v2/swagger.json"  # OpenAPI spec URL
)

# Create the API
api = client.api.begin_create_or_update(
    resource_group_name="my-rg",
    service_name="my-apim",
    api_id="petstore-api",
    parameters=api_params
).result()

print(f"Created API: {api.display_name}")

Managing API Versions

from azure.mgmt.apimanagement.models import ApiVersionSetContract, VersioningScheme

# Create version set
version_set = ApiVersionSetContract(
    display_name="Pet Store API Versions",
    versioning_scheme=VersioningScheme.SEGMENT,
    version_query_name="version",
    description="Versions of the Pet Store API"
)

version_set = client.api_version_set.begin_create_or_update(
    resource_group_name="my-rg",
    service_name="my-apim",
    version_set_id="petstore-versions",
    parameters=version_set
).result()

# Create versioned API
api_v2_params = ApiCreateOrUpdateParameter(
    display_name="Pet Store API v2",
    service_url="https://petstore.swagger.io/v2",
    path="petstore",
    api_version="v2",
    api_version_set_id=version_set.id,
    protocols=[Protocol.HTTPS]
)

api_v2 = client.api.begin_create_or_update(
    resource_group_name="my-rg",
    service_name="my-apim",
    api_id="petstore-api-v2",
    parameters=api_v2_params
).result()

Working with API Operations

from azure.mgmt.apimanagement.models import OperationContract, RequestContract, ResponseContract

# Create a new operation
operation = OperationContract(
    display_name="Get Pet by ID",
    method="GET",
    url_template="/pet/{petId}",
    template_parameters=[
        ParameterContract(
            name="petId",
            type="integer",
            required=True,
            description="ID of pet to return"
        )
    ],
    responses=[
        ResponseContract(
            status_code=200,
            description="Successful operation",
            representations=[
                RepresentationContract(
                    content_type="application/json"
                )
            ]
        ),
        ResponseContract(
            status_code=404,
            description="Pet not found"
        )
    ]
)

# Add operation to API
operation = client.api_operation.begin_create_or_update(
    resource_group_name="my-rg",
    service_name="my-apim",
    api_id="petstore-api",
    operation_id="get-pet-by-id",
    parameters=operation
).result()

Types

Core API Types

class ApiContract:
    id: Optional[str]
    name: Optional[str]
    type: Optional[str]
    properties: Optional[ApiContractProperties]

class ApiCreateOrUpdateParameter:
    properties: Optional[ApiCreateOrUpdateProperties]

class ApiContractProperties:
    display_name: Optional[str]
    service_url: Optional[str]
    path: Optional[str]
    protocols: Optional[List[Protocol]]
    api_version: Optional[str]
    api_version_description: Optional[str]
    api_version_set_id: Optional[str]
    subscription_required: Optional[bool]
    subscription_key_parameter_names: Optional[SubscriptionKeyParameterNamesContract]
    api_type: Optional[ApiType]
    api_revision: Optional[str]
    api_revision_description: Optional[str]
    source_api_id: Optional[str]
    is_current: Optional[bool]
    is_online: Optional[bool]
    description: Optional[str]
    authentication_settings: Optional[AuthenticationSettingsContract]
    contact: Optional[ApiContactInformation]
    license: Optional[ApiLicenseInformation]
    terms_of_service_url: Optional[str]

class OperationContract:
    id: Optional[str]
    name: Optional[str]
    type: Optional[str]
    properties: Optional[OperationContractProperties]

class OperationContractProperties:
    display_name: Optional[str]
    method: Optional[str]
    url_template: Optional[str]
    template_parameters: Optional[List[ParameterContract]]
    description: Optional[str]
    request: Optional[RequestContract]
    responses: Optional[List[ResponseContract]]
    policies: Optional[str]

API Enums

class ApiType:
    HTTP = "http"
    SOAP = "soap"
    WEBSOCKET = "websocket"
    GRAPHQL = "graphql"

class Protocol:
    HTTP = "http"
    HTTPS = "https"
    WS = "ws"
    WSS = "wss"

class ContentFormat:
    WADL_XML = "wadl-xml"
    WADL_LINK_JSON = "wadl-link-json"
    SWAGGER_JSON = "swagger-json"
    SWAGGER_LINK_JSON = "swagger-link-json"
    WSDL = "wsdl"
    WSDL_LINK = "wsdl-link"
    OPENAPI = "openapi"
    OPENAPI_JSON = "openapi+json"
    OPENAPI_LINK = "openapi-link"
    OPENAPI_JSON_LINK = "openapi+json-link"
    GRAPHQL_LINK = "graphql-link"

class VersioningScheme:
    SEGMENT = "Segment"
    QUERY = "Query"
    HEADER = "Header"

class SoapApiType:
    SOAP_TO_REST = "SoapToRest"
    SOAP_PASS_THROUGH = "SoapPassThrough"

Install with Tessl CLI

npx tessl i tessl/pypi-azure-mgmt-apimanagement

docs

api-management.md

index.md

policy-management.md

service-management.md

tile.json