Skip to content

Commit

Permalink
init PR
Browse files Browse the repository at this point in the history
  • Loading branch information
alextts627 committed Jun 17, 2022
1 parent c98018c commit 8352fbd
Show file tree
Hide file tree
Showing 45 changed files with 5,393 additions and 0 deletions.
5 changes: 5 additions & 0 deletions sdk/maps/azure-maps-render/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Release History

## 0.1.0 (Unreleased)

* Initial Release
7 changes: 7 additions & 0 deletions sdk/maps/azure-maps-render/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
recursive-include tests *.py *.yaml
recursive-include samples *.py *.md
include *.md
include LICENSE
include azure/__init__.py
include azure/maps/__init__.py
include azure/maps/render/py.typed
145 changes: 145 additions & 0 deletions sdk/maps/azure-maps-render/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# Azure Maps Render Package client library for Python

This package contains a Python SDK for Azure Maps Services for Render.
Read more about Azure Maps Services [here](https://docs.microsoft.com/azure/azure-maps/)

[Source code](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/maps/azure-maps-render) | [API reference documentation](https://docs.microsoft.com/rest/api/maps/render) | [Product documentation](https://docs.microsoft.com/azure/azure-maps/)

## _Disclaimer_

_Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to <https://github.com/Azure/azure-sdk-for-python/issues/20691>_

## Getting started

### Prerequisites

- Python 3.6 or later is required to use this package.
- A deployed Maps Services resource. You can use the [Azure Portal](https://docs.microsoft.com/azure/azure-maps/quick-demo-map-app) to set it up.

### Install the package

Install the Azure Maps Service Render SDK.

```bash
pip install --pre azure-maps-render
```

### Authenticate the client

In order to interact with the Document Translation feature service, you will need to create an instance of a client.
An **endpoint** and **credential** are necessary to instantiate the client object.

### Create the client with AzureKeyCredential

To use an [API key] as the `credential` parameter,
pass the key as a string into an instance of [AzureKeyCredential][azure-key-credential].

```python
from azure.core.credentials import AzureKeyCredential
from azure.maps.render import RenderClient

endpoint = "https://<resource-name>.mapsservices.azure.com/"
credential = AzureKeyCredential("<api_key>")
render_client = RenderClient(endpoint, credential)
```

### Create the client with an Azure Active Directory credential

`AzureKeyCredential` authentication is used in the examples in this getting started guide, but you can also
authenticate with Azure Active Directory using the [azure-identity][azure_identity] library.

To use the [DefaultAzureCredential][default_azure_credential] type shown below, or other credential types provided
with the Azure SDK, please install the `azure-identity` package:

```pip install azure-identity```

Once completed, set the values of the client ID, and client secret of the AAD application as environment variables:
`AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET`.

```python
from azure.identity import DefaultAzureCredential
from azure.maps.render import RenderClient
credential = DefaultAzureCredential()

render_client = RenderClient(
endpoint="https://<resource-name>.mapsservices.azure.com/",
credential=credential
)
```

## Key concepts

### RenderClient

`RenderClient` is the primary interface for developers using the Azure Maps Render client library. Explore the methods on this client object to understand the different features of the Azure Maps Render service that you can access.

## Examples

The following sections provide several code snippets covering some of the most common Azure Maps Render tasks, including:

- [Request map tiles in vector or raster formats](#request-map-tiles-in-vector-or-raster-formats)
- [Request map copyright attribution information](#request-map-copyright-attribution-information)
- [Request metadata for a tileset](#request-metadata-for-a-tileset)

### Request map tiles in vector or raster formats

```python
tile_index = { z: 6, x: 9, y: 22 };
map_tile_options = { tile_size: "512" };
map_tile = client.get_map_tile(MS_BASE_TILE_SET_ID, tile_index, map_tile_options);
```

The response will contain the tile object based on the request parameters.

### Request map copyright attribution information

```python
bounding_box = {
bottom_right: { latitude: 47.57949, longitude: -122.247157 },
top_left: { latitude: 47.668372, longitude: -122.414162 },
};
attribution = client.get_map_attribution(MS_BASE_TILE_SET_ID, 6, bounding_box);
```

### Request metadata for a tileset

```python
tileset = client.get_map_tileset(MS_BASE_TILE_SET_ID);
```

### Sample Code

These are code samples that show common scenario operations with the Azure Maps Render client library.
The async versions of the samples (the python sample files appended with `_async`) show asynchronous operations.
Before run the sample code, refer to Prerequisites
<!-- [Prerequisites](#Prerequisites) -->
to create a resource, then set some Environment Variables

```bash
set AZURE_MAPS_SERVICE_ENDPOINT="https://<RESOURCE_NAME>.mapsservices.azure.com"
set MAPS_SAMPLES_CONNECTION_STRING="<connection string of your Maps service>"

pip install azure-maps-render

python samples\render.py
```

## Troubleshooting

Running into issues? This section should contain details as to what to do there.

### Next steps

More sample code should go [here](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/maps/azure-maps-render/samples), along with links out to the appropriate example tests.

### Contributing

If you encounter any bugs or have suggestions, please file an issue in the [Issues](<https://github.com/Azure/azure-sdk-for-python/issues>) section of the project.

![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fsdk%2Ftemplate%2Fazure-template%2FREADME.png)

<!-- LINKS -->
[azure_subscription]: https://azure.microsoft.com/free/
[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/identity/azure-identity
[default_azure_credential]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#defaultazurecredential
[azure-key-credential]: https://aka.ms/azsdk/python/core/azurekeycredential
1 change: 1 addition & 0 deletions sdk/maps/azure-maps-render/azure/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__path__ = __import__("pkgutil").extend_path(__path__, __name__)
1 change: 1 addition & 0 deletions sdk/maps/azure-maps-render/azure/maps/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__path__ = __import__("pkgutil").extend_path(__path__, __name__)
19 changes: 19 additions & 0 deletions sdk/maps/azure-maps-render/azure/maps/render/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# 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 ._render_client import RenderClient
from ._version import VERSION

__version__ = VERSION
__all__ = ['RenderClient']

try:
from ._patch import patch_sdk # type: ignore
patch_sdk()
except ImportError:
pass
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# 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 ._render_client import RenderClient
from ._version import VERSION

__version__ = VERSION
__all__ = ['RenderClient']

try:
from ._patch import patch_sdk # type: ignore
patch_sdk()
except ImportError:
pass
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# 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

from ._version import VERSION

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

from azure.core.credentials import TokenCredential


class RenderClientConfiguration(Configuration):
"""Configuration for RenderClient.
Note that all parameters used to create this instance are saved as instance
attributes.
:param credential: Credential needed for the client to connect to Azure.
:type credential: ~azure.core.credentials.TokenCredential
:param x_ms_client_id: Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from the Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following `articles <https://aka.ms/amauthdetails>`_ for guidance.
:type x_ms_client_id: str
:param geography: This parameter specifies where the Azure Maps Creator resource is located. Valid values are us and eu.
:type geography: str or ~azure.maps.render.models.Geography
"""

def __init__(
self,
credential, # type: "TokenCredential"
x_ms_client_id=None, # type: Optional[str]
geography="us", # type: Union[str, "_models.Geography"]
**kwargs # type: Any
):
# type: (...) -> None
if credential is None:
raise ValueError("Parameter 'credential' must not be None.")
if geography is None:
raise ValueError("Parameter 'geography' must not be None.")
super(RenderClientConfiguration, self).__init__(**kwargs)

self.credential = credential
self.x_ms_client_id = x_ms_client_id
self.geography = geography
self.credential_scopes = kwargs.pop('credential_scopes', ['https://atlas.microsoft.com/.default'])
kwargs.setdefault('sdk_moniker', 'maps-render/{}'.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.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.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)
104 changes: 104 additions & 0 deletions sdk/maps/azure-maps-render/azure/maps/render/_generated/_metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
{
"chosen_version": "",
"total_api_version_list": ["1.0", "2.0"],
"client": {
"name": "RenderClient",
"filename": "_render_client",
"description": "Azure Maps Render REST APIs.",
"base_url": null,
"custom_base_url": "\u0027https://{geography}.atlas.microsoft.com\u0027",
"azure_arm": false,
"has_lro_operations": false,
"client_side_validation": false,
"sync_imports": "{\"typing\": {\"azurecore\": {\"azure.core.credentials\": [\"TokenCredential\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\", \"Union\"]}, \"azurecore\": {\"azure.core.pipeline.transport\": [\"HttpRequest\", \"HttpResponse\"]}}, \"regular\": {\"azurecore\": {\"azure.profiles\": [\"KnownProfiles\", \"ProfileDefinition\"], \"azure.profiles.multiapiclient\": [\"MultiApiClientMixin\"], \"msrest\": [\"Deserializer\", \"Serializer\"], \"azure.core\": [\"PipelineClient\"]}, \"local\": {\"._configuration\": [\"RenderClientConfiguration\"]}}}",
"async_imports": "{\"typing\": {\"azurecore\": {\"azure.core.credentials_async\": [\"AsyncTokenCredential\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\", \"Union\"]}, \"azurecore\": {\"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"]}}, \"regular\": {\"azurecore\": {\"azure.profiles\": [\"KnownProfiles\", \"ProfileDefinition\"], \"azure.profiles.multiapiclient\": [\"MultiApiClientMixin\"], \"msrest\": [\"Deserializer\", \"Serializer\"], \"azure.core\": [\"AsyncPipelineClient\"]}, \"local\": {\"._configuration\": [\"RenderClientConfiguration\"]}}}"
},
"global_parameters": {
"sync": {
"credential": {
"signature": "credential, # type: \"TokenCredential\"",
"description": "Credential needed for the client to connect to Azure.",
"docstring_type": "~azure.core.credentials.TokenCredential",
"required": true
},
"x_ms_client_id": {
"signature": "x_ms_client_id=None, # type: Optional[str]",
"description": "Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from the Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following `articles \u003chttps://aka.ms/amauthdetails\u003e`_ for guidance.",
"docstring_type": "str",
"required": false
},
"geography": {
"signature": "geography=\"us\", # type: Union[str, \"_models.Geography\"]",
"description": "This parameter specifies where the Azure Maps Creator resource is located. Valid values are us and eu.",
"docstring_type": "str or ~azure.maps.render.models.Geography",
"required": true
}
},
"async": {
"credential": {
"signature": "credential: \"AsyncTokenCredential\",",
"description": "Credential needed for the client to connect to Azure.",
"docstring_type": "~azure.core.credentials_async.AsyncTokenCredential",
"required": true
},
"x_ms_client_id": {
"signature": "x_ms_client_id: Optional[str] = None,",
"description": "Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from the Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following `articles \u003chttps://aka.ms/amauthdetails\u003e`_ for guidance.",
"docstring_type": "str",
"required": false
},
"geography": {
"signature": "geography: Union[str, \"_models.Geography\"] = \"us\",",
"description": "This parameter specifies where the Azure Maps Creator resource is located. Valid values are us and eu.",
"docstring_type": "str or ~azure.maps.render.models.Geography",
"required": true
}
},
"constant": {
},
"call": "credential, x_ms_client_id, geography",
"service_client_specific": {
"sync": {
"api_version": {
"signature": "api_version=None, # type: Optional[str]",
"description": "API version to use if no profile is provided, or if missing in profile.",
"docstring_type": "str",
"required": false
},
"profile": {
"signature": "profile=KnownProfiles.default, # type: KnownProfiles",
"description": "A profile definition, from KnownProfiles to dict.",
"docstring_type": "azure.profiles.KnownProfiles",
"required": false
}
},
"async": {
"api_version": {
"signature": "api_version: Optional[str] = None,",
"description": "API version to use if no profile is provided, or if missing in profile.",
"docstring_type": "str",
"required": false
},
"profile": {
"signature": "profile: KnownProfiles = KnownProfiles.default,",
"description": "A profile definition, from KnownProfiles to dict.",
"docstring_type": "azure.profiles.KnownProfiles",
"required": false
}
}
}
},
"config": {
"credential": true,
"credential_scopes": ["https://atlas.microsoft.com/.default"],
"credential_default_policy_type": "BearerTokenCredentialPolicy",
"credential_default_policy_type_has_async_version": true,
"credential_key_header_name": null,
"sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"]}, \"local\": {\"._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\", \"Union\"]}}, \"typing\": {\"azurecore\": {\"azure.core.credentials\": [\"TokenCredential\"]}}}",
"async_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"]}, \"local\": {\".._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\", \"Union\"]}}, \"typing\": {\"azurecore\": {\"azure.core.credentials_async\": [\"AsyncTokenCredential\"]}}}"
},
"operation_groups": {
"render": "RenderOperations",
"render_v2": "RenderV2Operations"
}
}
Loading

0 comments on commit 8352fbd

Please sign in to comment.