{
    "smithy": "1.0",
    "shapes": {
        "com.amazonaws.location#AccessDeniedException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#jsonName": "message",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The request was denied due to insufficient access or permission. Check with an\n      administrator to verify your permissions.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 403
            }
        },
        "com.amazonaws.location#Arn": {
            "type": "string",
            "traits": {
                "aws.api#arnReference": {},
                "smithy.api#length": {
                    "max": 1600
                },
                "smithy.api#pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$"
            }
        },
        "com.amazonaws.location#ArnList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#Arn"
            }
        },
        "com.amazonaws.location#AssociateTrackerConsumer": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#AssociateTrackerConsumerRequest"
            },
            "output": {
                "target": "com.amazonaws.location#AssociateTrackerConsumerResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#ConflictException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates an association between a geofence collection and a tracker resource. This\n            allows the tracker resource to communicate location data to the linked geofence\n            collection.</p>\n        <note>\n            <p>Currently not supported — Cross-account configurations, such as creating associations between a tracker resource in one account and a geofence collection in another account.</p>\n        </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "tracking."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/tracking/v0/trackers/{TrackerName}/consumers",
                    "code": 200
                }
            }
        },
        "com.amazonaws.location#AssociateTrackerConsumerRequest": {
            "type": "structure",
            "members": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the tracker resource to be associated with a geofence collection.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ConsumerArn": {
                    "target": "com.amazonaws.location#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) for the geofence collection to be associated to tracker\n            resource. Used when you need to specify a resource across all AWS. </p>\n         <ul>\n            <li>\n               <p>Format example:\n               <code>arn:partition:service:region:account-id:resource-type:resource-id</code>\n               </p>\n            </li>\n         </ul>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#AssociateTrackerConsumerResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.location#BatchDeleteGeofence": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#BatchDeleteGeofenceRequest"
            },
            "output": {
                "target": "com.amazonaws.location#BatchDeleteGeofenceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a batch of geofences from a geofence collection.</p>\n        <note>\n            <p>This action deletes the resource permanently. You can't undo this action.</p>\n        </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "geofencing."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/geofencing/v0/collections/{CollectionName}/delete-geofences",
                    "code": 200
                }
            }
        },
        "com.amazonaws.location#BatchDeleteGeofenceError": {
            "type": "structure",
            "members": {
                "GeofenceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The geofence associated with the error message.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Error": {
                    "target": "com.amazonaws.location#BatchItemError",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains details associated to the batch error.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains error details for each geofence that failed to delete from the geofence\n            collection.</p>"
            }
        },
        "com.amazonaws.location#BatchDeleteGeofenceErrorList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#BatchDeleteGeofenceError"
            }
        },
        "com.amazonaws.location#BatchDeleteGeofenceRequest": {
            "type": "structure",
            "members": {
                "CollectionName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The geofence collection storing the geofences to be deleted.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "GeofenceIds": {
                    "target": "com.amazonaws.location#IdList",
                    "traits": {
                        "smithy.api#documentation": "<p>The batch of geofences to be deleted.</p>",
                        "smithy.api#length": {
                            "min": 1,
                            "max": 10
                        },
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#BatchDeleteGeofenceResponse": {
            "type": "structure",
            "members": {
                "Errors": {
                    "target": "com.amazonaws.location#BatchDeleteGeofenceErrorList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains error details for each geofence that failed to delete.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#BatchEvaluateGeofences": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#BatchEvaluateGeofencesRequest"
            },
            "output": {
                "target": "com.amazonaws.location#BatchEvaluateGeofencesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#auth": [],
                "smithy.api#documentation": "<p>Evaluates device positions against the geofence geometries from a given geofence\n            collection. The evaluation determines if the device has entered or exited a geofenced\n            area, which publishes ENTER or EXIT geofence events to Amazon EventBridge.</p>\n        <note>\n            <p>The last geofence that a device was observed within, if any, is tracked for 30\n                days after the most recent device position update</p>\n        </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "geofencing."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/geofencing/v0/collections/{CollectionName}/positions",
                    "code": 200
                }
            }
        },
        "com.amazonaws.location#BatchEvaluateGeofencesError": {
            "type": "structure",
            "members": {
                "DeviceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The device associated with the position evaluation error.</p>",
                        "smithy.api#required": {}
                    }
                },
                "SampleTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies a timestamp for when the error occurred in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "Error": {
                    "target": "com.amazonaws.location#BatchItemError",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains details associated to the batch error.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains error details for each device that failed to evaluate its position against\n            the geofences in a given geofence collection.</p>"
            }
        },
        "com.amazonaws.location#BatchEvaluateGeofencesErrorList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#BatchEvaluateGeofencesError"
            }
        },
        "com.amazonaws.location#BatchEvaluateGeofencesRequest": {
            "type": "structure",
            "members": {
                "CollectionName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The geofence collection used in evaluating the position of devices against its\n            geofences.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "DevicePositionUpdates": {
                    "target": "com.amazonaws.location#DevicePositionUpdateList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains device details for each device to be evaluated against the given geofence\n            collection.</p>",
                        "smithy.api#length": {
                            "min": 1,
                            "max": 10
                        },
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#BatchEvaluateGeofencesResponse": {
            "type": "structure",
            "members": {
                "Errors": {
                    "target": "com.amazonaws.location#BatchEvaluateGeofencesErrorList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains error details for each device that failed to evaluate its position against\n            the given geofence collection.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#BatchGetDevicePosition": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#BatchGetDevicePositionRequest"
            },
            "output": {
                "target": "com.amazonaws.location#BatchGetDevicePositionResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>A batch request to retrieve all device positions.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "tracking."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/tracking/v0/trackers/{TrackerName}/get-positions",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#BatchGetDevicePositionError": {
            "type": "structure",
            "members": {
                "DeviceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the device that didn't return a position.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Error": {
                    "target": "com.amazonaws.location#BatchItemError",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains details related to the error code.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains error details for each device that didn't return a position.</p>"
            }
        },
        "com.amazonaws.location#BatchGetDevicePositionErrorList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#BatchGetDevicePositionError"
            }
        },
        "com.amazonaws.location#BatchGetDevicePositionRequest": {
            "type": "structure",
            "members": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The tracker resource retrieving the device position.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#length": {
                            "min": 1
                        },
                        "smithy.api#required": {}
                    }
                },
                "DeviceIds": {
                    "target": "com.amazonaws.location#IdList",
                    "traits": {
                        "smithy.api#documentation": "<p>Devices whose position you want to retrieve.</p>\n         <ul>\n            <li>\n               <p>For example, for two devices:\n                   <code>device-ids=DeviceId1&amp;device-ids=DeviceId2</code>\n               </p>\n           </li>\n         </ul>",
                        "smithy.api#length": {
                            "min": 1,
                            "max": 10
                        },
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#BatchGetDevicePositionResponse": {
            "type": "structure",
            "members": {
                "Errors": {
                    "target": "com.amazonaws.location#BatchGetDevicePositionErrorList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains  error details for each device that failed to send its position to the tracker\n            resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "DevicePositions": {
                    "target": "com.amazonaws.location#DevicePositionList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains device position details such as the device ID, position, and timestamps for\n            when the position was received and sampled.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#BatchItemError": {
            "type": "structure",
            "members": {
                "Code": {
                    "target": "com.amazonaws.location#BatchItemErrorCode",
                    "traits": {
                        "smithy.api#documentation": "<p>The error code associated with the batch request error.</p>"
                    }
                },
                "Message": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>A message with the reason for the batch request error.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains the batch request error details associated with the request.</p>"
            }
        },
        "com.amazonaws.location#BatchItemErrorCode": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "AccessDeniedError",
                        "documentation": "Access to the resource was denied."
                    },
                    {
                        "value": "ConflictError",
                        "documentation": "The target resource already exists."
                    },
                    {
                        "value": "InternalServerError",
                        "documentation": "Internal server error."
                    },
                    {
                        "value": "ResourceNotFoundError",
                        "documentation": "The target resource does not exist."
                    },
                    {
                        "value": "ThrottlingError",
                        "documentation": "Too many requests."
                    },
                    {
                        "value": "ValidationError",
                        "documentation": "Input fails to satisfy the constraints specified by the service."
                    }
                ]
            }
        },
        "com.amazonaws.location#BatchPutGeofence": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#BatchPutGeofenceRequest"
            },
            "output": {
                "target": "com.amazonaws.location#BatchPutGeofenceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>A batch request for storing geofence geometries into a given geofence\n            collection.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "geofencing."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/geofencing/v0/collections/{CollectionName}/put-geofences",
                    "code": 200
                }
            }
        },
        "com.amazonaws.location#BatchPutGeofenceError": {
            "type": "structure",
            "members": {
                "GeofenceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The geofence associated with the error message.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Error": {
                    "target": "com.amazonaws.location#BatchItemError",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains details associated to the batch error.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains error details for each geofence that failed to be stored in a given geofence\n            collection.</p>"
            }
        },
        "com.amazonaws.location#BatchPutGeofenceErrorList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#BatchPutGeofenceError"
            }
        },
        "com.amazonaws.location#BatchPutGeofenceRequest": {
            "type": "structure",
            "members": {
                "CollectionName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The geofence collection storing the geofences.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "Entries": {
                    "target": "com.amazonaws.location#BatchPutGeofenceRequestEntryList",
                    "traits": {
                        "smithy.api#documentation": "<p>The batch of geofences to be stored in a geofence collection.</p>",
                        "smithy.api#length": {
                            "min": 1,
                            "max": 10
                        },
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#BatchPutGeofenceRequestEntry": {
            "type": "structure",
            "members": {
                "GeofenceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The identifier for the geofence to be stored in a given geofence collection.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Geometry": {
                    "target": "com.amazonaws.location#GeofenceGeometry",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains the polygon details to specify the position of the geofence.</p>\n        <note>\n            <p>Each <a href=\"https://docs.aws.amazon.com/location-geofences/latest/APIReference/API_GeofenceGeometry.html\">geofence polygon</a> can have a maximum of 1,000 vertices.</p>\n        </note>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains geofence geometry details. </p>"
            }
        },
        "com.amazonaws.location#BatchPutGeofenceRequestEntryList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#BatchPutGeofenceRequestEntry"
            }
        },
        "com.amazonaws.location#BatchPutGeofenceResponse": {
            "type": "structure",
            "members": {
                "Successes": {
                    "target": "com.amazonaws.location#BatchPutGeofenceSuccessList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains each geofence that was successfully stored in a geofence collection.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Errors": {
                    "target": "com.amazonaws.location#BatchPutGeofenceErrorList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains additional error details for each geofence that failed to be stored in a\n            geofence collection.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#BatchPutGeofenceSuccess": {
            "type": "structure",
            "members": {
                "GeofenceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The geofence successfully stored in a geofence collection.</p>",
                        "smithy.api#required": {}
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the geofence was stored in a geofence collection in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "UpdateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the geofence was last updated in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a summary of each geofence that was successfully stored in a given geofence\n            collection.</p>"
            }
        },
        "com.amazonaws.location#BatchPutGeofenceSuccessList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#BatchPutGeofenceSuccess"
            }
        },
        "com.amazonaws.location#BatchUpdateDevicePosition": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#BatchUpdateDevicePositionRequest"
            },
            "output": {
                "target": "com.amazonaws.location#BatchUpdateDevicePositionResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Uploads position update data for one or more devices to a tracker resource. Amazon Location\n            uses the data when reporting the last known device position and position history.</p>\n         <note>\n           <p>Only one position update is stored per sample time. Location data is sampled at a\n                fixed rate of one position per 30-second interval, and retained for one year before\n                it is deleted.</p>\n         </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "tracking."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/tracking/v0/trackers/{TrackerName}/positions",
                    "code": 200
                }
            }
        },
        "com.amazonaws.location#BatchUpdateDevicePositionError": {
            "type": "structure",
            "members": {
                "DeviceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The device associated with the failed location update.</p>",
                        "smithy.api#required": {}
                    }
                },
                "SampleTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp at which the device position was determined. Uses <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\"> ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                },
                "Error": {
                    "target": "com.amazonaws.location#BatchItemError",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains details related to the error code such as the error code and error\n            message.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains  error details for each device that failed to update its position.</p>"
            }
        },
        "com.amazonaws.location#BatchUpdateDevicePositionErrorList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#BatchUpdateDevicePositionError"
            }
        },
        "com.amazonaws.location#BatchUpdateDevicePositionRequest": {
            "type": "structure",
            "members": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the tracker resource to update.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "Updates": {
                    "target": "com.amazonaws.location#DevicePositionUpdateList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains the position update details for each device.</p>",
                        "smithy.api#length": {
                            "min": 1,
                            "max": 10
                        },
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#BatchUpdateDevicePositionResponse": {
            "type": "structure",
            "members": {
                "Errors": {
                    "target": "com.amazonaws.location#BatchUpdateDevicePositionErrorList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains  error details for each device that failed to update its position.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#BoundingBox": {
            "type": "list",
            "member": {
                "target": "smithy.api#Double"
            },
            "traits": {
                "smithy.api#externalDocumentation": {
                    "Documentation": "https://tools.ietf.org/html/rfc7946#section-5"
                },
                "smithy.api#length": {
                    "min": 4,
                    "max": 6
                },
                "smithy.api#sensitive": {}
            }
        },
        "com.amazonaws.location#ConflictException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#jsonName": "message",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The request was unsuccessful due to a conflict.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 409
            }
        },
        "com.amazonaws.location#CountryCode": {
            "type": "string",
            "traits": {
                "smithy.api#pattern": "^[A-Z]{3}$"
            }
        },
        "com.amazonaws.location#CountryCodeList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#CountryCode"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 100
                }
            }
        },
        "com.amazonaws.location#CreateGeofenceCollection": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#CreateGeofenceCollectionRequest"
            },
            "output": {
                "target": "com.amazonaws.location#CreateGeofenceCollectionResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#ConflictException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates a geofence collection, which manages and stores geofences.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "geofencing."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/geofencing/v0/collections",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.location#CreateGeofenceCollectionRequest": {
            "type": "structure",
            "members": {
                "CollectionName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>A custom name for the geofence collection.</p>\n        <p>Requirements:</p>\n        <ul>\n            <li>\n                <p>Contain only alphanumeric characters (A–Z, a–z, 0-9), hyphens (-), periods (.), and\n                    underscores (_). </p>\n            </li>\n            <li>\n                <p>Must be a unique geofence collection name.</p>\n            </li>\n            <li>\n                <p>No spaces allowed. For example, <code>ExampleGeofenceCollection</code>.</p>\n            </li>\n         </ul>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlan": {
                    "target": "com.amazonaws.location#PricingPlan",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the pricing plan for your geofence collection.</p>\n        <p>For additional details and restrictions on each pricing plan option, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon Location Service pricing\n            page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlanDataSource": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the plan data source. Required if the Mobile Asset Tracking (MAT) or the\n            Mobile Asset Management (MAM) pricing plan is selected.</p>\n        <p>Billing is determined by the resource usage, the associated pricing plan, and the data\n            source that was specified. For more information about each pricing plan option and\n            restrictions, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon\n                Location Service pricing page</a>.</p>\n        <p>Valid Values: <code>Esri </code>| <code>Here</code>\n         </p>"
                    }
                },
                "Description": {
                    "target": "com.amazonaws.location#ResourceDescription",
                    "traits": {
                        "smithy.api#documentation": "<p>An optional description for the geofence collection.</p>"
                    }
                }
            }
        },
        "com.amazonaws.location#CreateGeofenceCollectionResponse": {
            "type": "structure",
            "members": {
                "CollectionName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name for the geofence collection.</p>",
                        "smithy.api#required": {}
                    }
                },
                "CollectionArn": {
                    "target": "com.amazonaws.location#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) for the geofence collection resource. Used when you\n            need to specify a resource across all AWS. </p>",
                        "smithy.api#required": {}
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the geofence collection was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#CreateMap": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#CreateMapRequest"
            },
            "output": {
                "target": "com.amazonaws.location#CreateMapResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#ConflictException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates a map resource in your AWS account, which provides map tiles of different\n            styles sourced from global location data providers.</p>\n        <note>\n            <p>By using Maps, you agree that AWS may transmit your API queries to your selected\n                third party provider for processing, which may be outside the AWS region you are\n                currently using. For more information, see the <a href=\"https://aws.amazon.com/service-terms/\">AWS Service Terms</a> for Amazon\n                Location Service. </p>\n        </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "maps."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/maps/v0/maps",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.location#CreateMapRequest": {
            "type": "structure",
            "members": {
                "MapName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name for the map resource.</p>\n        <p>Requirements:</p>\n        <ul>\n            <li>\n               <p>Must contain only alphanumeric characters (A–Z, a–z, 0–9), hyphens (-), periods (.), and underscores (_). </p>\n            </li>\n            <li>\n               <p>Must be a unique map resource name. </p>\n            </li>\n            <li>\n                <p>No spaces allowed. For example, <code>ExampleMap</code>.</p>\n            </li>\n         </ul>",
                        "smithy.api#required": {}
                    }
                },
                "Configuration": {
                    "target": "com.amazonaws.location#MapConfiguration",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the map style selected from an available data provider.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlan": {
                    "target": "com.amazonaws.location#PricingPlan",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the pricing plan for your map resource.</p>\n        <p>For additional details and restrictions on each pricing plan option, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon Location Service pricing\n                page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Description": {
                    "target": "com.amazonaws.location#ResourceDescription",
                    "traits": {
                        "smithy.api#documentation": "<p>An optional description for the map resource.</p>"
                    }
                }
            }
        },
        "com.amazonaws.location#CreateMapResponse": {
            "type": "structure",
            "members": {
                "MapName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the map resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "MapArn": {
                    "target": "com.amazonaws.location#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) for the map resource. Used when you need to specify a\n            resource across all AWS.</p>\n        <ul>\n            <li>\n                <p>Format example:\n                        <code>arn:partition:service:region:account-id:resource-type:resource-id</code>\n               </p>\n            </li>\n         </ul>",
                        "smithy.api#required": {}
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the map resource was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#CreatePlaceIndex": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#CreatePlaceIndexRequest"
            },
            "output": {
                "target": "com.amazonaws.location#CreatePlaceIndexResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#ConflictException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates a Place index resource in your AWS account, which supports Places functions with\n         geospatial data sourced from your chosen data provider.</p>\n         <note>\n            <p>By using Places, you agree that AWS may transmit your API queries to your selected\n            third party provider for processing, which may be outside the AWS region you are\n            currently using. </p>\n            <p>Because of licensing limitations, you may not use HERE to store results for locations\n            in Japan. For more information, see the <a href=\"https://aws.amazon.com/service-terms/\">AWS Service Terms</a> for Amazon\n            Location Service.</p>\n         </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "places."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/places/v0/indexes",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.location#CreatePlaceIndexRequest": {
            "type": "structure",
            "members": {
                "IndexName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the Place index resource. </p>\n         <p>Requirements:</p>\n         <ul>\n            <li>\n               <p>Contain only alphanumeric characters (A-Z, a-z, 0-9) , hyphens (-), periods (.), and underscores (_).</p>\n            </li>\n            <li>\n               <p>Must be a unique Place index resource name.</p>\n            </li>\n            <li>\n               <p>No spaces allowed. For example, <code>ExamplePlaceIndex</code>.</p>\n            </li>\n         </ul>",
                        "smithy.api#required": {}
                    }
                },
                "DataSource": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the data provider of geospatial data.</p>\n         <note>\n            <p>This field is case-sensitive. Enter the valid values as shown. For example, entering\n               <code>HERE</code> will return an error.</p>\n         </note>\n         <p>Valid values include:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>Esri</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>Here</code>\n               </p>\n            </li>\n         </ul>\n         <p>For additional details on data providers, see the <a href=\"https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html\">Amazon Location Service data providers page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlan": {
                    "target": "com.amazonaws.location#PricingPlan",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the pricing plan for your Place index resource.</p>\n         <p>For additional details and restrictions on each pricing plan option, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon Location Service pricing\n         page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Description": {
                    "target": "com.amazonaws.location#ResourceDescription",
                    "traits": {
                        "smithy.api#documentation": "<p>The optional description for the Place index resource.</p>"
                    }
                },
                "DataSourceConfiguration": {
                    "target": "com.amazonaws.location#DataSourceConfiguration",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the data storage option for requesting Places.</p>"
                    }
                }
            }
        },
        "com.amazonaws.location#CreatePlaceIndexResponse": {
            "type": "structure",
            "members": {
                "IndexName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name for the Place index resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "IndexArn": {
                    "target": "com.amazonaws.location#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) for the Place index resource. Used when you need to\n         specify a resource across all AWS. </p>",
                        "smithy.api#required": {}
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the Place index resource was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a> format:\n            <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#CreateTracker": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#CreateTrackerRequest"
            },
            "output": {
                "target": "com.amazonaws.location#CreateTrackerResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#ConflictException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates a tracker resource in your AWS account, which lets you retrieve current and\n            historical location of devices.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "tracking."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/tracking/v0/trackers",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.location#CreateTrackerRequest": {
            "type": "structure",
            "members": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name for the tracker resource.</p>\n         <p>Requirements:</p>\n         <ul>\n            <li>\n               <p>Contain only alphanumeric characters (A-Z, a-z, 0-9) , hyphens (-), periods (.), and underscores (_).</p>\n            </li>\n            <li>\n               <p>Must be a unique tracker resource name.</p>\n            </li>\n            <li>\n                <p>No spaces allowed. For example, <code>ExampleTracker</code>.</p>\n            </li>\n         </ul>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlan": {
                    "target": "com.amazonaws.location#PricingPlan",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the pricing plan for your tracker resource.</p>\n         <p>For additional details and restrictions on each pricing plan option, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon Location Service pricing\n           page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlanDataSource": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the plan data source. Required if the Mobile Asset Tracking (MAT) or the\n            Mobile Asset Management (MAM) pricing plan is selected.</p>\n        <p>Billing is determined by the resource usage, the associated pricing plan, and data\n            source that was specified. For more information about each pricing plan option and\n            restrictions, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon\n                Location Service pricing page</a>.</p>\n        <p>Valid Values: <code>Esri</code> | <code>Here</code>\n         </p>"
                    }
                },
                "Description": {
                    "target": "com.amazonaws.location#ResourceDescription",
                    "traits": {
                        "smithy.api#documentation": "<p>An optional description for the tracker resource.</p>"
                    }
                }
            }
        },
        "com.amazonaws.location#CreateTrackerResponse": {
            "type": "structure",
            "members": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the tracker resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TrackerArn": {
                    "target": "com.amazonaws.location#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) for the tracker resource. Used when you need to specify\n            a resource across all AWS.</p>",
                        "smithy.api#required": {}
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the tracker resource was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\"> ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DataSourceConfiguration": {
            "type": "structure",
            "members": {
                "IntendedUse": {
                    "target": "com.amazonaws.location#IntendedUse",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies how the results of an operation will be stored by the caller. </p>\n         <p>Valid values include:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>SingleUse</code> specifies that the results won't be stored. </p>\n            </li>\n            <li>\n               <p>\n                  <code>Storage</code> specifies that the result can be cached or stored in a database.</p>\n            </li>\n         </ul>\n         <p>Default value:  <code>SingleUse</code>\n         </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Specifies the data storage option chosen for requesting Places.</p>\n         <note>\n            <p>By using Places, you agree that AWS may transmit your API queries to your selected\n            third party provider for processing, which may be outside the AWS region you are\n            currently using. </p>\n            <p>Also, when using HERE as your data provider, you may not (a) use HERE Places for\n            Asset Management, or (b) select the <code>Storage</code> option for the\n               <code>IntendedUse</code> parameter when requesting Places in Japan. For more\n            information, see the <a href=\"https://aws.amazon.com/service-terms/\">AWS Service\n               Terms</a> for Amazon Location Service.</p>\n         </note>"
            }
        },
        "com.amazonaws.location#DeleteGeofenceCollection": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#DeleteGeofenceCollectionRequest"
            },
            "output": {
                "target": "com.amazonaws.location#DeleteGeofenceCollectionResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a geofence collection from your AWS account.</p>\n        <note>\n            <p>This action deletes the resource permanently. You can't undo this action. If the\n                geofence collection is the target of a tracker resource, the devices will no longer\n                be monitored.</p>\n        </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "geofencing."
                },
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/geofencing/v0/collections/{CollectionName}",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.location#DeleteGeofenceCollectionRequest": {
            "type": "structure",
            "members": {
                "CollectionName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the geofence collection to be deleted.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DeleteGeofenceCollectionResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.location#DeleteMap": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#DeleteMapRequest"
            },
            "output": {
                "target": "com.amazonaws.location#DeleteMapResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a map resource from your AWS account.</p>\n        <note>\n            <p>This action deletes the resource permanently. You cannot undo this action. If the map is being\n                used in an application, the map may not render.</p>\n         </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "maps."
                },
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/maps/v0/maps/{MapName}",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.location#DeleteMapRequest": {
            "type": "structure",
            "members": {
                "MapName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the map resource to be deleted.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DeleteMapResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.location#DeletePlaceIndex": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#DeletePlaceIndexRequest"
            },
            "output": {
                "target": "com.amazonaws.location#DeletePlaceIndexResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a Place index resource from your AWS account.</p>\n         <note>\n            <p>This action deletes the resource permanently. You cannot undo this action.</p>\n         </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "places."
                },
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/places/v0/indexes/{IndexName}",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.location#DeletePlaceIndexRequest": {
            "type": "structure",
            "members": {
                "IndexName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the Place index resource to be deleted.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DeletePlaceIndexResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.location#DeleteTracker": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#DeleteTrackerRequest"
            },
            "output": {
                "target": "com.amazonaws.location#DeleteTrackerResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a tracker resource from your AWS account.</p>\n         <note>\n            <p>This action deletes the resource permanently. You can't undo this action. If the tracker resource is in use, you may encounter an error. Make sure that the target resource is not a dependency for your applications.</p>\n         </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "tracking."
                },
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/tracking/v0/trackers/{TrackerName}",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.location#DeleteTrackerRequest": {
            "type": "structure",
            "members": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the tracker resource to be deleted.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DeleteTrackerResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.location#DescribeGeofenceCollection": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#DescribeGeofenceCollectionRequest"
            },
            "output": {
                "target": "com.amazonaws.location#DescribeGeofenceCollectionResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves the geofence collection details.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "geofencing."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/geofencing/v0/collections/{CollectionName}",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#DescribeGeofenceCollectionRequest": {
            "type": "structure",
            "members": {
                "CollectionName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the geofence collection.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DescribeGeofenceCollectionResponse": {
            "type": "structure",
            "members": {
                "CollectionName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the geofence collection.</p>",
                        "smithy.api#required": {}
                    }
                },
                "CollectionArn": {
                    "target": "com.amazonaws.location#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) for the geofence collection resource. Used when you\n            need to specify a resource across all AWS. </p>",
                        "smithy.api#required": {}
                    }
                },
                "Description": {
                    "target": "com.amazonaws.location#ResourceDescription",
                    "traits": {
                        "smithy.api#documentation": "<p>The optional description for the geofence collection.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlan": {
                    "target": "com.amazonaws.location#PricingPlan",
                    "traits": {
                        "smithy.api#documentation": "<p>The pricing plan selected for the specified geofence collection.</p>\n        <p>For additional details and restrictions on each pricing plan option, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon Location Service pricing\n                page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlanDataSource": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The data source selected for the geofence collection and associated pricing\n            plan.</p>"
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the geofence resource was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "UpdateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the geofence collection was last updated in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DescribeMap": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#DescribeMapRequest"
            },
            "output": {
                "target": "com.amazonaws.location#DescribeMapResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves the map resource details.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "maps."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/maps/v0/maps/{MapName}",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#DescribeMapRequest": {
            "type": "structure",
            "members": {
                "MapName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the map resource.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DescribeMapResponse": {
            "type": "structure",
            "members": {
                "MapName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The map style selected from an available provider.</p>",
                        "smithy.api#required": {}
                    }
                },
                "MapArn": {
                    "target": "com.amazonaws.location#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) for the map resource. Used when you need to specify a\n            resource across all AWS.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlan": {
                    "target": "com.amazonaws.location#PricingPlan",
                    "traits": {
                        "smithy.api#documentation": "<p>The pricing plan selected for the specified map resource.</p>\n\n        <p>For additional details and restrictions on each pricing plan option, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon Location Service pricing\n                page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "DataSource": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the data provider for the associated map tiles.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Configuration": {
                    "target": "com.amazonaws.location#MapConfiguration",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the map tile style selected from a partner data provider.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Description": {
                    "target": "com.amazonaws.location#ResourceDescription",
                    "traits": {
                        "smithy.api#documentation": "<p>The optional description for the map resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the map resource was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "UpdateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the map resource was last update in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DescribePlaceIndex": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#DescribePlaceIndexRequest"
            },
            "output": {
                "target": "com.amazonaws.location#DescribePlaceIndexResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves the Place index resource details.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "places."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/places/v0/indexes/{IndexName}",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#DescribePlaceIndexRequest": {
            "type": "structure",
            "members": {
                "IndexName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the Place index resource.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DescribePlaceIndexResponse": {
            "type": "structure",
            "members": {
                "IndexName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the Place index resource being described.</p>",
                        "smithy.api#required": {}
                    }
                },
                "IndexArn": {
                    "target": "com.amazonaws.location#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) for the Place index resource. Used when you need to\n         specify a resource across all AWS. </p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlan": {
                    "target": "com.amazonaws.location#PricingPlan",
                    "traits": {
                        "smithy.api#documentation": "<p>The pricing plan selected for the specified Place index resource.</p>\n         <p>For additional details and restrictions on each pricing plan option, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon Location Service pricing\n            page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Description": {
                    "target": "com.amazonaws.location#ResourceDescription",
                    "traits": {
                        "smithy.api#documentation": "<p>The optional description for the Place index resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the Place index resource was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a> format:\n            <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                },
                "UpdateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the Place index resource was last updated in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a> format:\n            <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                },
                "DataSource": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The data provider of geospatial data. Indicates one of the available providers:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>Esri</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>Here</code>\n               </p>\n            </li>\n         </ul>\n         <p>For additional details on data providers, see the <a href=\"https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html\">Amazon Location Service data providers\n         page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "DataSourceConfiguration": {
                    "target": "com.amazonaws.location#DataSourceConfiguration",
                    "traits": {
                        "smithy.api#documentation": "<p>The specified data storage option for requesting Places.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DescribeTracker": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#DescribeTrackerRequest"
            },
            "output": {
                "target": "com.amazonaws.location#DescribeTrackerResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves the tracker resource details.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "tracking."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/tracking/v0/trackers/{TrackerName}",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#DescribeTrackerRequest": {
            "type": "structure",
            "members": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the tracker resource.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DescribeTrackerResponse": {
            "type": "structure",
            "members": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the tracker resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TrackerArn": {
                    "target": "com.amazonaws.location#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) for the tracker resource. Used when you need to specify\n            a resource across all AWS.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Description": {
                    "target": "com.amazonaws.location#ResourceDescription",
                    "traits": {
                        "smithy.api#documentation": "<p>The optional description for the tracker resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlan": {
                    "target": "com.amazonaws.location#PricingPlan",
                    "traits": {
                        "smithy.api#documentation": "<p>The pricing plan selected for the specified tracker resource.</p>\n        <p>For additional details and restrictions on each pricing plan option, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon Location Service pricing\n                page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlanDataSource": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The data source selected for the tracker resource and associated pricing plan.</p>"
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the tracker resource was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\"> ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                },
                "UpdateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the tracker resource was last updated in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\"> ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DevicePosition": {
            "type": "structure",
            "members": {
                "DeviceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The device whose position you retrieved.</p>"
                    }
                },
                "SampleTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp at which the device's position was determined. Uses <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\"> ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                },
                "ReceivedTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the tracker resource received the device position in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\"> ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                },
                "Position": {
                    "target": "com.amazonaws.location#Position",
                    "traits": {
                        "smithy.api#documentation": "<p>The last known device position.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains the device position details.</p>"
            }
        },
        "com.amazonaws.location#DevicePositionList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#DevicePosition"
            }
        },
        "com.amazonaws.location#DevicePositionUpdate": {
            "type": "structure",
            "members": {
                "DeviceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The device associated to the position update.</p>",
                        "smithy.api#required": {}
                    }
                },
                "SampleTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp at which the device's position was determined. Uses <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "Position": {
                    "target": "com.amazonaws.location#Position",
                    "traits": {
                        "smithy.api#documentation": "<p>The latest device position defined in <a href=\"https://earth-info.nga.mil/GandG/wgs84/index.html\">WGS 84</a> format:\n                <code>[X or longitude, Y or latitude]</code>.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains the position update details for a device.</p>"
            }
        },
        "com.amazonaws.location#DevicePositionUpdateList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#DevicePositionUpdate"
            }
        },
        "com.amazonaws.location#DisassociateTrackerConsumer": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#DisassociateTrackerConsumerRequest"
            },
            "output": {
                "target": "com.amazonaws.location#DisassociateTrackerConsumerResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Removes the association between a tracker resource and a geofence collection.</p>\n        <note>\n            <p>Once you unlink a tracker resource from a geofence collection, the tracker\n                positions will no longer be automatically evaluated against geofences.</p>\n        </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "tracking."
                },
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/tracking/v0/trackers/{TrackerName}/consumers/{ConsumerArn}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.location#DisassociateTrackerConsumerRequest": {
            "type": "structure",
            "members": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the tracker resource to be dissociated from the consumer.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ConsumerArn": {
                    "target": "com.amazonaws.location#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) for the geofence collection to be disassociated from\n            the tracker resource. Used when you need to specify a resource across all AWS. </p>\n        <ul>\n            <li>\n                <p>Format example:\n                        <code>arn:partition:service:region:account-id:resource-type:resource-id</code>\n               </p>\n            </li>\n         </ul>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#DisassociateTrackerConsumerResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.location#GeofenceCollectionResource": {
            "type": "resource",
            "identifiers": {
                "CollectionName": {
                    "target": "com.amazonaws.location#ResourceName"
                }
            },
            "put": {
                "target": "com.amazonaws.location#CreateGeofenceCollection"
            },
            "read": {
                "target": "com.amazonaws.location#DescribeGeofenceCollection"
            },
            "delete": {
                "target": "com.amazonaws.location#DeleteGeofenceCollection"
            },
            "list": {
                "target": "com.amazonaws.location#ListGeofenceCollections"
            },
            "operations": [
                {
                    "target": "com.amazonaws.location#BatchDeleteGeofence"
                },
                {
                    "target": "com.amazonaws.location#BatchEvaluateGeofences"
                },
                {
                    "target": "com.amazonaws.location#BatchPutGeofence"
                },
                {
                    "target": "com.amazonaws.location#GetGeofence"
                },
                {
                    "target": "com.amazonaws.location#ListGeofences"
                },
                {
                    "target": "com.amazonaws.location#PutGeofence"
                }
            ],
            "traits": {
                "aws.api#arn": {
                    "template": "geofence-collection/{CollectionName}",
                    "absolute": false,
                    "noAccount": false,
                    "noRegion": false
                },
                "aws.iam#disableConditionKeyInference": {}
            }
        },
        "com.amazonaws.location#GeofenceGeometry": {
            "type": "structure",
            "members": {
                "Polygon": {
                    "target": "com.amazonaws.location#LinearRings",
                    "traits": {
                        "smithy.api#documentation": "<p>An array of 1 or more linear rings. A linear ring is an array of 4 or more vertices,\n            where the first and last vertex are the same to form a closed boundary. Each vertex is a\n            2-dimensional point of the form: <code>[longitude, latitude]</code>. </p>\n        <p>The first linear ring is an outer ring, describing the polygon's boundary. Subsequent\n            linear rings may be inner or outer rings to describe holes and islands. Outer rings must\n            list their vertices in counter-clockwise order around the ring's center, where the left\n            side is the polygon's exterior. Inner rings must list their vertices in clockwise order,\n            where the left side is the polygon's interior.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains the geofence geometry details.</p>\n        <note>\n            <p>Amazon Location does not currently support polygons with holes, multipolygons, polygons\n                that are wound clockwise, or that cross the antimeridian. </p>\n        </note>"
            }
        },
        "com.amazonaws.location#GetDevicePosition": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#GetDevicePositionRequest"
            },
            "output": {
                "target": "com.amazonaws.location#GetDevicePositionResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves a device's most recent position according to its sample time.</p>\n         <note>\n            <p>Device positions are deleted after one year.</p>\n         </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "tracking."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/tracking/v0/trackers/{TrackerName}/devices/{DeviceId}/positions/latest",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#GetDevicePositionHistory": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#GetDevicePositionHistoryRequest"
            },
            "output": {
                "target": "com.amazonaws.location#GetDevicePositionHistoryResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves the device position history from a tracker resource within a specified range\n            of time.</p>\n         <note>\n           <p>Device positions are deleted after 1 year.</p>\n         </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "tracking."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/tracking/v0/trackers/{TrackerName}/devices/{DeviceId}/list-positions",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "items": "DevicePositions"
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#GetDevicePositionHistoryRequest": {
            "type": "structure",
            "members": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The tracker resource receiving the request for the device position history.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "DeviceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The device whose position history you want to retrieve.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token specifying which page of results to return in the response. If no\n            token is provided, the default page is the first page. </p>\n         <p>Default value: <code>null</code>\n         </p>"
                    }
                },
                "StartTimeInclusive": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Specify the start time for the position history in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\"> ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. By default, the value will be 24 hours\n            prior to the time that the request is made.</p>\n        <p>Requirement:</p>\n         <ul>\n            <li>\n               <p>The time specified for <code>StartTimeInclusive</code> must be before\n                        <code>EndTimeExclusive</code>.</p>\n           </li>\n         </ul>"
                    }
                },
                "EndTimeExclusive": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Specify the end time for the position history in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\"> ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. By default, the value will be the time\n            that the request is made.</p>\n        <p>Requirement:</p>\n         <ul>\n            <li>\n               <p>The time specified for <code>EndTimeExclusive</code> must be after the time for\n                        <code>StartTimeInclusive</code>.</p>\n           </li>\n         </ul>"
                    }
                }
            }
        },
        "com.amazonaws.location#GetDevicePositionHistoryResponse": {
            "type": "structure",
            "members": {
                "DevicePositions": {
                    "target": "com.amazonaws.location#DevicePositionList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains the position history details for the requested device.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>A pagination token indicating there are additional pages available. You can use the\n            token in a following request to fetch the next set of results. </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#GetDevicePositionRequest": {
            "type": "structure",
            "members": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The tracker resource receiving the position update.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "DeviceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The device whose position you want to retrieve.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#GetDevicePositionResponse": {
            "type": "structure",
            "members": {
                "DeviceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The device whose position you retrieved.</p>"
                    }
                },
                "SampleTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp at which the device's position was determined. Uses <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\"> ISO 8601 </a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                },
                "ReceivedTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the tracker resource received the device position in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\"> ISO 8601 </a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                },
                "Position": {
                    "target": "com.amazonaws.location#Position",
                    "traits": {
                        "smithy.api#documentation": "<p>The last known device position.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#GetGeofence": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#GetGeofenceRequest"
            },
            "output": {
                "target": "com.amazonaws.location#GetGeofenceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves the geofence details from a geofence collection.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "geofencing."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/geofencing/v0/collections/{CollectionName}/geofences/{GeofenceId}",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#GetGeofenceRequest": {
            "type": "structure",
            "members": {
                "CollectionName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The geofence collection storing the target geofence.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "GeofenceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The geofence you're retrieving details for.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#GetGeofenceResponse": {
            "type": "structure",
            "members": {
                "GeofenceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The geofence identifier.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Geometry": {
                    "target": "com.amazonaws.location#GeofenceGeometry",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains the geofence geometry details describing a polygon.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Status": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies the state of the geofence. A geofence will hold one of the following\n            states:</p>\n        <ul>\n            <li>\n                <p>\n                  <code>ACTIVE</code> — The geofence has been indexed by the system. </p>\n            </li>\n            <li>\n                <p>\n                  <code>PENDING</code> — The geofence is being processed by the system.</p>\n            </li>\n            <li>\n                <p>\n                  <code>FAILED</code> — The geofence failed to be indexed by the system.</p>\n            </li>\n            <li>\n                <p>\n                  <code>DELETED</code> — The geofence has been deleted from the system\n                    index.</p>\n            </li>\n            <li>\n                <p>\n                  <code>DELETING</code> — The geofence is being deleted from the system\n                    index.</p>\n            </li>\n         </ul>",
                        "smithy.api#required": {}
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the geofence collection was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "UpdateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the geofence collection was last updated in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#GetMapGlyphs": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#GetMapGlyphsRequest"
            },
            "output": {
                "target": "com.amazonaws.location#GetMapGlyphsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves glyphs used to display labels on a map.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "maps."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/maps/v0/maps/{MapName}/glyphs/{FontStack}/{FontUnicodeRange}",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#GetMapGlyphsRequest": {
            "type": "structure",
            "members": {
                "MapName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The map resource associated with the glyph ﬁle.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "FontStack": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>A comma-separated list of fonts to load glyphs from in order of preference.. For\n            example, <code>Noto Sans, Arial Unicode</code>.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "FontUnicodeRange": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>A Unicode range of characters to download glyphs for. Each response will contain 256\n            characters. For example, 0-255 includes all characters from range <code>U+0000</code> to\n                <code>00FF</code>. Must be aligned to multiples of 256.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#pattern": "^[0-9]+-[0-9]+\\.pbf$",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#GetMapGlyphsResponse": {
            "type": "structure",
            "members": {
                "Blob": {
                    "target": "smithy.api#Blob",
                    "traits": {
                        "smithy.api#documentation": "<p>The blob's content type.</p>",
                        "smithy.api#httpPayload": {}
                    }
                },
                "ContentType": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The map glyph content type. For example, <code>application/octet-stream</code>.</p>",
                        "smithy.api#httpHeader": "Content-Type"
                    }
                }
            },
            "traits": {
                "smithy.api#externalDocumentation": {
                    "Documentation": "https://github.com/mapbox/node-fontnik"
                }
            }
        },
        "com.amazonaws.location#GetMapSprites": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#GetMapSpritesRequest"
            },
            "output": {
                "target": "com.amazonaws.location#GetMapSpritesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves the sprite sheet corresponding to a map resource. The sprite sheet is a PNG\n            image paired with a JSON document describing the offsets of individual icons that will\n            be displayed on a rendered map.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "maps."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/maps/v0/maps/{MapName}/sprites/{FileName}",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#GetMapSpritesRequest": {
            "type": "structure",
            "members": {
                "MapName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The map resource associated with the sprite ﬁle.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "FileName": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the sprite ﬁle. Use the following ﬁle names for the sprite sheet:</p>\n        <ul>\n            <li>\n               <p>\n                  <code>sprites.png</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>sprites@2x.png</code> for high pixel density displays</p>\n            </li>\n         </ul>\n        <p>For the JSON document contain image offsets. Use the following ﬁle names:</p> \n        <ul>\n            <li>\n               <p>\n                  <code>sprites.json</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>sprites@2x.json</code> for high pixel density displays</p>\n            </li>\n         </ul>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#pattern": "^sprites(@2x)?\\.(png|json)$",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#GetMapSpritesResponse": {
            "type": "structure",
            "members": {
                "Blob": {
                    "target": "smithy.api#Blob",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains the body of the sprite sheet or JSON offset ﬁle.</p>",
                        "smithy.api#httpPayload": {}
                    }
                },
                "ContentType": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The content type of the sprite sheet and offsets. For example, the sprite sheet\n            content type is <code>image/png</code>, and the sprite offset JSON document is\n                <code>application/json</code>. </p>",
                        "smithy.api#httpHeader": "Content-Type"
                    }
                }
            }
        },
        "com.amazonaws.location#GetMapStyleDescriptor": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#GetMapStyleDescriptorRequest"
            },
            "output": {
                "target": "com.amazonaws.location#GetMapStyleDescriptorResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves the map style descriptor from a map resource. </p>\n        <p>The style descriptor contains speciﬁcations on how features render on a map. For\n            example, what data to display, what order to display the data in, and the style for the\n            data. Style descriptors follow the Mapbox Style Specification.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "maps."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/maps/v0/maps/{MapName}/style-descriptor",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#GetMapStyleDescriptorRequest": {
            "type": "structure",
            "members": {
                "MapName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The map resource to retrieve the style descriptor from.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#GetMapStyleDescriptorResponse": {
            "type": "structure",
            "members": {
                "Blob": {
                    "target": "smithy.api#Blob",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains the body of the style descriptor.</p>",
                        "smithy.api#externalDocumentation": {
                            "Specification": "https://docs.mapbox.com/mapbox-gl-js/style-spec/"
                        },
                        "smithy.api#httpPayload": {}
                    }
                },
                "ContentType": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The style descriptor's content type. For example,\n            <code>application/json</code>.</p>",
                        "smithy.api#httpHeader": "Content-Type"
                    }
                }
            }
        },
        "com.amazonaws.location#GetMapTile": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#GetMapTileRequest"
            },
            "output": {
                "target": "com.amazonaws.location#GetMapTileResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves a vector data tile from the map resource. Map tiles are used by clients to\n            render a map. They are addressed using a grid arrangement with an X coordinate, Y\n            coordinate, and Z (zoom) level. </p>\n        <p>The origin (0, 0) is the top left of the map. Increasing the zoom level by 1 doubles\n            both the X and Y dimensions, so a tile containing data for the entire world at (0/0/0)\n            will be split into 4 tiles at zoom 1 (1/0/0, 1/0/1, 1/1/0, 1/1/1).</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "maps."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/maps/v0/maps/{MapName}/tiles/{Z}/{X}/{Y}",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#GetMapTileRequest": {
            "type": "structure",
            "members": {
                "MapName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The map resource to retrieve the map tiles from.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "Z": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The zoom value for the map tile.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#pattern": "\\d+",
                        "smithy.api#required": {}
                    }
                },
                "X": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The X axis value for the map tile.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#pattern": "\\d+",
                        "smithy.api#required": {}
                    }
                },
                "Y": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The Y axis value for the map tile. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#pattern": "\\d+",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#GetMapTileResponse": {
            "type": "structure",
            "members": {
                "Blob": {
                    "target": "smithy.api#Blob",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains Mapbox Vector Tile (MVT) data.</p>",
                        "smithy.api#httpPayload": {}
                    }
                },
                "ContentType": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The map tile's content type. For example,\n                <code>application/vnd.mapbox-vector-tile</code>.</p>",
                        "smithy.api#httpHeader": "Content-Type"
                    }
                }
            }
        },
        "com.amazonaws.location#Id": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 100
                },
                "smithy.api#pattern": "^[-._\\p{L}\\p{N}]+$"
            }
        },
        "com.amazonaws.location#IdList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#Id"
            }
        },
        "com.amazonaws.location#IntendedUse": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "SingleUse",
                        "documentation": "Indicates that results of the operation are for single use, e.g., displaying results on a map or presenting options to users."
                    },
                    {
                        "value": "Storage",
                        "documentation": "Indicates that results of the operation may be stored locally."
                    }
                ]
            }
        },
        "com.amazonaws.location#InternalServerException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#jsonName": "message",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The request has failed to process because of an unknown server error, exception, or failure.</p>",
                "smithy.api#error": "server",
                "smithy.api#httpError": 500,
                "smithy.api#retryable": {}
            }
        },
        "com.amazonaws.location#LinearRing": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#Position"
            },
            "traits": {
                "smithy.api#externalDocumentation": {
                    "Documentation": "https://tools.ietf.org/html/rfc7946#section-3.1.6"
                },
                "smithy.api#length": {
                    "min": 4
                }
            }
        },
        "com.amazonaws.location#LinearRings": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#LinearRing"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 1
                }
            }
        },
        "com.amazonaws.location#ListGeofenceCollections": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#ListGeofenceCollectionsRequest"
            },
            "output": {
                "target": "com.amazonaws.location#ListGeofenceCollectionsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists geofence collections in your AWS account.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "geofencing."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/geofencing/v0/list-collections",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "items": "Entries",
                    "pageSize": "MaxResults"
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#ListGeofenceCollectionsRequest": {
            "type": "structure",
            "members": {
                "MaxResults": {
                    "target": "smithy.api#Integer",
                    "traits": {
                        "smithy.api#documentation": "<p>An optional limit for the number of resources returned in a single call. </p>\n        <p>Default value: <code>100</code>\n         </p>",
                        "smithy.api#range": {
                            "min": 1,
                            "max": 100
                        }
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token specifying which page of results to return in the response. If no\n            token is provided, the default page is the first page. </p>\n        <p>Default value: <code>null</code>\n         </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#ListGeofenceCollectionsResponse": {
            "type": "structure",
            "members": {
                "Entries": {
                    "target": "com.amazonaws.location#ListGeofenceCollectionsResponseEntryList",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists the geofence collections that exist in your AWS account.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>A pagination token indicating there are additional pages available. You can use the\n            token in a following request to fetch the next set of results. </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#ListGeofenceCollectionsResponseEntry": {
            "type": "structure",
            "members": {
                "CollectionName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the geofence collection.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Description": {
                    "target": "com.amazonaws.location#ResourceDescription",
                    "traits": {
                        "smithy.api#documentation": "<p>The description for the geofence collection</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlan": {
                    "target": "com.amazonaws.location#PricingPlan",
                    "traits": {
                        "smithy.api#documentation": "<p>The pricing plan for the specified geofence collection.</p>\n        <p>For additional details and restrictions on each pricing plan option, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon Location Service pricing\n            page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlanDataSource": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The data source selected for the geofence collection and associated pricing\n            plan.</p>"
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the geofence collection was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "UpdateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies a timestamp for when the resource was last updated in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains the geofence collection details.</p>"
            }
        },
        "com.amazonaws.location#ListGeofenceCollectionsResponseEntryList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#ListGeofenceCollectionsResponseEntry"
            }
        },
        "com.amazonaws.location#ListGeofenceResponseEntry": {
            "type": "structure",
            "members": {
                "GeofenceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The geofence identifier.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Geometry": {
                    "target": "com.amazonaws.location#GeofenceGeometry",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains the geofence geometry details describing a polygon.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Status": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies the state of the geofence. A geofence will hold one of the following\n            states:</p>\n        <ul>\n            <li>\n                <p>\n                  <code>ACTIVE</code> — The geofence has been indexed by the system. </p>\n            </li>\n            <li>\n                <p>\n                  <code>PENDING</code> — The geofence is being processed by the system.</p>\n            </li>\n            <li>\n                <p>\n                  <code>FAILED</code> — The geofence failed to be indexed by the system.</p>\n            </li>\n            <li>\n                <p>\n                  <code>DELETED</code> — The geofence has been deleted from the system\n                    index.</p>\n            </li>\n            <li>\n                <p>\n                  <code>DELETING</code> — The geofence is being deleted from the system\n                    index.</p>\n            </li>\n         </ul>",
                        "smithy.api#required": {}
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the geofence was stored in a geofence collection in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "UpdateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the geofence was last updated in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a list of geofences stored in a given geofence collection.</p>"
            }
        },
        "com.amazonaws.location#ListGeofenceResponseEntryList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#ListGeofenceResponseEntry"
            }
        },
        "com.amazonaws.location#ListGeofences": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#ListGeofencesRequest"
            },
            "output": {
                "target": "com.amazonaws.location#ListGeofencesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists geofences stored in a given geofence collection.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "geofencing."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/geofencing/v0/collections/{CollectionName}/list-geofences",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "items": "Entries"
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#ListGeofencesRequest": {
            "type": "structure",
            "members": {
                "CollectionName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the geofence collection storing the list of geofences.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token specifying which page of results to return in the response. If no\n            token is provided, the default page is the first page. </p>\n        <p>Default value: <code>null</code>\n         </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#ListGeofencesResponse": {
            "type": "structure",
            "members": {
                "Entries": {
                    "target": "com.amazonaws.location#ListGeofenceResponseEntryList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains a list of geofences stored in the geofence collection.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>A pagination token indicating there are additional pages available. You can use the\n            token in a following request to fetch the next set of results. </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#ListMaps": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#ListMapsRequest"
            },
            "output": {
                "target": "com.amazonaws.location#ListMapsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists map resources in your AWS account.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "maps."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/maps/v0/list-maps",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "items": "Entries",
                    "pageSize": "MaxResults"
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#ListMapsRequest": {
            "type": "structure",
            "members": {
                "MaxResults": {
                    "target": "smithy.api#Integer",
                    "traits": {
                        "smithy.api#documentation": "<p>An optional limit for the number of resources returned in a single call. </p>\n        <p>Default value: <code>100</code>\n         </p>",
                        "smithy.api#range": {
                            "min": 1,
                            "max": 100
                        }
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token specifying which page of results to return in the response. If no\n            token is provided, the default page is the first page.</p>\n        <p>Default value: <code>null</code>\n         </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#ListMapsResponse": {
            "type": "structure",
            "members": {
                "Entries": {
                    "target": "com.amazonaws.location#ListMapsResponseEntryList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains a list of maps in your AWS account</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>A pagination token indicating there are additional pages available. You can use the token in a following request to fetch the next set of results. </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#ListMapsResponseEntry": {
            "type": "structure",
            "members": {
                "MapName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the associated map resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Description": {
                    "target": "com.amazonaws.location#ResourceDescription",
                    "traits": {
                        "smithy.api#documentation": "<p>The description for the map resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "DataSource": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the data provider for the associated map tiles.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlan": {
                    "target": "com.amazonaws.location#PricingPlan",
                    "traits": {
                        "smithy.api#documentation": "<p>The pricing plan for the specified map resource.</p>\n        <p>For additional details and restrictions on each pricing plan option, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon Location Service pricing\n            page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the map resource was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "UpdateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the map resource was last updated in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains details of an existing map resource in your AWS account.</p>"
            }
        },
        "com.amazonaws.location#ListMapsResponseEntryList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#ListMapsResponseEntry"
            }
        },
        "com.amazonaws.location#ListPlaceIndexes": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#ListPlaceIndexesRequest"
            },
            "output": {
                "target": "com.amazonaws.location#ListPlaceIndexesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists Place index resources in your AWS account.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "places."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/places/v0/list-indexes",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "items": "Entries",
                    "pageSize": "MaxResults"
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#ListPlaceIndexesRequest": {
            "type": "structure",
            "members": {
                "MaxResults": {
                    "target": "smithy.api#Integer",
                    "traits": {
                        "smithy.api#documentation": "<p>An optional limit for the maximum number of results returned in a single call.</p>\n         <p>Default value: <code>100</code>\n         </p>",
                        "smithy.api#range": {
                            "min": 1,
                            "max": 100
                        }
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token specifying which page of results to return in the response. If no\n         token is provided, the default page is the first page.</p>\n         <p>Default value: <code>null</code>\n         </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#ListPlaceIndexesResponse": {
            "type": "structure",
            "members": {
                "Entries": {
                    "target": "com.amazonaws.location#ListPlaceIndexesResponseEntryList",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists the Place index resources that exist in your AWS account</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>A pagination token indicating there are additional pages available. You can use the\n         token in a following request to fetch the next set of results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.location#ListPlaceIndexesResponseEntry": {
            "type": "structure",
            "members": {
                "IndexName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the Place index resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Description": {
                    "target": "com.amazonaws.location#ResourceDescription",
                    "traits": {
                        "smithy.api#documentation": "<p>The optional description for the Place index resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "DataSource": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The data provider of geospatial data. Indicates one of the available providers:</p>\n         <ul>\n            <li>\n               <p>Esri</p>\n            </li>\n            <li>\n               <p>HERE</p>\n            </li>\n         </ul>\n         <p>For additional details on data providers, see the <a href=\"https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html\">Amazon Location Service data providers page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlan": {
                    "target": "com.amazonaws.location#PricingPlan",
                    "traits": {
                        "smithy.api#documentation": "<p>The pricing plan for the specified Place index resource.</p>\n         <p>For additional details and restrictions on each pricing plan option, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon Location Service pricing\n         page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the Place index resource was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a> format:\n            <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                },
                "UpdateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the Place index resource was last updated in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a> format:\n            <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A Place index resource listed in your AWS account.</p>"
            }
        },
        "com.amazonaws.location#ListPlaceIndexesResponseEntryList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#ListPlaceIndexesResponseEntry"
            }
        },
        "com.amazonaws.location#ListTrackerConsumers": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#ListTrackerConsumersRequest"
            },
            "output": {
                "target": "com.amazonaws.location#ListTrackerConsumersResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists geofence collections currently associated to the given tracker resource.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "tracking."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/tracking/v0/trackers/{TrackerName}/list-consumers",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "items": "ConsumerArns",
                    "pageSize": "MaxResults"
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#ListTrackerConsumersRequest": {
            "type": "structure",
            "members": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The tracker resource whose associated geofence collections you want to list.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "MaxResults": {
                    "target": "smithy.api#Integer",
                    "traits": {
                        "smithy.api#documentation": "<p>An optional limit for the number of resources returned in a single call. </p>\n        <p>Default value: <code>100</code>\n         </p>",
                        "smithy.api#range": {
                            "min": 1,
                            "max": 100
                        }
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token specifying which page of results to return in the response. If no\n            token is provided, the default page is the first page. </p>\n         <p>Default value: <code>null</code>\n         </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#ListTrackerConsumersResponse": {
            "type": "structure",
            "members": {
                "ConsumerArns": {
                    "target": "com.amazonaws.location#ArnList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains the list of geofence collection ARNs associated to the tracker resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>A pagination token indicating there are additional pages available. You can use the\n            token in a following request to fetch the next set of results. </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#ListTrackers": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#ListTrackersRequest"
            },
            "output": {
                "target": "com.amazonaws.location#ListTrackersResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists tracker resources in your AWS account.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "tracking."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/tracking/v0/list-trackers",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "items": "Entries",
                    "pageSize": "MaxResults"
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#ListTrackersRequest": {
            "type": "structure",
            "members": {
                "MaxResults": {
                    "target": "smithy.api#Integer",
                    "traits": {
                        "smithy.api#documentation": "<p>An optional limit for the number of resources returned in a single call. </p>\n        <p>Default value: <code>100</code>\n         </p>",
                        "smithy.api#range": {
                            "min": 1,
                            "max": 100
                        }
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token specifying which page of results to return in the response. If no\n            token is provided, the default page is the first page. </p>\n        <p>Default value: <code>null</code>\n         </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#ListTrackersResponse": {
            "type": "structure",
            "members": {
                "Entries": {
                    "target": "com.amazonaws.location#ListTrackersResponseEntryList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains tracker resources in your AWS account. Details include tracker name,\n            description and timestamps for when the tracker was created and last updated.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.location#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>A pagination token indicating there are additional pages available. You can use the\n            token in a following request to fetch the next set of results.  </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#ListTrackersResponseEntry": {
            "type": "structure",
            "members": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the tracker resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Description": {
                    "target": "com.amazonaws.location#ResourceDescription",
                    "traits": {
                        "smithy.api#documentation": "<p>The description for the tracker resource.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlan": {
                    "target": "com.amazonaws.location#PricingPlan",
                    "traits": {
                        "smithy.api#documentation": "<p>The pricing plan for the specified tracker resource.</p>\n        <p>For additional details and restrictions on each pricing plan option, see the <a href=\"https://aws.amazon.com/location/pricing/\">Amazon Location Service pricing\n            page</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PricingPlanDataSource": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The data source selected for the tracker resource and associated pricing plan.</p>"
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the tracker resource was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\"> ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                },
                "UpdateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp at which the device's position was determined. Uses <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\"> ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains the tracker resource details.</p>"
            }
        },
        "com.amazonaws.location#ListTrackersResponseEntryList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#ListTrackersResponseEntry"
            }
        },
        "com.amazonaws.location#LocationService": {
            "type": "service",
            "version": "2020-11-19",
            "resources": [
                {
                    "target": "com.amazonaws.location#GeofenceCollectionResource"
                },
                {
                    "target": "com.amazonaws.location#MapResource"
                },
                {
                    "target": "com.amazonaws.location#PlaceIndexResource"
                },
                {
                    "target": "com.amazonaws.location#TrackerResource"
                }
            ],
            "traits": {
                "aws.api#service": {
                    "sdkId": "Location",
                    "arnNamespace": "geo",
                    "cloudFormationName": "LocationService",
                    "cloudTrailEventSource": "geo.amazonaws.com",
                    "endpointPrefix": "geo"
                },
                "aws.auth#sigv4": {
                    "name": "geo"
                },
                "aws.protocols#restJson1": {},
                "smithy.api#documentation": "Suite of geospatial services including Maps, Places, Tracking, and Geofencing",
                "smithy.api#title": "Amazon Location Service"
            }
        },
        "com.amazonaws.location#MapConfiguration": {
            "type": "structure",
            "members": {
                "Style": {
                    "target": "com.amazonaws.location#MapStyle",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the map style selected from an available data provider.</p>\n        <p>Valid styles: <code>VectorEsriStreets</code>, <code>VectorEsriTopographic</code>,\n                <code>VectorEsriNavigation</code>, <code>VectorEsriDarkGrayCanvas</code>,\n                <code>VectorEsriLightGrayCanvas</code>, <code>VectorHereBerlin</code>.</p>\n        <note>\n            <p>When using HERE as your data provider, and selecting the Style\n                    <code>VectorHereBerlin</code>, you may not use HERE Maps for Asset Management.\n                See the <a href=\"https://aws.amazon.com/service-terms/\">AWS Service Terms</a> for Amazon Location Service. </p>\n        </note>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Specifies the map tile style selected from an available provider.</p>"
            }
        },
        "com.amazonaws.location#MapResource": {
            "type": "resource",
            "identifiers": {
                "MapName": {
                    "target": "com.amazonaws.location#ResourceName"
                }
            },
            "put": {
                "target": "com.amazonaws.location#CreateMap"
            },
            "read": {
                "target": "com.amazonaws.location#DescribeMap"
            },
            "delete": {
                "target": "com.amazonaws.location#DeleteMap"
            },
            "list": {
                "target": "com.amazonaws.location#ListMaps"
            },
            "operations": [
                {
                    "target": "com.amazonaws.location#GetMapGlyphs"
                },
                {
                    "target": "com.amazonaws.location#GetMapSprites"
                },
                {
                    "target": "com.amazonaws.location#GetMapStyleDescriptor"
                },
                {
                    "target": "com.amazonaws.location#GetMapTile"
                }
            ],
            "traits": {
                "aws.api#arn": {
                    "template": "map/{MapName}",
                    "absolute": false,
                    "noAccount": false,
                    "noRegion": false
                },
                "aws.iam#disableConditionKeyInference": {}
            }
        },
        "com.amazonaws.location#MapStyle": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 100
                },
                "smithy.api#pattern": "^[-._\\p{L}\\p{N}]+$"
            }
        },
        "com.amazonaws.location#Place": {
            "type": "structure",
            "members": {
                "Label": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The full name and address of the point of interest such as a city,\n         region, or country. For example, <code>123 Any Street, Any Town, USA</code>.</p>"
                    }
                },
                "Geometry": {
                    "target": "com.amazonaws.location#PlaceGeometry",
                    "traits": {
                        "smithy.api#required": {}
                    }
                },
                "AddressNumber": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The numerical portion of an address, such as a building number. </p>"
                    }
                },
                "Street": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The name for a street or a road to identify a location. For example, <code>Main\n         Street</code>.</p>"
                    }
                },
                "Neighborhood": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of a community district. For example, <code>Downtown</code>.</p>"
                    }
                },
                "Municipality": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>A name for a local area, such as a city or town name. For example,\n         <code>Toronto</code>.</p>"
                    }
                },
                "SubRegion": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>A country, or an area that's part of a larger region .  For example, <code>Metro\n            Vancouver</code>.</p>"
                    }
                },
                "Region": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>A name for an area or geographical division, such as a province or state name. For\n         example, <code>British Columbia</code>.</p>"
                    }
                },
                "Country": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>A country/region specified using <a href=\"https://www.iso.org/iso-3166-country-codes.html\">ISO 3166</a> 3-digit\n         country/region code. For example, <code>CAN</code>.</p>"
                    }
                },
                "PostalCode": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>A group of numbers and letters in a country-specific format, which accompanies the\n         address for the purpose of identifying a location. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains details about addresses or points of interest that match the search\n         criteria.</p>"
            }
        },
        "com.amazonaws.location#PlaceGeometry": {
            "type": "structure",
            "members": {
                "Point": {
                    "target": "com.amazonaws.location#Position",
                    "traits": {
                        "smithy.api#documentation": "<p>A single point geometry specifies a location for a Place using <a href=\"https://gisgeography.com/wgs84-world-geodetic-system/\">WGS 84</a>\n         coordinates:</p>\n         <ul>\n            <li>\n               <p>\n                  <i>x</i> — Specifies the x coordinate or longitude. </p>\n            </li>\n            <li>\n               <p>\n                  <i>y</i> — Specifies the y coordinate or latitude. </p>\n            </li>\n         </ul>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Places uses a point geometry to specify a location or a Place.</p>"
            }
        },
        "com.amazonaws.location#PlaceIndexResource": {
            "type": "resource",
            "identifiers": {
                "IndexName": {
                    "target": "com.amazonaws.location#ResourceName"
                }
            },
            "put": {
                "target": "com.amazonaws.location#CreatePlaceIndex"
            },
            "read": {
                "target": "com.amazonaws.location#DescribePlaceIndex"
            },
            "delete": {
                "target": "com.amazonaws.location#DeletePlaceIndex"
            },
            "list": {
                "target": "com.amazonaws.location#ListPlaceIndexes"
            },
            "operations": [
                {
                    "target": "com.amazonaws.location#SearchPlaceIndexForPosition"
                },
                {
                    "target": "com.amazonaws.location#SearchPlaceIndexForText"
                }
            ],
            "traits": {
                "aws.api#arn": {
                    "template": "place-index/{IndexName}",
                    "absolute": false,
                    "noAccount": false,
                    "noRegion": false
                },
                "aws.iam#disableConditionKeyInference": {}
            }
        },
        "com.amazonaws.location#PlaceIndexSearchResultLimit": {
            "type": "integer",
            "traits": {
                "smithy.api#range": {
                    "min": 1,
                    "max": 50
                }
            }
        },
        "com.amazonaws.location#Position": {
            "type": "list",
            "member": {
                "target": "smithy.api#Double"
            },
            "traits": {
                "smithy.api#externalDocumentation": {
                    "Documentation": "https://tools.ietf.org/html/rfc7946#section-3.1.1"
                },
                "smithy.api#length": {
                    "min": 2,
                    "max": 2
                },
                "smithy.api#sensitive": {}
            }
        },
        "com.amazonaws.location#PricingPlan": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "RequestBasedUsage",
                        "documentation": "This pricing plan should be used for request based billing."
                    },
                    {
                        "value": "MobileAssetTracking",
                        "documentation": "This pricing plan must be picked for mobile asset tracking use cases."
                    },
                    {
                        "value": "MobileAssetManagement",
                        "documentation": "This pricing plan must be picked for mobile asset management use cases"
                    }
                ]
            }
        },
        "com.amazonaws.location#PutGeofence": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#PutGeofenceRequest"
            },
            "output": {
                "target": "com.amazonaws.location#PutGeofenceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#ConflictException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Stores a geofence geometry in a given geofence collection, or updates the geometry of\n            an existing geofence if a geofence ID is included in the request. </p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "geofencing."
                },
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/geofencing/v0/collections/{CollectionName}/geofences/{GeofenceId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.location#PutGeofenceRequest": {
            "type": "structure",
            "members": {
                "CollectionName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The geofence collection to store the geofence in.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "GeofenceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>An identifier for the geofence. For example, <code>ExampleGeofence-1</code>.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "Geometry": {
                    "target": "com.amazonaws.location#GeofenceGeometry",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains the polygon details to specify the position of the geofence.</p>\n        <note>\n            <p>Each <a href=\"https://docs.aws.amazon.com/location-geofences/latest/APIReference/API_GeofenceGeometry.html\">geofence polygon</a> can have a maximum of 1,000 vertices.</p>\n        </note>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#PutGeofenceResponse": {
            "type": "structure",
            "members": {
                "GeofenceId": {
                    "target": "com.amazonaws.location#Id",
                    "traits": {
                        "smithy.api#documentation": "<p>The geofence identifier entered in the request.</p>",
                        "smithy.api#required": {}
                    }
                },
                "CreateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the geofence was created in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "UpdateTime": {
                    "target": "com.amazonaws.location#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp for when the geofence was last updated in <a href=\"https://www.iso.org/iso-8601-date-and-time-format.html\">ISO 8601</a>\n            format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#ResourceDescription": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 0,
                    "max": 1000
                }
            }
        },
        "com.amazonaws.location#ResourceName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 100
                },
                "smithy.api#pattern": "^[-._\\w]+$"
            }
        },
        "com.amazonaws.location#ResourceNotFoundException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#jsonName": "message",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The resource that you've entered was not found in your AWS account.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 404
            }
        },
        "com.amazonaws.location#SearchForPositionResult": {
            "type": "structure",
            "members": {
                "Place": {
                    "target": "com.amazonaws.location#Place",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains details about the relevant point of interest.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Specifies a single point of interest, or Place as a result of a search query obtained\n         from a dataset configured in the Place index Resource.</p>"
            }
        },
        "com.amazonaws.location#SearchForPositionResultList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#SearchForPositionResult"
            }
        },
        "com.amazonaws.location#SearchForTextResult": {
            "type": "structure",
            "members": {
                "Place": {
                    "target": "com.amazonaws.location#Place",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains details about the relevant point of interest.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains relevant Places returned by calling\n         <code>SearchPlaceIndexForText</code>.</p>"
            }
        },
        "com.amazonaws.location#SearchForTextResultList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#SearchForTextResult"
            }
        },
        "com.amazonaws.location#SearchPlaceIndexForPosition": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#SearchPlaceIndexForPositionRequest"
            },
            "output": {
                "target": "com.amazonaws.location#SearchPlaceIndexForPositionResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Reverse geocodes a given coordinate and returns a legible address. Allows you to search\n         for Places or points of interest near a given position.</p>\n         <note>\n            <p>By using Places, you agree that AWS may transmit your API queries to your selected\n            third party provider for processing, which may be outside the AWS region you are\n            currently using. </p>\n            <p>Because of licensing limitations, you may not use HERE to store results for locations\n            in Japan. For more information, see the <a href=\"https://aws.amazon.com/service-terms/\">AWS Service Terms</a> for Amazon\n            Location Service.</p>\n         </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "places."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/places/v0/indexes/{IndexName}/search/position",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#SearchPlaceIndexForPositionRequest": {
            "type": "structure",
            "members": {
                "IndexName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the Place index resource you want to use for the search.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "Position": {
                    "target": "com.amazonaws.location#Position",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies a coordinate for the query defined by a longitude, and latitude.</p>\n         <ul>\n            <li>\n               <p>The first position is the X coordinate, or longitude.</p>\n            </li>\n            <li>\n               <p>The second position is the Y coordinate, or latitude. </p>\n            </li>\n         </ul>\n         <p>For example, <code>position=xLongitude&amp;position=yLatitude</code> .</p>",
                        "smithy.api#required": {}
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.location#PlaceIndexSearchResultLimit",
                    "traits": {
                        "smithy.api#documentation": "<p>An optional paramer. The maximum number of results returned per request. </p>\n         <p>Default value: <code>50</code>\n         </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#SearchPlaceIndexForPositionResponse": {
            "type": "structure",
            "members": {
                "Summary": {
                    "target": "com.amazonaws.location#SearchPlaceIndexForPositionSummary",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains a summary of the request.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Results": {
                    "target": "com.amazonaws.location#SearchForPositionResultList",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns a list of Places closest to the specified position. Each result contains\n         additional information about the Places returned.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#SearchPlaceIndexForPositionSummary": {
            "type": "structure",
            "members": {
                "Position": {
                    "target": "com.amazonaws.location#Position",
                    "traits": {
                        "smithy.api#documentation": "<p>The position given in the reverse geocoding request.</p>",
                        "smithy.api#required": {}
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.location#PlaceIndexSearchResultLimit",
                    "traits": {
                        "smithy.api#documentation": "<p>An optional parameter. The maximum number of results returned per request. </p>\n         <p>Default value: <code>50</code>\n         </p>"
                    }
                },
                "DataSource": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The data provider of geospatial data. Indicates one of the available providers:</p>\n         <ul>\n            <li>\n               <p>Esri</p>\n            </li>\n            <li>\n               <p>HERE</p>\n            </li>\n         </ul>\n         <p>For additional details on data providers, see the <a href=\"https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html\">Amazon Location Service data providers page</a>.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A summary of the reverse geocoding request sent using <code>SearchPlaceIndexForPosition</code>.</p>"
            }
        },
        "com.amazonaws.location#SearchPlaceIndexForText": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.location#SearchPlaceIndexForTextRequest"
            },
            "output": {
                "target": "com.amazonaws.location#SearchPlaceIndexForTextResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.location#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.location#InternalServerException"
                },
                {
                    "target": "com.amazonaws.location#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.location#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.location#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Geocodes free-form text, such as an address, name, city, or region to allow you to\n         search for Places or points of interest. </p>\n         <p>Includes the option to apply additional parameters to narrow your list of\n         results.</p>\n         <note>\n            <p>You can search for places near a given position using <code>BiasPosition</code>, or\n            filter results within a bounding box using <code>FilterBBox</code>. Providing both\n            parameters simultaneously returns an error.</p>\n         </note>\n         <note>\n            <p>By using Places, you agree that AWS may transmit your API queries to your selected\n            third party provider for processing, which may be outside the AWS region you are\n            currently using. </p>\n            <p>Also, when using HERE as your data provider, you may not (a) use HERE Places for\n            Asset Management, or (b) select the <code>Storage</code> option for the\n               <code>IntendedUse</code> parameter when requesting Places in Japan. For more\n            information, see the <a href=\"https://aws.amazon.com/service-terms/\">AWS Service\n               Terms</a> for Amazon Location Service.</p>\n         </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "places."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/places/v0/indexes/{IndexName}/search/text",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.location#SearchPlaceIndexForTextRequest": {
            "type": "structure",
            "members": {
                "IndexName": {
                    "target": "com.amazonaws.location#ResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the Place index resource you want to use for the search.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "Text": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The address, name,\n         city, or region to be used in the search. In free-form text format. For example, <code>123 Any\n            Street</code>.</p>",
                        "smithy.api#length": {
                            "min": 1,
                            "max": 200
                        },
                        "smithy.api#required": {},
                        "smithy.api#sensitive": {}
                    }
                },
                "BiasPosition": {
                    "target": "com.amazonaws.location#Position",
                    "traits": {
                        "smithy.api#documentation": "<p>Searches for results closest to the given position. An optional parameter defined by\n         longitude, and latitude.</p>\n         <ul>\n            <li>\n               <p>The first <code>bias</code> position is the X coordinate, or longitude.</p>\n            </li>\n            <li>\n               <p>The second <code>bias</code> position is the Y coordinate, or latitude. </p>\n            </li>\n         </ul>\n         <p>For example, <code>bias=xLongitude&amp;bias=yLatitude</code>.</p>"
                    }
                },
                "FilterBBox": {
                    "target": "com.amazonaws.location#BoundingBox",
                    "traits": {
                        "smithy.api#documentation": "<p>Filters the results by returning only Places within the provided bounding box. An\n         optional parameter.</p>\n         <p>The first 2 <code>bbox</code> parameters describe the lower southwest corner:</p>\n         <ul>\n            <li>\n               <p>The first <code>bbox</code> position is the X coordinate or longitude of the lower\n               southwest corner.</p>\n            </li>\n            <li>\n               <p>The second <code>bbox</code> position is the Y coordinate or latitude of the lower\n               southwest corner.</p>\n            </li>\n         </ul>\n         <p>For example, <code>bbox=xLongitudeSW&amp;bbox=yLatitudeSW</code>.</p>\n         <p>The next <code>bbox</code> parameters describe the upper northeast corner:</p>\n         <ul>\n            <li>\n               <p>The third <code>bbox</code> position is the X coordinate, or longitude of the\n               upper northeast corner.</p>\n            </li>\n            <li>\n               <p>The fourth <code>bbox</code> position is the Y coordinate, or longitude of the\n               upper northeast corner.</p>\n            </li>\n         </ul>\n         <p>For example, <code>bbox=xLongitudeNE&amp;bbox=yLatitudeNE</code>\n         </p>"
                    }
                },
                "FilterCountries": {
                    "target": "com.amazonaws.location#CountryCodeList",
                    "traits": {
                        "smithy.api#documentation": "<p>Limits the search to the given a list of countries/regions. An optional\n         parameter.</p>\n         <ul>\n            <li>\n               <p>Use the <a href=\"https://www.iso.org/iso-3166-country-codes.html\">ISO 3166</a> 3-digit\n            country code. For example, Australia uses three upper-case characters:\n            <code>AUS</code>.</p>\n            </li>\n         </ul>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.location#PlaceIndexSearchResultLimit",
                    "traits": {
                        "smithy.api#documentation": "<p>An optional parameter. The maximum number of results returned per request. </p>\n         <p>The default: <code>50</code>\n         </p>"
                    }
                }
            }
        },
        "com.amazonaws.location#SearchPlaceIndexForTextResponse": {
            "type": "structure",
            "members": {
                "Summary": {
                    "target": "com.amazonaws.location#SearchPlaceIndexForTextSummary",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains a summary of the request. Contains the <code>BiasPosition</code>,\n         <code>DataSource</code>, <code>FilterBBox</code>, <code>FilterCountries</code>,\n         <code>MaxResults</code>, <code>ResultBBox</code>, and <code>Text</code>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Results": {
                    "target": "com.amazonaws.location#SearchForTextResultList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of Places closest to the specified position. Each result contains additional\n         information about the specific point of interest. </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.location#SearchPlaceIndexForTextSummary": {
            "type": "structure",
            "members": {
                "Text": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The address, name, city or region to be used in the geocoding request. In free-form text\n         format. For example, <code>Vancouver</code>.</p>",
                        "smithy.api#required": {},
                        "smithy.api#sensitive": {}
                    }
                },
                "BiasPosition": {
                    "target": "com.amazonaws.location#Position",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains the coordinates for the bias position entered in the geocoding request.</p>"
                    }
                },
                "FilterBBox": {
                    "target": "com.amazonaws.location#BoundingBox",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains the coordinates for the optional bounding box coordinated entered in the\n         geocoding request.</p>"
                    }
                },
                "FilterCountries": {
                    "target": "com.amazonaws.location#CountryCodeList",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains the country filter entered in the geocoding request.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.location#PlaceIndexSearchResultLimit",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains the maximum number of results indicated for the request.</p>"
                    }
                },
                "ResultBBox": {
                    "target": "com.amazonaws.location#BoundingBox",
                    "traits": {
                        "smithy.api#documentation": "<p>A bounding box that contains the search results within the specified area indicated by\n            <code>FilterBBox</code>. A subset of bounding box specified using\n            <code>FilterBBox</code>.</p>"
                    }
                },
                "DataSource": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The data provider of geospatial data. Indicates one of the available providers:</p>\n         <ul>\n            <li>\n               <p>Esri</p>\n            </li>\n            <li>\n               <p>HERE</p>\n            </li>\n         </ul>\n         <p>For additional details on data providers, see the <a href=\"https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html\">Amazon Location Service data providers page</a>.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A summary of the geocoding request sent using <code>SearchPlaceIndexForText</code>.</p>"
            }
        },
        "com.amazonaws.location#ThrottlingException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#jsonName": "message",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The request was denied due to request throttling.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 429,
                "smithy.api#retryable": {}
            }
        },
        "com.amazonaws.location#Timestamp": {
            "type": "timestamp",
            "traits": {
                "smithy.api#timestampFormat": "date-time"
            }
        },
        "com.amazonaws.location#Token": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 2000
                }
            }
        },
        "com.amazonaws.location#TrackerResource": {
            "type": "resource",
            "identifiers": {
                "TrackerName": {
                    "target": "com.amazonaws.location#ResourceName"
                }
            },
            "put": {
                "target": "com.amazonaws.location#CreateTracker"
            },
            "read": {
                "target": "com.amazonaws.location#DescribeTracker"
            },
            "delete": {
                "target": "com.amazonaws.location#DeleteTracker"
            },
            "list": {
                "target": "com.amazonaws.location#ListTrackers"
            },
            "operations": [
                {
                    "target": "com.amazonaws.location#AssociateTrackerConsumer"
                },
                {
                    "target": "com.amazonaws.location#BatchGetDevicePosition"
                },
                {
                    "target": "com.amazonaws.location#BatchUpdateDevicePosition"
                },
                {
                    "target": "com.amazonaws.location#DisassociateTrackerConsumer"
                },
                {
                    "target": "com.amazonaws.location#GetDevicePosition"
                },
                {
                    "target": "com.amazonaws.location#GetDevicePositionHistory"
                },
                {
                    "target": "com.amazonaws.location#ListTrackerConsumers"
                }
            ],
            "traits": {
                "aws.api#arn": {
                    "template": "tracker/{TrackerName}",
                    "absolute": false,
                    "noAccount": false,
                    "noRegion": false
                },
                "aws.iam#disableConditionKeyInference": {}
            }
        },
        "com.amazonaws.location#ValidationException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#jsonName": "message",
                        "smithy.api#required": {}
                    }
                },
                "Reason": {
                    "target": "com.amazonaws.location#ValidationExceptionReason",
                    "traits": {
                        "smithy.api#documentation": "<p>A message with the reason for the validation exception error.</p>",
                        "smithy.api#jsonName": "reason",
                        "smithy.api#required": {}
                    }
                },
                "FieldList": {
                    "target": "com.amazonaws.location#ValidationExceptionFieldList",
                    "traits": {
                        "smithy.api#documentation": "<p>The field where the invalid entry was detected.</p>",
                        "smithy.api#jsonName": "fieldList",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The input failed to meet the constraints specified by the AWS service. </p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.location#ValidationExceptionField": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The field name where the invalid entry was detected.</p>",
                        "smithy.api#jsonName": "name",
                        "smithy.api#required": {}
                    }
                },
                "Message": {
                    "target": "smithy.api#String",
                    "traits": {
                        "smithy.api#documentation": "<p>A message with the reason for the validation exception error.</p>",
                        "smithy.api#jsonName": "message",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The input failed to meet the constraints specified by the AWS service in a specified\n      field. </p>"
            }
        },
        "com.amazonaws.location#ValidationExceptionFieldList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.location#ValidationExceptionField"
            }
        },
        "com.amazonaws.location#ValidationExceptionReason": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "UnknownOperation",
                        "documentation": "No such operation is supported."
                    },
                    {
                        "value": "Missing",
                        "documentation": "The required input is missing."
                    },
                    {
                        "value": "CannotParse",
                        "documentation": "    The input cannot be parsed. For example a required JSON document, ARN identifier,\n    date value, or numeric field cannot be parsed.\n"
                    },
                    {
                        "value": "FieldValidationFailed",
                        "documentation": "    The input is present and parsable, but it is otherwise invalid. For example, a\n    required numeric argument is outside the allowed range.\n"
                    },
                    {
                        "value": "Other",
                        "documentation": "The input is invalid but no more specific reason is applicable."
                    }
                ]
            }
        }
    }
}