Skip to content

Event grid track 2 #12768

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 40 commits into from
Aug 10, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
1d79110
genereated python client for event grid
t-swpill Jun 5, 2020
aad10b4
updated readme to use track2 generator
t-swpill Jun 5, 2020
ce1fa52
added sas key auth sample
t-swpill Jun 11, 2020
05d0e43
added consume sample, not final
t-swpill Jun 30, 2020
91d9e76
removing old eg
t-swpill Jul 1, 2020
b9f8611
added track 2 changes needed for api view
t-swpill Jul 1, 2020
abf9d75
add consumer operations
t-swpill Jul 1, 2020
e3bfc78
cleanup client versions for api view
t-swpill Jul 1, 2020
ea0a6fd
remove _initialize_mapping() in BaseEventType class in models
t-swpill Jul 1, 2020
529c6ed
track 2 design manual changes
t-swpill Jul 7, 2020
55b2df5
added publisher wrapper in azure/eventgrid for demo
t-swpill Jul 10, 2020
2dc4f31
modified naming for publish sample for demo
t-swpill Jul 10, 2020
18edaa2
final sample fix for demo
t-swpill Jul 13, 2020
7581cb7
added response to publish_events(), still need to fix
t-swpill Jul 14, 2020
6d8ce6d
added decoder for apiview
t-swpill Jul 15, 2020
3f16127
renamed consumer, added Deserialized/CustomEvent
t-swpill Jul 20, 2020
7446b60
final for Board Review
t-swpill Jul 22, 2020
c135026
testing changes
t-swpill Jul 27, 2020
3e45087
added EventGridSharedAccessSignatureCredential,Policy and modified sa…
t-swpill Jul 28, 2020
debf2c8
added eg_client test
t-swpill Jul 28, 2020
de0ea80
moving generated code out from event_grid_publisher_client nested folder
t-swpill Aug 3, 2020
9f204fd
added consumption function samples
t-swpill Aug 3, 2020
d04ddd2
removed eg required package and removed service bus dependency in con…
t-swpill Aug 3, 2020
a0bb333
removed unnecessary functions
t-swpill Aug 3, 2020
7141cf2
changed consumer deserialize_event() to take,return single event of o…
t-swpill Aug 4, 2020
325a3ca
added publish tests
t-swpill Aug 5, 2020
7869363
fixed PR, added CustomEvent, added tests/samples
t-swpill Aug 7, 2020
697beb7
updated swagger, removed unnecessary imports
t-swpill Aug 7, 2020
713c97c
removed unnecessary reqs in dev_requirements
t-swpill Aug 7, 2020
00fdf25
changed async publisher import path, added type hints
t-swpill Aug 7, 2020
c17340d
modified typehints for publishers, based on apiview
t-swpill Aug 7, 2020
d300ccf
added newlines
t-swpill Aug 7, 2020
b0ca487
added shared_reqs file
t-swpill Aug 7, 2020
15dad6e
moved shared_requirement
t-swpill Aug 7, 2020
ca47c0f
fixed non live test
t-swpill Aug 7, 2020
8971c9f
Merge branch 'master' into event-grid-track-2
t-swpill Aug 7, 2020
ed266ee
added changelog, test fix
t-swpill Aug 7, 2020
9c9171d
Merge branch 'event-grid-track-2' of https://github.com/t-swpill/azur…
t-swpill Aug 7, 2020
9b87f0c
changed topic preparer
t-swpill Aug 7, 2020
23dc910
added samples to exclude to setup.py
t-swpill Aug 7, 2020
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
4 changes: 4 additions & 0 deletions sdk/eventgrid/azure-eventgrid/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Release History

## 2.0.0 (2020-08-07)

- Placeholder - NEEDS TO BE CHANGED

## 1.3.0 (2019-05-20)

- Event Schemas for new event types from IotHub, Media Services,
Expand Down
21 changes: 10 additions & 11 deletions sdk/eventgrid/azure-eventgrid/azure/eventgrid/__init__.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
# 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) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------

from .event_grid_client import EventGridClient
from .version import VERSION

__all__ = ['EventGridClient']
from ._publisher_client import EventGridPublisherClient
from ._consumer import EventGridConsumer
from ._helpers import generate_shared_access_signature
from ._models import CloudEvent, CustomEvent, EventGridEvent, DeserializedEvent, StorageBlobCreatedEventData
from ._shared_access_signature_credential import EventGridSharedAccessSignatureCredential
from ._version import VERSION

__all__ = ['EventGridPublisherClient', 'EventGridConsumer',
'CloudEvent', 'CustomEvent', 'DeserializedEvent', 'EventGridEvent', 'StorageBlobCreatedEventData'
'generate_shared_access_signature', 'EventGridSharedAccessSignatureCredential']
__version__ = VERSION

9 changes: 9 additions & 0 deletions sdk/eventgrid/azure-eventgrid/azure/eventgrid/_constants.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------

EVENTGRID_KEY_HEADER = 'aeg-sas-key'
EVENTGRID_TOKEN_HEADER = 'aeg-sas-token'
DEFAULT_API_VERSION = "2018-01-01"
SAFE_ENCODE = '~()*!.\''
49 changes: 49 additions & 0 deletions sdk/eventgrid/azure-eventgrid/azure/eventgrid/_consumer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# 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) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from typing import TYPE_CHECKING
import json
import six
import logging

from azure.core import PipelineClient
from msrest import Deserializer, Serializer

if TYPE_CHECKING:
# pylint: disable=unused-import,ungrouped-imports
from typing import Any

_LOGGER = logging.getLogger(__name__)

from ._models import DeserializedEvent

class EventGridConsumer(object):
"""
A consumer responsible for deserializing event handler messages, to allow for access to strongly typed Event objects.
"""

def deserialize_event(self, event, **kwargs):
# type: (Union[str, dict, bytes]) -> models.DeserializedEvent
"""Single event following CloudEvent/EventGridEvent schema will be parsed and returned as DeserializedEvent.
:param event: The event to be deserialized.
:type event: Union[str, dict, bytes]
:rtype: models.DeserializedEvent

:raise: :class:`ValueError`, when events do not follow CloudEvent or EventGridEvent schema.
"""
try:
if isinstance(event, six.binary_type):
event = json.loads(event.decode('utf-8'))
elif isinstance(event, six.string_types):
event = json.loads(event)
return DeserializedEvent(event)
except Exception as err:
_LOGGER.error('Error: cannot deserialize event. Event does not have a valid format. Event must be a string, dict, or bytes following the CloudEvent/EventGridEvent schema.')
_LOGGER.error('Your event: {}'.format(event))
_LOGGER.error(err)
raise ValueError('Error: cannot deserialize event. Event does not have a valid format. Event must be a string, dict, or bytes following the CloudEvent/EventGridEvent schema.')
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# 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) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from ._event_grid_publisher_client import EventGridPublisherClient
__all__ = ['EventGridPublisherClient']

try:
from ._patch import patch_sdk
patch_sdk()
except ImportError:
pass
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# 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) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from typing import TYPE_CHECKING

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

if TYPE_CHECKING:
# pylint: disable=unused-import,ungrouped-imports
from typing import Any

VERSION = "unknown"

class EventGridPublisherClientConfiguration(Configuration):
"""Configuration for EventGridPublisherClient.

Note that all parameters used to create this instance are saved as instance
attributes.

"""

def __init__(
self,
**kwargs # type: Any
):
# type: (...) -> None
super(EventGridPublisherClientConfiguration, self).__init__(**kwargs)

self.api_version = "2018-01-01"
kwargs.setdefault('sdk_moniker', 'eventgridpublisherclient/{}'.format(VERSION))
self._configure(**kwargs)

def _configure(
self,
**kwargs # type: Any
):
# type: (...) -> 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.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')
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# 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) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from typing import TYPE_CHECKING

from azure.core import PipelineClient
from msrest import Deserializer, Serializer

if TYPE_CHECKING:
# pylint: disable=unused-import,ungrouped-imports
from typing import Any

from ._configuration import EventGridPublisherClientConfiguration
from .operations import EventGridPublisherClientOperationsMixin
from . import models


class EventGridPublisherClient(EventGridPublisherClientOperationsMixin):
"""EventGrid Python Publisher Client.

:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.
"""

def __init__(
self,
**kwargs # type: Any
):
# type: (...) -> None
base_url = 'https://{topicHostname}'
self._config = EventGridPublisherClientConfiguration(**kwargs)
self._client = PipelineClient(base_url=base_url, config=self._config, **kwargs)

client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)}
self._serialize = Serializer(client_models)
self._deserialize = Deserializer(client_models)


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

def __enter__(self):
# type: () -> EventGridPublisherClient
self._client.__enter__()
return self

def __exit__(self, *exc_details):
# type: (Any) -> None
self._client.__exit__(*exc_details)
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# 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) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from ._event_grid_publisher_client_async import EventGridPublisherClient
__all__ = ['EventGridPublisherClient']
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# 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) AutoRest 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.pipeline import policies

VERSION = "unknown"

class EventGridPublisherClientConfiguration(Configuration):
"""Configuration for EventGridPublisherClient.

Note that all parameters used to create this instance are saved as instance
attributes.

"""

def __init__(
self,
**kwargs: Any
) -> None:
super(EventGridPublisherClientConfiguration, self).__init__(**kwargs)

self.api_version = "2018-01-01"
kwargs.setdefault('sdk_moniker', 'eventgridpublisherclient/{}'.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.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs)
self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs)
self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs)
self.authentication_policy = kwargs.get('authentication_policy')
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# 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) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from typing import Any

from azure.core import AsyncPipelineClient
from msrest import Deserializer, Serializer

from ._configuration_async import EventGridPublisherClientConfiguration
from .operations_async import EventGridPublisherClientOperationsMixin
from .. import models


class EventGridPublisherClient(EventGridPublisherClientOperationsMixin):
"""EventGrid Python Publisher Client.

:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.
"""

def __init__(
self,
**kwargs: Any
) -> None:
base_url = 'https://{topicHostname}'
self._config = EventGridPublisherClientConfiguration(**kwargs)
self._client = AsyncPipelineClient(base_url=base_url, config=self._config, **kwargs)

client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)}
self._serialize = Serializer(client_models)
self._deserialize = Deserializer(client_models)


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

async def __aenter__(self) -> "EventGridPublisherClient":
await self._client.__aenter__()
return self

async def __aexit__(self, *exc_details) -> None:
await self._client.__aexit__(*exc_details)
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# 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) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from ._event_grid_publisher_client_operations_async import EventGridPublisherClientOperationsMixin

__all__ = [
'EventGridPublisherClientOperationsMixin',
]
Loading