From 26bb8a1c8512c1d0d7d877a5e990294b5d80f2c6 Mon Sep 17 00:00:00 2001 From: alankashiwa Date: Thu, 30 Jun 2022 16:20:49 +0800 Subject: [PATCH] Route model fixes #2 + geojson named tuples --- sdk/maps/maps-common/src/models/geojsons.ts | 20 +++++++++++++++---- sdk/maps/maps-render/package.json | 2 +- .../maps-render/review/maps-render.api.md | 3 ++- sdk/maps/maps-route/package.json | 2 +- sdk/maps/maps-route/review/maps-route.api.md | 11 +++++----- sdk/maps/maps-route/samples-dev/route.ts | 2 +- .../maps-route/src/generated/models/index.ts | 2 +- .../src/generated/models/parameters.ts | 4 ++-- .../generated/operations/routeOperations.ts | 2 +- sdk/maps/maps-route/src/models/options.ts | 10 +++++----- sdk/maps/maps-route/swagger/README.md | 6 ++++++ .../test/public/mapsRouteClient.spec.ts | 2 +- sdk/maps/maps-search/package.json | 2 +- .../maps-search/review/maps-search.api.md | 9 ++++----- 14 files changed, 47 insertions(+), 30 deletions(-) diff --git a/sdk/maps/maps-common/src/models/geojsons.ts b/sdk/maps/maps-common/src/models/geojsons.ts index 76d264e7d957..157bc0c602b7 100644 --- a/sdk/maps/maps-common/src/models/geojsons.ts +++ b/sdk/maps/maps-common/src/models/geojsons.ts @@ -17,9 +17,21 @@ export type GeometryType = export type GeoJsonType = GeometryType | "Feature" | "FeatureCollection"; /** 2D bounding box */ -export type BBox2D = [number, number, number, number]; +export type BBox2D = [ + southwestLongitude: number, + southwestLatitude: number, + northeastLongitude: number, + northeastLatitude: number +]; /** 3D bounding box */ -export type BBox3D = [number, number, number, number, number, number]; +export type BBox3D = [ + southwestLongitude: number, + southwestLatitude: number, + southwestElevation: number, + northeastLongitude: number, + northeastLatitude: number, + northeastElevation: number +]; /** Bounding box including information on the coordinate range for its geometries */ export type BBox = BBox2D | BBox3D; @@ -29,9 +41,9 @@ export interface GeoJsonObject { bbox?: BBox; } /** 2D position */ -export type Position2D = [number, number]; +export type Position2D = [longitude: number, latitude: number]; /** 3D position */ -export type Position3D = [number, number, number]; +export type Position3D = [longitude: number, latitude: number, elevation: number]; /** An array of number representing a point */ export type Position = Position2D | Position3D; diff --git a/sdk/maps/maps-render/package.json b/sdk/maps/maps-render/package.json index cac5b4cc3c4f..ae014f8ac463 100644 --- a/sdk/maps/maps-render/package.json +++ b/sdk/maps/maps-render/package.json @@ -95,7 +95,7 @@ "@azure/identity": "2.0.0-beta.6", "@azure/test-utils": "^1.0.0", "@azure-tools/test-recorder": "^1.0.0", - "@microsoft/api-extractor": "7.7.11", + "@microsoft/api-extractor": "7.18.11", "@types/chai": "^4.1.6", "@types/chai-as-promised": "^7.1.0", "@types/mocha": "^7.0.2", diff --git a/sdk/maps/maps-render/review/maps-render.api.md b/sdk/maps/maps-render/review/maps-render.api.md index 19e3655ed413..13ed62c612e3 100644 --- a/sdk/maps/maps-render/review/maps-render.api.md +++ b/sdk/maps/maps-render/review/maps-render.api.md @@ -4,6 +4,8 @@ ```ts +/// + import { AzureKeyCredential } from '@azure/core-auth'; import { CommonClientOptions } from '@azure/core-client'; import { OperationOptions } from '@azure/core-client'; @@ -251,7 +253,6 @@ export interface TileIndex { // @public export type TilesetID = string; - // (No @packageDocumentation comment for this package) ``` diff --git a/sdk/maps/maps-route/package.json b/sdk/maps/maps-route/package.json index c32467fe2aaa..dcd81440fee4 100644 --- a/sdk/maps/maps-route/package.json +++ b/sdk/maps/maps-route/package.json @@ -95,7 +95,7 @@ "@azure/identity": "2.0.0-beta.6", "@azure/test-utils": "^1.0.0", "@azure-tools/test-recorder": "^1.0.0", - "@microsoft/api-extractor": "7.7.11", + "@microsoft/api-extractor": "7.18.11", "@types/chai": "^4.1.6", "@types/chai-as-promised": "^7.1.0", "@types/mocha": "^7.0.2", diff --git a/sdk/maps/maps-route/review/maps-route.api.md b/sdk/maps/maps-route/review/maps-route.api.md index ba96decb5e93..f6a20f4a8f4a 100644 --- a/sdk/maps/maps-route/review/maps-route.api.md +++ b/sdk/maps/maps-route/review/maps-route.api.md @@ -44,10 +44,10 @@ export interface BatchResult { export type BBox = BBox2D | BBox3D; // @public -export type BBox2D = [number, number, number, number]; +export type BBox2D = [southwestLongitude: number, southwestLatitude: number, northeastLongitude: number, northeastLatitude: number]; // @public -export type BBox3D = [number, number, number, number, number, number]; +export type BBox3D = [southwestLongitude: number, southwestLatitude: number, southwestElevation: number, northeastLongitude: number, northeastLatitude: number, northeastElevation: number]; // @public export type ComputeTravelTime = string; @@ -402,10 +402,10 @@ export type MapsRouteClientOptions = CommonClientOptions; export type Position = Position2D | Position3D; // @public -export type Position2D = [number, number]; +export type Position2D = [longitude: number, latitude: number]; // @public -export type Position3D = [number, number, number]; +export type Position3D = [longitude: number, latitude: number, elevation: number]; // @public export type Report = string; @@ -619,7 +619,7 @@ export type RouteRangeBudget = { } | { energyBudgetInKwH: number; } | { - timeBudgetInSec: number; + timeBudgetInSeconds: number; } | { distanceBudgetInMeters: number; }; @@ -697,7 +697,6 @@ export type VehicleLoadType = string; // @public export type WindingnessLevel = string; - // (No @packageDocumentation comment for this package) ``` diff --git a/sdk/maps/maps-route/samples-dev/route.ts b/sdk/maps/maps-route/samples-dev/route.ts index 6a99315fea96..a72a749b670b 100644 --- a/sdk/maps/maps-route/samples-dev/route.ts +++ b/sdk/maps/maps-route/samples-dev/route.ts @@ -116,7 +116,7 @@ async function main() { console.log(getRouteDirectionsResult); console.log(" --- Get route range:"); - const routeRangeBudget: RouteRangeBudget = { timeBudgetInSec: 6000 }; + const routeRangeBudget: RouteRangeBudget = { timeBudgetInSeconds: 6000 }; const routeRangeResult = await client.getRouteRange( { latitude: 50.97452, longitude: 5.86605 }, diff --git a/sdk/maps/maps-route/src/generated/models/index.ts b/sdk/maps/maps-route/src/generated/models/index.ts index 7aa33ce5ca06..218cfe9ee431 100644 --- a/sdk/maps/maps-route/src/generated/models/index.ts +++ b/sdk/maps/maps-route/src/generated/models/index.ts @@ -2234,7 +2234,7 @@ export interface RouteGetRouteRangeOptionalParams /** Electric energy budget in kilowatt hours (kWh) that determines maximal range which can be travelled using the specified Electric Consumption Model.
When energyBudgetInkWh is used, it is mandatory to specify a detailed Electric Consumption Model.
Exactly one budget (fuelBudgetInLiters, energyBudgetInkWh, timeBudgetInSec, or distanceBudgetInMeters) must be used. */ energyBudgetInKwH?: number; /** Time budget in seconds that determines maximal range which can be travelled using driving time. The Consumption Model will only affect the range when routeType is eco.
Exactly one budget (fuelBudgetInLiters, energyBudgetInkWh, timeBudgetInSec, or distanceBudgetInMeters) must be used. */ - timeBudgetInSec?: number; + timeBudgetInSeconds?: number; /** Distance budget in meters that determines maximal range which can be travelled using driving distance. The Consumption Model will only affect the range when routeType is eco.
Exactly one budget (fuelBudgetInLiters, energyBudgetInkWh, timeBudgetInSec, or distanceBudgetInMeters) must be used. */ distanceBudgetInMeters?: number; } diff --git a/sdk/maps/maps-route/src/generated/models/parameters.ts b/sdk/maps/maps-route/src/generated/models/parameters.ts index 800213c45dc4..d9058c9f6b7e 100644 --- a/sdk/maps/maps-route/src/generated/models/parameters.ts +++ b/sdk/maps/maps-route/src/generated/models/parameters.ts @@ -627,8 +627,8 @@ export const energyBudgetInKwH: OperationQueryParameter = { } }; -export const timeBudgetInSec: OperationQueryParameter = { - parameterPath: ["options", "timeBudgetInSec"], +export const timeBudgetInSeconds: OperationQueryParameter = { + parameterPath: ["options", "timeBudgetInSeconds"], mapper: { serializedName: "timeBudgetInSec", type: { diff --git a/sdk/maps/maps-route/src/generated/operations/routeOperations.ts b/sdk/maps/maps-route/src/generated/operations/routeOperations.ts index 9a3bbd674e08..571bb84351d8 100644 --- a/sdk/maps/maps-route/src/generated/operations/routeOperations.ts +++ b/sdk/maps/maps-route/src/generated/operations/routeOperations.ts @@ -1926,7 +1926,7 @@ const getRouteRangeOperationSpec: coreClient.OperationSpec = { Parameters.query, Parameters.fuelBudgetInLiters, Parameters.energyBudgetInKwH, - Parameters.timeBudgetInSec, + Parameters.timeBudgetInSeconds, Parameters.distanceBudgetInMeters ], urlParameters: [Parameters.$host, Parameters.format1], diff --git a/sdk/maps/maps-route/src/models/options.ts b/sdk/maps/maps-route/src/models/options.ts index 04aae9022437..f3f677983ca5 100644 --- a/sdk/maps/maps-route/src/models/options.ts +++ b/sdk/maps/maps-route/src/models/options.ts @@ -295,7 +295,7 @@ export type RouteRangeBudget = * Fuel budget in liters that determines maximal range which can be travelled using the specified Combustion Consumption Model. * When fuelBudgetInLiters is used, it is mandatory to specify a detailed Combustion Consumption Model. * - * Exactly one budget (fuelBudgetInLiters, energyBudgetInKwH, timeBudgetInSec, or distanceBudgetInMeters) must be used. + * Exactly one budget (fuelBudgetInLiters, energyBudgetInKwH, timeBudgetInSeconds, or distanceBudgetInMeters) must be used. */ fuelBudgetInLiters: number; } @@ -304,7 +304,7 @@ export type RouteRangeBudget = * Electric energy budget in kilowatt hours (kWh) that determines maximal range which can be travelled using the specified Electric Consumption Model. * When energyBudgetInkWh is used, it is mandatory to specify a detailed Electric Consumption Model. * - * Exactly one budget (fuelBudgetInLiters, energyBudgetInKwH, timeBudgetInSec, or distanceBudgetInMeters) must be used. + * Exactly one budget (fuelBudgetInLiters, energyBudgetInKwH, timeBudgetInSeconds, or distanceBudgetInMeters) must be used. */ energyBudgetInKwH: number; } @@ -313,16 +313,16 @@ export type RouteRangeBudget = * Time budget in seconds that determines maximal range which can be travelled using driving time. * The Consumption Model will only affect the range when routeType is eco. * - * Exactly one budget (fuelBudgetInLiters, energyBudgetInKwH, timeBudgetInSec, or distanceBudgetInMeters) must be used. + * Exactly one budget (fuelBudgetInLiters, energyBudgetInKwH, timeBudgetInSeconds, or distanceBudgetInMeters) must be used. */ - timeBudgetInSec: number; + timeBudgetInSeconds: number; } | { /** * Distance budget in meters that determines maximal range which can be travelled using driving distance. * The Consumption Model will only affect the range when routeType is eco. * - * Exactly one budget (fuelBudgetInLiters, energyBudgetInKwH, timeBudgetInSec, or distanceBudgetInMeters) must be used. + * Exactly one budget (fuelBudgetInLiters, energyBudgetInKwH, timeBudgetInSeconds, or distanceBudgetInMeters) must be used. */ distanceBudgetInMeters: number; }; diff --git a/sdk/maps/maps-route/swagger/README.md b/sdk/maps/maps-route/swagger/README.md index 634c1b18f3d1..0fa9a022c22c 100644 --- a/sdk/maps/maps-route/swagger/README.md +++ b/sdk/maps/maps-route/swagger/README.md @@ -210,6 +210,12 @@ directive: where: $.definitions.BatchResult.properties.summary.properties.successfulRequests transform: > $["x-ms-client-name"] = "totalSuccessfulRequests"; + - from: swagger-document + where: $.paths["/route/range/{format}"].get.parameters[*] + transform: > + if ($["name"] == "timeBudgetInSec") { + $["x-ms-client-name"] = "timeBudgetInSeconds"; + }; ``` ### Model Fixes diff --git a/sdk/maps/maps-route/test/public/mapsRouteClient.spec.ts b/sdk/maps/maps-route/test/public/mapsRouteClient.spec.ts index 8c1acefc9ea2..5672bc198f19 100644 --- a/sdk/maps/maps-route/test/public/mapsRouteClient.spec.ts +++ b/sdk/maps/maps-route/test/public/mapsRouteClient.spec.ts @@ -107,7 +107,7 @@ matrix([["SubscriptionKey", "AAD"]] as const, async (authMethod: AuthMethod) => describe("#getRouteRange", function () { it("should accept LatLon and return reachable range", async function () { const startCoordinates = { latitude: 50.97452, longitude: 5.86605 }; - const routeRangeBudget = { timeBudgetInSec: 6000 }; + const routeRangeBudget = { timeBudgetInSeconds: 6000 }; const routeRangeResult = await client.getRouteRange(startCoordinates, routeRangeBudget); diff --git a/sdk/maps/maps-search/package.json b/sdk/maps/maps-search/package.json index 0230fb091d75..0af41eb56f87 100644 --- a/sdk/maps/maps-search/package.json +++ b/sdk/maps/maps-search/package.json @@ -96,7 +96,7 @@ "@azure/identity": "2.0.0-beta.6", "@azure/test-utils": "^1.0.0", "@azure-tools/test-recorder": "^1.0.0", - "@microsoft/api-extractor": "7.7.11", + "@microsoft/api-extractor": "7.18.11", "@types/chai": "^4.1.6", "@types/chai-as-promised": "^7.1.0", "@types/mocha": "^7.0.2", diff --git a/sdk/maps/maps-search/review/maps-search.api.md b/sdk/maps/maps-search/review/maps-search.api.md index bd48f66635ef..dbeb1bc1e3ec 100644 --- a/sdk/maps/maps-search/review/maps-search.api.md +++ b/sdk/maps/maps-search/review/maps-search.api.md @@ -74,10 +74,10 @@ export interface BatchResult { export type BBox = BBox2D | BBox3D; // @public -export type BBox2D = [number, number, number, number]; +export type BBox2D = [southwestLongitude: number, southwestLatitude: number, northeastLongitude: number, northeastLatitude: number]; // @public -export type BBox3D = [number, number, number, number, number, number]; +export type BBox3D = [southwestLongitude: number, southwestLatitude: number, southwestElevation: number, northeastLongitude: number, northeastLatitude: number, northeastElevation: number]; // @public export interface BoundingBox { @@ -526,10 +526,10 @@ export interface PointOfInterestCategoryTreeResult { export type Position = Position2D | Position3D; // @public -export type Position2D = [number, number]; +export type Position2D = [longitude: number, latitude: number]; // @public -export type Position3D = [number, number, number]; +export type Position3D = [longitude: number, latitude: number, elevation: number]; // @public export type QueryType = string; @@ -748,7 +748,6 @@ export interface StructuredAddress { streetNumber?: string; } - // (No @packageDocumentation comment for this package) ```