/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Specifies data for one or more attributes that describe the user who's
* associated with an endpoint.See Also:
AWS
* API Reference
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::MapOne 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::MapOne 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::MapOne 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::MapOne 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::MapOne 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::VectorOne 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::VectorOne 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::VectorOne 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::VectorOne 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::VectorOne 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::VectorThe 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