/** * 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 data for one or more attributes that describe the user who's * associated with an endpoint.

See Also:

AWS * API Reference

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

One or more custom attributes that describe the user by associating a name * with an array of values. For example, the value of an attribute named Interests * might be: ["Science", "Music", "Travel"]. You can use these attributes as filter * criteria when you create segments. Attribute names are case sensitive.

An * attribute name can contain up to 50 characters. An attribute value can contain * up to 100 characters. When you define the name of a custom attribute, avoid * using the following characters: number sign (#), colon (:), question mark (?), * backslash (\), and slash (/). The Amazon Pinpoint console can't display * attribute names that contain these characters. This restriction doesn't apply to * attribute values.

*/ inline const Aws::Map>& GetUserAttributes() const{ return m_userAttributes; } /** *

One or more custom attributes that describe the user by associating a name * with an array of values. For example, the value of an attribute named Interests * might be: ["Science", "Music", "Travel"]. You can use these attributes as filter * criteria when you create segments. Attribute names are case sensitive.

An * attribute name can contain up to 50 characters. An attribute value can contain * up to 100 characters. When you define the name of a custom attribute, avoid * using the following characters: number sign (#), colon (:), question mark (?), * backslash (\), and slash (/). The Amazon Pinpoint console can't display * attribute names that contain these characters. This restriction doesn't apply to * attribute values.

*/ inline bool UserAttributesHasBeenSet() const { return m_userAttributesHasBeenSet; } /** *

One or more custom attributes that describe the user by associating a name * with an array of values. For example, the value of an attribute named Interests * might be: ["Science", "Music", "Travel"]. You can use these attributes as filter * criteria when you create segments. Attribute names are case sensitive.

An * attribute name can contain up to 50 characters. An attribute value can contain * up to 100 characters. When you define the name of a custom attribute, avoid * using the following characters: number sign (#), colon (:), question mark (?), * backslash (\), and slash (/). The Amazon Pinpoint console can't display * attribute names that contain these characters. This restriction doesn't apply to * attribute values.

*/ inline void SetUserAttributes(const Aws::Map>& value) { m_userAttributesHasBeenSet = true; m_userAttributes = value; } /** *

One or more custom attributes that describe the user by associating a name * with an array of values. For example, the value of an attribute named Interests * might be: ["Science", "Music", "Travel"]. You can use these attributes as filter * criteria when you create segments. Attribute names are case sensitive.

An * attribute name can contain up to 50 characters. An attribute value can contain * up to 100 characters. When you define the name of a custom attribute, avoid * using the following characters: number sign (#), colon (:), question mark (?), * backslash (\), and slash (/). The Amazon Pinpoint console can't display * attribute names that contain these characters. This restriction doesn't apply to * attribute values.

*/ inline void SetUserAttributes(Aws::Map>&& value) { m_userAttributesHasBeenSet = true; m_userAttributes = std::move(value); } /** *

One or more custom attributes that describe the user by associating a name * with an array of values. For example, the value of an attribute named Interests * might be: ["Science", "Music", "Travel"]. You can use these attributes as filter * criteria when you create segments. Attribute names are case sensitive.

An * attribute name can contain up to 50 characters. An attribute value can contain * up to 100 characters. When you define the name of a custom attribute, avoid * using the following characters: number sign (#), colon (:), question mark (?), * backslash (\), and slash (/). The Amazon Pinpoint console can't display * attribute names that contain these characters. This restriction doesn't apply to * attribute values.

*/ inline EndpointUser& WithUserAttributes(const Aws::Map>& value) { SetUserAttributes(value); return *this;} /** *

One or more custom attributes that describe the user by associating a name * with an array of values. For example, the value of an attribute named Interests * might be: ["Science", "Music", "Travel"]. You can use these attributes as filter * criteria when you create segments. Attribute names are case sensitive.

An * attribute name can contain up to 50 characters. An attribute value can contain * up to 100 characters. When you define the name of a custom attribute, avoid * using the following characters: number sign (#), colon (:), question mark (?), * backslash (\), and slash (/). The Amazon Pinpoint console can't display * attribute names that contain these characters. This restriction doesn't apply to * attribute values.

*/ inline EndpointUser& WithUserAttributes(Aws::Map>&& value) { SetUserAttributes(std::move(value)); return *this;} /** *

One or more custom attributes that describe the user by associating a name * with an array of values. For example, the value of an attribute named Interests * might be: ["Science", "Music", "Travel"]. You can use these attributes as filter * criteria when you create segments. Attribute names are case sensitive.

An * attribute name can contain up to 50 characters. An attribute value can contain * up to 100 characters. When you define the name of a custom attribute, avoid * using the following characters: number sign (#), colon (:), question mark (?), * backslash (\), and slash (/). The Amazon Pinpoint console can't display * attribute names that contain these characters. This restriction doesn't apply to * attribute values.

*/ inline EndpointUser& AddUserAttributes(const Aws::String& key, const Aws::Vector& value) { m_userAttributesHasBeenSet = true; m_userAttributes.emplace(key, value); return *this; } /** *

One or more custom attributes that describe the user by associating a name * with an array of values. For example, the value of an attribute named Interests * might be: ["Science", "Music", "Travel"]. You can use these attributes as filter * criteria when you create segments. Attribute names are case sensitive.

An * attribute name can contain up to 50 characters. An attribute value can contain * up to 100 characters. When you define the name of a custom attribute, avoid * using the following characters: number sign (#), colon (:), question mark (?), * backslash (\), and slash (/). The Amazon Pinpoint console can't display * attribute names that contain these characters. This restriction doesn't apply to * attribute values.

*/ inline EndpointUser& AddUserAttributes(Aws::String&& key, const Aws::Vector& value) { m_userAttributesHasBeenSet = true; m_userAttributes.emplace(std::move(key), value); return *this; } /** *

One or more custom attributes that describe the user by associating a name * with an array of values. For example, the value of an attribute named Interests * might be: ["Science", "Music", "Travel"]. You can use these attributes as filter * criteria when you create segments. Attribute names are case sensitive.

An * attribute name can contain up to 50 characters. An attribute value can contain * up to 100 characters. When you define the name of a custom attribute, avoid * using the following characters: number sign (#), colon (:), question mark (?), * backslash (\), and slash (/). The Amazon Pinpoint console can't display * attribute names that contain these characters. This restriction doesn't apply to * attribute values.

*/ inline EndpointUser& AddUserAttributes(const Aws::String& key, Aws::Vector&& value) { m_userAttributesHasBeenSet = true; m_userAttributes.emplace(key, std::move(value)); return *this; } /** *

One or more custom attributes that describe the user by associating a name * with an array of values. For example, the value of an attribute named Interests * might be: ["Science", "Music", "Travel"]. You can use these attributes as filter * criteria when you create segments. Attribute names are case sensitive.

An * attribute name can contain up to 50 characters. An attribute value can contain * up to 100 characters. When you define the name of a custom attribute, avoid * using the following characters: number sign (#), colon (:), question mark (?), * backslash (\), and slash (/). The Amazon Pinpoint console can't display * attribute names that contain these characters. This restriction doesn't apply to * attribute values.

*/ inline EndpointUser& AddUserAttributes(Aws::String&& key, Aws::Vector&& value) { m_userAttributesHasBeenSet = true; m_userAttributes.emplace(std::move(key), std::move(value)); return *this; } /** *

One or more custom attributes that describe the user by associating a name * with an array of values. For example, the value of an attribute named Interests * might be: ["Science", "Music", "Travel"]. You can use these attributes as filter * criteria when you create segments. Attribute names are case sensitive.

An * attribute name can contain up to 50 characters. An attribute value can contain * up to 100 characters. When you define the name of a custom attribute, avoid * using the following characters: number sign (#), colon (:), question mark (?), * backslash (\), and slash (/). The Amazon Pinpoint console can't display * attribute names that contain these characters. This restriction doesn't apply to * attribute values.

*/ inline EndpointUser& AddUserAttributes(const char* key, Aws::Vector&& value) { m_userAttributesHasBeenSet = true; m_userAttributes.emplace(key, std::move(value)); return *this; } /** *

One or more custom attributes that describe the user by associating a name * with an array of values. For example, the value of an attribute named Interests * might be: ["Science", "Music", "Travel"]. You can use these attributes as filter * criteria when you create segments. Attribute names are case sensitive.

An * attribute name can contain up to 50 characters. An attribute value can contain * up to 100 characters. When you define the name of a custom attribute, avoid * using the following characters: number sign (#), colon (:), question mark (?), * backslash (\), and slash (/). The Amazon Pinpoint console can't display * attribute names that contain these characters. This restriction doesn't apply to * attribute values.

*/ inline EndpointUser& AddUserAttributes(const char* key, const Aws::Vector& value) { m_userAttributesHasBeenSet = true; m_userAttributes.emplace(key, value); return *this; } /** *

The unique identifier for the user.

*/ inline const Aws::String& GetUserId() const{ return m_userId; } /** *

The unique identifier for the user.

*/ inline bool UserIdHasBeenSet() const { return m_userIdHasBeenSet; } /** *

The unique identifier for the user.

*/ inline void SetUserId(const Aws::String& value) { m_userIdHasBeenSet = true; m_userId = value; } /** *

The unique identifier for the user.

*/ inline void SetUserId(Aws::String&& value) { m_userIdHasBeenSet = true; m_userId = std::move(value); } /** *

The unique identifier for the user.

*/ inline void SetUserId(const char* value) { m_userIdHasBeenSet = true; m_userId.assign(value); } /** *

The unique identifier for the user.

*/ inline EndpointUser& WithUserId(const Aws::String& value) { SetUserId(value); return *this;} /** *

The unique identifier for the user.

*/ inline EndpointUser& WithUserId(Aws::String&& value) { SetUserId(std::move(value)); return *this;} /** *

The unique identifier for the user.

*/ inline EndpointUser& WithUserId(const char* value) { SetUserId(value); return *this;} private: Aws::Map> m_userAttributes; bool m_userAttributesHasBeenSet = false; Aws::String m_userId; bool m_userIdHasBeenSet = false; }; } // namespace Model } // namespace Pinpoint } // namespace Aws