Microsoft Azure API Management Client Library for Python providing comprehensive SDK functionality for managing Azure API Management services.
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
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.
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 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 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: ...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: ...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-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: ...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: ...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: ...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: ...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: ...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}")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()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()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]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