aws-sdk-location 0.36.0

AWS SDK for Amazon Location Service
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct DescribeTrackerOutput {
    /// <p>The name of the tracker resource.</p>
    pub tracker_name: ::std::string::String,
    /// <p>The Amazon Resource Name (ARN) for the tracker resource. Used when you need to specify a resource across all Amazon Web Services.</p>
    /// <ul>
    /// <li> <p>Format example: <code>arn:aws:geo:region:account-id:tracker/ExampleTracker</code> </p> </li>
    /// </ul>
    pub tracker_arn: ::std::string::String,
    /// <p>The optional description for the tracker resource.</p>
    pub description: ::std::string::String,
    /// <p>Always returns <code>RequestBasedUsage</code>.</p>
    #[deprecated(note = "Deprecated. Always returns RequestBasedUsage.", since = "2022-02-01")]
    pub pricing_plan: ::std::option::Option<crate::types::PricingPlan>,
    /// <p>No longer used. Always returns an empty string.</p>
    #[deprecated(note = "Deprecated. Unused.", since = "2022-02-01")]
    pub pricing_plan_data_source: ::std::option::Option<::std::string::String>,
    /// <p>The tags associated with the tracker resource.</p>
    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    /// <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> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>
    pub create_time: ::aws_smithy_types::DateTime,
    /// <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> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>
    pub update_time: ::aws_smithy_types::DateTime,
    /// <p>A key identifier for an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html">Amazon Web Services KMS customer managed key</a> assigned to the Amazon Location resource.</p>
    pub kms_key_id: ::std::option::Option<::std::string::String>,
    /// <p>The position filtering method of the tracker resource.</p>
    pub position_filtering: ::std::option::Option<crate::types::PositionFiltering>,
    /// <p>Whether <code>UPDATE</code> events from this tracker in EventBridge are enabled. If set to <code>true</code> these events will be sent to EventBridge.</p>
    pub event_bridge_enabled: ::std::option::Option<bool>,
    /// <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> <note>
    /// <p>If you wish to encrypt your data using your own KMS customer managed key, then the Bounding Polygon Queries feature will be disabled by default. This is because by using this feature, a representation of your device positions will not be encrypted using the your KMS managed key. The exact device position, however; is still encrypted using your managed key.</p>
    /// <p>You can choose to opt-in to the Bounding Polygon Quseries feature. This is done by setting the <code>KmsKeyEnableGeospatialQueries</code> parameter to true when creating or updating a Tracker.</p>
    /// </note>
    pub kms_key_enable_geospatial_queries: ::std::option::Option<bool>,
    _request_id: Option<String>,
}
impl DescribeTrackerOutput {
    /// <p>The name of the tracker resource.</p>
    pub fn tracker_name(&self) -> &str {
        use std::ops::Deref;
        self.tracker_name.deref()
    }
    /// <p>The Amazon Resource Name (ARN) for the tracker resource. Used when you need to specify a resource across all Amazon Web Services.</p>
    /// <ul>
    /// <li> <p>Format example: <code>arn:aws:geo:region:account-id:tracker/ExampleTracker</code> </p> </li>
    /// </ul>
    pub fn tracker_arn(&self) -> &str {
        use std::ops::Deref;
        self.tracker_arn.deref()
    }
    /// <p>The optional description for the tracker resource.</p>
    pub fn description(&self) -> &str {
        use std::ops::Deref;
        self.description.deref()
    }
    /// <p>Always returns <code>RequestBasedUsage</code>.</p>
    #[deprecated(note = "Deprecated. Always returns RequestBasedUsage.", since = "2022-02-01")]
    pub fn pricing_plan(&self) -> ::std::option::Option<&crate::types::PricingPlan> {
        self.pricing_plan.as_ref()
    }
    /// <p>No longer used. Always returns an empty string.</p>
    #[deprecated(note = "Deprecated. Unused.", since = "2022-02-01")]
    pub fn pricing_plan_data_source(&self) -> ::std::option::Option<&str> {
        self.pricing_plan_data_source.as_deref()
    }
    /// <p>The tags associated with the tracker resource.</p>
    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        self.tags.as_ref()
    }
    /// <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> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>
    pub fn create_time(&self) -> &::aws_smithy_types::DateTime {
        &self.create_time
    }
    /// <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> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>
    pub fn update_time(&self) -> &::aws_smithy_types::DateTime {
        &self.update_time
    }
    /// <p>A key identifier for an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html">Amazon Web Services KMS customer managed key</a> assigned to the Amazon Location resource.</p>
    pub fn kms_key_id(&self) -> ::std::option::Option<&str> {
        self.kms_key_id.as_deref()
    }
    /// <p>The position filtering method of the tracker resource.</p>
    pub fn position_filtering(&self) -> ::std::option::Option<&crate::types::PositionFiltering> {
        self.position_filtering.as_ref()
    }
    /// <p>Whether <code>UPDATE</code> events from this tracker in EventBridge are enabled. If set to <code>true</code> these events will be sent to EventBridge.</p>
    pub fn event_bridge_enabled(&self) -> ::std::option::Option<bool> {
        self.event_bridge_enabled
    }
    /// <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> <note>
    /// <p>If you wish to encrypt your data using your own KMS customer managed key, then the Bounding Polygon Queries feature will be disabled by default. This is because by using this feature, a representation of your device positions will not be encrypted using the your KMS managed key. The exact device position, however; is still encrypted using your managed key.</p>
    /// <p>You can choose to opt-in to the Bounding Polygon Quseries feature. This is done by setting the <code>KmsKeyEnableGeospatialQueries</code> parameter to true when creating or updating a Tracker.</p>
    /// </note>
    pub fn kms_key_enable_geospatial_queries(&self) -> ::std::option::Option<bool> {
        self.kms_key_enable_geospatial_queries
    }
}
impl ::aws_http::request_id::RequestId for DescribeTrackerOutput {
    fn request_id(&self) -> Option<&str> {
        self._request_id.as_deref()
    }
}
impl DescribeTrackerOutput {
    /// Creates a new builder-style object to manufacture [`DescribeTrackerOutput`](crate::operation::describe_tracker::DescribeTrackerOutput).
    pub fn builder() -> crate::operation::describe_tracker::builders::DescribeTrackerOutputBuilder {
        crate::operation::describe_tracker::builders::DescribeTrackerOutputBuilder::default()
    }
}

/// A builder for [`DescribeTrackerOutput`](crate::operation::describe_tracker::DescribeTrackerOutput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct DescribeTrackerOutputBuilder {
    pub(crate) tracker_name: ::std::option::Option<::std::string::String>,
    pub(crate) tracker_arn: ::std::option::Option<::std::string::String>,
    pub(crate) description: ::std::option::Option<::std::string::String>,
    pub(crate) pricing_plan: ::std::option::Option<crate::types::PricingPlan>,
    pub(crate) pricing_plan_data_source: ::std::option::Option<::std::string::String>,
    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    pub(crate) create_time: ::std::option::Option<::aws_smithy_types::DateTime>,
    pub(crate) update_time: ::std::option::Option<::aws_smithy_types::DateTime>,
    pub(crate) kms_key_id: ::std::option::Option<::std::string::String>,
    pub(crate) position_filtering: ::std::option::Option<crate::types::PositionFiltering>,
    pub(crate) event_bridge_enabled: ::std::option::Option<bool>,
    pub(crate) kms_key_enable_geospatial_queries: ::std::option::Option<bool>,
    _request_id: Option<String>,
}
impl DescribeTrackerOutputBuilder {
    /// <p>The name of the tracker resource.</p>
    /// This field is required.
    pub fn tracker_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.tracker_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the tracker resource.</p>
    pub fn set_tracker_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.tracker_name = input;
        self
    }
    /// <p>The name of the tracker resource.</p>
    pub fn get_tracker_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.tracker_name
    }
    /// <p>The Amazon Resource Name (ARN) for the tracker resource. Used when you need to specify a resource across all Amazon Web Services.</p>
    /// <ul>
    /// <li> <p>Format example: <code>arn:aws:geo:region:account-id:tracker/ExampleTracker</code> </p> </li>
    /// </ul>
    /// This field is required.
    pub fn tracker_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.tracker_arn = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The Amazon Resource Name (ARN) for the tracker resource. Used when you need to specify a resource across all Amazon Web Services.</p>
    /// <ul>
    /// <li> <p>Format example: <code>arn:aws:geo:region:account-id:tracker/ExampleTracker</code> </p> </li>
    /// </ul>
    pub fn set_tracker_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.tracker_arn = input;
        self
    }
    /// <p>The Amazon Resource Name (ARN) for the tracker resource. Used when you need to specify a resource across all Amazon Web Services.</p>
    /// <ul>
    /// <li> <p>Format example: <code>arn:aws:geo:region:account-id:tracker/ExampleTracker</code> </p> </li>
    /// </ul>
    pub fn get_tracker_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.tracker_arn
    }
    /// <p>The optional description for the tracker resource.</p>
    /// This field is required.
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.description = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The optional description for the tracker resource.</p>
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.description = input;
        self
    }
    /// <p>The optional description for the tracker resource.</p>
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
        &self.description
    }
    /// <p>Always returns <code>RequestBasedUsage</code>.</p>
    #[deprecated(note = "Deprecated. Always returns RequestBasedUsage.", since = "2022-02-01")]
    pub fn pricing_plan(mut self, input: crate::types::PricingPlan) -> Self {
        self.pricing_plan = ::std::option::Option::Some(input);
        self
    }
    /// <p>Always returns <code>RequestBasedUsage</code>.</p>
    #[deprecated(note = "Deprecated. Always returns RequestBasedUsage.", since = "2022-02-01")]
    pub fn set_pricing_plan(mut self, input: ::std::option::Option<crate::types::PricingPlan>) -> Self {
        self.pricing_plan = input;
        self
    }
    /// <p>Always returns <code>RequestBasedUsage</code>.</p>
    #[deprecated(note = "Deprecated. Always returns RequestBasedUsage.", since = "2022-02-01")]
    pub fn get_pricing_plan(&self) -> &::std::option::Option<crate::types::PricingPlan> {
        &self.pricing_plan
    }
    /// <p>No longer used. Always returns an empty string.</p>
    #[deprecated(note = "Deprecated. Unused.", since = "2022-02-01")]
    pub fn pricing_plan_data_source(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.pricing_plan_data_source = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>No longer used. Always returns an empty string.</p>
    #[deprecated(note = "Deprecated. Unused.", since = "2022-02-01")]
    pub fn set_pricing_plan_data_source(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.pricing_plan_data_source = input;
        self
    }
    /// <p>No longer used. Always returns an empty string.</p>
    #[deprecated(note = "Deprecated. Unused.", since = "2022-02-01")]
    pub fn get_pricing_plan_data_source(&self) -> &::std::option::Option<::std::string::String> {
        &self.pricing_plan_data_source
    }
    /// Adds a key-value pair to `tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <p>The tags associated with the tracker resource.</p>
    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut hash_map = self.tags.unwrap_or_default();
        hash_map.insert(k.into(), v.into());
        self.tags = ::std::option::Option::Some(hash_map);
        self
    }
    /// <p>The tags associated with the tracker resource.</p>
    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
        self.tags = input;
        self
    }
    /// <p>The tags associated with the tracker resource.</p>
    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        &self.tags
    }
    /// <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> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>
    /// This field is required.
    pub fn create_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.create_time = ::std::option::Option::Some(input);
        self
    }
    /// <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> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>
    pub fn set_create_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        self.create_time = input;
        self
    }
    /// <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> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>
    pub fn get_create_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        &self.create_time
    }
    /// <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> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>
    /// This field is required.
    pub fn update_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.update_time = ::std::option::Option::Some(input);
        self
    }
    /// <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> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>
    pub fn set_update_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        self.update_time = input;
        self
    }
    /// <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> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. </p>
    pub fn get_update_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        &self.update_time
    }
    /// <p>A key identifier for an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html">Amazon Web Services KMS customer managed key</a> assigned to the Amazon Location resource.</p>
    pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.kms_key_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>A key identifier for an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html">Amazon Web Services KMS customer managed key</a> assigned to the Amazon Location resource.</p>
    pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.kms_key_id = input;
        self
    }
    /// <p>A key identifier for an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html">Amazon Web Services KMS customer managed key</a> assigned to the Amazon Location resource.</p>
    pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.kms_key_id
    }
    /// <p>The position filtering method of the tracker resource.</p>
    pub fn position_filtering(mut self, input: crate::types::PositionFiltering) -> Self {
        self.position_filtering = ::std::option::Option::Some(input);
        self
    }
    /// <p>The position filtering method of the tracker resource.</p>
    pub fn set_position_filtering(mut self, input: ::std::option::Option<crate::types::PositionFiltering>) -> Self {
        self.position_filtering = input;
        self
    }
    /// <p>The position filtering method of the tracker resource.</p>
    pub fn get_position_filtering(&self) -> &::std::option::Option<crate::types::PositionFiltering> {
        &self.position_filtering
    }
    /// <p>Whether <code>UPDATE</code> events from this tracker in EventBridge are enabled. If set to <code>true</code> these events will be sent to EventBridge.</p>
    pub fn event_bridge_enabled(mut self, input: bool) -> Self {
        self.event_bridge_enabled = ::std::option::Option::Some(input);
        self
    }
    /// <p>Whether <code>UPDATE</code> events from this tracker in EventBridge are enabled. If set to <code>true</code> these events will be sent to EventBridge.</p>
    pub fn set_event_bridge_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
        self.event_bridge_enabled = input;
        self
    }
    /// <p>Whether <code>UPDATE</code> events from this tracker in EventBridge are enabled. If set to <code>true</code> these events will be sent to EventBridge.</p>
    pub fn get_event_bridge_enabled(&self) -> &::std::option::Option<bool> {
        &self.event_bridge_enabled
    }
    /// <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> <note>
    /// <p>If you wish to encrypt your data using your own KMS customer managed key, then the Bounding Polygon Queries feature will be disabled by default. This is because by using this feature, a representation of your device positions will not be encrypted using the your KMS managed key. The exact device position, however; is still encrypted using your managed key.</p>
    /// <p>You can choose to opt-in to the Bounding Polygon Quseries feature. This is done by setting the <code>KmsKeyEnableGeospatialQueries</code> parameter to true when creating or updating a Tracker.</p>
    /// </note>
    pub fn kms_key_enable_geospatial_queries(mut self, input: bool) -> Self {
        self.kms_key_enable_geospatial_queries = ::std::option::Option::Some(input);
        self
    }
    /// <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> <note>
    /// <p>If you wish to encrypt your data using your own KMS customer managed key, then the Bounding Polygon Queries feature will be disabled by default. This is because by using this feature, a representation of your device positions will not be encrypted using the your KMS managed key. The exact device position, however; is still encrypted using your managed key.</p>
    /// <p>You can choose to opt-in to the Bounding Polygon Quseries feature. This is done by setting the <code>KmsKeyEnableGeospatialQueries</code> parameter to true when creating or updating a Tracker.</p>
    /// </note>
    pub fn set_kms_key_enable_geospatial_queries(mut self, input: ::std::option::Option<bool>) -> Self {
        self.kms_key_enable_geospatial_queries = input;
        self
    }
    /// <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> <note>
    /// <p>If you wish to encrypt your data using your own KMS customer managed key, then the Bounding Polygon Queries feature will be disabled by default. This is because by using this feature, a representation of your device positions will not be encrypted using the your KMS managed key. The exact device position, however; is still encrypted using your managed key.</p>
    /// <p>You can choose to opt-in to the Bounding Polygon Quseries feature. This is done by setting the <code>KmsKeyEnableGeospatialQueries</code> parameter to true when creating or updating a Tracker.</p>
    /// </note>
    pub fn get_kms_key_enable_geospatial_queries(&self) -> &::std::option::Option<bool> {
        &self.kms_key_enable_geospatial_queries
    }
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
        self._request_id = Some(request_id.into());
        self
    }

    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
        self._request_id = request_id;
        self
    }
    /// Consumes the builder and constructs a [`DescribeTrackerOutput`](crate::operation::describe_tracker::DescribeTrackerOutput).
    /// This method will fail if any of the following fields are not set:
    /// - [`tracker_name`](crate::operation::describe_tracker::builders::DescribeTrackerOutputBuilder::tracker_name)
    /// - [`tracker_arn`](crate::operation::describe_tracker::builders::DescribeTrackerOutputBuilder::tracker_arn)
    /// - [`description`](crate::operation::describe_tracker::builders::DescribeTrackerOutputBuilder::description)
    /// - [`create_time`](crate::operation::describe_tracker::builders::DescribeTrackerOutputBuilder::create_time)
    /// - [`update_time`](crate::operation::describe_tracker::builders::DescribeTrackerOutputBuilder::update_time)
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::describe_tracker::DescribeTrackerOutput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::describe_tracker::DescribeTrackerOutput {
            tracker_name: self.tracker_name.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "tracker_name",
                    "tracker_name was not specified but it is required when building DescribeTrackerOutput",
                )
            })?,
            tracker_arn: self.tracker_arn.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "tracker_arn",
                    "tracker_arn was not specified but it is required when building DescribeTrackerOutput",
                )
            })?,
            description: self.description.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "description",
                    "description was not specified but it is required when building DescribeTrackerOutput",
                )
            })?,
            pricing_plan: self.pricing_plan,
            pricing_plan_data_source: self.pricing_plan_data_source,
            tags: self.tags,
            create_time: self.create_time.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "create_time",
                    "create_time was not specified but it is required when building DescribeTrackerOutput",
                )
            })?,
            update_time: self.update_time.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "update_time",
                    "update_time was not specified but it is required when building DescribeTrackerOutput",
                )
            })?,
            kms_key_id: self.kms_key_id,
            position_filtering: self.position_filtering,
            event_bridge_enabled: self.event_bridge_enabled,
            kms_key_enable_geospatial_queries: self.kms_key_enable_geospatial_queries,
            _request_id: self._request_id,
        })
    }
}