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

An endpoint under an Amazon Chime AppInstanceUser that receives * messages for a user. For push notifications, the endpoint is a mobile device * used to receive mobile push notifications for a user.

See Also:

* AWS * API Reference

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

The ARN of the AppInstanceUser.

*/ inline const Aws::String& GetAppInstanceUserArn() const{ return m_appInstanceUserArn; } /** *

The ARN of the AppInstanceUser.

*/ inline bool AppInstanceUserArnHasBeenSet() const { return m_appInstanceUserArnHasBeenSet; } /** *

The ARN of the AppInstanceUser.

*/ inline void SetAppInstanceUserArn(const Aws::String& value) { m_appInstanceUserArnHasBeenSet = true; m_appInstanceUserArn = value; } /** *

The ARN of the AppInstanceUser.

*/ inline void SetAppInstanceUserArn(Aws::String&& value) { m_appInstanceUserArnHasBeenSet = true; m_appInstanceUserArn = std::move(value); } /** *

The ARN of the AppInstanceUser.

*/ inline void SetAppInstanceUserArn(const char* value) { m_appInstanceUserArnHasBeenSet = true; m_appInstanceUserArn.assign(value); } /** *

The ARN of the AppInstanceUser.

*/ inline AppInstanceUserEndpoint& WithAppInstanceUserArn(const Aws::String& value) { SetAppInstanceUserArn(value); return *this;} /** *

The ARN of the AppInstanceUser.

*/ inline AppInstanceUserEndpoint& WithAppInstanceUserArn(Aws::String&& value) { SetAppInstanceUserArn(std::move(value)); return *this;} /** *

The ARN of the AppInstanceUser.

*/ inline AppInstanceUserEndpoint& WithAppInstanceUserArn(const char* value) { SetAppInstanceUserArn(value); return *this;} /** *

The unique identifier of the AppInstanceUserEndpoint.

*/ inline const Aws::String& GetEndpointId() const{ return m_endpointId; } /** *

The unique identifier of the AppInstanceUserEndpoint.

*/ inline bool EndpointIdHasBeenSet() const { return m_endpointIdHasBeenSet; } /** *

The unique identifier of the AppInstanceUserEndpoint.

*/ inline void SetEndpointId(const Aws::String& value) { m_endpointIdHasBeenSet = true; m_endpointId = value; } /** *

The unique identifier of the AppInstanceUserEndpoint.

*/ inline void SetEndpointId(Aws::String&& value) { m_endpointIdHasBeenSet = true; m_endpointId = std::move(value); } /** *

The unique identifier of the AppInstanceUserEndpoint.

*/ inline void SetEndpointId(const char* value) { m_endpointIdHasBeenSet = true; m_endpointId.assign(value); } /** *

The unique identifier of the AppInstanceUserEndpoint.

*/ inline AppInstanceUserEndpoint& WithEndpointId(const Aws::String& value) { SetEndpointId(value); return *this;} /** *

The unique identifier of the AppInstanceUserEndpoint.

*/ inline AppInstanceUserEndpoint& WithEndpointId(Aws::String&& value) { SetEndpointId(std::move(value)); return *this;} /** *

The unique identifier of the AppInstanceUserEndpoint.

*/ inline AppInstanceUserEndpoint& WithEndpointId(const char* value) { SetEndpointId(value); return *this;} /** *

The name of the AppInstanceUserEndpoint.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the AppInstanceUserEndpoint.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the AppInstanceUserEndpoint.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the AppInstanceUserEndpoint.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the AppInstanceUserEndpoint.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the AppInstanceUserEndpoint.

*/ inline AppInstanceUserEndpoint& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the AppInstanceUserEndpoint.

*/ inline AppInstanceUserEndpoint& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the AppInstanceUserEndpoint.

*/ inline AppInstanceUserEndpoint& WithName(const char* value) { SetName(value); return *this;} /** *

The type of the AppInstanceUserEndpoint.

*/ inline const AppInstanceUserEndpointType& GetType() const{ return m_type; } /** *

The type of the AppInstanceUserEndpoint.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of the AppInstanceUserEndpoint.

*/ inline void SetType(const AppInstanceUserEndpointType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of the AppInstanceUserEndpoint.

*/ inline void SetType(AppInstanceUserEndpointType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of the AppInstanceUserEndpoint.

*/ inline AppInstanceUserEndpoint& WithType(const AppInstanceUserEndpointType& value) { SetType(value); return *this;} /** *

The type of the AppInstanceUserEndpoint.

*/ inline AppInstanceUserEndpoint& WithType(AppInstanceUserEndpointType&& value) { SetType(std::move(value)); return *this;} /** *

The ARN of the resource to which the endpoint belongs.

*/ inline const Aws::String& GetResourceArn() const{ return m_resourceArn; } /** *

The ARN of the resource to which the endpoint belongs.

*/ inline bool ResourceArnHasBeenSet() const { return m_resourceArnHasBeenSet; } /** *

The ARN of the resource to which the endpoint belongs.

*/ inline void SetResourceArn(const Aws::String& value) { m_resourceArnHasBeenSet = true; m_resourceArn = value; } /** *

The ARN of the resource to which the endpoint belongs.

*/ inline void SetResourceArn(Aws::String&& value) { m_resourceArnHasBeenSet = true; m_resourceArn = std::move(value); } /** *

The ARN of the resource to which the endpoint belongs.

*/ inline void SetResourceArn(const char* value) { m_resourceArnHasBeenSet = true; m_resourceArn.assign(value); } /** *

The ARN of the resource to which the endpoint belongs.

*/ inline AppInstanceUserEndpoint& WithResourceArn(const Aws::String& value) { SetResourceArn(value); return *this;} /** *

The ARN of the resource to which the endpoint belongs.

*/ inline AppInstanceUserEndpoint& WithResourceArn(Aws::String&& value) { SetResourceArn(std::move(value)); return *this;} /** *

The ARN of the resource to which the endpoint belongs.

*/ inline AppInstanceUserEndpoint& WithResourceArn(const char* value) { SetResourceArn(value); return *this;} /** *

The attributes of an Endpoint.

*/ inline const EndpointAttributes& GetEndpointAttributes() const{ return m_endpointAttributes; } /** *

The attributes of an Endpoint.

*/ inline bool EndpointAttributesHasBeenSet() const { return m_endpointAttributesHasBeenSet; } /** *

The attributes of an Endpoint.

*/ inline void SetEndpointAttributes(const EndpointAttributes& value) { m_endpointAttributesHasBeenSet = true; m_endpointAttributes = value; } /** *

The attributes of an Endpoint.

*/ inline void SetEndpointAttributes(EndpointAttributes&& value) { m_endpointAttributesHasBeenSet = true; m_endpointAttributes = std::move(value); } /** *

The attributes of an Endpoint.

*/ inline AppInstanceUserEndpoint& WithEndpointAttributes(const EndpointAttributes& value) { SetEndpointAttributes(value); return *this;} /** *

The attributes of an Endpoint.

*/ inline AppInstanceUserEndpoint& WithEndpointAttributes(EndpointAttributes&& value) { SetEndpointAttributes(std::move(value)); return *this;} /** *

The time at which an AppInstanceUserEndpoint was created.

*/ inline const Aws::Utils::DateTime& GetCreatedTimestamp() const{ return m_createdTimestamp; } /** *

The time at which an AppInstanceUserEndpoint was created.

*/ inline bool CreatedTimestampHasBeenSet() const { return m_createdTimestampHasBeenSet; } /** *

The time at which an AppInstanceUserEndpoint was created.

*/ inline void SetCreatedTimestamp(const Aws::Utils::DateTime& value) { m_createdTimestampHasBeenSet = true; m_createdTimestamp = value; } /** *

The time at which an AppInstanceUserEndpoint was created.

*/ inline void SetCreatedTimestamp(Aws::Utils::DateTime&& value) { m_createdTimestampHasBeenSet = true; m_createdTimestamp = std::move(value); } /** *

The time at which an AppInstanceUserEndpoint was created.

*/ inline AppInstanceUserEndpoint& WithCreatedTimestamp(const Aws::Utils::DateTime& value) { SetCreatedTimestamp(value); return *this;} /** *

The time at which an AppInstanceUserEndpoint was created.

*/ inline AppInstanceUserEndpoint& WithCreatedTimestamp(Aws::Utils::DateTime&& value) { SetCreatedTimestamp(std::move(value)); return *this;} /** *

The time at which an AppInstanceUserEndpoint was last * updated.

*/ inline const Aws::Utils::DateTime& GetLastUpdatedTimestamp() const{ return m_lastUpdatedTimestamp; } /** *

The time at which an AppInstanceUserEndpoint was last * updated.

*/ inline bool LastUpdatedTimestampHasBeenSet() const { return m_lastUpdatedTimestampHasBeenSet; } /** *

The time at which an AppInstanceUserEndpoint was last * updated.

*/ inline void SetLastUpdatedTimestamp(const Aws::Utils::DateTime& value) { m_lastUpdatedTimestampHasBeenSet = true; m_lastUpdatedTimestamp = value; } /** *

The time at which an AppInstanceUserEndpoint was last * updated.

*/ inline void SetLastUpdatedTimestamp(Aws::Utils::DateTime&& value) { m_lastUpdatedTimestampHasBeenSet = true; m_lastUpdatedTimestamp = std::move(value); } /** *

The time at which an AppInstanceUserEndpoint was last * updated.

*/ inline AppInstanceUserEndpoint& WithLastUpdatedTimestamp(const Aws::Utils::DateTime& value) { SetLastUpdatedTimestamp(value); return *this;} /** *

The time at which an AppInstanceUserEndpoint was last * updated.

*/ inline AppInstanceUserEndpoint& WithLastUpdatedTimestamp(Aws::Utils::DateTime&& value) { SetLastUpdatedTimestamp(std::move(value)); return *this;} /** *

Boolean that controls whether the AppInstanceUserEndpoint is * opted in to receive messages. ALL indicates the endpoint will * receive all messages. NONE indicates the endpoint will receive no * messages.

*/ inline const AllowMessages& GetAllowMessages() const{ return m_allowMessages; } /** *

Boolean that controls whether the AppInstanceUserEndpoint is * opted in to receive messages. ALL indicates the endpoint will * receive all messages. NONE indicates the endpoint will receive no * messages.

*/ inline bool AllowMessagesHasBeenSet() const { return m_allowMessagesHasBeenSet; } /** *

Boolean that controls whether the AppInstanceUserEndpoint is * opted in to receive messages. ALL indicates the endpoint will * receive all messages. NONE indicates the endpoint will receive no * messages.

*/ inline void SetAllowMessages(const AllowMessages& value) { m_allowMessagesHasBeenSet = true; m_allowMessages = value; } /** *

Boolean that controls whether the AppInstanceUserEndpoint is * opted in to receive messages. ALL indicates the endpoint will * receive all messages. NONE indicates the endpoint will receive no * messages.

*/ inline void SetAllowMessages(AllowMessages&& value) { m_allowMessagesHasBeenSet = true; m_allowMessages = std::move(value); } /** *

Boolean that controls whether the AppInstanceUserEndpoint is * opted in to receive messages. ALL indicates the endpoint will * receive all messages. NONE indicates the endpoint will receive no * messages.

*/ inline AppInstanceUserEndpoint& WithAllowMessages(const AllowMessages& value) { SetAllowMessages(value); return *this;} /** *

Boolean that controls whether the AppInstanceUserEndpoint is * opted in to receive messages. ALL indicates the endpoint will * receive all messages. NONE indicates the endpoint will receive no * messages.

*/ inline AppInstanceUserEndpoint& WithAllowMessages(AllowMessages&& value) { SetAllowMessages(std::move(value)); return *this;} /** *

A read-only field that represents the state of an * AppInstanceUserEndpoint. Supported values:

  • * ACTIVE: The AppInstanceUserEndpoint is active and able * to receive messages. When ACTIVE, the * EndpointStatusReason remains empty.

  • * INACTIVE: The AppInstanceUserEndpoint is inactive and * can't receive message. When INACTIVE, the corresponding reason will * be conveyed through EndpointStatusReason.

  • * INVALID_DEVICE_TOKEN indicates that an * AppInstanceUserEndpoint is INACTIVE due to invalid * device token

  • INVALID_PINPOINT_ARN indicates that * an AppInstanceUserEndpoint is INACTIVE due to an * invalid pinpoint ARN that was input through the ResourceArn * field.

*/ inline const EndpointState& GetEndpointState() const{ return m_endpointState; } /** *

A read-only field that represents the state of an * AppInstanceUserEndpoint. Supported values:

  • * ACTIVE: The AppInstanceUserEndpoint is active and able * to receive messages. When ACTIVE, the * EndpointStatusReason remains empty.

  • * INACTIVE: The AppInstanceUserEndpoint is inactive and * can't receive message. When INACTIVE, the corresponding reason will * be conveyed through EndpointStatusReason.

  • * INVALID_DEVICE_TOKEN indicates that an * AppInstanceUserEndpoint is INACTIVE due to invalid * device token

  • INVALID_PINPOINT_ARN indicates that * an AppInstanceUserEndpoint is INACTIVE due to an * invalid pinpoint ARN that was input through the ResourceArn * field.

*/ inline bool EndpointStateHasBeenSet() const { return m_endpointStateHasBeenSet; } /** *

A read-only field that represents the state of an * AppInstanceUserEndpoint. Supported values:

  • * ACTIVE: The AppInstanceUserEndpoint is active and able * to receive messages. When ACTIVE, the * EndpointStatusReason remains empty.

  • * INACTIVE: The AppInstanceUserEndpoint is inactive and * can't receive message. When INACTIVE, the corresponding reason will * be conveyed through EndpointStatusReason.

  • * INVALID_DEVICE_TOKEN indicates that an * AppInstanceUserEndpoint is INACTIVE due to invalid * device token

  • INVALID_PINPOINT_ARN indicates that * an AppInstanceUserEndpoint is INACTIVE due to an * invalid pinpoint ARN that was input through the ResourceArn * field.

*/ inline void SetEndpointState(const EndpointState& value) { m_endpointStateHasBeenSet = true; m_endpointState = value; } /** *

A read-only field that represents the state of an * AppInstanceUserEndpoint. Supported values:

  • * ACTIVE: The AppInstanceUserEndpoint is active and able * to receive messages. When ACTIVE, the * EndpointStatusReason remains empty.

  • * INACTIVE: The AppInstanceUserEndpoint is inactive and * can't receive message. When INACTIVE, the corresponding reason will * be conveyed through EndpointStatusReason.

  • * INVALID_DEVICE_TOKEN indicates that an * AppInstanceUserEndpoint is INACTIVE due to invalid * device token

  • INVALID_PINPOINT_ARN indicates that * an AppInstanceUserEndpoint is INACTIVE due to an * invalid pinpoint ARN that was input through the ResourceArn * field.

*/ inline void SetEndpointState(EndpointState&& value) { m_endpointStateHasBeenSet = true; m_endpointState = std::move(value); } /** *

A read-only field that represents the state of an * AppInstanceUserEndpoint. Supported values:

  • * ACTIVE: The AppInstanceUserEndpoint is active and able * to receive messages. When ACTIVE, the * EndpointStatusReason remains empty.

  • * INACTIVE: The AppInstanceUserEndpoint is inactive and * can't receive message. When INACTIVE, the corresponding reason will * be conveyed through EndpointStatusReason.

  • * INVALID_DEVICE_TOKEN indicates that an * AppInstanceUserEndpoint is INACTIVE due to invalid * device token

  • INVALID_PINPOINT_ARN indicates that * an AppInstanceUserEndpoint is INACTIVE due to an * invalid pinpoint ARN that was input through the ResourceArn * field.

*/ inline AppInstanceUserEndpoint& WithEndpointState(const EndpointState& value) { SetEndpointState(value); return *this;} /** *

A read-only field that represents the state of an * AppInstanceUserEndpoint. Supported values:

  • * ACTIVE: The AppInstanceUserEndpoint is active and able * to receive messages. When ACTIVE, the * EndpointStatusReason remains empty.

  • * INACTIVE: The AppInstanceUserEndpoint is inactive and * can't receive message. When INACTIVE, the corresponding reason will * be conveyed through EndpointStatusReason.

  • * INVALID_DEVICE_TOKEN indicates that an * AppInstanceUserEndpoint is INACTIVE due to invalid * device token

  • INVALID_PINPOINT_ARN indicates that * an AppInstanceUserEndpoint is INACTIVE due to an * invalid pinpoint ARN that was input through the ResourceArn * field.

*/ inline AppInstanceUserEndpoint& WithEndpointState(EndpointState&& value) { SetEndpointState(std::move(value)); return *this;} private: Aws::String m_appInstanceUserArn; bool m_appInstanceUserArnHasBeenSet = false; Aws::String m_endpointId; bool m_endpointIdHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; AppInstanceUserEndpointType m_type; bool m_typeHasBeenSet = false; Aws::String m_resourceArn; bool m_resourceArnHasBeenSet = false; EndpointAttributes m_endpointAttributes; bool m_endpointAttributesHasBeenSet = false; Aws::Utils::DateTime m_createdTimestamp; bool m_createdTimestampHasBeenSet = false; Aws::Utils::DateTime m_lastUpdatedTimestamp; bool m_lastUpdatedTimestampHasBeenSet = false; AllowMessages m_allowMessages; bool m_allowMessagesHasBeenSet = false; EndpointState m_endpointState; bool m_endpointStateHasBeenSet = false; }; } // namespace Model } // namespace ChimeSDKIdentity } // namespace Aws