Skip to content

Commit

Permalink
CodeGen from PR 23204 in Azure/azure-rest-api-specs
Browse files Browse the repository at this point in the history
EventGridv2 TypeSpec Api Preview (Azure#23204)

* start typespec

* adding eventgrid typespec for api w/ TODOs

* update eventgrid typespec with latest eventgrid v2 operations

* don't require content-type if there is no body

* Update specification/eventgrid/typespec/main.tsp

Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com>

* Update specification/eventgrid/typespec/main.tsp

Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com>

* changing naming of cloudevent and added in data_base64

* openapi.json

* Update specification/eventgrid/typespec/main.tsp

Co-authored-by: Libba Lawrence <llawrence@microsoft.com>

* Update specification/eventgrid/typespec/main.tsp

Co-authored-by: Libba Lawrence <llawrence@microsoft.com>

* Update specification/eventgrid/typespec/main.tsp

Co-authored-by: Libba Lawrence <llawrence@microsoft.com>

* lockTokens format, updated json, optional? params

* address code review comments

* name_change

* add @internal for python

* Update specification/eventgrid/Azure.Messaging.EventGrid/main.tsp

Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com>

* move @internal to client.tsp (Azure#23538)

* rename (Azure#23565)

* [EventGrid Typespec] breaking changes with april release of typespec (Azure#23539)

* breaking changes with april release of typespec

* unknown type

* [EG Typespec] Update Release behavior (Azure#23699)

* update behavior

* just behavior

* Add tspconfig and remove AAD auth (Azure#23717)

* add tspconfig

* add namespace

* remove oauth

* [EG TypeSpec] Archboard Comments (Azure#23696)

* refactoring off of apiview

* keep as int

* no duration

* aligning ack and release

* remove behavioral change

* ack to release

* initial naming changes

* Update ReleaseResult doc

Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com>

* Update AckResult doc

Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com>

* versioning twice-- remove one instance

---------

Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com>

* Address couple of stewardship team feedback. These include: 1. Rename CloudEventEvent to simply CloudEvent, 2. Add more description to the operations including the possible erorr codes, 3. Add PublishResult with empty Json object as successful response for the Publish operation, 4. Others.

* Add support for missing Reject operation + adding deliveryAttemptCount to BrokerProperties + Adding query parameter for release operation for deliveryDelayInSeconds

* Update failedTokens/SuccessfulTokens Description to address code review comments

* Update to match service behavior (Azure#23754)

* Update to match service behavior

* remove locktoken

* [EGv2] Editing unused variables (Azure#23917)

* event delivery delay not in preview

* remove from url comment

* [EGv2] Version dependency on Azure.Core  (Azure#23936)

* verioning fix

* spacing mishap?

* [EventGrid] Deliveryattempt change (Azure#23960)

* deliveryCount 5/1

* small typo

* [EventGrid] Remove internal (Azure#23995)

* remove internal

* remove client.tsp

* remove waitWaitTime (Azure#24078)

* move location of json file (Azure#24076)

* [Egv2] Encode param (Azure#24080)

* encode

* remove num default on duration

---------

Co-authored-by: Laurent Mazuel <laurent.mazuel@gmail.com>

* [EGv2] Fix pipeline (Azure#24098)

* regen off new commit for encode

* reference preview tag

* ignore word

* update readme to have both apis

* update with next autorest

* change format to int32

---------

Co-authored-by: Ashraf Hamad <ahamad@ntdev.microsoft.com>
Co-authored-by: Laurent Mazuel <laurent.mazuel@gmail.com>
Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com>
Co-authored-by: Ashraf Hamad <ahamad-MS@users.noreply.github.com>
  • Loading branch information
5 people committed May 22, 2023
1 parent d99416c commit e26953f
Show file tree
Hide file tree
Showing 78 changed files with 5,935 additions and 1,234 deletions.
6 changes: 3 additions & 3 deletions sdk/eventgrid/azure-eventgrid/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
recursive-include tests *.py *.yaml
recursive-include samples *.py
include *.md
include LICENSE
include azure/__init__.py
include azure/eventgrid/py.typed
recursive-include tests *.py
recursive-include samples *.py *.md
include azure/__init__.py
15 changes: 15 additions & 0 deletions sdk/eventgrid/azure-eventgrid/_meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"commit": "f6f647a40fbbc43dd6e65c4436448129ab7e1fdd",
"repository_url": "https://github.com/Azure/azure-rest-api-specs",
"typespec_src": "specification/eventgrid/Azure.Messaging.EventGrid",
"@azure-tools/typespec-python": {
"version": "0.8.6",
"resolved": "https://registry.npmjs.org/@azure-tools/typespec-python/-/typespec-python-0.8.6.tgz",
"dependencies": {
"@autorest/python": {
"version": "6.4.15",
"resolved": "https://registry.npmjs.org/@autorest/python/-/python-6.4.15.tgz"
}
}
}
}
2 changes: 1 addition & 1 deletion sdk/eventgrid/azure-eventgrid/azure/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore
__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
25 changes: 16 additions & 9 deletions sdk/eventgrid/azure-eventgrid/azure/eventgrid/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,25 @@
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from ._publisher_client import EventGridPublisherClient
from ._event_mappings import SystemEventNames
from ._helpers import generate_sas
from ._models import EventGridEvent
from ._client import EventGridClient
from ._version import VERSION

__version__ = VERSION

try:
from ._patch import __all__ as _patch_all
from ._patch import * # pylint: disable=unused-wildcard-import
except ImportError:
_patch_all = []
from ._patch import patch_sdk as _patch_sdk

__all__ = [
"EventGridPublisherClient",
"EventGridEvent",
"generate_sas",
"SystemEventNames",
"EventGridClient",
]
__version__ = VERSION
__all__.extend([p for p in _patch_all if p not in __all__])

_patch_sdk()
78 changes: 78 additions & 0 deletions sdk/eventgrid/azure-eventgrid/azure/eventgrid/_client.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from copy import deepcopy
from typing import Any

from azure.core import PipelineClient
from azure.core.credentials import AzureKeyCredential
from azure.core.rest import HttpRequest, HttpResponse

from ._configuration import EventGridClientConfiguration
from ._operations import EventGridClientOperationsMixin
from ._serialization import Deserializer, Serializer


class EventGridClient(EventGridClientOperationsMixin): # pylint: disable=client-accepts-api-version-keyword
"""Azure Messaging EventGrid Client.
:param endpoint: The host name of the namespace, e.g.
namespaceName1.westus-1.eventgrid.azure.net. Required.
:type endpoint: str
:param credential: Credential needed for the client to connect to Azure. Required.
:type credential: ~azure.core.credentials.AzureKeyCredential
:keyword api_version: The API version to use for this operation. Default value is
"2023-06-01-preview". Note that overriding this default value may result in unsupported
behavior.
:paramtype api_version: str
"""

def __init__(self, endpoint: str, credential: AzureKeyCredential, **kwargs: Any) -> None:
_endpoint = "{endpoint}"
self._config = EventGridClientConfiguration(endpoint=endpoint, credential=credential, **kwargs)
self._client: PipelineClient = PipelineClient(base_url=_endpoint, config=self._config, **kwargs)

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

def send_request(self, request: HttpRequest, **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, **kwargs)

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

def __enter__(self) -> "EventGridClient":
self._client.__enter__()
return self

def __exit__(self, *exc_details: Any) -> None:
self._client.__exit__(*exc_details)
61 changes: 61 additions & 0 deletions sdk/eventgrid/azure-eventgrid/azure/eventgrid/_configuration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from typing import Any

from azure.core.configuration import Configuration
from azure.core.credentials import AzureKeyCredential
from azure.core.pipeline import policies

from ._version import VERSION


class EventGridClientConfiguration(Configuration): # pylint: disable=too-many-instance-attributes
"""Configuration for EventGridClient.
Note that all parameters used to create this instance are saved as instance
attributes.
:param endpoint: The host name of the namespace, e.g.
namespaceName1.westus-1.eventgrid.azure.net. Required.
:type endpoint: str
:param credential: Credential needed for the client to connect to Azure. Required.
:type credential: ~azure.core.credentials.AzureKeyCredential
:keyword api_version: The API version to use for this operation. Default value is
"2023-06-01-preview". Note that overriding this default value may result in unsupported
behavior.
:paramtype api_version: str
"""

def __init__(self, endpoint: str, credential: AzureKeyCredential, **kwargs: Any) -> None:
super(EventGridClientConfiguration, self).__init__(**kwargs)
api_version: str = kwargs.pop("api_version", "2023-06-01-preview")

if endpoint is None:
raise ValueError("Parameter 'endpoint' must not be None.")
if credential is None:
raise ValueError("Parameter 'credential' must not be None.")

self.endpoint = endpoint
self.credential = credential
self.api_version = api_version
kwargs.setdefault("sdk_moniker", "eventgrid/{}".format(VERSION))
self._configure(**kwargs)

def _configure(self, **kwargs: Any) -> None:
self.user_agent_policy = kwargs.get("user_agent_policy") or policies.UserAgentPolicy(**kwargs)
self.headers_policy = kwargs.get("headers_policy") or policies.HeadersPolicy(**kwargs)
self.proxy_policy = kwargs.get("proxy_policy") or policies.ProxyPolicy(**kwargs)
self.logging_policy = kwargs.get("logging_policy") or policies.NetworkTraceLoggingPolicy(**kwargs)
self.http_logging_policy = kwargs.get("http_logging_policy") or policies.HttpLoggingPolicy(**kwargs)
self.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs)
self.custom_hook_policy = kwargs.get("custom_hook_policy") or policies.CustomHookPolicy(**kwargs)
self.redirect_policy = kwargs.get("redirect_policy") or policies.RedirectPolicy(**kwargs)
self.authentication_policy = kwargs.get("authentication_policy")
if self.credential and not self.authentication_policy:
self.authentication_policy = policies.AzureKeyCredentialPolicy(self.credential, "SharedAccessKey", **kwargs)
Loading

0 comments on commit e26953f

Please sign in to comment.