/** * 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 SNS { namespace Model { /** *

Input for CreatePlatformEndpoint action.

See Also:

AWS * API Reference

*/ class CreatePlatformEndpointRequest : public SNSRequest { public: AWS_SNS_API CreatePlatformEndpointRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreatePlatformEndpoint"; } AWS_SNS_API Aws::String SerializePayload() const override; protected: AWS_SNS_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

PlatformApplicationArn returned from CreatePlatformApplication is used to * create a an endpoint.

*/ inline const Aws::String& GetPlatformApplicationArn() const{ return m_platformApplicationArn; } /** *

PlatformApplicationArn returned from CreatePlatformApplication is used to * create a an endpoint.

*/ inline bool PlatformApplicationArnHasBeenSet() const { return m_platformApplicationArnHasBeenSet; } /** *

PlatformApplicationArn returned from CreatePlatformApplication is used to * create a an endpoint.

*/ inline void SetPlatformApplicationArn(const Aws::String& value) { m_platformApplicationArnHasBeenSet = true; m_platformApplicationArn = value; } /** *

PlatformApplicationArn returned from CreatePlatformApplication is used to * create a an endpoint.

*/ inline void SetPlatformApplicationArn(Aws::String&& value) { m_platformApplicationArnHasBeenSet = true; m_platformApplicationArn = std::move(value); } /** *

PlatformApplicationArn returned from CreatePlatformApplication is used to * create a an endpoint.

*/ inline void SetPlatformApplicationArn(const char* value) { m_platformApplicationArnHasBeenSet = true; m_platformApplicationArn.assign(value); } /** *

PlatformApplicationArn returned from CreatePlatformApplication is used to * create a an endpoint.

*/ inline CreatePlatformEndpointRequest& WithPlatformApplicationArn(const Aws::String& value) { SetPlatformApplicationArn(value); return *this;} /** *

PlatformApplicationArn returned from CreatePlatformApplication is used to * create a an endpoint.

*/ inline CreatePlatformEndpointRequest& WithPlatformApplicationArn(Aws::String&& value) { SetPlatformApplicationArn(std::move(value)); return *this;} /** *

PlatformApplicationArn returned from CreatePlatformApplication is used to * create a an endpoint.

*/ inline CreatePlatformEndpointRequest& WithPlatformApplicationArn(const char* value) { SetPlatformApplicationArn(value); return *this;} /** *

Unique identifier created by the notification service for an app on a device. * The specific name for Token will vary, depending on which notification service * is being used. For example, when using APNS as the notification service, you * need the device token. Alternatively, when using GCM (Firebase Cloud Messaging) * or ADM, the device token equivalent is called the registration ID.

*/ inline const Aws::String& GetToken() const{ return m_token; } /** *

Unique identifier created by the notification service for an app on a device. * The specific name for Token will vary, depending on which notification service * is being used. For example, when using APNS as the notification service, you * need the device token. Alternatively, when using GCM (Firebase Cloud Messaging) * or ADM, the device token equivalent is called the registration ID.

*/ inline bool TokenHasBeenSet() const { return m_tokenHasBeenSet; } /** *

Unique identifier created by the notification service for an app on a device. * The specific name for Token will vary, depending on which notification service * is being used. For example, when using APNS as the notification service, you * need the device token. Alternatively, when using GCM (Firebase Cloud Messaging) * or ADM, the device token equivalent is called the registration ID.

*/ inline void SetToken(const Aws::String& value) { m_tokenHasBeenSet = true; m_token = value; } /** *

Unique identifier created by the notification service for an app on a device. * The specific name for Token will vary, depending on which notification service * is being used. For example, when using APNS as the notification service, you * need the device token. Alternatively, when using GCM (Firebase Cloud Messaging) * or ADM, the device token equivalent is called the registration ID.

*/ inline void SetToken(Aws::String&& value) { m_tokenHasBeenSet = true; m_token = std::move(value); } /** *

Unique identifier created by the notification service for an app on a device. * The specific name for Token will vary, depending on which notification service * is being used. For example, when using APNS as the notification service, you * need the device token. Alternatively, when using GCM (Firebase Cloud Messaging) * or ADM, the device token equivalent is called the registration ID.

*/ inline void SetToken(const char* value) { m_tokenHasBeenSet = true; m_token.assign(value); } /** *

Unique identifier created by the notification service for an app on a device. * The specific name for Token will vary, depending on which notification service * is being used. For example, when using APNS as the notification service, you * need the device token. Alternatively, when using GCM (Firebase Cloud Messaging) * or ADM, the device token equivalent is called the registration ID.

*/ inline CreatePlatformEndpointRequest& WithToken(const Aws::String& value) { SetToken(value); return *this;} /** *

Unique identifier created by the notification service for an app on a device. * The specific name for Token will vary, depending on which notification service * is being used. For example, when using APNS as the notification service, you * need the device token. Alternatively, when using GCM (Firebase Cloud Messaging) * or ADM, the device token equivalent is called the registration ID.

*/ inline CreatePlatformEndpointRequest& WithToken(Aws::String&& value) { SetToken(std::move(value)); return *this;} /** *

Unique identifier created by the notification service for an app on a device. * The specific name for Token will vary, depending on which notification service * is being used. For example, when using APNS as the notification service, you * need the device token. Alternatively, when using GCM (Firebase Cloud Messaging) * or ADM, the device token equivalent is called the registration ID.

*/ inline CreatePlatformEndpointRequest& WithToken(const char* value) { SetToken(value); return *this;} /** *

Arbitrary user data to associate with the endpoint. Amazon SNS does not use * this data. The data must be in UTF-8 format and less than 2KB.

*/ inline const Aws::String& GetCustomUserData() const{ return m_customUserData; } /** *

Arbitrary user data to associate with the endpoint. Amazon SNS does not use * this data. The data must be in UTF-8 format and less than 2KB.

*/ inline bool CustomUserDataHasBeenSet() const { return m_customUserDataHasBeenSet; } /** *

Arbitrary user data to associate with the endpoint. Amazon SNS does not use * this data. The data must be in UTF-8 format and less than 2KB.

*/ inline void SetCustomUserData(const Aws::String& value) { m_customUserDataHasBeenSet = true; m_customUserData = value; } /** *

Arbitrary user data to associate with the endpoint. Amazon SNS does not use * this data. The data must be in UTF-8 format and less than 2KB.

*/ inline void SetCustomUserData(Aws::String&& value) { m_customUserDataHasBeenSet = true; m_customUserData = std::move(value); } /** *

Arbitrary user data to associate with the endpoint. Amazon SNS does not use * this data. The data must be in UTF-8 format and less than 2KB.

*/ inline void SetCustomUserData(const char* value) { m_customUserDataHasBeenSet = true; m_customUserData.assign(value); } /** *

Arbitrary user data to associate with the endpoint. Amazon SNS does not use * this data. The data must be in UTF-8 format and less than 2KB.

*/ inline CreatePlatformEndpointRequest& WithCustomUserData(const Aws::String& value) { SetCustomUserData(value); return *this;} /** *

Arbitrary user data to associate with the endpoint. Amazon SNS does not use * this data. The data must be in UTF-8 format and less than 2KB.

*/ inline CreatePlatformEndpointRequest& WithCustomUserData(Aws::String&& value) { SetCustomUserData(std::move(value)); return *this;} /** *

Arbitrary user data to associate with the endpoint. Amazon SNS does not use * this data. The data must be in UTF-8 format and less than 2KB.

*/ inline CreatePlatformEndpointRequest& WithCustomUserData(const char* value) { SetCustomUserData(value); return *this;} /** *

For a list of attributes, see SetEndpointAttributes.

*/ inline const Aws::Map& GetAttributes() const{ return m_attributes; } /** *

For a list of attributes, see SetEndpointAttributes.

*/ inline bool AttributesHasBeenSet() const { return m_attributesHasBeenSet; } /** *

For a list of attributes, see SetEndpointAttributes.

*/ inline void SetAttributes(const Aws::Map& value) { m_attributesHasBeenSet = true; m_attributes = value; } /** *

For a list of attributes, see SetEndpointAttributes.

*/ inline void SetAttributes(Aws::Map&& value) { m_attributesHasBeenSet = true; m_attributes = std::move(value); } /** *

For a list of attributes, see SetEndpointAttributes.

*/ inline CreatePlatformEndpointRequest& WithAttributes(const Aws::Map& value) { SetAttributes(value); return *this;} /** *

For a list of attributes, see SetEndpointAttributes.

*/ inline CreatePlatformEndpointRequest& WithAttributes(Aws::Map&& value) { SetAttributes(std::move(value)); return *this;} /** *

For a list of attributes, see SetEndpointAttributes.

*/ inline CreatePlatformEndpointRequest& AddAttributes(const Aws::String& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } /** *

For a list of attributes, see SetEndpointAttributes.

*/ inline CreatePlatformEndpointRequest& AddAttributes(Aws::String&& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

For a list of attributes, see SetEndpointAttributes.

*/ inline CreatePlatformEndpointRequest& AddAttributes(const Aws::String& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; } /** *

For a list of attributes, see SetEndpointAttributes.

*/ inline CreatePlatformEndpointRequest& AddAttributes(Aws::String&& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), std::move(value)); return *this; } /** *

For a list of attributes, see SetEndpointAttributes.

*/ inline CreatePlatformEndpointRequest& AddAttributes(const char* key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; } /** *

For a list of attributes, see SetEndpointAttributes.

*/ inline CreatePlatformEndpointRequest& AddAttributes(Aws::String&& key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

For a list of attributes, see SetEndpointAttributes.

*/ inline CreatePlatformEndpointRequest& AddAttributes(const char* key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } private: Aws::String m_platformApplicationArn; bool m_platformApplicationArnHasBeenSet = false; Aws::String m_token; bool m_tokenHasBeenSet = false; Aws::String m_customUserData; bool m_customUserDataHasBeenSet = false; Aws::Map m_attributes; bool m_attributesHasBeenSet = false; }; } // namespace Model } // namespace SNS } // namespace Aws