Skip to content

update_tracker async

update_tracker(
    tracker_name: ResourceName,
    *,
    config_overrides: Optional[AsyncLocationClientConfig] = None,
    pricing_plan: Optional[PricingPlan] = None,
    pricing_plan_data_source: Optional[str] = None,
    description: Optional[ResourceDescription] = None,
    position_filtering: Optional[PositionFiltering] = None,
    event_bridge_enabled: Optional[bool] = None,
    kms_key_enable_geospatial_queries: Optional[bool] = None,
) -> UpdateTrackerResponse

Updates the specified properties of a given tracker resource.

Parameters:

  • tracker_name (ResourceName) –

    The name of the tracker resource to update.

  • pricing_plan (Optional[PricingPlan], default: None ) –

    No longer used. If included, the only allowed value is RequestBasedUsage.

  • pricing_plan_data_source (Optional[str], default: None ) –

    This parameter is no longer used.

  • description (Optional[ResourceDescription], default: None ) –

    Updates the description for the tracker resource.

  • position_filtering (Optional[PositionFiltering], default: None ) –

    Updates the position filtering for the tracker resource.

    Valid values:

    • TimeBased - Location updates are evaluated against linked geofence collections, but not every location update is stored. If your update frequency is more often than 30 seconds, only one update per 30 seconds is stored for each unique device ID.

    • DistanceBased - If the device has moved less than 30 m (98.4 ft), location updates are ignored. Location updates within this distance are neither evaluated against linked geofence collections, nor stored. This helps control costs by reducing the number of geofence evaluations and historical device positions to paginate through. Distance-based filtering can also reduce the effects of GPS noise when displaying device trajectories on a map.

    • AccuracyBased - If the device has moved less than the measured accuracy, location updates are ignored. For example, if two consecutive updates from a device have a horizontal accuracy of 5 m and 10 m, the second update is ignored if the device has moved less than 15 m. Ignored location updates are neither evaluated against linked geofence collections, nor stored. This helps educe the effects of GPS noise when displaying device trajectories on a map, and can help control costs by reducing the number of geofence evaluations.

  • event_bridge_enabled (Optional[bool], default: None ) –

    Whether to enable position UPDATE events from this tracker to be sent to EventBridge.

    You do not need enable this feature to get ENTER and EXIT events for geofences with this tracker. Those events are always sent to EventBridge.

  • kms_key_enable_geospatial_queries (Optional[bool], default: None ) –

    Enables GeospatialQueries for a tracker that uses a Amazon Web Services KMS customer managed key.

    This parameter is only used if you are using a KMS customer managed key.

Raises:

  • AccessDeniedException –

    The request was denied because of insufficient access or permissions. Check with an administrator to verify your permissions.

  • InternalServerException –

    The request has failed to process because of an unknown server error, exception, or failure.

  • ResourceNotFoundException –

    The resource that you've entered was not found in your AWS account.

  • ThrottlingException –

    The request was denied because of request throttling.

  • ValidationException –

    The input failed to meet the constraints specified by the AWS service.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_location/_services/async_location.py
async def update_tracker(
    self,
    tracker_name: "capo_location.types.resource_name.ResourceName",
    *,
    config_overrides: Optional[AsyncLocationClientConfig] = None,
    pricing_plan: Optional["capo_location.types.pricing_plan.PricingPlan"] = None,
    pricing_plan_data_source: Optional[str] = None,
    description: Optional[
        "capo_location.types.resource_description.ResourceDescription"
    ] = None,
    position_filtering: Optional[
        "capo_location.types.position_filtering.PositionFiltering"
    ] = None,
    event_bridge_enabled: Optional[bool] = None,
    kms_key_enable_geospatial_queries: Optional[bool] = None,
) -> "capo_location.types.update_tracker_response.UpdateTrackerResponse":
    """<p>Updates the specified properties of a given tracker resource.</p>

    Args:
        tracker_name: <p>The name of the tracker resource to update.</p>
        pricing_plan: <p>No longer used. If included, the only allowed value is <code>RequestBasedUsage</code>.</p>
        pricing_plan_data_source: <p>This parameter is no longer used.</p>
        description: <p>Updates the description for the tracker resource.</p>
        position_filtering: <p>Updates the position filtering for the tracker resource.</p> <p>Valid values:</p> <ul> <li> <p> <code>TimeBased</code> - Location updates are evaluated against linked geofence collections, but not every location update is stored. If your update frequency is more often than 30 seconds, only one update per 30 seconds is stored for each unique device ID. </p> </li> <li> <p> <code>DistanceBased</code> - If the device has moved less than 30 m (98.4 ft), location updates are ignored. Location updates within this distance are neither evaluated against linked geofence collections, nor stored. This helps control costs by reducing the number of geofence evaluations and historical device positions to paginate through. Distance-based filtering can also reduce the effects of GPS noise when displaying device trajectories on a map. </p> </li> <li> <p> <code>AccuracyBased</code> - If the device has moved less than the measured accuracy, location updates are ignored. For example, if two consecutive updates from a device have a horizontal accuracy of 5 m and 10 m, the second update is ignored if the device has moved less than 15 m. Ignored location updates are neither evaluated against linked geofence collections, nor stored. This helps educe the effects of GPS noise when displaying device trajectories on a map, and can help control costs by reducing the number of geofence evaluations. </p> </li> </ul>
        event_bridge_enabled: <p>Whether to enable position <code>UPDATE</code> events from this tracker to be sent to EventBridge.</p> <note> <p>You do not need enable this feature to get <code>ENTER</code> and <code>EXIT</code> events for geofences with this tracker. Those events are always sent to EventBridge.</p> </note>
        kms_key_enable_geospatial_queries: <p>Enables <code>GeospatialQueries</code> for a tracker that uses a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html">Amazon Web Services KMS customer managed key</a>.</p> <p>This parameter is only used if you are using a KMS customer managed key.</p>

    Raises:
        capo_location.errors.access_denied_exception.AccessDeniedException: <p>The request was denied because of insufficient access or permissions. Check with an administrator to verify your permissions.</p>
        capo_location.errors.internal_server_exception.InternalServerException: <p>The request has failed to process because of an unknown server error, exception, or failure.</p>
        capo_location.errors.resource_not_found_exception.ResourceNotFoundException: <p>The resource that you've entered was not found in your AWS account.</p>
        capo_location.errors.throttling_exception.ThrottlingException: <p>The request was denied because of request throttling.</p>
        capo_location.errors.validation_exception.ValidationException: <p>The input failed to meet the constraints specified by the AWS service. </p>
        capo_location.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_location.types.update_tracker_request.UpdateTrackerRequest]",
    ) -> AsyncOperationResponse[
        "capo_location.types.update_tracker_response.UpdateTrackerResponse"
    ]:
        import capo_location._operations.location_service.update_tracker

        (
            output,
            http_response,
        ) = await capo_location._operations.location_service.update_tracker.async_update_tracker(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    def _redact_output(
        output: "capo_location.types.update_tracker_response.UpdateTrackerResponse",
    ) -> dict[str, Any]:
        import capo_location.types.update_tracker_response

        return capo_location.types.update_tracker_response.redact_sensitive(output)

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging("UpdateTracker", redact_output=_redact_output),
    )
    input_: capo_location.types.update_tracker_request.UpdateTrackerRequest = {
        "tracker_name": tracker_name
    }
    if pricing_plan is not None:
        input_["pricing_plan"] = pricing_plan
    if pricing_plan_data_source is not None:
        input_["pricing_plan_data_source"] = pricing_plan_data_source
    if description is not None:
        input_["description"] = description
    if position_filtering is not None:
        input_["position_filtering"] = position_filtering
    if event_bridge_enabled is not None:
        input_["event_bridge_enabled"] = event_bridge_enabled
    if kms_key_enable_geospatial_queries is not None:
        input_["kms_key_enable_geospatial_queries"] = (
            kms_key_enable_geospatial_queries
        )

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output