Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion sdk/communication/azure-communication-messages/MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ include azure/communication/messages/py.typed
recursive-include tests *.py
recursive-include samples *.py *.md
include azure/__init__.py
include azure/communication/__init__.py
include azure/communication/__init__.py
6 changes: 6 additions & 0 deletions sdk/communication/azure-communication-messages/_meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"commit": "726419b7eba57b9b5888ca11e055c8f82dcaae58",
"repository_url": "https://github.com/Azure/azure-rest-api-specs",
"typespec_src": "specification/communication/Communication.Messages",
"@azure-tools/typespec-python": "0.44.2"
}
121 changes: 121 additions & 0 deletions sdk/communication/azure-communication-messages/apiview-properties.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@

from ._client import NotificationMessagesClient # type: ignore
from ._client import MessageTemplateClient # type: ignore
from ._client import ConversationAdministrationClient # type: ignore
from ._client import ConversationThreadClient # type: ignore
from ._version import VERSION

__version__ = VERSION
Expand All @@ -28,6 +30,8 @@
__all__ = [
"NotificationMessagesClient",
"MessageTemplateClient",
"ConversationAdministrationClient",
"ConversationThreadClient",
]
__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,19 @@
from azure.core.pipeline import policies
from azure.core.rest import HttpRequest, HttpResponse

from ._configuration import MessageTemplateClientConfiguration, NotificationMessagesClientConfiguration
from ._operations import MessageTemplateClientOperationsMixin, NotificationMessagesClientOperationsMixin
from ._serialization import Deserializer, Serializer
from ._configuration import (
ConversationAdministrationClientConfiguration,
ConversationThreadClientConfiguration,
MessageTemplateClientConfiguration,
NotificationMessagesClientConfiguration,
)
from ._operations import (
ConversationAdministrationClientOperationsMixin,
ConversationThreadClientOperationsMixin,
MessageTemplateClientOperationsMixin,
NotificationMessagesClientOperationsMixin,
)
from ._utils.serialization import Deserializer, Serializer

if TYPE_CHECKING:
from azure.core.credentials import TokenCredential
Expand All @@ -27,21 +37,23 @@ class NotificationMessagesClient(NotificationMessagesClientOperationsMixin):
"""NotificationMessagesClient.

:param endpoint: The communication resource, for example
https://my-resource.communication.azure.com. Required.
`https://my-resource.communication.azure.com <https://my-resource.communication.azure.com>`_.
Required.
:type endpoint: str
:param credential: Credential used to authenticate requests to the service. Is either a token
credential type or a AzureKeyCredential type. Required.
credential type or a key credential type. Required.
:type credential: ~azure.core.credentials.TokenCredential or
~azure.core.credentials.AzureKeyCredential
~azure.core.credentials.AzureKeyCredential or ~azure.core.credentials.AzureKeyCredential
:keyword api_version: The API version to use for this operation. Default value is
"2025-01-15-preview". Note that overriding this default value may result in unsupported
"2025-04-01-preview". Note that overriding this default value may result in unsupported
behavior.
:paramtype api_version: str
"""

def __init__(self, endpoint: str, credential: Union["TokenCredential", AzureKeyCredential], **kwargs: Any) -> None:
_endpoint = "{endpoint}"
self._config = NotificationMessagesClientConfiguration(endpoint=endpoint, credential=credential, **kwargs)

_policies = kwargs.pop("policies", None)
if _policies is None:
_policies = [
Expand Down Expand Up @@ -106,21 +118,185 @@ class MessageTemplateClient(MessageTemplateClientOperationsMixin):
"""MessageTemplateClient.

:param endpoint: The communication resource, for example
https://my-resource.communication.azure.com. Required.
`https://my-resource.communication.azure.com <https://my-resource.communication.azure.com>`_.
Required.
:type endpoint: str
:param credential: Credential used to authenticate requests to the service. Is either a token
credential type or a AzureKeyCredential type. Required.
credential type or a key credential type. Required.
:type credential: ~azure.core.credentials.TokenCredential or
~azure.core.credentials.AzureKeyCredential
~azure.core.credentials.AzureKeyCredential or ~azure.core.credentials.AzureKeyCredential
:keyword api_version: The API version to use for this operation. Default value is
"2025-01-15-preview". Note that overriding this default value may result in unsupported
"2025-04-01-preview". Note that overriding this default value may result in unsupported
behavior.
:paramtype api_version: str
"""

def __init__(self, endpoint: str, credential: Union["TokenCredential", AzureKeyCredential], **kwargs: Any) -> None:
_endpoint = "{endpoint}"
self._config = MessageTemplateClientConfiguration(endpoint=endpoint, credential=credential, **kwargs)

_policies = kwargs.pop("policies", None)
if _policies is None:
_policies = [
policies.RequestIdPolicy(**kwargs),
self._config.headers_policy,
self._config.user_agent_policy,
self._config.proxy_policy,
policies.ContentDecodePolicy(**kwargs),
self._config.redirect_policy,
self._config.retry_policy,
self._config.authentication_policy,
self._config.custom_hook_policy,
self._config.logging_policy,
policies.DistributedTracingPolicy(**kwargs),
policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None,
self._config.http_logging_policy,
]
self._client: PipelineClient = PipelineClient(base_url=_endpoint, policies=_policies, **kwargs)

self._serialize = Serializer()
self._deserialize = Deserializer()
self._serialize.client_side_validation = False

def send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs: Any) -> HttpResponse:
"""Runs the network request through the client's chained policies.

>>> from azure.core.rest import HttpRequest
>>> request = HttpRequest("GET", "https://www.example.org/")
<HttpRequest [GET], url: 'https://www.example.org/'>
>>> response = client.send_request(request)
<HttpResponse: 200 OK>

For more information on this code flow, see https://aka.ms/azsdk/dpcodegen/python/send_request

:param request: The network request you want to make. Required.
:type request: ~azure.core.rest.HttpRequest
:keyword bool stream: Whether the response payload will be streamed. Defaults to False.
:return: The response of your network call. Does not do error handling on your response.
:rtype: ~azure.core.rest.HttpResponse
"""

request_copy = deepcopy(request)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str", skip_quote=True),
}

request_copy.url = self._client.format_url(request_copy.url, **path_format_arguments)
return self._client.send_request(request_copy, stream=stream, **kwargs) # type: ignore

def close(self) -> None:
self._client.close()

def __enter__(self) -> Self:
self._client.__enter__()
return self

def __exit__(self, *exc_details: Any) -> None:
self._client.__exit__(*exc_details)


class ConversationAdministrationClient(ConversationAdministrationClientOperationsMixin):
"""ConversationAdministrationClient.

:param endpoint: The communication resource, for example
`https://my-resource.communication.azure.com <https://my-resource.communication.azure.com>`_.
Required.
:type endpoint: str
:param credential: Credential used to authenticate requests to the service. Is either a token
credential type or a key credential type. Required.
:type credential: ~azure.core.credentials.TokenCredential or
~azure.core.credentials.AzureKeyCredential or ~azure.core.credentials.AzureKeyCredential
:keyword api_version: The API version to use for this operation. Default value is
"2025-04-01-preview". Note that overriding this default value may result in unsupported
behavior.
:paramtype api_version: str
"""

def __init__(self, endpoint: str, credential: Union["TokenCredential", AzureKeyCredential], **kwargs: Any) -> None:
_endpoint = "{endpoint}"
self._config = ConversationAdministrationClientConfiguration(endpoint=endpoint, credential=credential, **kwargs)

_policies = kwargs.pop("policies", None)
if _policies is None:
_policies = [
policies.RequestIdPolicy(**kwargs),
self._config.headers_policy,
self._config.user_agent_policy,
self._config.proxy_policy,
policies.ContentDecodePolicy(**kwargs),
self._config.redirect_policy,
self._config.retry_policy,
self._config.authentication_policy,
self._config.custom_hook_policy,
self._config.logging_policy,
policies.DistributedTracingPolicy(**kwargs),
policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None,
self._config.http_logging_policy,
]
self._client: PipelineClient = PipelineClient(base_url=_endpoint, policies=_policies, **kwargs)

self._serialize = Serializer()
self._deserialize = Deserializer()
self._serialize.client_side_validation = False

def send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs: Any) -> HttpResponse:
"""Runs the network request through the client's chained policies.

>>> from azure.core.rest import HttpRequest
>>> request = HttpRequest("GET", "https://www.example.org/")
<HttpRequest [GET], url: 'https://www.example.org/'>
>>> response = client.send_request(request)
<HttpResponse: 200 OK>

For more information on this code flow, see https://aka.ms/azsdk/dpcodegen/python/send_request

:param request: The network request you want to make. Required.
:type request: ~azure.core.rest.HttpRequest
:keyword bool stream: Whether the response payload will be streamed. Defaults to False.
:return: The response of your network call. Does not do error handling on your response.
:rtype: ~azure.core.rest.HttpResponse
"""

request_copy = deepcopy(request)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str", skip_quote=True),
}

request_copy.url = self._client.format_url(request_copy.url, **path_format_arguments)
return self._client.send_request(request_copy, stream=stream, **kwargs) # type: ignore

def close(self) -> None:
self._client.close()

def __enter__(self) -> Self:
self._client.__enter__()
return self

def __exit__(self, *exc_details: Any) -> None:
self._client.__exit__(*exc_details)


class ConversationThreadClient(ConversationThreadClientOperationsMixin):
"""ConversationThreadClient.

:param endpoint: The communication resource, for example
`https://my-resource.communication.azure.com <https://my-resource.communication.azure.com>`_.
Required.
:type endpoint: str
:param credential: Credential used to authenticate requests to the service. Is either a token
credential type or a key credential type. Required.
:type credential: ~azure.core.credentials.TokenCredential or
~azure.core.credentials.AzureKeyCredential or ~azure.core.credentials.AzureKeyCredential
:keyword api_version: The API version to use for this operation. Default value is
"2025-04-01-preview". Note that overriding this default value may result in unsupported
behavior.
:paramtype api_version: str
"""

def __init__(self, endpoint: str, credential: Union["TokenCredential", AzureKeyCredential], **kwargs: Any) -> None:
_endpoint = "{endpoint}"
self._config = ConversationThreadClientConfiguration(endpoint=endpoint, credential=credential, **kwargs)

_policies = kwargs.pop("policies", None)
if _policies is None:
_policies = [
Expand Down
Loading