@aws-amplify/geo 1.2.4 → 1.2.5-geo.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/aws-amplify-geo.js +2145 -136
  2. package/dist/aws-amplify-geo.js.map +1 -1
  3. package/dist/aws-amplify-geo.min.js +6 -6
  4. package/dist/aws-amplify-geo.min.js.map +1 -1
  5. package/lib/Geo.d.ts +37 -4
  6. package/lib/Geo.js +153 -5
  7. package/lib/Geo.js.map +1 -1
  8. package/lib/Providers/AmazonLocationServiceProvider.d.ts +37 -1
  9. package/lib/Providers/AmazonLocationServiceProvider.js +417 -8
  10. package/lib/Providers/AmazonLocationServiceProvider.js.map +1 -1
  11. package/lib/types/AmazonLocationServiceProvider.d.ts +21 -1
  12. package/lib/types/Geo.d.ts +48 -1
  13. package/lib/types/Provider.d.ts +5 -1
  14. package/lib/types/Provider.js +0 -12
  15. package/lib/types/Provider.js.map +1 -1
  16. package/lib/util.d.ts +6 -0
  17. package/lib/util.js +142 -0
  18. package/lib/util.js.map +1 -0
  19. package/lib-esm/Geo.d.ts +37 -4
  20. package/lib-esm/Geo.js +153 -5
  21. package/lib-esm/Geo.js.map +1 -1
  22. package/lib-esm/Providers/AmazonLocationServiceProvider.d.ts +37 -1
  23. package/lib-esm/Providers/AmazonLocationServiceProvider.js +418 -9
  24. package/lib-esm/Providers/AmazonLocationServiceProvider.js.map +1 -1
  25. package/lib-esm/types/AmazonLocationServiceProvider.d.ts +21 -1
  26. package/lib-esm/types/Geo.d.ts +48 -1
  27. package/lib-esm/types/Provider.d.ts +5 -1
  28. package/lib-esm/types/Provider.js +0 -12
  29. package/lib-esm/types/Provider.js.map +1 -1
  30. package/lib-esm/util.d.ts +6 -0
  31. package/lib-esm/util.js +132 -0
  32. package/lib-esm/util.js.map +1 -0
  33. package/package.json +6 -4
  34. package/src/Geo.ts +122 -3
  35. package/src/Providers/AmazonLocationServiceProvider.ts +423 -6
  36. package/src/types/AmazonLocationServiceProvider.ts +56 -1
  37. package/src/types/Geo.ts +72 -2
  38. package/src/types/Provider.ts +31 -1
  39. package/src/util.ts +171 -0
package/lib/util.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { Longitude, Latitude, GeofenceInput, GeofencePolygon, LinearRing } from './types';
2
+ export declare function validateCoordinates(lng: Longitude, lat: Latitude): void;
3
+ export declare function validateGeofenceId(geofenceId: string): void;
4
+ export declare function validateLinearRing(linearRing: LinearRing, geofenceId?: string): void;
5
+ export declare function validatePolygon(polygon: GeofencePolygon, geofenceId?: string): void;
6
+ export declare function validateGeofencesInput(geofences: GeofenceInput[]): void;
package/lib/util.js ADDED
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ /*
23
+ * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
24
+ *
25
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
26
+ * the License. A copy of the License is located at
27
+ *
28
+ * http://aws.amazon.com/apache2.0/
29
+ *
30
+ * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
31
+ * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
32
+ * and limitations under the License.
33
+ */
34
+ var boolean_clockwise_1 = __importDefault(require("@turf/boolean-clockwise"));
35
+ function validateCoordinates(lng, lat) {
36
+ if (!Number.isFinite(lng) || !Number.isFinite(lat)) {
37
+ throw new Error("Invalid coordinates: [" + lng + "," + lat + "]");
38
+ }
39
+ if (lat < -90 || lat > 90) {
40
+ throw new Error('Latitude must be between -90 and 90 degrees inclusive.');
41
+ }
42
+ else if (lng < -180 || lng > 180) {
43
+ throw new Error('Longitude must be between -180 and 180 degrees inclusive.');
44
+ }
45
+ }
46
+ exports.validateCoordinates = validateCoordinates;
47
+ function validateGeofenceId(geofenceId) {
48
+ var geofenceIdRegex = /^[-._\p{L}\p{N}]+$/iu;
49
+ // Check if geofenceId is valid
50
+ if (!geofenceIdRegex.test(geofenceId)) {
51
+ throw new Error("Invalid geofenceId: '" + geofenceId + "' - IDs can only contain alphanumeric characters, hyphens, underscores and periods.");
52
+ }
53
+ }
54
+ exports.validateGeofenceId = validateGeofenceId;
55
+ function validateLinearRing(linearRing, geofenceId) {
56
+ // Validate LinearRing size, must be at least 4 points
57
+ if (linearRing.length < 4) {
58
+ throw new Error(geofenceId + ": LinearRing must contain 4 or more coordinates.");
59
+ }
60
+ // Validate all coordinates are valid, error with which ones are bad
61
+ var badCoordinates = [];
62
+ linearRing.forEach(function (coordinates) {
63
+ try {
64
+ validateCoordinates(coordinates[0], coordinates[1]);
65
+ }
66
+ catch (error) {
67
+ badCoordinates.push({ coordinates: coordinates, error: error.message });
68
+ }
69
+ });
70
+ if (badCoordinates.length > 0) {
71
+ throw new Error(geofenceId + ": One or more of the coordinates in the Polygon LinearRing are not valid: " + JSON.stringify(badCoordinates));
72
+ }
73
+ // Validate first and last coordinates are the same
74
+ var _a = __read(linearRing[0], 2), lngA = _a[0], latA = _a[1];
75
+ var _b = __read(linearRing[linearRing.length - 1], 2), lngB = _b[0], latB = _b[1];
76
+ if (lngA !== lngB || latA !== latB) {
77
+ throw new Error(geofenceId + ": LinearRing's first and last coordinates are not the same");
78
+ }
79
+ if (boolean_clockwise_1.default(linearRing)) {
80
+ throw new Error(geofenceId + ": LinearRing coordinates must be wound counterclockwise");
81
+ }
82
+ }
83
+ exports.validateLinearRing = validateLinearRing;
84
+ function validatePolygon(polygon, geofenceId) {
85
+ if (!Array.isArray(polygon)) {
86
+ throw new Error(geofenceId + ": Polygon is of incorrect structure. It should be an array of LinearRings");
87
+ }
88
+ if (polygon.length < 1) {
89
+ throw new Error(geofenceId + ": Polygon must have a single LinearRing array.");
90
+ }
91
+ if (polygon.length > 1) {
92
+ throw new Error(geofenceId + ": Polygon must have a single LinearRing array. Note: We do not currently support polygons with holes, multipolygons, polygons that are wound clockwise, or that cross the antimeridian.");
93
+ }
94
+ var verticesCount = polygon.reduce(function (prev, linearRing) { return prev + linearRing.length; }, 0);
95
+ if (verticesCount > 1000) {
96
+ throw new Error(geofenceId + ": Polygon has more than the maximum 1000 vertices.");
97
+ }
98
+ }
99
+ exports.validatePolygon = validatePolygon;
100
+ function validateGeofencesInput(geofences) {
101
+ var geofenceIds = {};
102
+ geofences.forEach(function (geofence) {
103
+ // verify all required properties are present
104
+ // Validate geofenceId exists
105
+ if (!geofence.geofenceId) {
106
+ throw new Error("Geofence '" + geofence + "' is missing geofenceId");
107
+ }
108
+ var geofenceId = geofence.geofenceId;
109
+ validateGeofenceId(geofenceId);
110
+ // Validate geofenceId is unique
111
+ if (geofenceIds[geofenceId]) {
112
+ throw new Error("Duplicate geofenceId: " + geofenceId);
113
+ }
114
+ else {
115
+ geofenceIds[geofenceId] = true;
116
+ }
117
+ // Validate geometry exists
118
+ if (!geofence.geometry) {
119
+ throw new Error("Geofence '" + geofenceId + "' is missing geometry");
120
+ }
121
+ var geometry = geofence.geometry;
122
+ // Validate polygon exists
123
+ if (!geometry.polygon) {
124
+ throw new Error("Geofence '" + geofenceId + "' is missing geometry.polygon");
125
+ }
126
+ var polygon = geometry.polygon;
127
+ // Validate polygon length and structure
128
+ try {
129
+ validatePolygon(polygon, geofenceId);
130
+ }
131
+ catch (error) {
132
+ if (error.message === "Polygon has more than the maximum 1000 vertices.") {
133
+ throw new Error("Geofence '" + geofenceId + "' has more than the maximum of 1000 vertices");
134
+ }
135
+ }
136
+ // Validate LinearRing length, structure, and coordinates
137
+ var _a = __read(polygon, 1), linearRing = _a[0];
138
+ validateLinearRing(linearRing, geofenceId);
139
+ });
140
+ }
141
+ exports.validateGeofencesInput = validateGeofencesInput;
142
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/lib-esm/Geo.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { GeoConfig, Coordinates, SearchByTextOptions, SearchForSuggestionsResults, SearchByCoordinatesOptions, GeoProvider, MapStyle } from './types';
1
+ import { Place, GeoConfig, Coordinates, SearchByTextOptions, SearchByCoordinatesOptions, GeoProvider, MapStyle, GeofenceInput, GeofenceOptions, SaveGeofencesResults, Geofence, ListGeofenceOptions, ListGeofenceResults, DeleteGeofencesResults } from './types';
2
2
  export declare class GeoClass {
3
3
  static MODULE: string;
4
4
  /**
@@ -51,20 +51,53 @@ export declare class GeoClass {
51
51
  * @param {SearchByTextOptions} options? - Optional parameters to the search
52
52
  * @returns {Promise<Place[]>} - Promise resolves to a list of Places that match search parameters
53
53
  */
54
- searchByText(text: string, options?: SearchByTextOptions): Promise<import("./types").Place[]>;
54
+ searchByText(text: string, options?: SearchByTextOptions): Promise<Place[]>;
55
55
  /**
56
56
  * Search for search term suggestions based on input text
57
57
  * @param {string} text - The text string that is to be search for
58
58
  * @param {SearchByTextOptions} options? - Optional parameters to the search
59
59
  * @returns {Promise<SearchForSuggestionsResults>} - Resolves to an array of search suggestion strings
60
60
  */
61
- searchForSuggestions(text: string, options?: SearchByTextOptions): Promise<SearchForSuggestionsResults>;
61
+ searchForSuggestions(text: string, options?: SearchByTextOptions): Promise<import("./types").SearchForSuggestionsResults>;
62
62
  /**
63
63
  * Reverse geocoding search via a coordinate point on the map
64
64
  * @param coordinates - Coordinates array for the search input
65
65
  * @param options - Options parameters for the search
66
66
  * @returns {Promise<Place>} - Promise that resolves to a place matching search coordinates
67
67
  */
68
- searchByCoordinates(coordinates: Coordinates, options?: SearchByCoordinatesOptions): Promise<import("./types").Place>;
68
+ searchByCoordinates(coordinates: Coordinates, options?: SearchByCoordinatesOptions): Promise<Place>;
69
+ /**
70
+ * Create geofences
71
+ * @param geofences - Single or array of geofence objects to create
72
+ * @param options? - Optional parameters for creating geofences
73
+ * @returns {Promise<SaveGeofencesResults>} - Promise that resolves to an object with:
74
+ * successes: list of geofences successfully created
75
+ * errors: list of geofences that failed to create
76
+ */
77
+ saveGeofences(geofences: GeofenceInput | GeofenceInput[], options?: GeofenceOptions): Promise<SaveGeofencesResults>;
78
+ /**
79
+ * Get a single geofence by geofenceId
80
+ * @param geofenceId: string
81
+ * @param options?: GeofenceOptions
82
+ * @returns Promise<Geofence> - Promise that resolves to a geofence object
83
+ */
84
+ getGeofence(geofenceId: string, options?: GeofenceOptions): Promise<Geofence>;
85
+ /**
86
+ * List geofences
87
+ * @param options?: ListGeofenceOptions
88
+ * @returns {Promise<ListGeofencesResults>} - Promise that resolves to an object with:
89
+ * entries: list of geofences - 100 geofences are listed per page
90
+ * nextToken: token for next page of geofences
91
+ */
92
+ listGeofences(options?: ListGeofenceOptions): Promise<ListGeofenceResults>;
93
+ /**
94
+ * Delete geofences
95
+ * @param geofenceIds: string|string[]
96
+ * @param options?: GeofenceOptions
97
+ * @returns {Promise<DeleteGeofencesResults>} - Promise that resolves to an object with:
98
+ * successes: list of geofences successfully deleted
99
+ * errors: list of geofences that failed to delete
100
+ */
101
+ deleteGeofences(geofenceIds: string | string[], options?: GeofenceOptions): Promise<DeleteGeofencesResults>;
69
102
  }
70
103
  export declare const Geo: GeoClass;
package/lib-esm/Geo.js CHANGED
@@ -34,6 +34,22 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
34
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
35
  }
36
36
  };
37
+ var __read = (this && this.__read) || function (o, n) {
38
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
39
+ if (!m) return o;
40
+ var i = m.call(o), r, ar = [], e;
41
+ try {
42
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
43
+ }
44
+ catch (error) { e = { error: error }; }
45
+ finally {
46
+ try {
47
+ if (r && !r.done && (m = i["return"])) m.call(i);
48
+ }
49
+ finally { if (e) throw e.error; }
50
+ }
51
+ return ar;
52
+ };
37
53
  /*
38
54
  * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
39
55
  *
@@ -48,6 +64,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
48
64
  */
49
65
  import { Amplify, ConsoleLogger as Logger, parseMobileHubConfig, } from '@aws-amplify/core';
50
66
  import { AmazonLocationServiceProvider } from './Providers/AmazonLocationServiceProvider';
67
+ import { validateCoordinates } from './util';
51
68
  var logger = new Logger('Geo');
52
69
  var DEFAULT_PROVIDER = 'AmazonLocationService';
53
70
  var GeoClass = /** @class */ (function () {
@@ -199,21 +216,152 @@ var GeoClass = /** @class */ (function () {
199
216
  */
200
217
  GeoClass.prototype.searchByCoordinates = function (coordinates, options) {
201
218
  return __awaiter(this, void 0, void 0, function () {
202
- var _a, providerName, prov, error_3;
219
+ var _a, providerName, prov, _b, lng, lat, error_3;
220
+ return __generator(this, function (_c) {
221
+ switch (_c.label) {
222
+ case 0:
223
+ _a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;
224
+ prov = this.getPluggable(providerName);
225
+ _b = __read(coordinates, 2), lng = _b[0], lat = _b[1];
226
+ _c.label = 1;
227
+ case 1:
228
+ _c.trys.push([1, 3, , 4]);
229
+ validateCoordinates(lng, lat);
230
+ return [4 /*yield*/, prov.searchByCoordinates(coordinates, options)];
231
+ case 2: return [2 /*return*/, _c.sent()];
232
+ case 3:
233
+ error_3 = _c.sent();
234
+ logger.debug(error_3);
235
+ throw error_3;
236
+ case 4: return [2 /*return*/];
237
+ }
238
+ });
239
+ });
240
+ };
241
+ /**
242
+ * Create geofences
243
+ * @param geofences - Single or array of geofence objects to create
244
+ * @param options? - Optional parameters for creating geofences
245
+ * @returns {Promise<SaveGeofencesResults>} - Promise that resolves to an object with:
246
+ * successes: list of geofences successfully created
247
+ * errors: list of geofences that failed to create
248
+ */
249
+ GeoClass.prototype.saveGeofences = function (geofences, options) {
250
+ return __awaiter(this, void 0, void 0, function () {
251
+ var _a, providerName, prov, geofenceInputArray, error_4;
203
252
  return __generator(this, function (_b) {
204
253
  switch (_b.label) {
205
254
  case 0:
206
255
  _a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;
207
256
  prov = this.getPluggable(providerName);
257
+ if (!Array.isArray(geofences)) {
258
+ geofenceInputArray = [geofences];
259
+ }
260
+ else {
261
+ geofenceInputArray = geofences;
262
+ }
208
263
  _b.label = 1;
209
264
  case 1:
210
265
  _b.trys.push([1, 3, , 4]);
211
- return [4 /*yield*/, prov.searchByCoordinates(coordinates, options)];
266
+ return [4 /*yield*/, prov.saveGeofences(geofenceInputArray, options)];
212
267
  case 2: return [2 /*return*/, _b.sent()];
213
268
  case 3:
214
- error_3 = _b.sent();
215
- logger.debug(error_3);
216
- throw error_3;
269
+ error_4 = _b.sent();
270
+ logger.debug(error_4);
271
+ throw error_4;
272
+ case 4: return [2 /*return*/];
273
+ }
274
+ });
275
+ });
276
+ };
277
+ /**
278
+ * Get a single geofence by geofenceId
279
+ * @param geofenceId: string
280
+ * @param options?: GeofenceOptions
281
+ * @returns Promise<Geofence> - Promise that resolves to a geofence object
282
+ */
283
+ GeoClass.prototype.getGeofence = function (geofenceId, options) {
284
+ return __awaiter(this, void 0, void 0, function () {
285
+ var _a, providerName, prov, error_5;
286
+ return __generator(this, function (_b) {
287
+ switch (_b.label) {
288
+ case 0:
289
+ _a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;
290
+ prov = this.getPluggable(providerName);
291
+ _b.label = 1;
292
+ case 1:
293
+ _b.trys.push([1, 3, , 4]);
294
+ return [4 /*yield*/, prov.getGeofence(geofenceId, options)];
295
+ case 2: return [2 /*return*/, _b.sent()];
296
+ case 3:
297
+ error_5 = _b.sent();
298
+ logger.debug(error_5);
299
+ throw error_5;
300
+ case 4: return [2 /*return*/];
301
+ }
302
+ });
303
+ });
304
+ };
305
+ /**
306
+ * List geofences
307
+ * @param options?: ListGeofenceOptions
308
+ * @returns {Promise<ListGeofencesResults>} - Promise that resolves to an object with:
309
+ * entries: list of geofences - 100 geofences are listed per page
310
+ * nextToken: token for next page of geofences
311
+ */
312
+ GeoClass.prototype.listGeofences = function (options) {
313
+ return __awaiter(this, void 0, void 0, function () {
314
+ var _a, providerName, prov, error_6;
315
+ return __generator(this, function (_b) {
316
+ switch (_b.label) {
317
+ case 0:
318
+ _a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;
319
+ prov = this.getPluggable(providerName);
320
+ _b.label = 1;
321
+ case 1:
322
+ _b.trys.push([1, 3, , 4]);
323
+ return [4 /*yield*/, prov.listGeofences(options)];
324
+ case 2: return [2 /*return*/, _b.sent()];
325
+ case 3:
326
+ error_6 = _b.sent();
327
+ logger.debug(error_6);
328
+ throw error_6;
329
+ case 4: return [2 /*return*/];
330
+ }
331
+ });
332
+ });
333
+ };
334
+ /**
335
+ * Delete geofences
336
+ * @param geofenceIds: string|string[]
337
+ * @param options?: GeofenceOptions
338
+ * @returns {Promise<DeleteGeofencesResults>} - Promise that resolves to an object with:
339
+ * successes: list of geofences successfully deleted
340
+ * errors: list of geofences that failed to delete
341
+ */
342
+ GeoClass.prototype.deleteGeofences = function (geofenceIds, options) {
343
+ return __awaiter(this, void 0, void 0, function () {
344
+ var _a, providerName, prov, geofenceIdsInputArray, error_7;
345
+ return __generator(this, function (_b) {
346
+ switch (_b.label) {
347
+ case 0:
348
+ _a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;
349
+ prov = this.getPluggable(providerName);
350
+ if (!Array.isArray(geofenceIds)) {
351
+ geofenceIdsInputArray = [geofenceIds];
352
+ }
353
+ else {
354
+ geofenceIdsInputArray = geofenceIds;
355
+ }
356
+ _b.label = 1;
357
+ case 1:
358
+ _b.trys.push([1, 3, , 4]);
359
+ return [4 /*yield*/, prov.deleteGeofences(geofenceIdsInputArray, options)];
360
+ case 2: return [2 /*return*/, _b.sent()];
361
+ case 3:
362
+ error_7 = _b.sent();
363
+ logger.debug(error_7);
364
+ throw error_7;
217
365
  case 4: return [2 /*return*/];
218
366
  }
219
367
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Geo.js","sourceRoot":"","sources":["../src/Geo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Geo.js","sourceRoot":"","sources":["../src/Geo.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { GeoConfig, SearchByTextOptions, SearchByCoordinatesOptions, GeoProvider, Place, AmazonLocationServiceMapStyle, Coordinates, SearchForSuggestionsResults } from '../types';
1
+ import { GeoConfig, SearchByTextOptions, SearchByCoordinatesOptions, GeoProvider, Place, AmazonLocationServiceMapStyle, Coordinates, SearchForSuggestionsResults, GeofenceInput, AmazonLocationServiceGeofenceOptions, AmazonLocationServiceListGeofenceOptions, ListGeofenceResults, SaveGeofencesResults, AmazonLocationServiceGeofence, AmazonLocationServiceDeleteGeofencesResults } from '../types';
2
2
  export declare class AmazonLocationServiceProvider implements GeoProvider {
3
3
  static CATEGORY: string;
4
4
  static PROVIDER_NAME: string;
@@ -58,10 +58,46 @@ export declare class AmazonLocationServiceProvider implements GeoProvider {
58
58
  * @returns {Promise<Place>} - Promise that resolves to a place matching search coordinates
59
59
  */
60
60
  searchByCoordinates(coordinates: Coordinates, options?: SearchByCoordinatesOptions): Promise<Place>;
61
+ /**
62
+ * Create geofences inside of a geofence collection
63
+ * @param geofences - Array of geofence objects to create
64
+ * @param options? - Optional parameters for creating geofences
65
+ * @returns {Promise<AmazonLocationServiceSaveGeofencesResults>} - Promise that resolves to an object with:
66
+ * successes: list of geofences successfully created
67
+ * errors: list of geofences that failed to create
68
+ */
69
+ saveGeofences(geofences: GeofenceInput[], options?: AmazonLocationServiceGeofenceOptions): Promise<SaveGeofencesResults>;
70
+ /**
71
+ * Get geofence from a geofence collection
72
+ * @param geofenceId:string
73
+ * @param options?: Optional parameters for getGeofence
74
+ * @returns {Promise<AmazonLocationServiceGeofence>} - Promise that resolves to a geofence object
75
+ */
76
+ getGeofence(geofenceId: string, options?: AmazonLocationServiceGeofenceOptions): Promise<AmazonLocationServiceGeofence>;
77
+ /**
78
+ * List geofences from a geofence collection
79
+ * @param options?: ListGeofenceOptions
80
+ * @returns {Promise<ListGeofencesResults>} - Promise that resolves to an object with:
81
+ * entries: list of geofences - 100 geofences are listed per page
82
+ * nextToken: token for next page of geofences
83
+ */
84
+ listGeofences(options?: AmazonLocationServiceListGeofenceOptions): Promise<ListGeofenceResults>;
85
+ /**
86
+ * Delete geofences from a geofence collection
87
+ * @param geofenceIds: string|string[]
88
+ * @param options?: GeofenceOptions
89
+ * @returns {Promise<DeleteGeofencesResults>} - Promise that resolves to an object with:
90
+ * successes: list of geofences successfully deleted
91
+ * errors: list of geofences that failed to delete
92
+ */
93
+ deleteGeofences(geofenceIds: string[], options?: AmazonLocationServiceGeofenceOptions): Promise<AmazonLocationServiceDeleteGeofencesResults>;
61
94
  /**
62
95
  * @private
63
96
  */
64
97
  private _ensureCredentials;
65
98
  private _verifyMapResources;
66
99
  private _verifySearchIndex;
100
+ private _verifyGeofenceCollections;
101
+ private _AmazonLocationServiceBatchPutGeofenceCall;
102
+ private _AmazonLocationServiceBatchDeleteGeofenceCall;
67
103
  }