From 73ef7d91f1fc123f3323592c7d97b87493cb8d19 Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Tue, 20 Jul 2021 16:07:04 +0000 Subject: [PATCH] CodeGen from PR 14871 in Azure/azure-rest-api-specs [Maps] Add separate Swagger definitions for Maps client libraries (#14871) * Make maps data-plane swagger files compile when taken from api to sdk. * Update correctly the search api * Update common.js and add swagger codegen to maps dataplane. * Fix path issue * fix prettifier error. * Replace mistyped extension. * Fix common type version. * Fix errors for alias.json * run prettier * fix security def and parameters. * Revert "fix security def and parameters." This reverts commit 85370d9b6b3ad0ae615d1931aa7a5eec39957b30. * Revert "run prettier" This reverts commit be16d4423be319cc4b7a957abe977aced26e0fa5. * Revert "Fix errors for alias.json" This reverts commit 0458cbc9489ba8cc05a575517b35001fa4c4a7e8. * fix extension issue * comment out all other errors. * revert changes to package.json files * update files. remove common response as it isn't supported. * update readonly problem * Update error correctly to not be a breaking change * Remove unused definition. * Fix GeoJSONGeometryCollection * Fix naming scheme * fix coord abb * fix geometryCollection error by using a more generic type for inheritance. * update anon def * try without schema * fix naming issue. * add schema * try again * update common file * update route.json file * Revert "update route.json file" This reverts commit 2858248ea19ece1998617afbb83c1b6633487834. * Update geometry collection. * fix go modeler error * remove type * - fix ModelValidation * - enable Java and Python generation * try with new errorDetail. * correct paths * revert changes to odataerror. update python sdk. * fix typo * update error and readonly CoordinateAbbreviated to reuse more. * - try to build Python SDK * - try to forcefully build Python SDK * Add top level java. * update warnings from lint diff * try java generation with the inline file. * update Java compilation with right tags. * Fix compilation warnings * Update readme namespace names * Make enums be modelAsString: true * Add x-ms-error-response to error responses * Remove feedback.json and feedback reference from readme.md. * Fix "security" requirement object to have valid scope for OAuth2 security scheme type * Fix "security" requirement object to have valid scope for OAuth2 security scheme type - add missing file * Use common client parameters - part 1 * Use common client parameters - part 2 * Fix lint errors * update go namespace to the correct one. * Use common response objects to fix duplicate schemas * Fix semantic & model validation W/A for OAV as it is not able to parse Swagger file without "responses" object. * Fix autorest duplicate schema warnings Use common schema for Language, View, xTileIndex & yTileIndex between Render 1.0, Render 2.0, Search 1.0 and Traffic 1.0. * Fix C# generation of StyleRuleBaseType enum type * Fix license header for GO lang * Fix inheritance of the StyleRuleBase type in the FeatureState API * Revert resource-manager changes. * Remove current version. * Update java namespace. * Fix StyleRuleBase type inherited types generation * Fix prettier error * Use common GeoJson naming & fix inheritance * Update 200 response to be 200Async instead of error response. Also update the examples for the given routes. * Fix StyleRuleBase type inherited types generation * Fix 'avoid' parameter in Route service to be actually an array of things to avoid * Rename definitions to have at least two words (fix AZC0012 error) and add missing x-ms-enums. * Fix prettier * Fix GeoJSON type hierarchy and WFS examples * Fix long running operation definitions and examples * Add missing descriptions * Define batch responses in more detail & remove redundant definitions in Search API * Alias - remove unused definitions and empty 204 response * Data - remove unused definitions, empty 204 responses and file upload parameters * Dataset - remove unused definitions and empty 204 response * Fix description and linter validation * Elevation - remove unused definitions, merge some of them to get less models * Conversion, Feature State & Geolocation - remove unused definitions and empty 204 response * Use previous package-1.0-preview until new package-preview-2.0 is fixed. * Fix merge conflicts after rebase and security LintDiff * Fix Alias, Data, Dataset, Conversion, Feature State, Tileset & WFS 2.0 services * Fix linter warnings - Use common definition for ontology * Fix linter errors - LongRunningResponseStatusCode * Fix ApiDocPreview * Use different tag format to not relate with API version used * Use dummy trick to make ApiDocPreview and Avocado work * Another approach for ApiDocPreview * Seems like it is impossible to make ApiDocPreview work until someone takes a look at "REST API CI Script Reporter" in the "OpenAPIPortal-REST-Generator" pipeline and fix it to use referenced Swagger files. * update featureid to local parameter in wfs to see if it fixes error. * Remove dataset from wfs as it is not needed to fix doc preview. * Remove part that should be auto generated. * Fix error with java codegen. * Try to only export new versions of api. * Readd removed api's. Try with wfs v1 to see if api-preview passes. * remove wfs2 * Re-add wfs * update the readme.go to see if it generates install instructions. * add after scripts to bundle install * Remove defaults from route to test if it fixes go sdk problems. * Remove "x-publish" just for api doc preview test * fix JSON typo after removal * Experiment: do not use common responses for WFS 2.0 * Remove required false as it is the default value for query parameters. Remove default value for non required values. * run prettier. * Add onbe error-response individually to see if it fixes alias error. * Revert experimental WFS changes * Remove unused error. * Remove duplicated common file for 2.0 * Use ResponseFormat as a name for JsonFormat as one of the values is Json * Mobility & Render - fix response types, remove unnecessary definitions * Revert renaming TransitRouteType * revert data.json to consume the correct type * Only put at consumes application/json * Update consumes for data. * Render - rename operations to have common names with examples * update python codegen to use track2 correctly * Also change track2 from readme.md * Add track2 and track1 * Don't generate the sdk for arm. * Remove python track1 and add net track2. * Search - reduce number of responses for common cases * Elevation - fix input param for GetDataForPolyLine * Spatial - remove duplicated & unused definitions * Data - fix model validation * Tileset - remove 204 body Add x-ms-pageable to where it suits * Timezone & Traffic - fix "produces" fields and Traffic file responses * Add azure-sdk-for-net-track2 references to the -pr repo * Use azure-sdk-for-net without track2 since it's not enabled in the CI yet. * Weather - remove unused definitions * WFS 1.0 - remove unused definition and standardize naming * WFS 2.0 - remove unused definition and standardize naming * Put TextFormat & GeographicResourceLocation to a common file * Fix double to integer so that calls work. * Skip url encoding for elevation input parameters. * Put url ecoding to correct spot. * update geoemtries to be comma separated array. * Change search parameter order so that textFormat is always first. * Change parameter to udid from udId to be consistent * update wfs limit from float to int * update from string to datetime * Refix elevation. * Fix elevation prettier. * correctly update parameter to udid. * Add geography to all services. * update date-time * Add description to data * Add client flatten * Run prettier * Add geometry to examples. * Update missing routes. * Route - fix added endpoints for missing API * Use autorest v3 for TypeScript code gen * Add arm to python sdk in order to have aad auth. * Run prettier on route. * update get routes fixes. * put correct name for example. * update format * Add missing responses * Add same security for all. * fix copyright and countryCode warnings * remove arm. * fix extra comma * Add long running * Remove unused stuff from readme.md * Run prettifier * see if x-publish fixes linter error. * Replace description. * disable long running operation for put state update * Add schema of type string. * Replace description * Remove schema. * Remove after install to see if go package still fails. * Change credential type to bearer. and remove each sub key param. * - remove XML since our client libs are using JSON only and TS codegen cannot parse responses properly * - fix DWG conversion 200 response to not be an error but actual result with operationId in the body - use 6.0.0-alpha.20210514.1 TS codegen as latest beta has broken LRO support for JS core v1 (cannot use core v2 due to missing API key credential) * Fix Data & Dataset conversion 200 response to not be an error but actual result with operationId in the body * Fix OAuth description for Lint diff & fix prettier * Another try for the LintDiff CI * Yet another try for the LintDiff CI * Remove security from common * fix description message. * Remove preview 1 since preview 2 is added. * remove unused preview 1 files. * Change api version from common to each service. * Add default error. * Update version and route and search with batch. Remove subscription key from examples. * fixes. * Re-add 408. * fixes to errors. * update types. * Update description for batch. * remove unused errors from examples. * fix ci after changes. * fix again errors in examples. * remove package-preview-1.0 from go. * Remove go codegen as track1 isn't supported for data-plane. * Leave go readme. Remove js from ci for now. * remove 200 from dataset. * Put 200 response back to the Maps LROs. Although those paths do not return 200 directly (202 instead) the TS codegen takes 200 definition for the response type, so it is needed to deserialize. * Try to use .NET Track 2 * Workaround TS autogen limitation - loses inherited class properties due to invalid deserialization of base class properties only * Fix 200 to be 400 error(fix duplicate) * change versioning. * commit unsaved files. * fix wrong version. * fix breaking change. * Fix LintDiff errors and azure-sdk-for-net build * fix cSpell * Fix common descriptions for other Swaggers after e0624d2b17a8dcee07acfb08f39508a773a8dc21 * Use the new Azure AD description * Add back API key description * update consumes in data * fix typo. * update creator. * update references * update spatial version to 2. * fix data upload. * move spatial back to 1.0 for now and update batch to have 200 in case of success. * Remove mobility as its deprecated. * move spatial samples. * Update config md files & fix minor versioning issues * Remove unnecessary "produces" and "202Batch" * Use autorest's predefined AADToken & AzureKey * Generate public clients for C# * Prettier fix * change go namespaces * golang track2 config updates * Use latest TypeScript generator with core v2 * Fix Swagger ModelValidation Co-authored-by: Dragos Daian Co-authored-by: ambientlight --- .../src/Generated/IRenderClient.cs | 71 + .../src/Generated/IRenderOperations.cs | 878 +++++++ .../src/Generated/IRenderV2.cs | 147 ++ .../Generated/Models/ErrorAdditionalInfo.cs | 59 + .../src/Generated/Models/ErrorDetail.cs | 85 + .../src/Generated/Models/ErrorResponse.cs | 56 + .../Models/ErrorResponseException.cs | 62 + .../Models/GeographicResourceLocation.cs | 28 + .../Models/GetCopyrightCaptionResult.cs | 59 + .../Models/GetCopyrightForTileResult.cs | 69 + .../Models/GetCopyrightForWorldResult.cs | 69 + .../GetCopyrightFromBoundingBoxResult.cs | 72 + .../src/Generated/Models/IncludeText.cs | 29 + .../src/Generated/Models/MapImageStyle.cs | 28 + .../src/Generated/Models/MapTileLayer.cs | 41 + .../src/Generated/Models/MapTileSize.cs | 28 + .../src/Generated/Models/MapTileStyle.cs | 34 + .../src/Generated/Models/RegionCopyrights.cs | 58 + .../Models/RegionCopyrightsCountry.cs | 59 + .../Models/RenderGetMapImageryTileHeaders.cs | 54 + .../RenderGetMapStateTilePreviewHeaders.cs | 54 + .../Models/RenderGetMapStaticImageHeaders.cs | 54 + .../Models/RenderGetMapTileHeaders.cs | 52 + .../RenderV2GetMapTilePreviewHeaders.cs | 54 + .../src/Generated/Models/StaticMapLayer.cs | 35 + .../src/Generated/Models/TextFormat.cs | 29 + .../src/Generated/Models/TileFormat.cs | 29 + .../src/Generated/Models/TileSize.cs | 36 + .../src/Generated/Models/TilesetID.cs | 125 + .../src/Generated/RenderClient.cs | 231 ++ .../src/Generated/RenderOperations.cs | 2269 +++++++++++++++++ .../Generated/RenderOperationsExtensions.cs | 829 ++++++ .../src/Generated/RenderV2.cs | 344 +++ .../src/Generated/RenderV2Extensions.cs | 132 + .../src/Generated/SdkInfo_RenderClient.cs | 28 + 35 files changed, 6287 insertions(+) create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/IRenderClient.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/IRenderOperations.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/IRenderV2.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorAdditionalInfo.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorDetail.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorResponse.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorResponseException.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/GeographicResourceLocation.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightCaptionResult.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightForTileResult.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightForWorldResult.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightFromBoundingBoxResult.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/IncludeText.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/MapImageStyle.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/MapTileLayer.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/MapTileSize.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/MapTileStyle.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/RegionCopyrights.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/RegionCopyrightsCountry.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapImageryTileHeaders.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapStateTilePreviewHeaders.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapStaticImageHeaders.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapTileHeaders.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderV2GetMapTilePreviewHeaders.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/StaticMapLayer.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/TextFormat.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/TileFormat.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/TileSize.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/Models/TilesetID.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/RenderClient.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/RenderOperations.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/RenderOperationsExtensions.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/RenderV2.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/RenderV2Extensions.cs create mode 100644 sdk/maps/Azure.Maps.Render/src/Generated/SdkInfo_RenderClient.cs diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/IRenderClient.cs b/sdk/maps/Azure.Maps.Render/src/Generated/IRenderClient.cs new file mode 100644 index 000000000000..ae7c87cd1882 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/IRenderClient.cs @@ -0,0 +1,71 @@ +// +// 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. +// + +namespace Azure.Maps.Render +{ + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + + /// + /// Azure Maps Render REST APIs + /// + public partial interface IRenderClient : System.IDisposable + { + /// + /// The base URI of the service. + /// + + /// + /// Gets or sets json serialization settings. + /// + JsonSerializerSettings SerializationSettings { get; } + + /// + /// Gets or sets json deserialization settings. + /// + JsonSerializerSettings DeserializationSettings { get; } + + /// + /// 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. + /// + string XMsClientId { get; set; } + + /// + /// This parameter specifies where the Azure Maps Creator resource is + /// located. Valid values are us and eu. Possible values include: + /// 'us', 'eu' + /// + string Geography { get; set; } + + /// + /// Subscription credentials which uniquely identify client + /// subscription. + /// + ServiceClientCredentials Credentials { get; } + + + /// + /// Gets the IRenderOperations. + /// + IRenderOperations Render { get; } + + /// + /// Gets the IRenderV2. + /// + IRenderV2 RenderV2 { get; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/IRenderOperations.cs b/sdk/maps/Azure.Maps.Render/src/Generated/IRenderOperations.cs new file mode 100644 index 000000000000..eb849defc6ea --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/IRenderOperations.cs @@ -0,0 +1,878 @@ +// +// 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. +// + +namespace Azure.Maps.Render +{ + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Threading; + using System.Threading.Tasks; + + /// + /// RenderOperations operations. + /// + public partial interface IRenderOperations + { + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// The static image service renders a user-defined, rectangular image + /// containing a map section using a zoom level from 0 to 20. The + /// static image service renders a user-defined, rectangular image + /// containing a map section using a zoom level from 0 to 20. The + /// supported resolution range for the map image is from 1x1 to + /// 8192x8192. If you are deciding when to use the static image service + /// over the map tile service, you may want to consider how you would + /// like to interact with the rendered map. If the map contents will be + /// relatively unchanging, a static map is a good choice. If you want + /// to support a lot of zooming, panning and changing of the map + /// content, the map tile service would be a better choice. + /// + /// Service also provides Image Composition functionality to get a + /// static image back with additional data like; pushpins and geometry + /// overlays with following S0 and S1 capabilities. + /// + /// In S0 you can: + /// - Render up to 5 pushpins specified in the request + /// - Provide one custom image for the pins referenced in the request + /// - Add labels to the pushpins + /// + /// In S1 you can: + /// - Render pushpins through [Azure Maps Data + /// Service](https://aka.ms/AzureMapsMapDataService) + /// - Specify multiple pushpin styles + /// - Provide custom pushpin images stored in [Azure Maps Data + /// Service](https://aka.ms/AzureMapsMapDataService) + /// - Render circle, polyline and polygon geometry types. + /// - Render of supported GeoJSON geometry types uploaded through + /// [Azure Maps Data Service](https://aka.ms/AzureMapsMapDataService) + /// + /// Please see + /// [How-to-Guide](https://aka.ms/AzureMapsHowToGuideImageCompositor) + /// for detailed examples. + /// + /// _Note_ : Either **center** or **bbox** parameter must be supplied + /// to the + /// API. + /// <br><br> + /// The supported Lat and Lon ranges when using the **bbox** parameter, + /// are as follows: + /// <br><br> + /// + /// |Zoom Level | Max Lon Range | Max Lat Range| + /// |:----------|:----------------|:-------------| + /// |0 | 360.0 | 170.0 | + /// |1 | 360.0 | 170.0 | + /// |2 | 360.0 | 170.0 | + /// |3 | 360.0 | 170.0 | + /// |4 | 360.0 | 170.0 | + /// |5 | 180.0 | 85.0 | + /// |6 | 90.0 | 42.5 | + /// |7 | 45.0 | 21.25 | + /// |8 | 22.5 | 10.625 | + /// |9 | 11.25 | 5.3125 | + /// |10 | 5.625 | 2.62625 | + /// |11 | 2.8125 | 1.328125 | + /// |12 | 1.40625 | 0.6640625 | + /// |13 | 0.703125 | 0.33203125 | + /// |14 | 0.3515625 | 0.166015625 | + /// |15 | 0.17578125 | 0.0830078125 | + /// |16 | 0.087890625 | 0.0415039063 | + /// |17 | 0.0439453125 | 0.0207519531 | + /// |18 | 0.0219726563 | 0.0103759766 | + /// |19 | 0.0109863281 | 0.0051879883 | + /// |20 | 0.0054931641 | 0.0025939941 | + /// + /// + /// Map layer requested. If layer is set to labels or hybrid, the + /// format should be png. Possible values include: 'basic', 'hybrid', + /// 'labels' + /// + /// + /// Map style to be returned. Possible values are main and dark. + /// Possible values include: 'main', 'dark' + /// + /// + /// Desired zoom level of the map. Zoom value must be in the range: + /// 0-20 (inclusive). Default value is 12.<br><br>Please + /// see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Coordinates of the center point. Format: 'lon,lat'. Projection used + /// - EPSG:3857. Longitude range: -180 to 180. Latitude range: -85 to + /// 85. + /// + /// Note: Either center or bbox are required parameters. They are + /// mutually exclusive. + /// + /// + /// Bounding box. Projection used - EPSG:3857. Format : 'minLon, + /// minLat, + /// maxLon, maxLat'. + /// + /// Note: Either bbox or center are required + /// parameters. They are mutually exclusive. It shouldn’t be used with + /// height or width. + /// + /// The maximum allowed ranges for Lat and Lon are defined for each + /// zoom level + /// in the table at the top of this page. + /// + /// + /// Height of the resulting image in pixels. Range is 1 to 8192. + /// Default + /// is 512. It shouldn’t be used with bbox. + /// + /// + /// Width of the resulting image in pixels. Range is 1 to 8192. Default + /// is 512. It shouldn’t be used with bbox. + /// + /// + /// Language in which search results should be returned. Should be one + /// of supported IETF language tags, case insensitive. When data in + /// specified language is not available for a specific field, default + /// language is used. + /// + /// Please refer to [Supported + /// Languages](https://docs.microsoft.com/en-us/azure/azure-maps/supported-languages) + /// for details. + /// + /// + /// The View parameter specifies which set of geopolitically disputed + /// content is returned via Azure Maps services, including borders and + /// labels displayed on the map. The View parameter (also referred to + /// as “user region parameter”) will show the correct maps for that + /// country/region. By default, the View parameter is set to “Unified” + /// even if you haven’t defined it in the request. It is your + /// responsibility to determine the location of your users, and then + /// set the View parameter correctly for that location. Alternatively, + /// you have the option to set ‘View=Auto’, which will return the map + /// data based on the IP address of the request. The View parameter in + /// Azure Maps must be used in compliance with applicable laws, + /// including those regarding mapping, of the country where maps, + /// images and other data and third party content that you are + /// authorized to access via Azure Maps is made available. Example: + /// view=IN. + /// + /// Please refer to [Supported + /// Views](https://aka.ms/AzureMapsLocalizationViews) for details and + /// to see the available Views. + /// + /// + /// Pushpin style and instances. Use this parameter to optionally add + /// pushpins to the image. + /// The pushpin style describes the appearance of the pushpins, and the + /// instances specify + /// the coordinates of the pushpins and optional labels for each pin. + /// (Be sure to properly URL-encode values of this + /// parameter since it will contain reserved characters such as pipes + /// and punctuation.) + /// + /// The Azure Maps account S0 SKU only supports a single instance of + /// the pins parameter. Other SKUs + /// allow multiple instances of the pins parameter to specify multiple + /// pin styles. + /// + /// To render a pushpin at latitude 45°N and longitude 122°W using the + /// default built-in pushpin style, add the + /// querystring parameter + /// + /// `pins=default||-122 45` + /// + /// Note that the longitude comes before the latitude. + /// After URL encoding this will look like + /// + /// `pins=default%7C%7C-122+45` + /// + /// All of the examples here show the pins + /// parameter without URL encoding, for clarity. + /// + /// To render a pin at multiple locations, separate each location with + /// a pipe character. For example, use + /// + /// `pins=default||-122 45|-119.5 43.2|-121.67 47.12` + /// + /// The S0 Azure Maps account SKU only allows five pushpins. Other + /// account SKUs do not have this limitation. + /// + /// ### Style Modifiers + /// + /// You can modify the appearance of the pins by adding style + /// modifiers. These are added after the style but before + /// the locations and labels. Style modifiers each have a two-letter + /// name. These abbreviated names are used to help + /// reduce the length of the URL. + /// + /// To change the color of the pushpin, use the 'co' style modifier and + /// specify the color using the HTML/CSS RGB color + /// format which is a six-digit hexadecimal number (the three-digit + /// form is not supported). For example, to use + /// a deep pink color which you would specify as #FF1493 in CSS, use + /// + /// `pins=default|coFF1493||-122 45` + /// + /// ### Pushpin Labels + /// + /// To add a label to the pins, put the label in single quotes just + /// before the coordinates. For example, to label + /// three pins with the values '1', '2', and '3', use + /// + /// `pins=default||'1'-122 45|'2'-119.5 43.2|'3'-121.67 47.12` + /// + /// There is a built in pushpin style called 'none' that does not + /// display a pushpin image. You can use this if + /// you want to display labels without any pin image. For example, + /// + /// `pins=none||'A'-122 45|'B'-119.5 43.2` + /// + /// To change the color of the pushpin labels, use the 'lc' label color + /// style modifier. For example, to use pink + /// pushpins with black labels, use + /// + /// `pins=default|coFF1493|lc000000||-122 45` + /// + /// To change the size of the labels, use the 'ls' label size style + /// modifier. The label size represents the approximate + /// height of the label text in pixels. For example, to increase the + /// label size to 12, use + /// + /// `pins=default|ls12||'A'-122 45|'B'-119 43` + /// + /// The labels are centered at the pushpin 'label anchor.' The anchor + /// location is predefined for built-in pushpins and + /// is at the top center of custom pushpins (see below). To override + /// the label anchor, using the 'la' style modifier + /// and provide X and Y pixel coordinates for the anchor. These + /// coordinates are relative to the top left corner of the + /// pushpin image. Positive X values move the anchor to the right, and + /// positive Y values move the anchor down. For example, + /// to position the label anchor 10 pixels right and 4 pixels above the + /// top left corner of the pushpin image, + /// use + /// + /// `pins=default|la10 -4||'A'-122 45|'B'-119 43` + /// + /// ### Custom Pushpins + /// + /// To use a custom pushpin image, use the word 'custom' as the pin + /// style name, and then specify a URL after the + /// location and label information. Use two pipe characters to indicate + /// that you're done specifying locations and are + /// starting the URL. For example, + /// + /// `pins=custom||-122 45||http://contoso.com/pushpins/red.png` + /// + /// After URL encoding, this would look like + /// + /// `pins=custom%7C%7C-122+45%7C%7Chttp%3A%2F%2Fcontoso.com%2Fpushpins%2Fred.png` + /// + /// By default, custom pushpin images are drawn centered at the pin + /// coordinates. This usually isn't ideal as it obscures + /// the location that you're trying to highlight. To override the + /// anchor location of the pin image, use the 'an' + /// style modifier. This uses the same format as the 'la' label anchor + /// style modifier. For example, if your custom + /// pin image has the tip of the pin at the top left corner of the + /// image, you can set the anchor to that spot by + /// using + /// + /// `pins=custom|an0 0||-122 45||http://contoso.com/pushpins/red.png` + /// + /// Note: If you use the 'co' color modifier with a custom pushpin + /// image, the specified color will replace the RGB + /// channels of the pixels in the image but will leave the alpha + /// (opacity) channel unchanged. This would usually + /// only be done with a solid-color custom image. + /// + /// ### Getting Pushpins from Azure Maps Data Storage + /// + /// For all Azure Maps account SKUs other than S0, + /// the pushpin image and location information can be obtained from + /// Azure Maps Data Storage. After uploading a pushpin image + /// or a GeoJSON document containing pin locations, the Data Storage + /// service returns a Unique Data ID (UDID) that you can use + /// to reference the data in the pins parameter. + /// + /// To use a custom pushpin image from Azure Maps Data Storage, specify + /// the UDID prefixed by 'udid-' as the name of the + /// pushpin style. For example, + /// + /// `pins=udid-fe22c504-3a81-4fcd-adc6-a3507ce866c1||-122 45` + /// + /// To use the point geometry from an uploaded GeoJSON document as the + /// pin locations, specify the UDID in the locations + /// section of the pins parameter. For example, + /// + /// `pins=default||udid-29dc105a-dee7-409f-a3f9-22b066ae4713` + /// + /// Note that + /// only point and multipoint geometry, points and multipoints from + /// geometry collections, and point geometry from features + /// will be used. Linestring and polygon geometry will be ignored. If + /// the point comes from a feature and the feature + /// has a string property called "label", the value of that property + /// will be used as the label for the pin. + /// + /// You can mix pin locations from Data Storage and pin locations + /// specified in the pins parameter. Any of the pipe-delimited + /// pin locations can be a longitude and latitude or a UDID. For + /// example, + /// + /// `pins=default||-122 + /// 45|udid-29dc105a-dee7-409f-a3f9-22b066ae4713|-119 43` + /// + /// ### Scale, Rotation, and Opacity + /// + /// You can make pushpins and their labels larger or smaller by using + /// the 'sc' scale style modifier. This is a + /// value greater than zero. A value of 1 is the standard scale. Values + /// larger than 1 will make the pins larger, and + /// values smaller than 1 will make them smaller. For example, to draw + /// the pushpins 50% larger than normal, use + /// + /// `pins=default|sc1.5||-122 45` + /// + /// You can rotate pushpins and their labels by using the 'ro' rotation + /// style modifier. This is a number of degrees + /// of clockwise rotation. Use a negative number to rotate + /// counter-clockwise. For example, to rotate the pushpins + /// 90 degrees clockwise and double their size, use + /// + /// `pins=default|ro90|sc2||-122 45` + /// + /// You can make pushpins and their labels partially transparent by + /// specifying the 'al' alpha style modifier. + /// This is a number between 0 and 1 indicating the opacity of the + /// pushpins. Zero makes them completely transparent + /// (and not visible) and 1 makes them completely opaque (which is the + /// default). For example, to make pushpins + /// and their labels only 67% opaque, use + /// + /// `pins=default|al.67||-122 45` + /// + /// ### Style Modifier Summary + /// + /// Modifier | Description | Range + /// :--------:|-----------------|------------------ + /// al | Alpha (opacity) | 0 to 1 + /// an | Pin anchor | * + /// co | Pin color | 000000 to FFFFFF + /// la | Label anchor | * + /// lc | Label color | 000000 to FFFFFF + /// ls | Label size | Greater than 0 + /// ro | Rotation | -360 to 360 + /// sc | Scale | Greater than 0 + /// + /// * X and Y coordinates can be anywhere within pin image or a margin + /// around it. + /// The margin size is the minimum of the pin width and height. + /// + /// + /// Path style and locations. Use this parameter to optionally add + /// lines, polygons or circles to the image. + /// The path style describes the appearance of the line and fill. (Be + /// sure to properly URL-encode values of this + /// parameter since it will contain reserved characters such as pipes + /// and punctuation.) + /// + /// Path parameter is supported in Azure Maps account SKU starting with + /// S1. Multiple instances of the path parameter + /// allow to specify multiple geometries with their styles. Number of + /// parameters per request is limited to 10 and + /// number of locations is limited to 100 per path. + /// + /// To render a circle with radius 100 meters and center point at + /// latitude 45°N and longitude 122°W using the default style, add the + /// querystring parameter + /// + /// `path=ra100||-122 45` + /// + /// Note that the longitude comes before the latitude. + /// After URL encoding this will look like + /// + /// `path=ra100%7C%7C-122+45` + /// + /// All of the examples here show the path parameter without URL + /// encoding, for clarity. + /// + /// To render a line, separate each location with a pipe character. For + /// example, use + /// + /// `path=||-122 45|-119.5 43.2|-121.67 47.12` + /// + /// To render a polygon, last location must be equal to the start + /// location. For example, use + /// + /// `path=||-122 45|-119.5 43.2|-121.67 47.12|-122 45` + /// + /// Longitude and latitude values for locations of lines and polygons + /// can be in the range from -360 to 360 to allow for rendering of + /// geometries crossing the anti-meridian. + /// + /// ### Style Modifiers + /// + /// You can modify the appearance of the path by adding style + /// modifiers. These are added before the locations. + /// Style modifiers each have a two-letter name. These abbreviated + /// names are used to help reduce the length + /// of the URL. + /// + /// To change the color of the outline, use the 'lc' style modifier and + /// specify the color using the HTML/CSS RGB color + /// format which is a six-digit hexadecimal number (the three-digit + /// form is not supported). For example, to use + /// a deep pink color which you would specify as #FF1493 in CSS, use + /// + /// `path=lcFF1493||-122 45|-119.5 43.2` + /// + /// Multiple style modifiers may be combined together to create a more + /// complex visual style. + /// + /// `lc0000FF|lw3|la0.60|fa0.50||-122.2 47.6|-122.2 47.7|-122.3 + /// 47.7|-122.3 47.6|-122.2 47.6` + /// + /// ### Getting Path locations from Azure Maps Data Storage + /// + /// For all Azure Maps account SKUs other than S0, the path location + /// information can be obtained from Azure Maps Data Storage. + /// After uploading a GeoJSON document containing path locations, the + /// Data Storage service returns a Unique Data ID (UDID) that you can + /// use + /// to reference the data in the path parameter. + /// + /// To use the point geometry from an uploaded GeoJSON document as the + /// path locations, specify the UDID in the locations + /// section of the path parameter. For example, + /// + /// `path=||udid-29dc105a-dee7-409f-a3f9-22b066ae4713` + /// + /// Note the it is not allowed to mix path locations from Data Storage + /// with locations specified in the path parameter. + /// + /// ### Style Modifier Summary + /// + /// Modifier | Description | Range + /// :--------:|------------------------|------------------ + /// lc | Line color | 000000 to FFFFFF + /// fc | Fill color | 000000 to FFFFFF + /// la | Line alpha (opacity) | 0 to 1 + /// fa | Fill alpha (opacity) | 0 to 1 + /// lw | Line width | Greater than 0 + /// ra | Circle radius (meters) | Greater than 0 + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetMapStaticImageWithHttpMessagesAsync(string layer = default(string), string style = default(string), int? zoom = default(int?), string center = default(string), string bbox = default(string), int? height = default(int?), int? width = default(int?), string language = default(string), string view = default(string), IList pins = default(IList), IList path = default(IList), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// Fetches map tiles in vector or raster format typically to be + /// integrated into a new map control or SDK. By default, Azure uses + /// vector map tiles for its web map control (see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid)) + /// + /// **Note**: Weather tiles are only available via [Get Map Tile V2 + /// API](https://aka.ms/AzureMapsWeatherTiles). We recommend to start + /// to use the new [Get Map Tile V2 API](https://aka.ms/GetMapTileV2). + /// + /// + /// Desired format of the response. Possible values are png & pbf. + /// Possible values include: 'png', 'pbf' + /// + /// + /// Map layer requested. Possible values are basic, hybrid, labels and + /// terra. Possible values include: 'basic', 'hybrid', 'labels', + /// 'terra' + /// + /// + /// Map style to be returned. Possible values are main, dark, and + /// shaded_relief. Possible values include: 'main', 'dark', + /// 'shaded_relief' + /// + /// + /// Zoom level for the desired tile. For _raster_ tiles, value must be + /// in the range: 0-18 (inclusive). Terra raster tiles, values must be + /// in the range 0-6 (inclusive). For _vector_ tiles, value must be in + /// the range: 0-22 (inclusive). + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range + /// [0, 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range + /// [0, 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// The size of the returned map tile in pixels. Possible values + /// include: '256', '512' + /// + /// + /// Language in which search results should be returned. Should be one + /// of supported IETF language tags, case insensitive. When data in + /// specified language is not available for a specific field, default + /// language is used. + /// + /// Please refer to [Supported + /// Languages](https://docs.microsoft.com/en-us/azure/azure-maps/supported-languages) + /// for details. + /// + /// + /// The View parameter specifies which set of geopolitically disputed + /// content is returned via Azure Maps services, including borders and + /// labels displayed on the map. The View parameter (also referred to + /// as “user region parameter”) will show the correct maps for that + /// country/region. By default, the View parameter is set to “Unified” + /// even if you haven’t defined it in the request. It is your + /// responsibility to determine the location of your users, and then + /// set the View parameter correctly for that location. Alternatively, + /// you have the option to set ‘View=Auto’, which will return the map + /// data based on the IP address of the request. The View parameter in + /// Azure Maps must be used in compliance with applicable laws, + /// including those regarding mapping, of the country where maps, + /// images and other data and third party content that you are + /// authorized to access via Azure Maps is made available. Example: + /// view=IN. + /// + /// Please refer to [Supported + /// Views](https://aka.ms/AzureMapsLocalizationViews) for details and + /// to see the available Views. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetMapTileWithHttpMessagesAsync(string format, string layer, string style, int zoom, int xTileIndex, int yTileIndex, string tileSize = default(string), string language = default(string), string view = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// Fetches state tiles in vector format typically to be integrated + /// into indoor maps module of map control or SDK. The map control will + /// call this API after user turns on dynamic styling (see [Zoom Levels + /// and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid)) + /// + /// + /// Zoom level for the desired tile. Zoom value must be in the range: + /// 0-20 (inclusive). + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range + /// [0, 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range + /// [0, 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// The stateset id. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetMapStateTilePreviewWithHttpMessagesAsync(int zoom, int xTileIndex, int yTileIndex, string statesetId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// + /// Copyrights API is designed to serve copyright information for + /// Render Tile + /// service. In addition to basic copyright for the whole map, API is + /// serving + /// specific groups of copyrights for some countries. + /// + /// As an alternative to copyrights for map request, one can receive + /// captions + /// for displaying the map provider information on the map. + /// + /// + /// Desired format of the response. Value can be either _json_ or + /// _xml_. Possible values include: 'json', 'xml' + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetCopyrightCaptionWithHttpMessagesAsync(string format, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// **Applies to:** S1 pricing tier. + /// + /// + /// This service returns a map image tile with size 256x256, given the + /// x and y coordinates and zoom + /// level. Zoom level ranges from 1 to 19. The current available style + /// value is 'satellite' which provides satellite + /// imagery alone. + /// + /// + /// **Note**: We recommend to start to use the new [Get Map Tile V2 + /// API](https://aka.ms/GetMapTileV2). + /// + /// + /// Zoom level for the desired tile. Zoom value must be in the range: + /// 1-19 (inclusive). + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range + /// [0, 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range + /// [0, 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetMapImageryTileWithHttpMessagesAsync(int zoom, int xTileIndex, int yTileIndex, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// Returns copyright information for a given bounding box. + /// Bounding-box requests should specify the minimum and maximum + /// longitude and latitude (EPSG-3857) coordinates + /// + /// + /// Desired format of the response. Value can be either _json_ or + /// _xml_. Possible values include: 'json', 'xml' + /// + /// + /// Minimum coordinates of bounding box in latitude longitude + /// coordinate system. E.g. 52.41064,4.84228 + /// + /// + /// Maximum coordinates of bounding box in latitude longitude + /// coordinate system. E.g. 52.41064,4.84228 + /// + /// + /// Yes/no value to exclude textual data from response. Only images and + /// country names will be in response. Possible values include: 'yes', + /// 'no' + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetCopyrightFromBoundingBoxWithHttpMessagesAsync(string format, string mincoordinates, string maxcoordinates, string text = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// + /// Copyrights API is designed to serve copyright information for + /// Render Tile service. In addition to basic copyright for the whole + /// map, API is serving specific groups of copyrights for some + /// countries. + /// Returns the copyright information for a given tile. To obtain the + /// copyright information for a particular tile, the request should + /// specify the tile's zoom level and x and y coordinates (see: Zoom + /// Levels and Tile Grid). + /// + /// + /// Desired format of the response. Value can be either _json_ or + /// _xml_. Possible values include: 'json', 'xml' + /// + /// + /// Zoom level for the desired tile. Zoom value must be in the range: + /// 0-18 (inclusive). + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range + /// [0, 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range + /// [0, 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Yes/no value to exclude textual data from response. Only images and + /// country names will be in response. Possible values include: 'yes', + /// 'no' + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetCopyrightForTileWithHttpMessagesAsync(string format, int zoom, int xTileIndex, int yTileIndex, string text = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// Copyrights API is designed to serve copyright information for + /// Render Tile service. In addition to basic copyright for the whole + /// map, API is serving specific groups of copyrights for some + /// countries. + /// Returns the copyright information for the world. To obtain the + /// default copyright information for the whole world, do not specify a + /// tile or bounding box. + /// + /// + /// Desired format of the response. Value can be either _json_ or + /// _xml_. Possible values include: 'json', 'xml' + /// + /// + /// Yes/no value to exclude textual data from response. Only images and + /// country names will be in response. Possible values include: 'yes', + /// 'no' + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetCopyrightForWorldWithHttpMessagesAsync(string format, string text = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/IRenderV2.cs b/sdk/maps/Azure.Maps.Render/src/Generated/IRenderV2.cs new file mode 100644 index 000000000000..e4016f290645 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/IRenderV2.cs @@ -0,0 +1,147 @@ +// +// 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. +// + +namespace Azure.Maps.Render +{ + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Threading; + using System.Threading.Tasks; + + /// + /// RenderV2 operations. + /// + public partial interface IRenderV2 + { + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// The Get Map Tiles API allows users to request map tiles in vector + /// or raster formats typically to be integrated into a map control or + /// SDK. Some example tiles that can be requested are Azure Maps road + /// tiles, real-time Weather Radar tiles or the map tiles created + /// using [Azure Maps Creator](https://aka.ms/amcreator). By default, + /// Azure Maps uses vector tiles for its web map control (Web SDK) and + /// Android SDK. + /// + /// + /// A tileset is a collection of raster or vector data broken up into a + /// uniform grid of square tiles at preset zoom levels. Every tileset + /// has a **tilesetId** to use when making requests. The **tilesetId** + /// for tilesets created using [Azure Maps + /// Creator](https://aka.ms/amcreator) are generated through the + /// [Tileset Create + /// API](https://docs.microsoft.com/en-us/rest/api/maps/tileset). The + /// ready-to-use tilesets supplied by Azure Maps are listed below. For + /// example, microsoft.base. Possible values include: 'microsoft.base', + /// 'microsoft.base.labels', 'microsoft.base.hybrid', + /// 'microsoft.terra.main', 'microsoft.base.road', + /// 'microsoft.base.darkgrey', 'microsoft.base.labels.road', + /// 'microsoft.base.hybrid.road', 'microsoft.imagery', + /// 'microsoft.weather.radar.main', 'microsoft.weather.infrared.main', + /// 'microsoft.dem' + /// + /// + /// Zoom level for the desired tile. Please find TilesetID list below + /// for more details on supported zoom level for each + /// tilesetId.<br> + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range + /// [0, 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range + /// [0, 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// The desired date and time of the requested tile. This parameter + /// must be specified in the standard date-time format (e.g. + /// 2019-11-14T16:03:00-08:00), as defined by [ISO + /// 8601](https://en.wikipedia.org/wiki/ISO_8601). This parameter is + /// only supported when tilesetId parameter is set to one of the values + /// below. + /// + /// * microsoft.weather.infrared.main: We provide tiles up to 3 hours + /// in the past. Tiles are available in 10-minute intervals. We round + /// the timeStamp value to the nearest 10-minute time frame. + /// * microsoft.weather.radar.main: We provide tiles up to 1.5 hours in + /// the past and up to 2 hours in the future. Tiles are available in + /// 5-minute intervals. We round the timeStamp value to the nearest + /// 5-minute time frame. + /// + /// + /// The size of the returned map tile in pixels. Possible values + /// include: '256', '512' + /// + /// + /// Language in which search results should be returned. Should be one + /// of supported IETF language tags, case insensitive. When data in + /// specified language is not available for a specific field, default + /// language is used. + /// + /// Please refer to [Supported + /// Languages](https://docs.microsoft.com/en-us/azure/azure-maps/supported-languages) + /// for details. + /// + /// + /// The View parameter specifies which set of geopolitically disputed + /// content is returned via Azure Maps services, including borders and + /// labels displayed on the map. The View parameter (also referred to + /// as “user region parameter”) will show the correct maps for that + /// country/region. By default, the View parameter is set to “Unified” + /// even if you haven’t defined it in the request. It is your + /// responsibility to determine the location of your users, and then + /// set the View parameter correctly for that location. Alternatively, + /// you have the option to set ‘View=Auto’, which will return the map + /// data based on the IP address of the request. The View parameter in + /// Azure Maps must be used in compliance with applicable laws, + /// including those regarding mapping, of the country where maps, + /// images and other data and third party content that you are + /// authorized to access via Azure Maps is made available. Example: + /// view=IN. + /// + /// Please refer to [Supported + /// Views](https://aka.ms/AzureMapsLocalizationViews) for details and + /// to see the available Views. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetMapTilePreviewWithHttpMessagesAsync(string tilesetId, int zoom, int xTileIndex, int yTileIndex, string timeStamp = default(string), string tileSize = default(string), string language = default(string), string view = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorAdditionalInfo.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorAdditionalInfo.cs new file mode 100644 index 000000000000..37aabe98bcc3 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorAdditionalInfo.cs @@ -0,0 +1,59 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// The resource management error additional info. + /// + public partial class ErrorAdditionalInfo + { + /// + /// Initializes a new instance of the ErrorAdditionalInfo class. + /// + public ErrorAdditionalInfo() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ErrorAdditionalInfo class. + /// + /// The additional info type. + /// The additional info. + public ErrorAdditionalInfo(string type = default(string), object info = default(object)) + { + Type = type; + Info = info; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets the additional info type. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; private set; } + + /// + /// Gets the additional info. + /// + [JsonProperty(PropertyName = "info")] + public object Info { get; private set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorDetail.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorDetail.cs new file mode 100644 index 000000000000..ff8f3bb3afd7 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorDetail.cs @@ -0,0 +1,85 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// The error detail. + /// + public partial class ErrorDetail + { + /// + /// Initializes a new instance of the ErrorDetail class. + /// + public ErrorDetail() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ErrorDetail class. + /// + /// The error code. + /// The error message. + /// The error target. + /// The error details. + /// The error additional info. + public ErrorDetail(string code = default(string), string message = default(string), string target = default(string), IList details = default(IList), IList additionalInfo = default(IList)) + { + Code = code; + Message = message; + Target = target; + Details = details; + AdditionalInfo = additionalInfo; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets the error code. + /// + [JsonProperty(PropertyName = "code")] + public string Code { get; private set; } + + /// + /// Gets the error message. + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; private set; } + + /// + /// Gets the error target. + /// + [JsonProperty(PropertyName = "target")] + public string Target { get; private set; } + + /// + /// Gets the error details. + /// + [JsonProperty(PropertyName = "details")] + public IList Details { get; private set; } + + /// + /// Gets the error additional info. + /// + [JsonProperty(PropertyName = "additionalInfo")] + public IList AdditionalInfo { get; private set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorResponse.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorResponse.cs new file mode 100644 index 000000000000..f42cd8ab30a6 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorResponse.cs @@ -0,0 +1,56 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// Error response + /// + /// + /// Common error response for all Azure Resource Manager APIs to return + /// error details for failed operations. (This also follows the OData error + /// response format.). + /// + public partial class ErrorResponse + { + /// + /// Initializes a new instance of the ErrorResponse class. + /// + public ErrorResponse() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ErrorResponse class. + /// + /// The error object. + public ErrorResponse(ErrorDetail error = default(ErrorDetail)) + { + Error = error; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the error object. + /// + [JsonProperty(PropertyName = "error")] + public ErrorDetail Error { get; set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorResponseException.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorResponseException.cs new file mode 100644 index 000000000000..963ec946112a --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/ErrorResponseException.cs @@ -0,0 +1,62 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Microsoft.Rest; + + /// + /// Exception thrown for an invalid response with ErrorResponse + /// information. + /// + public partial class ErrorResponseException : RestException + { + /// + /// Gets information about the associated HTTP request. + /// + public HttpRequestMessageWrapper Request { get; set; } + + /// + /// Gets information about the associated HTTP response. + /// + public HttpResponseMessageWrapper Response { get; set; } + + /// + /// Gets or sets the body object. + /// + public ErrorResponse Body { get; set; } + + /// + /// Initializes a new instance of the ErrorResponseException class. + /// + public ErrorResponseException() + { + } + + /// + /// Initializes a new instance of the ErrorResponseException class. + /// + /// The exception message. + public ErrorResponseException(string message) + : this(message, null) + { + } + + /// + /// Initializes a new instance of the ErrorResponseException class. + /// + /// The exception message. + /// Inner exception. + public ErrorResponseException(string message, System.Exception innerException) + : base(message, innerException) + { + } + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/GeographicResourceLocation.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/GeographicResourceLocation.cs new file mode 100644 index 000000000000..231291864d95 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/GeographicResourceLocation.cs @@ -0,0 +1,28 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + + /// + /// Defines values for GeographicResourceLocation. + /// + public static class GeographicResourceLocation + { + /// + /// Used to access an Azure Maps Creator resource in the United States + /// + public const string Us = "us"; + /// + /// Used to access an Azure Maps Creator resource in Europe + /// + public const string Eu = "eu"; + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightCaptionResult.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightCaptionResult.cs new file mode 100644 index 000000000000..6fc4b37f9677 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightCaptionResult.cs @@ -0,0 +1,59 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// This object is returned from a successful Get Copyright Caption call + /// + public partial class GetCopyrightCaptionResult + { + /// + /// Initializes a new instance of the GetCopyrightCaptionResult class. + /// + public GetCopyrightCaptionResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the GetCopyrightCaptionResult class. + /// + /// Format Version property + /// Copyrights Caption property + public GetCopyrightCaptionResult(string formatVersion = default(string), string copyrightsCaption = default(string)) + { + FormatVersion = formatVersion; + CopyrightsCaption = copyrightsCaption; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets format Version property + /// + [JsonProperty(PropertyName = "formatVersion")] + public string FormatVersion { get; private set; } + + /// + /// Gets copyrights Caption property + /// + [JsonProperty(PropertyName = "copyrightsCaption")] + public string CopyrightsCaption { get; private set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightForTileResult.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightForTileResult.cs new file mode 100644 index 000000000000..b7205dee0f5d --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightForTileResult.cs @@ -0,0 +1,69 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// This object is returned from a successful Get Copyright For Tile call + /// + public partial class GetCopyrightForTileResult + { + /// + /// Initializes a new instance of the GetCopyrightForTileResult class. + /// + public GetCopyrightForTileResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the GetCopyrightForTileResult class. + /// + /// Format Version property + /// General Copyrights array + /// Regions array + public GetCopyrightForTileResult(string formatVersion = default(string), IList generalCopyrights = default(IList), IList regions = default(IList)) + { + FormatVersion = formatVersion; + GeneralCopyrights = generalCopyrights; + Regions = regions; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets format Version property + /// + [JsonProperty(PropertyName = "formatVersion")] + public string FormatVersion { get; private set; } + + /// + /// Gets general Copyrights array + /// + [JsonProperty(PropertyName = "generalCopyrights")] + public IList GeneralCopyrights { get; private set; } + + /// + /// Gets regions array + /// + [JsonProperty(PropertyName = "regions")] + public IList Regions { get; private set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightForWorldResult.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightForWorldResult.cs new file mode 100644 index 000000000000..be54cbbaf0ed --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightForWorldResult.cs @@ -0,0 +1,69 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// This object is returned from a successful Get Copyright For World call + /// + public partial class GetCopyrightForWorldResult + { + /// + /// Initializes a new instance of the GetCopyrightForWorldResult class. + /// + public GetCopyrightForWorldResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the GetCopyrightForWorldResult class. + /// + /// Format Version property + /// General Copyrights array + /// Regions array + public GetCopyrightForWorldResult(string formatVersion = default(string), IList generalCopyrights = default(IList), IList regions = default(IList)) + { + FormatVersion = formatVersion; + GeneralCopyrights = generalCopyrights; + Regions = regions; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets format Version property + /// + [JsonProperty(PropertyName = "formatVersion")] + public string FormatVersion { get; private set; } + + /// + /// Gets general Copyrights array + /// + [JsonProperty(PropertyName = "generalCopyrights")] + public IList GeneralCopyrights { get; private set; } + + /// + /// Gets regions array + /// + [JsonProperty(PropertyName = "regions")] + public IList Regions { get; private set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightFromBoundingBoxResult.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightFromBoundingBoxResult.cs new file mode 100644 index 000000000000..8f684f3eff14 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/GetCopyrightFromBoundingBoxResult.cs @@ -0,0 +1,72 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// This object is returned from a successful Get Copyright From Bounding + /// Box call + /// + public partial class GetCopyrightFromBoundingBoxResult + { + /// + /// Initializes a new instance of the GetCopyrightFromBoundingBoxResult + /// class. + /// + public GetCopyrightFromBoundingBoxResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the GetCopyrightFromBoundingBoxResult + /// class. + /// + /// Format Version property + /// General Copyrights array + /// Regions array + public GetCopyrightFromBoundingBoxResult(string formatVersion = default(string), IList generalCopyrights = default(IList), IList regions = default(IList)) + { + FormatVersion = formatVersion; + GeneralCopyrights = generalCopyrights; + Regions = regions; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets format Version property + /// + [JsonProperty(PropertyName = "formatVersion")] + public string FormatVersion { get; private set; } + + /// + /// Gets general Copyrights array + /// + [JsonProperty(PropertyName = "generalCopyrights")] + public IList GeneralCopyrights { get; private set; } + + /// + /// Gets regions array + /// + [JsonProperty(PropertyName = "regions")] + public IList Regions { get; private set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/IncludeText.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/IncludeText.cs new file mode 100644 index 000000000000..8069eda95a83 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/IncludeText.cs @@ -0,0 +1,29 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + + /// + /// Defines values for IncludeText. + /// + public static class IncludeText + { + /// + /// Include all textual data in response. + /// + public const string Yes = "yes"; + /// + /// Exclude textual data from response. Only images and country names + /// will be in response. + /// + public const string No = "no"; + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/MapImageStyle.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/MapImageStyle.cs new file mode 100644 index 000000000000..43f967dac343 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/MapImageStyle.cs @@ -0,0 +1,28 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + + /// + /// Defines values for MapImageStyle. + /// + public static class MapImageStyle + { + /// + /// Azure Maps main style + /// + public const string Main = "main"; + /// + /// Dark grey version of the Azure Maps main style + /// + public const string Dark = "dark"; + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/MapTileLayer.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/MapTileLayer.cs new file mode 100644 index 000000000000..7c048266a2b5 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/MapTileLayer.cs @@ -0,0 +1,41 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + + /// + /// Defines values for MapTileLayer. + /// + public static class MapTileLayer + { + /// + /// Returns a tile containing all map features including polygons, + /// borders, roads and labels. + /// + public const string Basic = "basic"; + /// + /// Returns a tile containing borders, roads, and labels, and can be + /// overlaid on other tiles (such as satellite imagery) to produce + /// hybrid tiles. + /// + public const string Hybrid = "hybrid"; + /// + /// Returns a tile of just the map's label information. + /// + public const string Labels = "labels"; + /// + /// Map canvas complete with shaded relief tiles. Zoom levels 0-6 + /// (inclusive) are supported. Png is the only supported TileFormat and + /// only available MapTileSize is 512. + /// + public const string Terra = "terra"; + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/MapTileSize.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/MapTileSize.cs new file mode 100644 index 000000000000..208ef32174f1 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/MapTileSize.cs @@ -0,0 +1,28 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + + /// + /// Defines values for MapTileSize. + /// + public static class MapTileSize + { + /// + /// Return a 256 by 256 pixel tile. + /// + public const string TwoFiveSix = "256"; + /// + /// Return a 512 by 512 pixel tile. + /// + public const string FiveOneTwo = "512"; + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/MapTileStyle.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/MapTileStyle.cs new file mode 100644 index 000000000000..b2d1a65cdc57 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/MapTileStyle.cs @@ -0,0 +1,34 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + + /// + /// Defines values for MapTileStyle. + /// + public static class MapTileStyle + { + /// + /// Azure Maps main style + /// + public const string Main = "main"; + /// + /// Dark grey version of the Azure Maps main style. PNG is the only + /// supported TileFormat. + /// + public const string Dark = "dark"; + /// + /// Azure Maps main style completed with shaded relief. Supported by + /// Layer terra. + /// + public const string ShadedRelief = "shaded_relief"; + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/RegionCopyrights.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RegionCopyrights.cs new file mode 100644 index 000000000000..5f1466791330 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RegionCopyrights.cs @@ -0,0 +1,58 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class RegionCopyrights + { + /// + /// Initializes a new instance of the RegionCopyrights class. + /// + public RegionCopyrights() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the RegionCopyrights class. + /// + /// Copyrights array + /// Country property + public RegionCopyrights(IList copyrights = default(IList), RegionCopyrightsCountry country = default(RegionCopyrightsCountry)) + { + Copyrights = copyrights; + Country = country; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets copyrights array + /// + [JsonProperty(PropertyName = "copyrights")] + public IList Copyrights { get; private set; } + + /// + /// Gets country property + /// + [JsonProperty(PropertyName = "country")] + public RegionCopyrightsCountry Country { get; private set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/RegionCopyrightsCountry.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RegionCopyrightsCountry.cs new file mode 100644 index 000000000000..3846254481f3 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RegionCopyrightsCountry.cs @@ -0,0 +1,59 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// Country property + /// + public partial class RegionCopyrightsCountry + { + /// + /// Initializes a new instance of the RegionCopyrightsCountry class. + /// + public RegionCopyrightsCountry() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the RegionCopyrightsCountry class. + /// + /// ISO3 property + /// Label property + public RegionCopyrightsCountry(string iSO3 = default(string), string label = default(string)) + { + ISO3 = iSO3; + Label = label; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets ISO3 property + /// + [JsonProperty(PropertyName = "ISO3")] + public string ISO3 { get; private set; } + + /// + /// Gets label property + /// + [JsonProperty(PropertyName = "label")] + public string Label { get; private set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapImageryTileHeaders.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapImageryTileHeaders.cs new file mode 100644 index 000000000000..b89aa1c06214 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapImageryTileHeaders.cs @@ -0,0 +1,54 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// Defines headers for GetMapImageryTile operation. + /// + public partial class RenderGetMapImageryTileHeaders + { + /// + /// Initializes a new instance of the RenderGetMapImageryTileHeaders + /// class. + /// + public RenderGetMapImageryTileHeaders() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the RenderGetMapImageryTileHeaders + /// class. + /// + /// The content-type for the + /// response. + public RenderGetMapImageryTileHeaders(string contentType = default(string)) + { + ContentType = contentType; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the content-type for the response. + /// + [JsonProperty(PropertyName = "Content-Type")] + public string ContentType { get; set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapStateTilePreviewHeaders.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapStateTilePreviewHeaders.cs new file mode 100644 index 000000000000..09e271d7c4db --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapStateTilePreviewHeaders.cs @@ -0,0 +1,54 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// Defines headers for GetMapStateTilePreview operation. + /// + public partial class RenderGetMapStateTilePreviewHeaders + { + /// + /// Initializes a new instance of the + /// RenderGetMapStateTilePreviewHeaders class. + /// + public RenderGetMapStateTilePreviewHeaders() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the + /// RenderGetMapStateTilePreviewHeaders class. + /// + /// The content-type for the + /// response. + public RenderGetMapStateTilePreviewHeaders(string contentType = default(string)) + { + ContentType = contentType; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the content-type for the response. + /// + [JsonProperty(PropertyName = "Content-Type")] + public string ContentType { get; set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapStaticImageHeaders.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapStaticImageHeaders.cs new file mode 100644 index 000000000000..91b5d00e8070 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapStaticImageHeaders.cs @@ -0,0 +1,54 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// Defines headers for GetMapStaticImage operation. + /// + public partial class RenderGetMapStaticImageHeaders + { + /// + /// Initializes a new instance of the RenderGetMapStaticImageHeaders + /// class. + /// + public RenderGetMapStaticImageHeaders() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the RenderGetMapStaticImageHeaders + /// class. + /// + /// The content-type for the + /// response. + public RenderGetMapStaticImageHeaders(string contentType = default(string)) + { + ContentType = contentType; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the content-type for the response. + /// + [JsonProperty(PropertyName = "Content-Type")] + public string ContentType { get; set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapTileHeaders.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapTileHeaders.cs new file mode 100644 index 000000000000..422d84fa1252 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderGetMapTileHeaders.cs @@ -0,0 +1,52 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// Defines headers for GetMapTile operation. + /// + public partial class RenderGetMapTileHeaders + { + /// + /// Initializes a new instance of the RenderGetMapTileHeaders class. + /// + public RenderGetMapTileHeaders() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the RenderGetMapTileHeaders class. + /// + /// The content-type for the + /// response. + public RenderGetMapTileHeaders(string contentType = default(string)) + { + ContentType = contentType; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the content-type for the response. + /// + [JsonProperty(PropertyName = "Content-Type")] + public string ContentType { get; set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderV2GetMapTilePreviewHeaders.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderV2GetMapTilePreviewHeaders.cs new file mode 100644 index 000000000000..1df1f7becbd9 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/RenderV2GetMapTilePreviewHeaders.cs @@ -0,0 +1,54 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// Defines headers for GetMapTilePreview operation. + /// + public partial class RenderV2GetMapTilePreviewHeaders + { + /// + /// Initializes a new instance of the RenderV2GetMapTilePreviewHeaders + /// class. + /// + public RenderV2GetMapTilePreviewHeaders() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the RenderV2GetMapTilePreviewHeaders + /// class. + /// + /// The content-type for the + /// response. + public RenderV2GetMapTilePreviewHeaders(string contentType = default(string)) + { + ContentType = contentType; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the content-type for the response. + /// + [JsonProperty(PropertyName = "Content-Type")] + public string ContentType { get; set; } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/StaticMapLayer.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/StaticMapLayer.cs new file mode 100644 index 000000000000..6387c70d157f --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/StaticMapLayer.cs @@ -0,0 +1,35 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + + /// + /// Defines values for StaticMapLayer. + /// + public static class StaticMapLayer + { + /// + /// Returns an image containing all map features including polygons, + /// borders, roads and labels. + /// + public const string Basic = "basic"; + /// + /// Returns an image containing borders, roads, and labels, and can be + /// overlaid on other tiles (such as satellite imagery) to produce + /// hybrid tiles. + /// + public const string Hybrid = "hybrid"; + /// + /// Returns an image of just the map's label information. + /// + public const string Labels = "labels"; + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/TextFormat.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/TextFormat.cs new file mode 100644 index 000000000000..0532c8d78a40 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/TextFormat.cs @@ -0,0 +1,29 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + + /// + /// Defines values for TextFormat. + /// + public static class TextFormat + { + /// + /// [The JavaScript Object Notation Data Interchange + /// Format](https://tools.ietf.org/html/rfc8259) + /// + public const string Json = "json"; + /// + /// [The Extensible Markup Language](https://www.w3.org/TR/xml/) + /// + public const string Xml = "xml"; + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/TileFormat.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/TileFormat.cs new file mode 100644 index 000000000000..100af4d9815a --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/TileFormat.cs @@ -0,0 +1,29 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + + /// + /// Defines values for TileFormat. + /// + public static class TileFormat + { + /// + /// An image in the png format. Supports zoom levels 0 through 18. + /// + public const string Png = "png"; + /// + /// Vector graphic in the pbf format. Supports zoom levels 0 through + /// 22. + /// + public const string Pbf = "pbf"; + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/TileSize.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/TileSize.cs new file mode 100644 index 000000000000..e096398f92ed --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/TileSize.cs @@ -0,0 +1,36 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + + /// + /// Defines values for TileSize. + /// + public static class TileSize + { + /// + /// Return a 256 by 256 pixel tile. Available for all tilesetIds except + /// for + /// * microsoft.terra.main + /// + public const string TwoFiveSix = "256"; + /// + /// Return a 512 by 512 pixel tile. Available for all tilesetIds + /// except for + /// * microsoft.weather.radar.main + /// * microsoft.weather.infrared.main + /// * microsoft.base.hybrid + /// * microsoft.dem + /// * microsoft.imagery + /// + public const string FiveOneTwo = "512"; + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/Models/TilesetID.cs b/sdk/maps/Azure.Maps.Render/src/Generated/Models/TilesetID.cs new file mode 100644 index 000000000000..0f65704f8384 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/Models/TilesetID.cs @@ -0,0 +1,125 @@ +// +// 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. +// + +namespace Azure.Maps.Render.Models +{ + + /// + /// Defines values for TilesetID. + /// + public static class TilesetID + { + /// + /// A base map is a standard map that displays roads, natural and + /// artificial features along with the labels for those features in a + /// vector tile.
+ /// + /// Supports zoom levels 0 through 22. Format: vector (pbf). + ///
+ public const string Microsoftbase = "microsoft.base"; + /// + /// Displays labels for roads, natural and artificial features in a + /// vector tile.
+ /// + /// Supports zoom levels 0 through 22. Format: vector (pbf). + ///
+ public const string Microsoftbaselabels = "microsoft.base.labels"; + /// + /// Displays road, boundary and label data in a vector tile.
+ /// + /// Supports zoom levels 0 through 22. Format: vector (pbf). + ///
+ public const string Microsoftbasehybrid = "microsoft.base.hybrid"; + /// + /// Shaded relief and terra layers.
+ /// + /// Supports zoom levels 0 through 6. Format: raster (png). + ///
+ public const string Microsoftterramain = "microsoft.terra.main"; + /// + /// All layers with our main style.
+ /// + /// Supports zoom levels 0 through 22. Format: raster (png). + ///
+ public const string Microsoftbaseroad = "microsoft.base.road"; + /// + /// All layers with our dark grey style.
+ /// + /// Supports zoom levels 0 through 22. Format: raster (png). + ///
+ public const string Microsoftbasedarkgrey = "microsoft.base.darkgrey"; + /// + /// Label data in our main style.
+ /// + /// Supports zoom levels 0 through 22. Format: raster (png). + ///
+ public const string Microsoftbaselabelsroad = "microsoft.base.labels.road"; + /// + /// Road, boundary and label data in our main style.
+ /// + /// Supports zoom levels 0 through 22. Format: raster (png). + ///
+ public const string Microsoftbasehybridroad = "microsoft.base.hybrid.road"; + /// + /// A combination of satellite and aerial imagery. Only available in S1 + /// pricing SKU.
+ /// + /// Supports zoom levels 1 through 19. Format: raster (jpeg). + ///
+ public const string Microsoftimagery = "microsoft.imagery"; + /// + /// Weather radar tiles. Latest weather radar images including areas of + /// rain, snow, ice and mixed conditions. Please see [coverage + /// information](https://aka.ms/AzureMapsWeatherCoverage) for Azure + /// Maps Weather service. To learn more about the Radar data, please + /// see [Weather + /// concepts](https://aka.ms/AzureMapsWeatherConcepts).
+ /// + /// Supports zoom levels 0 through 15. Format: raster (png). + ///
+ public const string Microsoftweatherradarmain = "microsoft.weather.radar.main"; + /// + /// Weather infrared tiles. Latest Infrared Satellite images shows + /// clouds by their temperature. Please see [coverage + /// information](https://aka.ms/AzureMapsWeatherCoverage) for Azure + /// Maps Weather service. To learn more about the returned Satellite + /// data, please see [Weather + /// concepts](https://aka.ms/AzureMapsWeatherConcepts).
+ /// + /// Supports zoom levels 0 through 15. Format: raster (png). + ///
+ public const string Microsoftweatherinfraredmain = "microsoft.weather.infrared.main"; + /// + /// Digital Elevation Model tiles. The tiles are in the GeoTIFF format + /// with a single 32-bit floating point band. The tiles cover the whole + /// landmass of Earth. Some small islands (e.g., atolls) might not be + /// represented accurately.
+ /// * The vertical unit for measurement of elevation height is meters. + /// An elevation value of -32767.0 is used for points that have no data + /// value, most often returned where there isn't landmass (i.e. + /// water).
+ /// * The horizontal reference datum is the World Geodetic System 1984 + /// (WGS84-G1150) and the vertical reference datum is the Earth + /// Gravitational Model 2008 (EGM2008).
+ /// * Tiles are 258x258 pixel squares rather than the standard 256 x + /// 256. This is done to allow for accurate interpolation of values at + /// the tile edges. As such adjacent tiles overlap by 1 pixel along all + /// edges.
+ /// * Tile data comes from the [Airbus WorldDEM4Ortho + /// product](https://www.intelligence-airbusds.com/worlddem-streaming/). + /// Urban areas are approximately leveled down to ground level. All + /// other areas are represented by the object surface level (e.g., + /// trees).
+ /// + /// Supports zoom level 13 only. Format: raster (tiff). + ///
+ public const string Microsoftdem = "microsoft.dem"; + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/RenderClient.cs b/sdk/maps/Azure.Maps.Render/src/Generated/RenderClient.cs new file mode 100644 index 000000000000..d4cb3ba08253 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/RenderClient.cs @@ -0,0 +1,231 @@ +// +// 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. +// + +namespace Azure.Maps.Render +{ + using Microsoft.Rest; + using Microsoft.Rest.Serialization; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Net; + using System.Net.Http; + + /// + /// Azure Maps Render REST APIs + /// + public partial class RenderClient : ServiceClient, IRenderClient + { + /// + /// The base URI of the service. + /// + internal string BaseUri {get; set;} + + /// + /// Gets or sets json serialization settings. + /// + public JsonSerializerSettings SerializationSettings { get; private set; } + + /// + /// Gets or sets json deserialization settings. + /// + public JsonSerializerSettings DeserializationSettings { get; private set; } + + /// + /// 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. + /// + public string XMsClientId { get; set; } + + /// + /// This parameter specifies where the Azure Maps Creator resource is located. + /// Valid values are us and eu. Possible values include: 'us', 'eu' + /// + public string Geography { get; set; } + + /// + /// Subscription credentials which uniquely identify client subscription. + /// + public ServiceClientCredentials Credentials { get; private set; } + + /// + /// Gets the IRenderOperations. + /// + public virtual IRenderOperations Render { get; private set; } + + /// + /// Gets the IRenderV2. + /// + public virtual IRenderV2 RenderV2 { get; private set; } + + /// + /// Initializes a new instance of the RenderClient class. + /// + /// + /// HttpClient to be used + /// + /// + /// True: will dispose the provided httpClient on calling RenderClient.Dispose(). False: will not dispose provided httpClient + protected RenderClient(HttpClient httpClient, bool disposeHttpClient) : base(httpClient, disposeHttpClient) + { + Initialize(); + } + + /// + /// Initializes a new instance of the RenderClient class. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + protected RenderClient(params DelegatingHandler[] handlers) : base(handlers) + { + Initialize(); + } + + /// + /// Initializes a new instance of the RenderClient class. + /// + /// + /// Optional. The http client handler used to handle http transport. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + protected RenderClient(HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : base(rootHandler, handlers) + { + Initialize(); + } + + /// + /// Initializes a new instance of the RenderClient class. + /// + /// + /// Required. Subscription credentials which uniquely identify client subscription. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + /// + /// Thrown when a required parameter is null + /// + public RenderClient(ServiceClientCredentials credentials, params DelegatingHandler[] handlers) : this(handlers) + { + if (credentials == null) + { + throw new System.ArgumentNullException("credentials"); + } + Credentials = credentials; + if (Credentials != null) + { + Credentials.InitializeServiceClient(this); + } + } + + /// + /// Initializes a new instance of the RenderClient class. + /// + /// + /// Required. Subscription credentials which uniquely identify client subscription. + /// + /// + /// HttpClient to be used + /// + /// + /// True: will dispose the provided httpClient on calling RenderClient.Dispose(). False: will not dispose provided httpClient + /// + /// Thrown when a required parameter is null + /// + public RenderClient(ServiceClientCredentials credentials, HttpClient httpClient, bool disposeHttpClient) : this(httpClient, disposeHttpClient) + { + if (credentials == null) + { + throw new System.ArgumentNullException("credentials"); + } + Credentials = credentials; + if (Credentials != null) + { + Credentials.InitializeServiceClient(this); + } + } + + /// + /// Initializes a new instance of the RenderClient class. + /// + /// + /// Required. Subscription credentials which uniquely identify client subscription. + /// + /// + /// Optional. The http client handler used to handle http transport. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + /// + /// Thrown when a required parameter is null + /// + public RenderClient(ServiceClientCredentials credentials, HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : this(rootHandler, handlers) + { + if (credentials == null) + { + throw new System.ArgumentNullException("credentials"); + } + Credentials = credentials; + if (Credentials != null) + { + Credentials.InitializeServiceClient(this); + } + } + + /// + /// An optional partial-method to perform custom initialization. + /// + partial void CustomInitialize(); + /// + /// Initializes client properties. + /// + private void Initialize() + { + Render = new RenderOperations(this); + RenderV2 = new RenderV2(this); + BaseUri = "https://{geography}.atlas.microsoft.com"; + Geography = "us"; + SerializationSettings = new JsonSerializerSettings + { + Formatting = Newtonsoft.Json.Formatting.Indented, + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + DeserializationSettings = new JsonSerializerSettings + { + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + CustomInitialize(); + } + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/RenderOperations.cs b/sdk/maps/Azure.Maps.Render/src/Generated/RenderOperations.cs new file mode 100644 index 000000000000..d68df3acbb34 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/RenderOperations.cs @@ -0,0 +1,2269 @@ +// +// 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. +// + +namespace Azure.Maps.Render +{ + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// RenderOperations operations. + /// + public partial class RenderOperations : IServiceOperations, IRenderOperations + { + /// + /// Initializes a new instance of the RenderOperations class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public RenderOperations(RenderClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the RenderClient + /// + public RenderClient Client { get; private set; } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// The static image service renders a user-defined, rectangular image + /// containing a map section using a zoom level from 0 to 20. The static image + /// service renders a user-defined, rectangular image containing a map section + /// using a zoom level from 0 to 20. The supported resolution range for the map + /// image is from 1x1 to 8192x8192. If you are deciding when to use the static + /// image service over the map tile service, you may want to consider how you + /// would like to interact with the rendered map. If the map contents will be + /// relatively unchanging, a static map is a good choice. If you want to + /// support a lot of zooming, panning and changing of the map content, the map + /// tile service would be a better choice. + /// + /// Service also provides Image Composition functionality to get a static image + /// back with additional data like; pushpins and geometry overlays with + /// following S0 and S1 capabilities. + /// + /// In S0 you can: + /// - Render up to 5 pushpins specified in the request + /// - Provide one custom image for the pins referenced in the request + /// - Add labels to the pushpins + /// + /// In S1 you can: + /// - Render pushpins through [Azure Maps Data + /// Service](https://aka.ms/AzureMapsMapDataService) + /// - Specify multiple pushpin styles + /// - Provide custom pushpin images stored in [Azure Maps Data + /// Service](https://aka.ms/AzureMapsMapDataService) + /// - Render circle, polyline and polygon geometry types. + /// - Render of supported GeoJSON geometry types uploaded through [Azure Maps + /// Data Service](https://aka.ms/AzureMapsMapDataService) + /// + /// Please see + /// [How-to-Guide](https://aka.ms/AzureMapsHowToGuideImageCompositor) for + /// detailed examples. + /// + /// _Note_ : Either **center** or **bbox** parameter must be supplied to the + /// API. + /// <br><br> + /// The supported Lat and Lon ranges when using the **bbox** parameter, are as + /// follows: + /// <br><br> + /// + /// |Zoom Level | Max Lon Range | Max Lat Range| + /// |:----------|:----------------|:-------------| + /// |0 | 360.0 | 170.0 | + /// |1 | 360.0 | 170.0 | + /// |2 | 360.0 | 170.0 | + /// |3 | 360.0 | 170.0 | + /// |4 | 360.0 | 170.0 | + /// |5 | 180.0 | 85.0 | + /// |6 | 90.0 | 42.5 | + /// |7 | 45.0 | 21.25 | + /// |8 | 22.5 | 10.625 | + /// |9 | 11.25 | 5.3125 | + /// |10 | 5.625 | 2.62625 | + /// |11 | 2.8125 | 1.328125 | + /// |12 | 1.40625 | 0.6640625 | + /// |13 | 0.703125 | 0.33203125 | + /// |14 | 0.3515625 | 0.166015625 | + /// |15 | 0.17578125 | 0.0830078125 | + /// |16 | 0.087890625 | 0.0415039063 | + /// |17 | 0.0439453125 | 0.0207519531 | + /// |18 | 0.0219726563 | 0.0103759766 | + /// |19 | 0.0109863281 | 0.0051879883 | + /// |20 | 0.0054931641 | 0.0025939941 | + /// + /// + /// Map layer requested. If layer is set to labels or hybrid, the format should + /// be png. Possible values include: 'basic', 'hybrid', 'labels' + /// + /// + /// Map style to be returned. Possible values are main and dark. Possible + /// values include: 'main', 'dark' + /// + /// + /// Desired zoom level of the map. Zoom value must be in the range: 0-20 + /// (inclusive). Default value is 12.<br><br>Please see [Zoom + /// Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Coordinates of the center point. Format: 'lon,lat'. Projection used + /// - EPSG:3857. Longitude range: -180 to 180. Latitude range: -85 to 85. + /// + /// Note: Either center or bbox are required parameters. They are + /// mutually exclusive. + /// + /// + /// Bounding box. Projection used - EPSG:3857. Format : 'minLon, minLat, + /// maxLon, maxLat'. + /// + /// Note: Either bbox or center are required + /// parameters. They are mutually exclusive. It shouldn’t be used with + /// height or width. + /// + /// The maximum allowed ranges for Lat and Lon are defined for each zoom level + /// in the table at the top of this page. + /// + /// + /// Height of the resulting image in pixels. Range is 1 to 8192. Default + /// is 512. It shouldn’t be used with bbox. + /// + /// + /// Width of the resulting image in pixels. Range is 1 to 8192. Default is 512. + /// It shouldn’t be used with bbox. + /// + /// + /// Language in which search results should be returned. Should be one of + /// supported IETF language tags, case insensitive. When data in specified + /// language is not available for a specific field, default language is used. + /// + /// Please refer to [Supported + /// Languages](https://docs.microsoft.com/en-us/azure/azure-maps/supported-languages) + /// for details. + /// + /// + /// The View parameter specifies which set of geopolitically disputed content + /// is returned via Azure Maps services, including borders and labels + /// displayed on the map. The View parameter (also referred to as “user region + /// parameter”) will show the correct maps for that country/region. By + /// default, the View parameter is set to “Unified” even if you haven’t defined + /// it in the request. It is your responsibility to determine the location of + /// your users, and then set the View parameter correctly for that location. + /// Alternatively, you have the option to set ‘View=Auto’, which will return + /// the map data based on the IP address of the request. The View parameter in + /// Azure Maps must be used in compliance with applicable laws, including those + /// regarding mapping, of the country where maps, images and other data and + /// third party content that you are authorized to access via Azure Maps is + /// made available. Example: view=IN. + /// + /// Please refer to [Supported + /// Views](https://aka.ms/AzureMapsLocalizationViews) for details and to see + /// the available Views. + /// + /// + /// Pushpin style and instances. Use this parameter to optionally add pushpins + /// to the image. + /// The pushpin style describes the appearance of the pushpins, and the + /// instances specify + /// the coordinates of the pushpins and optional labels for each pin. (Be sure + /// to properly URL-encode values of this + /// parameter since it will contain reserved characters such as pipes and + /// punctuation.) + /// + /// The Azure Maps account S0 SKU only supports a single instance of the pins + /// parameter. Other SKUs + /// allow multiple instances of the pins parameter to specify multiple pin + /// styles. + /// + /// To render a pushpin at latitude 45°N and longitude 122°W using the default + /// built-in pushpin style, add the + /// querystring parameter + /// + /// `pins=default||-122 45` + /// + /// Note that the longitude comes before the latitude. + /// After URL encoding this will look like + /// + /// `pins=default%7C%7C-122+45` + /// + /// All of the examples here show the pins + /// parameter without URL encoding, for clarity. + /// + /// To render a pin at multiple locations, separate each location with a pipe + /// character. For example, use + /// + /// `pins=default||-122 45|-119.5 43.2|-121.67 47.12` + /// + /// The S0 Azure Maps account SKU only allows five pushpins. Other account SKUs + /// do not have this limitation. + /// + /// ### Style Modifiers + /// + /// You can modify the appearance of the pins by adding style modifiers. These + /// are added after the style but before + /// the locations and labels. Style modifiers each have a two-letter name. + /// These abbreviated names are used to help + /// reduce the length of the URL. + /// + /// To change the color of the pushpin, use the 'co' style modifier and specify + /// the color using the HTML/CSS RGB color + /// format which is a six-digit hexadecimal number (the three-digit form is not + /// supported). For example, to use + /// a deep pink color which you would specify as #FF1493 in CSS, use + /// + /// `pins=default|coFF1493||-122 45` + /// + /// ### Pushpin Labels + /// + /// To add a label to the pins, put the label in single quotes just before the + /// coordinates. For example, to label + /// three pins with the values '1', '2', and '3', use + /// + /// `pins=default||'1'-122 45|'2'-119.5 43.2|'3'-121.67 47.12` + /// + /// There is a built in pushpin style called 'none' that does not display a + /// pushpin image. You can use this if + /// you want to display labels without any pin image. For example, + /// + /// `pins=none||'A'-122 45|'B'-119.5 43.2` + /// + /// To change the color of the pushpin labels, use the 'lc' label color style + /// modifier. For example, to use pink + /// pushpins with black labels, use + /// + /// `pins=default|coFF1493|lc000000||-122 45` + /// + /// To change the size of the labels, use the 'ls' label size style modifier. + /// The label size represents the approximate + /// height of the label text in pixels. For example, to increase the label size + /// to 12, use + /// + /// `pins=default|ls12||'A'-122 45|'B'-119 43` + /// + /// The labels are centered at the pushpin 'label anchor.' The anchor location + /// is predefined for built-in pushpins and + /// is at the top center of custom pushpins (see below). To override the label + /// anchor, using the 'la' style modifier + /// and provide X and Y pixel coordinates for the anchor. These coordinates are + /// relative to the top left corner of the + /// pushpin image. Positive X values move the anchor to the right, and positive + /// Y values move the anchor down. For example, + /// to position the label anchor 10 pixels right and 4 pixels above the top + /// left corner of the pushpin image, + /// use + /// + /// `pins=default|la10 -4||'A'-122 45|'B'-119 43` + /// + /// ### Custom Pushpins + /// + /// To use a custom pushpin image, use the word 'custom' as the pin style name, + /// and then specify a URL after the + /// location and label information. Use two pipe characters to indicate that + /// you're done specifying locations and are + /// starting the URL. For example, + /// + /// `pins=custom||-122 45||http://contoso.com/pushpins/red.png` + /// + /// After URL encoding, this would look like + /// + /// `pins=custom%7C%7C-122+45%7C%7Chttp%3A%2F%2Fcontoso.com%2Fpushpins%2Fred.png` + /// + /// By default, custom pushpin images are drawn centered at the pin + /// coordinates. This usually isn't ideal as it obscures + /// the location that you're trying to highlight. To override the anchor + /// location of the pin image, use the 'an' + /// style modifier. This uses the same format as the 'la' label anchor style + /// modifier. For example, if your custom + /// pin image has the tip of the pin at the top left corner of the image, you + /// can set the anchor to that spot by + /// using + /// + /// `pins=custom|an0 0||-122 45||http://contoso.com/pushpins/red.png` + /// + /// Note: If you use the 'co' color modifier with a custom pushpin image, the + /// specified color will replace the RGB + /// channels of the pixels in the image but will leave the alpha (opacity) + /// channel unchanged. This would usually + /// only be done with a solid-color custom image. + /// + /// ### Getting Pushpins from Azure Maps Data Storage + /// + /// For all Azure Maps account SKUs other than S0, + /// the pushpin image and location information can be obtained from Azure Maps + /// Data Storage. After uploading a pushpin image + /// or a GeoJSON document containing pin locations, the Data Storage service + /// returns a Unique Data ID (UDID) that you can use + /// to reference the data in the pins parameter. + /// + /// To use a custom pushpin image from Azure Maps Data Storage, specify the + /// UDID prefixed by 'udid-' as the name of the + /// pushpin style. For example, + /// + /// `pins=udid-fe22c504-3a81-4fcd-adc6-a3507ce866c1||-122 45` + /// + /// To use the point geometry from an uploaded GeoJSON document as the pin + /// locations, specify the UDID in the locations + /// section of the pins parameter. For example, + /// + /// `pins=default||udid-29dc105a-dee7-409f-a3f9-22b066ae4713` + /// + /// Note that + /// only point and multipoint geometry, points and multipoints from geometry + /// collections, and point geometry from features + /// will be used. Linestring and polygon geometry will be ignored. If the point + /// comes from a feature and the feature + /// has a string property called "label", the value of that property will be + /// used as the label for the pin. + /// + /// You can mix pin locations from Data Storage and pin locations specified in + /// the pins parameter. Any of the pipe-delimited + /// pin locations can be a longitude and latitude or a UDID. For example, + /// + /// `pins=default||-122 45|udid-29dc105a-dee7-409f-a3f9-22b066ae4713|-119 43` + /// + /// ### Scale, Rotation, and Opacity + /// + /// You can make pushpins and their labels larger or smaller by using the 'sc' + /// scale style modifier. This is a + /// value greater than zero. A value of 1 is the standard scale. Values larger + /// than 1 will make the pins larger, and + /// values smaller than 1 will make them smaller. For example, to draw the + /// pushpins 50% larger than normal, use + /// + /// `pins=default|sc1.5||-122 45` + /// + /// You can rotate pushpins and their labels by using the 'ro' rotation style + /// modifier. This is a number of degrees + /// of clockwise rotation. Use a negative number to rotate counter-clockwise. + /// For example, to rotate the pushpins + /// 90 degrees clockwise and double their size, use + /// + /// `pins=default|ro90|sc2||-122 45` + /// + /// You can make pushpins and their labels partially transparent by specifying + /// the 'al' alpha style modifier. + /// This is a number between 0 and 1 indicating the opacity of the pushpins. + /// Zero makes them completely transparent + /// (and not visible) and 1 makes them completely opaque (which is the + /// default). For example, to make pushpins + /// and their labels only 67% opaque, use + /// + /// `pins=default|al.67||-122 45` + /// + /// ### Style Modifier Summary + /// + /// Modifier | Description | Range + /// :--------:|-----------------|------------------ + /// al | Alpha (opacity) | 0 to 1 + /// an | Pin anchor | * + /// co | Pin color | 000000 to FFFFFF + /// la | Label anchor | * + /// lc | Label color | 000000 to FFFFFF + /// ls | Label size | Greater than 0 + /// ro | Rotation | -360 to 360 + /// sc | Scale | Greater than 0 + /// + /// * X and Y coordinates can be anywhere within pin image or a margin around + /// it. + /// The margin size is the minimum of the pin width and height. + /// + /// + /// Path style and locations. Use this parameter to optionally add lines, + /// polygons or circles to the image. + /// The path style describes the appearance of the line and fill. (Be sure to + /// properly URL-encode values of this + /// parameter since it will contain reserved characters such as pipes and + /// punctuation.) + /// + /// Path parameter is supported in Azure Maps account SKU starting with S1. + /// Multiple instances of the path parameter + /// allow to specify multiple geometries with their styles. Number of + /// parameters per request is limited to 10 and + /// number of locations is limited to 100 per path. + /// + /// To render a circle with radius 100 meters and center point at latitude 45°N + /// and longitude 122°W using the default style, add the + /// querystring parameter + /// + /// `path=ra100||-122 45` + /// + /// Note that the longitude comes before the latitude. + /// After URL encoding this will look like + /// + /// `path=ra100%7C%7C-122+45` + /// + /// All of the examples here show the path parameter without URL encoding, for + /// clarity. + /// + /// To render a line, separate each location with a pipe character. For + /// example, use + /// + /// `path=||-122 45|-119.5 43.2|-121.67 47.12` + /// + /// To render a polygon, last location must be equal to the start location. For + /// example, use + /// + /// `path=||-122 45|-119.5 43.2|-121.67 47.12|-122 45` + /// + /// Longitude and latitude values for locations of lines and polygons can be in + /// the range from -360 to 360 to allow for rendering of geometries crossing + /// the anti-meridian. + /// + /// ### Style Modifiers + /// + /// You can modify the appearance of the path by adding style modifiers. These + /// are added before the locations. + /// Style modifiers each have a two-letter name. These abbreviated names are + /// used to help reduce the length + /// of the URL. + /// + /// To change the color of the outline, use the 'lc' style modifier and specify + /// the color using the HTML/CSS RGB color + /// format which is a six-digit hexadecimal number (the three-digit form is not + /// supported). For example, to use + /// a deep pink color which you would specify as #FF1493 in CSS, use + /// + /// `path=lcFF1493||-122 45|-119.5 43.2` + /// + /// Multiple style modifiers may be combined together to create a more complex + /// visual style. + /// + /// `lc0000FF|lw3|la0.60|fa0.50||-122.2 47.6|-122.2 47.7|-122.3 47.7|-122.3 + /// 47.6|-122.2 47.6` + /// + /// ### Getting Path locations from Azure Maps Data Storage + /// + /// For all Azure Maps account SKUs other than S0, the path location + /// information can be obtained from Azure Maps Data Storage. + /// After uploading a GeoJSON document containing path locations, the Data + /// Storage service returns a Unique Data ID (UDID) that you can use + /// to reference the data in the path parameter. + /// + /// To use the point geometry from an uploaded GeoJSON document as the path + /// locations, specify the UDID in the locations + /// section of the path parameter. For example, + /// + /// `path=||udid-29dc105a-dee7-409f-a3f9-22b066ae4713` + /// + /// Note the it is not allowed to mix path locations from Data Storage with + /// locations specified in the path parameter. + /// + /// ### Style Modifier Summary + /// + /// Modifier | Description | Range + /// :--------:|------------------------|------------------ + /// lc | Line color | 000000 to FFFFFF + /// fc | Fill color | 000000 to FFFFFF + /// la | Line alpha (opacity) | 0 to 1 + /// fa | Fill alpha (opacity) | 0 to 1 + /// lw | Line width | Greater than 0 + /// ra | Circle radius (meters) | Greater than 0 + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetMapStaticImageWithHttpMessagesAsync(string layer = default(string), string style = default(string), int? zoom = default(int?), string center = default(string), string bbox = default(string), int? height = default(int?), int? width = default(int?), string language = default(string), string view = default(string), IList pins = default(IList), IList path = default(IList), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.Geography == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.Geography"); + } + if (zoom > 20) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "zoom", 20); + } + if (zoom < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "zoom", 0); + } + if (height > 8192) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "height", 8192); + } + if (height < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "height", 1); + } + if (width > 8192) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "width", 8192); + } + if (width < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "width", 1); + } + string apiVersion = "1.0"; + string format = "png"; + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("apiVersion", apiVersion); + tracingParameters.Add("format", format); + tracingParameters.Add("layer", layer); + tracingParameters.Add("style", style); + tracingParameters.Add("zoom", zoom); + tracingParameters.Add("center", center); + tracingParameters.Add("bbox", bbox); + tracingParameters.Add("height", height); + tracingParameters.Add("width", width); + tracingParameters.Add("language", language); + tracingParameters.Add("view", view); + tracingParameters.Add("pins", pins); + tracingParameters.Add("path", path); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetMapStaticImage", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "map/static/{format}"; + _url = _url.Replace("{geography}", System.Uri.EscapeDataString(Client.Geography)); + _url = _url.Replace("{format}", System.Uri.EscapeDataString(format)); + List _queryParameters = new List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (layer != null) + { + _queryParameters.Add(string.Format("layer={0}", System.Uri.EscapeDataString(layer))); + } + if (style != null) + { + _queryParameters.Add(string.Format("style={0}", System.Uri.EscapeDataString(style))); + } + if (zoom != null) + { + _queryParameters.Add(string.Format("zoom={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(zoom, Client.SerializationSettings).Trim('"')))); + } + if (center != null) + { + _queryParameters.Add(string.Format("center={0}", System.Uri.EscapeDataString(center))); + } + if (bbox != null) + { + _queryParameters.Add(string.Format("bbox={0}", System.Uri.EscapeDataString(bbox))); + } + if (height != null) + { + _queryParameters.Add(string.Format("height={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(height, Client.SerializationSettings).Trim('"')))); + } + if (width != null) + { + _queryParameters.Add(string.Format("width={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(width, Client.SerializationSettings).Trim('"')))); + } + if (language != null) + { + _queryParameters.Add(string.Format("language={0}", System.Uri.EscapeDataString(language))); + } + if (view != null) + { + _queryParameters.Add(string.Format("view={0}", System.Uri.EscapeDataString(view))); + } + if (pins != null) + { + if (pins.Count == 0) + { + _queryParameters.Add(string.Format("pins={0}", System.Uri.EscapeDataString(string.Empty))); + } + else + { + foreach (var _item in pins) + { + _queryParameters.Add(string.Format("pins={0}", System.Uri.EscapeDataString("" + _item))); + } + } + } + if (path != null) + { + if (path.Count == 0) + { + _queryParameters.Add(string.Format("path={0}", System.Uri.EscapeDataString(string.Empty))); + } + else + { + foreach (var _item in path) + { + _queryParameters.Add(string.Format("path={0}", System.Uri.EscapeDataString("" + _item))); + } + } + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.XMsClientId != null) + { + if (_httpRequest.Headers.Contains("x-ms-client-id")) + { + _httpRequest.Headers.Remove("x-ms-client-id"); + } + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-id", Client.XMsClientId); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _result.Body = await _httpResponse.Content.ReadAsStreamAsync().ConfigureAwait(false); + } + try + { + _result.Headers = _httpResponse.GetHeadersAsJson().ToObject(JsonSerializer.Create(Client.DeserializationSettings)); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the headers.", _httpResponse.GetHeadersAsJson().ToString(), ex); + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// Fetches map tiles in vector or raster format typically to be integrated + /// into a new map control or SDK. By default, Azure uses vector map tiles for + /// its web map control (see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid)) + /// + /// **Note**: Weather tiles are only available via [Get Map Tile V2 + /// API](https://aka.ms/AzureMapsWeatherTiles). We recommend to start to use + /// the new [Get Map Tile V2 API](https://aka.ms/GetMapTileV2). + /// + /// + /// Desired format of the response. Possible values are png & pbf. Possible + /// values include: 'png', 'pbf' + /// + /// + /// Map layer requested. Possible values are basic, hybrid, labels and terra. + /// Possible values include: 'basic', 'hybrid', 'labels', 'terra' + /// + /// + /// Map style to be returned. Possible values are main, dark, and + /// shaded_relief. Possible values include: 'main', 'dark', 'shaded_relief' + /// + /// + /// Zoom level for the desired tile. For _raster_ tiles, value must be in the + /// range: 0-18 (inclusive). Terra raster tiles, values must be in the range + /// 0-6 (inclusive). For _vector_ tiles, value must be in the range: 0-22 + /// (inclusive). + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// The size of the returned map tile in pixels. Possible values include: + /// '256', '512' + /// + /// + /// Language in which search results should be returned. Should be one of + /// supported IETF language tags, case insensitive. When data in specified + /// language is not available for a specific field, default language is used. + /// + /// Please refer to [Supported + /// Languages](https://docs.microsoft.com/en-us/azure/azure-maps/supported-languages) + /// for details. + /// + /// + /// The View parameter specifies which set of geopolitically disputed content + /// is returned via Azure Maps services, including borders and labels + /// displayed on the map. The View parameter (also referred to as “user region + /// parameter”) will show the correct maps for that country/region. By + /// default, the View parameter is set to “Unified” even if you haven’t defined + /// it in the request. It is your responsibility to determine the location of + /// your users, and then set the View parameter correctly for that location. + /// Alternatively, you have the option to set ‘View=Auto’, which will return + /// the map data based on the IP address of the request. The View parameter in + /// Azure Maps must be used in compliance with applicable laws, including those + /// regarding mapping, of the country where maps, images and other data and + /// third party content that you are authorized to access via Azure Maps is + /// made available. Example: view=IN. + /// + /// Please refer to [Supported + /// Views](https://aka.ms/AzureMapsLocalizationViews) for details and to see + /// the available Views. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetMapTileWithHttpMessagesAsync(string format, string layer, string style, int zoom, int xTileIndex, int yTileIndex, string tileSize = default(string), string language = default(string), string view = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.Geography == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.Geography"); + } + if (format == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "format"); + } + if (layer == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "layer"); + } + if (style == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "style"); + } + string apiVersion = "1.0"; + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("apiVersion", apiVersion); + tracingParameters.Add("format", format); + tracingParameters.Add("layer", layer); + tracingParameters.Add("style", style); + tracingParameters.Add("zoom", zoom); + tracingParameters.Add("xTileIndex", xTileIndex); + tracingParameters.Add("yTileIndex", yTileIndex); + tracingParameters.Add("tileSize", tileSize); + tracingParameters.Add("language", language); + tracingParameters.Add("view", view); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetMapTile", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "map/tile/{format}"; + _url = _url.Replace("{geography}", System.Uri.EscapeDataString(Client.Geography)); + _url = _url.Replace("{format}", System.Uri.EscapeDataString(format)); + List _queryParameters = new List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (layer != null) + { + _queryParameters.Add(string.Format("layer={0}", System.Uri.EscapeDataString(layer))); + } + if (style != null) + { + _queryParameters.Add(string.Format("style={0}", System.Uri.EscapeDataString(style))); + } + _queryParameters.Add(string.Format("zoom={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(zoom, Client.SerializationSettings).Trim('"')))); + _queryParameters.Add(string.Format("x={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(xTileIndex, Client.SerializationSettings).Trim('"')))); + _queryParameters.Add(string.Format("y={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(yTileIndex, Client.SerializationSettings).Trim('"')))); + if (tileSize != null) + { + _queryParameters.Add(string.Format("tileSize={0}", System.Uri.EscapeDataString(tileSize))); + } + if (language != null) + { + _queryParameters.Add(string.Format("language={0}", System.Uri.EscapeDataString(language))); + } + if (view != null) + { + _queryParameters.Add(string.Format("view={0}", System.Uri.EscapeDataString(view))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.XMsClientId != null) + { + if (_httpRequest.Headers.Contains("x-ms-client-id")) + { + _httpRequest.Headers.Remove("x-ms-client-id"); + } + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-id", Client.XMsClientId); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _result.Body = await _httpResponse.Content.ReadAsStreamAsync().ConfigureAwait(false); + } + try + { + _result.Headers = _httpResponse.GetHeadersAsJson().ToObject(JsonSerializer.Create(Client.DeserializationSettings)); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the headers.", _httpResponse.GetHeadersAsJson().ToString(), ex); + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// Fetches state tiles in vector format typically to be integrated into indoor + /// maps module of map control or SDK. The map control will call this API after + /// user turns on dynamic styling (see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid)) + /// + /// + /// Zoom level for the desired tile. Zoom value must be in the range: 0-20 + /// (inclusive). + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// The stateset id. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetMapStateTilePreviewWithHttpMessagesAsync(int zoom, int xTileIndex, int yTileIndex, string statesetId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.Geography == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.Geography"); + } + if (statesetId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "statesetId"); + } + string apiVersion = "1.0"; + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("apiVersion", apiVersion); + tracingParameters.Add("zoom", zoom); + tracingParameters.Add("xTileIndex", xTileIndex); + tracingParameters.Add("yTileIndex", yTileIndex); + tracingParameters.Add("statesetId", statesetId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetMapStateTilePreview", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "map/statetile"; + _url = _url.Replace("{geography}", System.Uri.EscapeDataString(Client.Geography)); + List _queryParameters = new List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + _queryParameters.Add(string.Format("zoom={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(zoom, Client.SerializationSettings).Trim('"')))); + _queryParameters.Add(string.Format("x={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(xTileIndex, Client.SerializationSettings).Trim('"')))); + _queryParameters.Add(string.Format("y={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(yTileIndex, Client.SerializationSettings).Trim('"')))); + if (statesetId != null) + { + _queryParameters.Add(string.Format("statesetId={0}", System.Uri.EscapeDataString(statesetId))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.XMsClientId != null) + { + if (_httpRequest.Headers.Contains("x-ms-client-id")) + { + _httpRequest.Headers.Remove("x-ms-client-id"); + } + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-id", Client.XMsClientId); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _result.Body = await _httpResponse.Content.ReadAsStreamAsync().ConfigureAwait(false); + } + try + { + _result.Headers = _httpResponse.GetHeadersAsJson().ToObject(JsonSerializer.Create(Client.DeserializationSettings)); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the headers.", _httpResponse.GetHeadersAsJson().ToString(), ex); + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// + /// Copyrights API is designed to serve copyright information for Render Tile + /// service. In addition to basic copyright for the whole map, API is serving + /// specific groups of copyrights for some countries. + /// + /// As an alternative to copyrights for map request, one can receive captions + /// for displaying the map provider information on the map. + /// + /// + /// Desired format of the response. Value can be either _json_ or _xml_. + /// Possible values include: 'json', 'xml' + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetCopyrightCaptionWithHttpMessagesAsync(string format, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.Geography == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.Geography"); + } + if (format == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "format"); + } + string apiVersion = "1.0"; + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("apiVersion", apiVersion); + tracingParameters.Add("format", format); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetCopyrightCaption", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "map/copyright/caption/{format}"; + _url = _url.Replace("{geography}", System.Uri.EscapeDataString(Client.Geography)); + _url = _url.Replace("{format}", System.Uri.EscapeDataString(format)); + List _queryParameters = new List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.XMsClientId != null) + { + if (_httpRequest.Headers.Contains("x-ms-client-id")) + { + _httpRequest.Headers.Remove("x-ms-client-id"); + } + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-id", Client.XMsClientId); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// **Applies to:** S1 pricing tier. + /// + /// + /// This service returns a map image tile with size 256x256, given the x and y + /// coordinates and zoom + /// level. Zoom level ranges from 1 to 19. The current available style value is + /// 'satellite' which provides satellite + /// imagery alone. + /// + /// + /// **Note**: We recommend to start to use the new [Get Map Tile V2 + /// API](https://aka.ms/GetMapTileV2). + /// + /// + /// Zoom level for the desired tile. Zoom value must be in the range: 1-19 + /// (inclusive). + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetMapImageryTileWithHttpMessagesAsync(int zoom, int xTileIndex, int yTileIndex, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.Geography == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.Geography"); + } + string apiVersion = "1.0"; + string format = "png"; + string style = "satellite"; + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("apiVersion", apiVersion); + tracingParameters.Add("format", format); + tracingParameters.Add("style", style); + tracingParameters.Add("zoom", zoom); + tracingParameters.Add("xTileIndex", xTileIndex); + tracingParameters.Add("yTileIndex", yTileIndex); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetMapImageryTile", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "map/imagery/{format}"; + _url = _url.Replace("{geography}", System.Uri.EscapeDataString(Client.Geography)); + _url = _url.Replace("{format}", System.Uri.EscapeDataString(format)); + List _queryParameters = new List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (style != null) + { + _queryParameters.Add(string.Format("style={0}", System.Uri.EscapeDataString(style))); + } + _queryParameters.Add(string.Format("zoom={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(zoom, Client.SerializationSettings).Trim('"')))); + _queryParameters.Add(string.Format("x={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(xTileIndex, Client.SerializationSettings).Trim('"')))); + _queryParameters.Add(string.Format("y={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(yTileIndex, Client.SerializationSettings).Trim('"')))); + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.XMsClientId != null) + { + if (_httpRequest.Headers.Contains("x-ms-client-id")) + { + _httpRequest.Headers.Remove("x-ms-client-id"); + } + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-id", Client.XMsClientId); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _result.Body = await _httpResponse.Content.ReadAsStreamAsync().ConfigureAwait(false); + } + try + { + _result.Headers = _httpResponse.GetHeadersAsJson().ToObject(JsonSerializer.Create(Client.DeserializationSettings)); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the headers.", _httpResponse.GetHeadersAsJson().ToString(), ex); + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// Returns copyright information for a given bounding box. Bounding-box + /// requests should specify the minimum and maximum longitude and latitude + /// (EPSG-3857) coordinates + /// + /// + /// Desired format of the response. Value can be either _json_ or _xml_. + /// Possible values include: 'json', 'xml' + /// + /// + /// Minimum coordinates of bounding box in latitude longitude coordinate + /// system. E.g. 52.41064,4.84228 + /// + /// + /// Maximum coordinates of bounding box in latitude longitude coordinate + /// system. E.g. 52.41064,4.84228 + /// + /// + /// Yes/no value to exclude textual data from response. Only images and country + /// names will be in response. Possible values include: 'yes', 'no' + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetCopyrightFromBoundingBoxWithHttpMessagesAsync(string format, string mincoordinates, string maxcoordinates, string text = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.Geography == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.Geography"); + } + if (format == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "format"); + } + if (mincoordinates == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "mincoordinates"); + } + if (maxcoordinates == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "maxcoordinates"); + } + string apiVersion = "1.0"; + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("apiVersion", apiVersion); + tracingParameters.Add("format", format); + tracingParameters.Add("mincoordinates", mincoordinates); + tracingParameters.Add("maxcoordinates", maxcoordinates); + tracingParameters.Add("text", text); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetCopyrightFromBoundingBox", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "map/copyright/bounding/{format}"; + _url = _url.Replace("{geography}", System.Uri.EscapeDataString(Client.Geography)); + _url = _url.Replace("{format}", System.Uri.EscapeDataString(format)); + List _queryParameters = new List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (mincoordinates != null) + { + _queryParameters.Add(string.Format("mincoordinates={0}", System.Uri.EscapeDataString(mincoordinates))); + } + if (maxcoordinates != null) + { + _queryParameters.Add(string.Format("maxcoordinates={0}", System.Uri.EscapeDataString(maxcoordinates))); + } + if (text != null) + { + _queryParameters.Add(string.Format("text={0}", System.Uri.EscapeDataString(text))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.XMsClientId != null) + { + if (_httpRequest.Headers.Contains("x-ms-client-id")) + { + _httpRequest.Headers.Remove("x-ms-client-id"); + } + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-id", Client.XMsClientId); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// + /// Copyrights API is designed to serve copyright information for Render Tile + /// service. In addition to basic copyright for the whole map, API is serving + /// specific groups of copyrights for some countries. + /// Returns the copyright information for a given tile. To obtain the copyright + /// information for a particular tile, the request should specify the tile's + /// zoom level and x and y coordinates (see: Zoom Levels and Tile Grid). + /// + /// + /// Desired format of the response. Value can be either _json_ or _xml_. + /// Possible values include: 'json', 'xml' + /// + /// + /// Zoom level for the desired tile. Zoom value must be in the range: 0-18 + /// (inclusive). + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Yes/no value to exclude textual data from response. Only images and country + /// names will be in response. Possible values include: 'yes', 'no' + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetCopyrightForTileWithHttpMessagesAsync(string format, int zoom, int xTileIndex, int yTileIndex, string text = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.Geography == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.Geography"); + } + if (format == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "format"); + } + string apiVersion = "1.0"; + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("apiVersion", apiVersion); + tracingParameters.Add("format", format); + tracingParameters.Add("zoom", zoom); + tracingParameters.Add("xTileIndex", xTileIndex); + tracingParameters.Add("yTileIndex", yTileIndex); + tracingParameters.Add("text", text); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetCopyrightForTile", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "map/copyright/tile/{format}"; + _url = _url.Replace("{geography}", System.Uri.EscapeDataString(Client.Geography)); + _url = _url.Replace("{format}", System.Uri.EscapeDataString(format)); + List _queryParameters = new List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + _queryParameters.Add(string.Format("zoom={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(zoom, Client.SerializationSettings).Trim('"')))); + _queryParameters.Add(string.Format("x={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(xTileIndex, Client.SerializationSettings).Trim('"')))); + _queryParameters.Add(string.Format("y={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(yTileIndex, Client.SerializationSettings).Trim('"')))); + if (text != null) + { + _queryParameters.Add(string.Format("text={0}", System.Uri.EscapeDataString(text))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.XMsClientId != null) + { + if (_httpRequest.Headers.Contains("x-ms-client-id")) + { + _httpRequest.Headers.Remove("x-ms-client-id"); + } + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-id", Client.XMsClientId); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// Copyrights API is designed to serve copyright information for Render Tile + /// service. In addition to basic copyright for the whole map, API is serving + /// specific groups of copyrights for some countries. + /// Returns the copyright information for the world. To obtain the default + /// copyright information for the whole world, do not specify a tile or + /// bounding box. + /// + /// + /// Desired format of the response. Value can be either _json_ or _xml_. + /// Possible values include: 'json', 'xml' + /// + /// + /// Yes/no value to exclude textual data from response. Only images and country + /// names will be in response. Possible values include: 'yes', 'no' + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetCopyrightForWorldWithHttpMessagesAsync(string format, string text = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.Geography == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.Geography"); + } + if (format == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "format"); + } + string apiVersion = "1.0"; + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("apiVersion", apiVersion); + tracingParameters.Add("format", format); + tracingParameters.Add("text", text); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetCopyrightForWorld", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "map/copyright/world/{format}"; + _url = _url.Replace("{geography}", System.Uri.EscapeDataString(Client.Geography)); + _url = _url.Replace("{format}", System.Uri.EscapeDataString(format)); + List _queryParameters = new List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (text != null) + { + _queryParameters.Add(string.Format("text={0}", System.Uri.EscapeDataString(text))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.XMsClientId != null) + { + if (_httpRequest.Headers.Contains("x-ms-client-id")) + { + _httpRequest.Headers.Remove("x-ms-client-id"); + } + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-id", Client.XMsClientId); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/RenderOperationsExtensions.cs b/sdk/maps/Azure.Maps.Render/src/Generated/RenderOperationsExtensions.cs new file mode 100644 index 000000000000..7f5502616ca8 --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/RenderOperationsExtensions.cs @@ -0,0 +1,829 @@ +// +// 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. +// + +namespace Azure.Maps.Render +{ + using Models; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for RenderOperations. + /// + public static partial class RenderOperationsExtensions + { + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// The static image service renders a user-defined, rectangular image + /// containing a map section using a zoom level from 0 to 20. The static image + /// service renders a user-defined, rectangular image containing a map section + /// using a zoom level from 0 to 20. The supported resolution range for the map + /// image is from 1x1 to 8192x8192. If you are deciding when to use the static + /// image service over the map tile service, you may want to consider how you + /// would like to interact with the rendered map. If the map contents will be + /// relatively unchanging, a static map is a good choice. If you want to + /// support a lot of zooming, panning and changing of the map content, the map + /// tile service would be a better choice. + /// + /// Service also provides Image Composition functionality to get a static image + /// back with additional data like; pushpins and geometry overlays with + /// following S0 and S1 capabilities. + /// + /// In S0 you can: + /// - Render up to 5 pushpins specified in the request + /// - Provide one custom image for the pins referenced in the request + /// - Add labels to the pushpins + /// + /// In S1 you can: + /// - Render pushpins through [Azure Maps Data + /// Service](https://aka.ms/AzureMapsMapDataService) + /// - Specify multiple pushpin styles + /// - Provide custom pushpin images stored in [Azure Maps Data + /// Service](https://aka.ms/AzureMapsMapDataService) + /// - Render circle, polyline and polygon geometry types. + /// - Render of supported GeoJSON geometry types uploaded through [Azure Maps + /// Data Service](https://aka.ms/AzureMapsMapDataService) + /// + /// Please see + /// [How-to-Guide](https://aka.ms/AzureMapsHowToGuideImageCompositor) for + /// detailed examples. + /// + /// _Note_ : Either **center** or **bbox** parameter must be supplied to the + /// API. + /// <br><br> + /// The supported Lat and Lon ranges when using the **bbox** parameter, are as + /// follows: + /// <br><br> + /// + /// |Zoom Level | Max Lon Range | Max Lat Range| + /// |:----------|:----------------|:-------------| + /// |0 | 360.0 | 170.0 | + /// |1 | 360.0 | 170.0 | + /// |2 | 360.0 | 170.0 | + /// |3 | 360.0 | 170.0 | + /// |4 | 360.0 | 170.0 | + /// |5 | 180.0 | 85.0 | + /// |6 | 90.0 | 42.5 | + /// |7 | 45.0 | 21.25 | + /// |8 | 22.5 | 10.625 | + /// |9 | 11.25 | 5.3125 | + /// |10 | 5.625 | 2.62625 | + /// |11 | 2.8125 | 1.328125 | + /// |12 | 1.40625 | 0.6640625 | + /// |13 | 0.703125 | 0.33203125 | + /// |14 | 0.3515625 | 0.166015625 | + /// |15 | 0.17578125 | 0.0830078125 | + /// |16 | 0.087890625 | 0.0415039063 | + /// |17 | 0.0439453125 | 0.0207519531 | + /// |18 | 0.0219726563 | 0.0103759766 | + /// |19 | 0.0109863281 | 0.0051879883 | + /// |20 | 0.0054931641 | 0.0025939941 | + /// + /// + /// The operations group for this extension method. + /// + /// + /// Map layer requested. If layer is set to labels or hybrid, the format should + /// be png. Possible values include: 'basic', 'hybrid', 'labels' + /// + /// + /// Map style to be returned. Possible values are main and dark. Possible + /// values include: 'main', 'dark' + /// + /// + /// Desired zoom level of the map. Zoom value must be in the range: 0-20 + /// (inclusive). Default value is 12.<br><br>Please see [Zoom + /// Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Coordinates of the center point. Format: 'lon,lat'. Projection used + /// - EPSG:3857. Longitude range: -180 to 180. Latitude range: -85 to 85. + /// + /// Note: Either center or bbox are required parameters. They are + /// mutually exclusive. + /// + /// + /// Bounding box. Projection used - EPSG:3857. Format : 'minLon, minLat, + /// maxLon, maxLat'. + /// + /// Note: Either bbox or center are required + /// parameters. They are mutually exclusive. It shouldn’t be used with + /// height or width. + /// + /// The maximum allowed ranges for Lat and Lon are defined for each zoom level + /// in the table at the top of this page. + /// + /// + /// Height of the resulting image in pixels. Range is 1 to 8192. Default + /// is 512. It shouldn’t be used with bbox. + /// + /// + /// Width of the resulting image in pixels. Range is 1 to 8192. Default is 512. + /// It shouldn’t be used with bbox. + /// + /// + /// Language in which search results should be returned. Should be one of + /// supported IETF language tags, case insensitive. When data in specified + /// language is not available for a specific field, default language is used. + /// + /// Please refer to [Supported + /// Languages](https://docs.microsoft.com/en-us/azure/azure-maps/supported-languages) + /// for details. + /// + /// + /// The View parameter specifies which set of geopolitically disputed content + /// is returned via Azure Maps services, including borders and labels + /// displayed on the map. The View parameter (also referred to as “user region + /// parameter”) will show the correct maps for that country/region. By + /// default, the View parameter is set to “Unified” even if you haven’t defined + /// it in the request. It is your responsibility to determine the location of + /// your users, and then set the View parameter correctly for that location. + /// Alternatively, you have the option to set ‘View=Auto’, which will return + /// the map data based on the IP address of the request. The View parameter in + /// Azure Maps must be used in compliance with applicable laws, including those + /// regarding mapping, of the country where maps, images and other data and + /// third party content that you are authorized to access via Azure Maps is + /// made available. Example: view=IN. + /// + /// Please refer to [Supported + /// Views](https://aka.ms/AzureMapsLocalizationViews) for details and to see + /// the available Views. + /// + /// + /// Pushpin style and instances. Use this parameter to optionally add pushpins + /// to the image. + /// The pushpin style describes the appearance of the pushpins, and the + /// instances specify + /// the coordinates of the pushpins and optional labels for each pin. (Be sure + /// to properly URL-encode values of this + /// parameter since it will contain reserved characters such as pipes and + /// punctuation.) + /// + /// The Azure Maps account S0 SKU only supports a single instance of the pins + /// parameter. Other SKUs + /// allow multiple instances of the pins parameter to specify multiple pin + /// styles. + /// + /// To render a pushpin at latitude 45°N and longitude 122°W using the default + /// built-in pushpin style, add the + /// querystring parameter + /// + /// `pins=default||-122 45` + /// + /// Note that the longitude comes before the latitude. + /// After URL encoding this will look like + /// + /// `pins=default%7C%7C-122+45` + /// + /// All of the examples here show the pins + /// parameter without URL encoding, for clarity. + /// + /// To render a pin at multiple locations, separate each location with a pipe + /// character. For example, use + /// + /// `pins=default||-122 45|-119.5 43.2|-121.67 47.12` + /// + /// The S0 Azure Maps account SKU only allows five pushpins. Other account SKUs + /// do not have this limitation. + /// + /// ### Style Modifiers + /// + /// You can modify the appearance of the pins by adding style modifiers. These + /// are added after the style but before + /// the locations and labels. Style modifiers each have a two-letter name. + /// These abbreviated names are used to help + /// reduce the length of the URL. + /// + /// To change the color of the pushpin, use the 'co' style modifier and specify + /// the color using the HTML/CSS RGB color + /// format which is a six-digit hexadecimal number (the three-digit form is not + /// supported). For example, to use + /// a deep pink color which you would specify as #FF1493 in CSS, use + /// + /// `pins=default|coFF1493||-122 45` + /// + /// ### Pushpin Labels + /// + /// To add a label to the pins, put the label in single quotes just before the + /// coordinates. For example, to label + /// three pins with the values '1', '2', and '3', use + /// + /// `pins=default||'1'-122 45|'2'-119.5 43.2|'3'-121.67 47.12` + /// + /// There is a built in pushpin style called 'none' that does not display a + /// pushpin image. You can use this if + /// you want to display labels without any pin image. For example, + /// + /// `pins=none||'A'-122 45|'B'-119.5 43.2` + /// + /// To change the color of the pushpin labels, use the 'lc' label color style + /// modifier. For example, to use pink + /// pushpins with black labels, use + /// + /// `pins=default|coFF1493|lc000000||-122 45` + /// + /// To change the size of the labels, use the 'ls' label size style modifier. + /// The label size represents the approximate + /// height of the label text in pixels. For example, to increase the label size + /// to 12, use + /// + /// `pins=default|ls12||'A'-122 45|'B'-119 43` + /// + /// The labels are centered at the pushpin 'label anchor.' The anchor location + /// is predefined for built-in pushpins and + /// is at the top center of custom pushpins (see below). To override the label + /// anchor, using the 'la' style modifier + /// and provide X and Y pixel coordinates for the anchor. These coordinates are + /// relative to the top left corner of the + /// pushpin image. Positive X values move the anchor to the right, and positive + /// Y values move the anchor down. For example, + /// to position the label anchor 10 pixels right and 4 pixels above the top + /// left corner of the pushpin image, + /// use + /// + /// `pins=default|la10 -4||'A'-122 45|'B'-119 43` + /// + /// ### Custom Pushpins + /// + /// To use a custom pushpin image, use the word 'custom' as the pin style name, + /// and then specify a URL after the + /// location and label information. Use two pipe characters to indicate that + /// you're done specifying locations and are + /// starting the URL. For example, + /// + /// `pins=custom||-122 45||http://contoso.com/pushpins/red.png` + /// + /// After URL encoding, this would look like + /// + /// `pins=custom%7C%7C-122+45%7C%7Chttp%3A%2F%2Fcontoso.com%2Fpushpins%2Fred.png` + /// + /// By default, custom pushpin images are drawn centered at the pin + /// coordinates. This usually isn't ideal as it obscures + /// the location that you're trying to highlight. To override the anchor + /// location of the pin image, use the 'an' + /// style modifier. This uses the same format as the 'la' label anchor style + /// modifier. For example, if your custom + /// pin image has the tip of the pin at the top left corner of the image, you + /// can set the anchor to that spot by + /// using + /// + /// `pins=custom|an0 0||-122 45||http://contoso.com/pushpins/red.png` + /// + /// Note: If you use the 'co' color modifier with a custom pushpin image, the + /// specified color will replace the RGB + /// channels of the pixels in the image but will leave the alpha (opacity) + /// channel unchanged. This would usually + /// only be done with a solid-color custom image. + /// + /// ### Getting Pushpins from Azure Maps Data Storage + /// + /// For all Azure Maps account SKUs other than S0, + /// the pushpin image and location information can be obtained from Azure Maps + /// Data Storage. After uploading a pushpin image + /// or a GeoJSON document containing pin locations, the Data Storage service + /// returns a Unique Data ID (UDID) that you can use + /// to reference the data in the pins parameter. + /// + /// To use a custom pushpin image from Azure Maps Data Storage, specify the + /// UDID prefixed by 'udid-' as the name of the + /// pushpin style. For example, + /// + /// `pins=udid-fe22c504-3a81-4fcd-adc6-a3507ce866c1||-122 45` + /// + /// To use the point geometry from an uploaded GeoJSON document as the pin + /// locations, specify the UDID in the locations + /// section of the pins parameter. For example, + /// + /// `pins=default||udid-29dc105a-dee7-409f-a3f9-22b066ae4713` + /// + /// Note that + /// only point and multipoint geometry, points and multipoints from geometry + /// collections, and point geometry from features + /// will be used. Linestring and polygon geometry will be ignored. If the point + /// comes from a feature and the feature + /// has a string property called "label", the value of that property will be + /// used as the label for the pin. + /// + /// You can mix pin locations from Data Storage and pin locations specified in + /// the pins parameter. Any of the pipe-delimited + /// pin locations can be a longitude and latitude or a UDID. For example, + /// + /// `pins=default||-122 45|udid-29dc105a-dee7-409f-a3f9-22b066ae4713|-119 43` + /// + /// ### Scale, Rotation, and Opacity + /// + /// You can make pushpins and their labels larger or smaller by using the 'sc' + /// scale style modifier. This is a + /// value greater than zero. A value of 1 is the standard scale. Values larger + /// than 1 will make the pins larger, and + /// values smaller than 1 will make them smaller. For example, to draw the + /// pushpins 50% larger than normal, use + /// + /// `pins=default|sc1.5||-122 45` + /// + /// You can rotate pushpins and their labels by using the 'ro' rotation style + /// modifier. This is a number of degrees + /// of clockwise rotation. Use a negative number to rotate counter-clockwise. + /// For example, to rotate the pushpins + /// 90 degrees clockwise and double their size, use + /// + /// `pins=default|ro90|sc2||-122 45` + /// + /// You can make pushpins and their labels partially transparent by specifying + /// the 'al' alpha style modifier. + /// This is a number between 0 and 1 indicating the opacity of the pushpins. + /// Zero makes them completely transparent + /// (and not visible) and 1 makes them completely opaque (which is the + /// default). For example, to make pushpins + /// and their labels only 67% opaque, use + /// + /// `pins=default|al.67||-122 45` + /// + /// ### Style Modifier Summary + /// + /// Modifier | Description | Range + /// :--------:|-----------------|------------------ + /// al | Alpha (opacity) | 0 to 1 + /// an | Pin anchor | * + /// co | Pin color | 000000 to FFFFFF + /// la | Label anchor | * + /// lc | Label color | 000000 to FFFFFF + /// ls | Label size | Greater than 0 + /// ro | Rotation | -360 to 360 + /// sc | Scale | Greater than 0 + /// + /// * X and Y coordinates can be anywhere within pin image or a margin around + /// it. + /// The margin size is the minimum of the pin width and height. + /// + /// + /// Path style and locations. Use this parameter to optionally add lines, + /// polygons or circles to the image. + /// The path style describes the appearance of the line and fill. (Be sure to + /// properly URL-encode values of this + /// parameter since it will contain reserved characters such as pipes and + /// punctuation.) + /// + /// Path parameter is supported in Azure Maps account SKU starting with S1. + /// Multiple instances of the path parameter + /// allow to specify multiple geometries with their styles. Number of + /// parameters per request is limited to 10 and + /// number of locations is limited to 100 per path. + /// + /// To render a circle with radius 100 meters and center point at latitude 45°N + /// and longitude 122°W using the default style, add the + /// querystring parameter + /// + /// `path=ra100||-122 45` + /// + /// Note that the longitude comes before the latitude. + /// After URL encoding this will look like + /// + /// `path=ra100%7C%7C-122+45` + /// + /// All of the examples here show the path parameter without URL encoding, for + /// clarity. + /// + /// To render a line, separate each location with a pipe character. For + /// example, use + /// + /// `path=||-122 45|-119.5 43.2|-121.67 47.12` + /// + /// To render a polygon, last location must be equal to the start location. For + /// example, use + /// + /// `path=||-122 45|-119.5 43.2|-121.67 47.12|-122 45` + /// + /// Longitude and latitude values for locations of lines and polygons can be in + /// the range from -360 to 360 to allow for rendering of geometries crossing + /// the anti-meridian. + /// + /// ### Style Modifiers + /// + /// You can modify the appearance of the path by adding style modifiers. These + /// are added before the locations. + /// Style modifiers each have a two-letter name. These abbreviated names are + /// used to help reduce the length + /// of the URL. + /// + /// To change the color of the outline, use the 'lc' style modifier and specify + /// the color using the HTML/CSS RGB color + /// format which is a six-digit hexadecimal number (the three-digit form is not + /// supported). For example, to use + /// a deep pink color which you would specify as #FF1493 in CSS, use + /// + /// `path=lcFF1493||-122 45|-119.5 43.2` + /// + /// Multiple style modifiers may be combined together to create a more complex + /// visual style. + /// + /// `lc0000FF|lw3|la0.60|fa0.50||-122.2 47.6|-122.2 47.7|-122.3 47.7|-122.3 + /// 47.6|-122.2 47.6` + /// + /// ### Getting Path locations from Azure Maps Data Storage + /// + /// For all Azure Maps account SKUs other than S0, the path location + /// information can be obtained from Azure Maps Data Storage. + /// After uploading a GeoJSON document containing path locations, the Data + /// Storage service returns a Unique Data ID (UDID) that you can use + /// to reference the data in the path parameter. + /// + /// To use the point geometry from an uploaded GeoJSON document as the path + /// locations, specify the UDID in the locations + /// section of the path parameter. For example, + /// + /// `path=||udid-29dc105a-dee7-409f-a3f9-22b066ae4713` + /// + /// Note the it is not allowed to mix path locations from Data Storage with + /// locations specified in the path parameter. + /// + /// ### Style Modifier Summary + /// + /// Modifier | Description | Range + /// :--------:|------------------------|------------------ + /// lc | Line color | 000000 to FFFFFF + /// fc | Fill color | 000000 to FFFFFF + /// la | Line alpha (opacity) | 0 to 1 + /// fa | Fill alpha (opacity) | 0 to 1 + /// lw | Line width | Greater than 0 + /// ra | Circle radius (meters) | Greater than 0 + /// + /// + /// The cancellation token. + /// + public static async Task GetMapStaticImageAsync(this IRenderOperations operations, string layer = default(string), string style = default(string), int? zoom = default(int?), string center = default(string), string bbox = default(string), int? height = default(int?), int? width = default(int?), string language = default(string), string view = default(string), IList pins = default(IList), IList path = default(IList), CancellationToken cancellationToken = default(CancellationToken)) + { + var _result = await operations.GetMapStaticImageWithHttpMessagesAsync(layer, style, zoom, center, bbox, height, width, language, view, pins, path, null, cancellationToken).ConfigureAwait(false); + _result.Request.Dispose(); + return _result.Body; + } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// Fetches map tiles in vector or raster format typically to be integrated + /// into a new map control or SDK. By default, Azure uses vector map tiles for + /// its web map control (see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid)) + /// + /// **Note**: Weather tiles are only available via [Get Map Tile V2 + /// API](https://aka.ms/AzureMapsWeatherTiles). We recommend to start to use + /// the new [Get Map Tile V2 API](https://aka.ms/GetMapTileV2). + /// + /// + /// The operations group for this extension method. + /// + /// + /// Desired format of the response. Possible values are png & pbf. Possible + /// values include: 'png', 'pbf' + /// + /// + /// Map layer requested. Possible values are basic, hybrid, labels and terra. + /// Possible values include: 'basic', 'hybrid', 'labels', 'terra' + /// + /// + /// Map style to be returned. Possible values are main, dark, and + /// shaded_relief. Possible values include: 'main', 'dark', 'shaded_relief' + /// + /// + /// Zoom level for the desired tile. For _raster_ tiles, value must be in the + /// range: 0-18 (inclusive). Terra raster tiles, values must be in the range + /// 0-6 (inclusive). For _vector_ tiles, value must be in the range: 0-22 + /// (inclusive). + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// The size of the returned map tile in pixels. Possible values include: + /// '256', '512' + /// + /// + /// Language in which search results should be returned. Should be one of + /// supported IETF language tags, case insensitive. When data in specified + /// language is not available for a specific field, default language is used. + /// + /// Please refer to [Supported + /// Languages](https://docs.microsoft.com/en-us/azure/azure-maps/supported-languages) + /// for details. + /// + /// + /// The View parameter specifies which set of geopolitically disputed content + /// is returned via Azure Maps services, including borders and labels + /// displayed on the map. The View parameter (also referred to as “user region + /// parameter”) will show the correct maps for that country/region. By + /// default, the View parameter is set to “Unified” even if you haven’t defined + /// it in the request. It is your responsibility to determine the location of + /// your users, and then set the View parameter correctly for that location. + /// Alternatively, you have the option to set ‘View=Auto’, which will return + /// the map data based on the IP address of the request. The View parameter in + /// Azure Maps must be used in compliance with applicable laws, including those + /// regarding mapping, of the country where maps, images and other data and + /// third party content that you are authorized to access via Azure Maps is + /// made available. Example: view=IN. + /// + /// Please refer to [Supported + /// Views](https://aka.ms/AzureMapsLocalizationViews) for details and to see + /// the available Views. + /// + /// + /// The cancellation token. + /// + public static async Task GetMapTileAsync(this IRenderOperations operations, string format, string layer, string style, int zoom, int xTileIndex, int yTileIndex, string tileSize = default(string), string language = default(string), string view = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + var _result = await operations.GetMapTileWithHttpMessagesAsync(format, layer, style, zoom, xTileIndex, yTileIndex, tileSize, language, view, null, cancellationToken).ConfigureAwait(false); + _result.Request.Dispose(); + return _result.Body; + } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// Fetches state tiles in vector format typically to be integrated into indoor + /// maps module of map control or SDK. The map control will call this API after + /// user turns on dynamic styling (see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid)) + /// + /// + /// The operations group for this extension method. + /// + /// + /// Zoom level for the desired tile. Zoom value must be in the range: 0-20 + /// (inclusive). + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// The stateset id. + /// + /// + /// The cancellation token. + /// + public static async Task GetMapStateTilePreviewAsync(this IRenderOperations operations, int zoom, int xTileIndex, int yTileIndex, string statesetId, CancellationToken cancellationToken = default(CancellationToken)) + { + var _result = await operations.GetMapStateTilePreviewWithHttpMessagesAsync(zoom, xTileIndex, yTileIndex, statesetId, null, cancellationToken).ConfigureAwait(false); + _result.Request.Dispose(); + return _result.Body; + } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// + /// Copyrights API is designed to serve copyright information for Render Tile + /// service. In addition to basic copyright for the whole map, API is serving + /// specific groups of copyrights for some countries. + /// + /// As an alternative to copyrights for map request, one can receive captions + /// for displaying the map provider information on the map. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Desired format of the response. Value can be either _json_ or _xml_. + /// Possible values include: 'json', 'xml' + /// + /// + /// The cancellation token. + /// + public static async Task GetCopyrightCaptionAsync(this IRenderOperations operations, string format, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetCopyrightCaptionWithHttpMessagesAsync(format, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// **Applies to:** S1 pricing tier. + /// + /// + /// This service returns a map image tile with size 256x256, given the x and y + /// coordinates and zoom + /// level. Zoom level ranges from 1 to 19. The current available style value is + /// 'satellite' which provides satellite + /// imagery alone. + /// + /// + /// **Note**: We recommend to start to use the new [Get Map Tile V2 + /// API](https://aka.ms/GetMapTileV2). + /// + /// + /// The operations group for this extension method. + /// + /// + /// Zoom level for the desired tile. Zoom value must be in the range: 1-19 + /// (inclusive). + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// The cancellation token. + /// + public static async Task GetMapImageryTileAsync(this IRenderOperations operations, int zoom, int xTileIndex, int yTileIndex, CancellationToken cancellationToken = default(CancellationToken)) + { + var _result = await operations.GetMapImageryTileWithHttpMessagesAsync(zoom, xTileIndex, yTileIndex, null, cancellationToken).ConfigureAwait(false); + _result.Request.Dispose(); + return _result.Body; + } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// Returns copyright information for a given bounding box. Bounding-box + /// requests should specify the minimum and maximum longitude and latitude + /// (EPSG-3857) coordinates + /// + /// + /// The operations group for this extension method. + /// + /// + /// Desired format of the response. Value can be either _json_ or _xml_. + /// Possible values include: 'json', 'xml' + /// + /// + /// Minimum coordinates of bounding box in latitude longitude coordinate + /// system. E.g. 52.41064,4.84228 + /// + /// + /// Maximum coordinates of bounding box in latitude longitude coordinate + /// system. E.g. 52.41064,4.84228 + /// + /// + /// Yes/no value to exclude textual data from response. Only images and country + /// names will be in response. Possible values include: 'yes', 'no' + /// + /// + /// The cancellation token. + /// + public static async Task GetCopyrightFromBoundingBoxAsync(this IRenderOperations operations, string format, string mincoordinates, string maxcoordinates, string text = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetCopyrightFromBoundingBoxWithHttpMessagesAsync(format, mincoordinates, maxcoordinates, text, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// + /// Copyrights API is designed to serve copyright information for Render Tile + /// service. In addition to basic copyright for the whole map, API is serving + /// specific groups of copyrights for some countries. + /// Returns the copyright information for a given tile. To obtain the copyright + /// information for a particular tile, the request should specify the tile's + /// zoom level and x and y coordinates (see: Zoom Levels and Tile Grid). + /// + /// + /// The operations group for this extension method. + /// + /// + /// Desired format of the response. Value can be either _json_ or _xml_. + /// Possible values include: 'json', 'xml' + /// + /// + /// Zoom level for the desired tile. Zoom value must be in the range: 0-18 + /// (inclusive). + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Yes/no value to exclude textual data from response. Only images and country + /// names will be in response. Possible values include: 'yes', 'no' + /// + /// + /// The cancellation token. + /// + public static async Task GetCopyrightForTileAsync(this IRenderOperations operations, string format, int zoom, int xTileIndex, int yTileIndex, string text = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetCopyrightForTileWithHttpMessagesAsync(format, zoom, xTileIndex, yTileIndex, text, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// + /// Copyrights API is designed to serve copyright information for Render Tile + /// service. In addition to basic copyright for the whole map, API is serving + /// specific groups of copyrights for some countries. + /// Returns the copyright information for the world. To obtain the default + /// copyright information for the whole world, do not specify a tile or + /// bounding box. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Desired format of the response. Value can be either _json_ or _xml_. + /// Possible values include: 'json', 'xml' + /// + /// + /// Yes/no value to exclude textual data from response. Only images and country + /// names will be in response. Possible values include: 'yes', 'no' + /// + /// + /// The cancellation token. + /// + public static async Task GetCopyrightForWorldAsync(this IRenderOperations operations, string format, string text = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetCopyrightForWorldWithHttpMessagesAsync(format, text, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/RenderV2.cs b/sdk/maps/Azure.Maps.Render/src/Generated/RenderV2.cs new file mode 100644 index 000000000000..786b13bd9dad --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/RenderV2.cs @@ -0,0 +1,344 @@ +// +// 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. +// + +namespace Azure.Maps.Render +{ + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// RenderV2 operations. + /// + public partial class RenderV2 : IServiceOperations, IRenderV2 + { + /// + /// Initializes a new instance of the RenderV2 class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public RenderV2(RenderClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the RenderClient + /// + public RenderClient Client { get; private set; } + + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// The Get Map Tiles API allows users to request map tiles in vector or raster + /// formats typically to be integrated into a map control or SDK. Some example + /// tiles that can be requested are Azure Maps road tiles, real-time Weather + /// Radar tiles or the map tiles created using [Azure Maps + /// Creator](https://aka.ms/amcreator). By default, Azure Maps uses vector + /// tiles for its web map control (Web SDK) and Android SDK. + /// + /// + /// A tileset is a collection of raster or vector data broken up into a uniform + /// grid of square tiles at preset zoom levels. Every tileset has a + /// **tilesetId** to use when making requests. The **tilesetId** for tilesets + /// created using [Azure Maps Creator](https://aka.ms/amcreator) are generated + /// through the [Tileset Create + /// API](https://docs.microsoft.com/en-us/rest/api/maps/tileset). The + /// ready-to-use tilesets supplied by Azure Maps are listed below. For + /// example, microsoft.base. Possible values include: 'microsoft.base', + /// 'microsoft.base.labels', 'microsoft.base.hybrid', 'microsoft.terra.main', + /// 'microsoft.base.road', 'microsoft.base.darkgrey', + /// 'microsoft.base.labels.road', 'microsoft.base.hybrid.road', + /// 'microsoft.imagery', 'microsoft.weather.radar.main', + /// 'microsoft.weather.infrared.main', 'microsoft.dem' + /// + /// + /// Zoom level for the desired tile. Please find TilesetID list below for more + /// details on supported zoom level for each tilesetId.<br> + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// The desired date and time of the requested tile. This parameter must be + /// specified in the standard date-time format (e.g. + /// 2019-11-14T16:03:00-08:00), as defined by [ISO + /// 8601](https://en.wikipedia.org/wiki/ISO_8601). This parameter is only + /// supported when tilesetId parameter is set to one of the values below. + /// + /// * microsoft.weather.infrared.main: We provide tiles up to 3 hours in the + /// past. Tiles are available in 10-minute intervals. We round the timeStamp + /// value to the nearest 10-minute time frame. + /// * microsoft.weather.radar.main: We provide tiles up to 1.5 hours in the + /// past and up to 2 hours in the future. Tiles are available in 5-minute + /// intervals. We round the timeStamp value to the nearest 5-minute time frame. + /// + /// + /// The size of the returned map tile in pixels. Possible values include: + /// '256', '512' + /// + /// + /// Language in which search results should be returned. Should be one of + /// supported IETF language tags, case insensitive. When data in specified + /// language is not available for a specific field, default language is used. + /// + /// Please refer to [Supported + /// Languages](https://docs.microsoft.com/en-us/azure/azure-maps/supported-languages) + /// for details. + /// + /// + /// The View parameter specifies which set of geopolitically disputed content + /// is returned via Azure Maps services, including borders and labels + /// displayed on the map. The View parameter (also referred to as “user region + /// parameter”) will show the correct maps for that country/region. By + /// default, the View parameter is set to “Unified” even if you haven’t defined + /// it in the request. It is your responsibility to determine the location of + /// your users, and then set the View parameter correctly for that location. + /// Alternatively, you have the option to set ‘View=Auto’, which will return + /// the map data based on the IP address of the request. The View parameter in + /// Azure Maps must be used in compliance with applicable laws, including those + /// regarding mapping, of the country where maps, images and other data and + /// third party content that you are authorized to access via Azure Maps is + /// made available. Example: view=IN. + /// + /// Please refer to [Supported + /// Views](https://aka.ms/AzureMapsLocalizationViews) for details and to see + /// the available Views. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetMapTilePreviewWithHttpMessagesAsync(string tilesetId, int zoom, int xTileIndex, int yTileIndex, string timeStamp = default(string), string tileSize = default(string), string language = default(string), string view = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.Geography == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.Geography"); + } + if (tilesetId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "tilesetId"); + } + string apiVersion = "2.0"; + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("apiVersion", apiVersion); + tracingParameters.Add("tilesetId", tilesetId); + tracingParameters.Add("zoom", zoom); + tracingParameters.Add("xTileIndex", xTileIndex); + tracingParameters.Add("yTileIndex", yTileIndex); + tracingParameters.Add("timeStamp", timeStamp); + tracingParameters.Add("tileSize", tileSize); + tracingParameters.Add("language", language); + tracingParameters.Add("view", view); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetMapTilePreview", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "map/tile"; + _url = _url.Replace("{geography}", System.Uri.EscapeDataString(Client.Geography)); + List _queryParameters = new List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (tilesetId != null) + { + _queryParameters.Add(string.Format("tilesetId={0}", System.Uri.EscapeDataString(tilesetId))); + } + _queryParameters.Add(string.Format("zoom={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(zoom, Client.SerializationSettings).Trim('"')))); + _queryParameters.Add(string.Format("x={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(xTileIndex, Client.SerializationSettings).Trim('"')))); + _queryParameters.Add(string.Format("y={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(yTileIndex, Client.SerializationSettings).Trim('"')))); + if (timeStamp != null) + { + _queryParameters.Add(string.Format("timeStamp={0}", System.Uri.EscapeDataString(timeStamp))); + } + if (tileSize != null) + { + _queryParameters.Add(string.Format("tileSize={0}", System.Uri.EscapeDataString(tileSize))); + } + if (language != null) + { + _queryParameters.Add(string.Format("language={0}", System.Uri.EscapeDataString(language))); + } + if (view != null) + { + _queryParameters.Add(string.Format("view={0}", System.Uri.EscapeDataString(view))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.XMsClientId != null) + { + if (_httpRequest.Headers.Contains("x-ms-client-id")) + { + _httpRequest.Headers.Remove("x-ms-client-id"); + } + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-id", Client.XMsClientId); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _result.Body = await _httpResponse.Content.ReadAsStreamAsync().ConfigureAwait(false); + } + try + { + _result.Headers = _httpResponse.GetHeadersAsJson().ToObject(JsonSerializer.Create(Client.DeserializationSettings)); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the headers.", _httpResponse.GetHeadersAsJson().ToString(), ex); + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/RenderV2Extensions.cs b/sdk/maps/Azure.Maps.Render/src/Generated/RenderV2Extensions.cs new file mode 100644 index 000000000000..8bad344e152e --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/RenderV2Extensions.cs @@ -0,0 +1,132 @@ +// +// 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. +// + +namespace Azure.Maps.Render +{ + using Models; + using System.IO; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for RenderV2. + /// + public static partial class RenderV2Extensions + { + /// + /// **Applies to**: S0 and S1 pricing tiers. + /// + /// The Get Map Tiles API allows users to request map tiles in vector or raster + /// formats typically to be integrated into a map control or SDK. Some example + /// tiles that can be requested are Azure Maps road tiles, real-time Weather + /// Radar tiles or the map tiles created using [Azure Maps + /// Creator](https://aka.ms/amcreator). By default, Azure Maps uses vector + /// tiles for its web map control (Web SDK) and Android SDK. + /// + /// + /// The operations group for this extension method. + /// + /// + /// A tileset is a collection of raster or vector data broken up into a uniform + /// grid of square tiles at preset zoom levels. Every tileset has a + /// **tilesetId** to use when making requests. The **tilesetId** for tilesets + /// created using [Azure Maps Creator](https://aka.ms/amcreator) are generated + /// through the [Tileset Create + /// API](https://docs.microsoft.com/en-us/rest/api/maps/tileset). The + /// ready-to-use tilesets supplied by Azure Maps are listed below. For + /// example, microsoft.base. Possible values include: 'microsoft.base', + /// 'microsoft.base.labels', 'microsoft.base.hybrid', 'microsoft.terra.main', + /// 'microsoft.base.road', 'microsoft.base.darkgrey', + /// 'microsoft.base.labels.road', 'microsoft.base.hybrid.road', + /// 'microsoft.imagery', 'microsoft.weather.radar.main', + /// 'microsoft.weather.infrared.main', 'microsoft.dem' + /// + /// + /// Zoom level for the desired tile. Please find TilesetID list below for more + /// details on supported zoom level for each tilesetId.<br> + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// X coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// Y coordinate of the tile on zoom grid. Value must be in the range [0, + /// 2<sup>`zoom`</sup> -1]. + /// + /// Please see [Zoom Levels and Tile + /// Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) + /// for details. + /// + /// + /// The desired date and time of the requested tile. This parameter must be + /// specified in the standard date-time format (e.g. + /// 2019-11-14T16:03:00-08:00), as defined by [ISO + /// 8601](https://en.wikipedia.org/wiki/ISO_8601). This parameter is only + /// supported when tilesetId parameter is set to one of the values below. + /// + /// * microsoft.weather.infrared.main: We provide tiles up to 3 hours in the + /// past. Tiles are available in 10-minute intervals. We round the timeStamp + /// value to the nearest 10-minute time frame. + /// * microsoft.weather.radar.main: We provide tiles up to 1.5 hours in the + /// past and up to 2 hours in the future. Tiles are available in 5-minute + /// intervals. We round the timeStamp value to the nearest 5-minute time frame. + /// + /// + /// The size of the returned map tile in pixels. Possible values include: + /// '256', '512' + /// + /// + /// Language in which search results should be returned. Should be one of + /// supported IETF language tags, case insensitive. When data in specified + /// language is not available for a specific field, default language is used. + /// + /// Please refer to [Supported + /// Languages](https://docs.microsoft.com/en-us/azure/azure-maps/supported-languages) + /// for details. + /// + /// + /// The View parameter specifies which set of geopolitically disputed content + /// is returned via Azure Maps services, including borders and labels + /// displayed on the map. The View parameter (also referred to as “user region + /// parameter”) will show the correct maps for that country/region. By + /// default, the View parameter is set to “Unified” even if you haven’t defined + /// it in the request. It is your responsibility to determine the location of + /// your users, and then set the View parameter correctly for that location. + /// Alternatively, you have the option to set ‘View=Auto’, which will return + /// the map data based on the IP address of the request. The View parameter in + /// Azure Maps must be used in compliance with applicable laws, including those + /// regarding mapping, of the country where maps, images and other data and + /// third party content that you are authorized to access via Azure Maps is + /// made available. Example: view=IN. + /// + /// Please refer to [Supported + /// Views](https://aka.ms/AzureMapsLocalizationViews) for details and to see + /// the available Views. + /// + /// + /// The cancellation token. + /// + public static async Task GetMapTilePreviewAsync(this IRenderV2 operations, string tilesetId, int zoom, int xTileIndex, int yTileIndex, string timeStamp = default(string), string tileSize = default(string), string language = default(string), string view = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + var _result = await operations.GetMapTilePreviewWithHttpMessagesAsync(tilesetId, zoom, xTileIndex, yTileIndex, timeStamp, tileSize, language, view, null, cancellationToken).ConfigureAwait(false); + _result.Request.Dispose(); + return _result.Body; + } + + } +} diff --git a/sdk/maps/Azure.Maps.Render/src/Generated/SdkInfo_RenderClient.cs b/sdk/maps/Azure.Maps.Render/src/Generated/SdkInfo_RenderClient.cs new file mode 100644 index 000000000000..8e4ef29da2ec --- /dev/null +++ b/sdk/maps/Azure.Maps.Render/src/Generated/SdkInfo_RenderClient.cs @@ -0,0 +1,28 @@ + +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Azure.Maps.Render +{ + using System; + using System.Collections.Generic; + using System.Linq; + + internal static partial class SdkInfo + { + public static IEnumerable> ApiInfo_RenderClient + { + get + { + return new Tuple[] + { + new Tuple("RenderClient", "Render", "1.0"), + new Tuple("RenderClient", "RenderV2", "2.0"), + }.AsEnumerable(); + } + } + } +}