/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Pinpoint { namespace Model { /** *

Specifies attribute-based criteria for including or excluding endpoints from * a segment.

See Also:

AWS * API Reference

*/ class AttributeDimension { public: AWS_PINPOINT_API AttributeDimension(); AWS_PINPOINT_API AttributeDimension(Aws::Utils::Json::JsonView jsonValue); AWS_PINPOINT_API AttributeDimension& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_PINPOINT_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The type of segment dimension to use. Valid values are:

  • INCLUSIVE - * endpoints that have attributes matching the values are included in the * segment.
  • EXCLUSIVE - endpoints that have attributes matching the values * are excluded in the segment.
  • CONTAINS - endpoints that have attributes' * substrings match the values are included in the segment.
  • BEFORE - * endpoints with attributes read as ISO_INSTANT datetimes before the value are * included in the segment.
  • AFTER - endpoints with attributes read as * ISO_INSTANT datetimes after the value are included in the segment.
  • ON - * endpoints with attributes read as ISO_INSTANT dates on the value are included in * the segment. Time is ignored in this comparison.
  • BETWEEN - endpoints * with attributes read as ISO_INSTANT datetimes between the values are included in * the segment.
  • */ inline const AttributeType& GetAttributeType() const{ return m_attributeType; } /** *

    The type of segment dimension to use. Valid values are:

    • INCLUSIVE - * endpoints that have attributes matching the values are included in the * segment.
    • EXCLUSIVE - endpoints that have attributes matching the values * are excluded in the segment.
    • CONTAINS - endpoints that have attributes' * substrings match the values are included in the segment.
    • BEFORE - * endpoints with attributes read as ISO_INSTANT datetimes before the value are * included in the segment.
    • AFTER - endpoints with attributes read as * ISO_INSTANT datetimes after the value are included in the segment.
    • ON - * endpoints with attributes read as ISO_INSTANT dates on the value are included in * the segment. Time is ignored in this comparison.
    • BETWEEN - endpoints * with attributes read as ISO_INSTANT datetimes between the values are included in * the segment.
    • */ inline bool AttributeTypeHasBeenSet() const { return m_attributeTypeHasBeenSet; } /** *

      The type of segment dimension to use. Valid values are:

      • INCLUSIVE - * endpoints that have attributes matching the values are included in the * segment.
      • EXCLUSIVE - endpoints that have attributes matching the values * are excluded in the segment.
      • CONTAINS - endpoints that have attributes' * substrings match the values are included in the segment.
      • BEFORE - * endpoints with attributes read as ISO_INSTANT datetimes before the value are * included in the segment.
      • AFTER - endpoints with attributes read as * ISO_INSTANT datetimes after the value are included in the segment.
      • ON - * endpoints with attributes read as ISO_INSTANT dates on the value are included in * the segment. Time is ignored in this comparison.
      • BETWEEN - endpoints * with attributes read as ISO_INSTANT datetimes between the values are included in * the segment.
      • */ inline void SetAttributeType(const AttributeType& value) { m_attributeTypeHasBeenSet = true; m_attributeType = value; } /** *

        The type of segment dimension to use. Valid values are:

        • INCLUSIVE - * endpoints that have attributes matching the values are included in the * segment.
        • EXCLUSIVE - endpoints that have attributes matching the values * are excluded in the segment.
        • CONTAINS - endpoints that have attributes' * substrings match the values are included in the segment.
        • BEFORE - * endpoints with attributes read as ISO_INSTANT datetimes before the value are * included in the segment.
        • AFTER - endpoints with attributes read as * ISO_INSTANT datetimes after the value are included in the segment.
        • ON - * endpoints with attributes read as ISO_INSTANT dates on the value are included in * the segment. Time is ignored in this comparison.
        • BETWEEN - endpoints * with attributes read as ISO_INSTANT datetimes between the values are included in * the segment.
        • */ inline void SetAttributeType(AttributeType&& value) { m_attributeTypeHasBeenSet = true; m_attributeType = std::move(value); } /** *

          The type of segment dimension to use. Valid values are:

          • INCLUSIVE - * endpoints that have attributes matching the values are included in the * segment.
          • EXCLUSIVE - endpoints that have attributes matching the values * are excluded in the segment.
          • CONTAINS - endpoints that have attributes' * substrings match the values are included in the segment.
          • BEFORE - * endpoints with attributes read as ISO_INSTANT datetimes before the value are * included in the segment.
          • AFTER - endpoints with attributes read as * ISO_INSTANT datetimes after the value are included in the segment.
          • ON - * endpoints with attributes read as ISO_INSTANT dates on the value are included in * the segment. Time is ignored in this comparison.
          • BETWEEN - endpoints * with attributes read as ISO_INSTANT datetimes between the values are included in * the segment.
          • */ inline AttributeDimension& WithAttributeType(const AttributeType& value) { SetAttributeType(value); return *this;} /** *

            The type of segment dimension to use. Valid values are:

            • INCLUSIVE - * endpoints that have attributes matching the values are included in the * segment.
            • EXCLUSIVE - endpoints that have attributes matching the values * are excluded in the segment.
            • CONTAINS - endpoints that have attributes' * substrings match the values are included in the segment.
            • BEFORE - * endpoints with attributes read as ISO_INSTANT datetimes before the value are * included in the segment.
            • AFTER - endpoints with attributes read as * ISO_INSTANT datetimes after the value are included in the segment.
            • ON - * endpoints with attributes read as ISO_INSTANT dates on the value are included in * the segment. Time is ignored in this comparison.
            • BETWEEN - endpoints * with attributes read as ISO_INSTANT datetimes between the values are included in * the segment.
            • */ inline AttributeDimension& WithAttributeType(AttributeType&& value) { SetAttributeType(std::move(value)); return *this;} /** *

              The criteria values to use for the segment dimension. Depending on the value * of the AttributeType property, endpoints are included or excluded from the * segment if their attribute values match the criteria values.

              */ inline const Aws::Vector& GetValues() const{ return m_values; } /** *

              The criteria values to use for the segment dimension. Depending on the value * of the AttributeType property, endpoints are included or excluded from the * segment if their attribute values match the criteria values.

              */ inline bool ValuesHasBeenSet() const { return m_valuesHasBeenSet; } /** *

              The criteria values to use for the segment dimension. Depending on the value * of the AttributeType property, endpoints are included or excluded from the * segment if their attribute values match the criteria values.

              */ inline void SetValues(const Aws::Vector& value) { m_valuesHasBeenSet = true; m_values = value; } /** *

              The criteria values to use for the segment dimension. Depending on the value * of the AttributeType property, endpoints are included or excluded from the * segment if their attribute values match the criteria values.

              */ inline void SetValues(Aws::Vector&& value) { m_valuesHasBeenSet = true; m_values = std::move(value); } /** *

              The criteria values to use for the segment dimension. Depending on the value * of the AttributeType property, endpoints are included or excluded from the * segment if their attribute values match the criteria values.

              */ inline AttributeDimension& WithValues(const Aws::Vector& value) { SetValues(value); return *this;} /** *

              The criteria values to use for the segment dimension. Depending on the value * of the AttributeType property, endpoints are included or excluded from the * segment if their attribute values match the criteria values.

              */ inline AttributeDimension& WithValues(Aws::Vector&& value) { SetValues(std::move(value)); return *this;} /** *

              The criteria values to use for the segment dimension. Depending on the value * of the AttributeType property, endpoints are included or excluded from the * segment if their attribute values match the criteria values.

              */ inline AttributeDimension& AddValues(const Aws::String& value) { m_valuesHasBeenSet = true; m_values.push_back(value); return *this; } /** *

              The criteria values to use for the segment dimension. Depending on the value * of the AttributeType property, endpoints are included or excluded from the * segment if their attribute values match the criteria values.

              */ inline AttributeDimension& AddValues(Aws::String&& value) { m_valuesHasBeenSet = true; m_values.push_back(std::move(value)); return *this; } /** *

              The criteria values to use for the segment dimension. Depending on the value * of the AttributeType property, endpoints are included or excluded from the * segment if their attribute values match the criteria values.

              */ inline AttributeDimension& AddValues(const char* value) { m_valuesHasBeenSet = true; m_values.push_back(value); return *this; } private: AttributeType m_attributeType; bool m_attributeTypeHasBeenSet = false; Aws::Vector m_values; bool m_valuesHasBeenSet = false; }; } // namespace Model } // namespace Pinpoint } // namespace Aws