/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the pinpoint-2016-12-01.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Pinpoint.Model
{
///
/// Specifies an endpoint to create or update and the settings and attributes to set or
/// change for the endpoint.
///
public partial class EndpointBatchItem
{
private string _address;
private Dictionary> _attributes = new Dictionary>();
private ChannelType _channelType;
private EndpointDemographic _demographic;
private string _effectiveDate;
private string _endpointStatus;
private string _id;
private EndpointLocation _location;
private Dictionary _metrics = new Dictionary();
private string _optOut;
private string _requestId;
private EndpointUser _user;
///
/// Gets and sets the property Address.
///
/// The destination address for messages or push notifications that you send to the endpoint.
/// The address varies by channel. For a push-notification channel, use the token provided
/// by the push notification service, such as an Apple Push Notification service (APNs)
/// device token or a Firebase Cloud Messaging (FCM) registration token. For the SMS channel,
/// use a phone number in E.164 format, such as +12065550100. For the email channel, use
/// an email address.
///
///
public string Address
{
get { return this._address; }
set { this._address = value; }
}
// Check to see if Address property is set
internal bool IsSetAddress()
{
return this._address != null;
}
///
/// Gets and sets the property Attributes.
///
/// One or more custom attributes that describe the endpoint by associating a name with
/// an array of values. For example, the value of a custom 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.
///
///
public Dictionary> Attributes
{
get { return this._attributes; }
set { this._attributes = value; }
}
// Check to see if Attributes property is set
internal bool IsSetAttributes()
{
return this._attributes != null && this._attributes.Count > 0;
}
///
/// Gets and sets the property ChannelType.
///
/// The channel to use when sending messages or push notifications to the endpoint.
///
///
public ChannelType ChannelType
{
get { return this._channelType; }
set { this._channelType = value; }
}
// Check to see if ChannelType property is set
internal bool IsSetChannelType()
{
return this._channelType != null;
}
///
/// Gets and sets the property Demographic.
///
/// The demographic information for the endpoint, such as the time zone and platform.
///
///
public EndpointDemographic Demographic
{
get { return this._demographic; }
set { this._demographic = value; }
}
// Check to see if Demographic property is set
internal bool IsSetDemographic()
{
return this._demographic != null;
}
///
/// Gets and sets the property EffectiveDate.
///
/// The date and time, in ISO 8601 format, when the endpoint was created or updated.
///
///
public string EffectiveDate
{
get { return this._effectiveDate; }
set { this._effectiveDate = value; }
}
// Check to see if EffectiveDate property is set
internal bool IsSetEffectiveDate()
{
return this._effectiveDate != null;
}
///
/// Gets and sets the property EndpointStatus.
///
/// Specifies whether to send messages or push notifications to the endpoint. Valid values
/// are: ACTIVE, messages are sent to the endpoint; and, INACTIVE, messages aren’t sent
/// to the endpoint.
///
///
///
/// Amazon Pinpoint automatically sets this value to ACTIVE when you create an endpoint
/// or update an existing endpoint. Amazon Pinpoint automatically sets this value to INACTIVE
/// if you update another endpoint that has the same address specified by the Address
/// property.
///
///
public string EndpointStatus
{
get { return this._endpointStatus; }
set { this._endpointStatus = value; }
}
// Check to see if EndpointStatus property is set
internal bool IsSetEndpointStatus()
{
return this._endpointStatus != null;
}
///
/// Gets and sets the property Id.
///
/// The unique identifier for the endpoint in the context of the batch.
///
///
public string Id
{
get { return this._id; }
set { this._id = value; }
}
// Check to see if Id property is set
internal bool IsSetId()
{
return this._id != null;
}
///
/// Gets and sets the property Location.
///
/// The geographic information for the endpoint.
///
///
public EndpointLocation Location
{
get { return this._location; }
set { this._location = value; }
}
// Check to see if Location property is set
internal bool IsSetLocation()
{
return this._location != null;
}
///
/// Gets and sets the property Metrics.
///
/// One or more custom metrics that your app reports to Amazon Pinpoint for the endpoint.
///
///
public Dictionary Metrics
{
get { return this._metrics; }
set { this._metrics = value; }
}
// Check to see if Metrics property is set
internal bool IsSetMetrics()
{
return this._metrics != null && this._metrics.Count > 0;
}
///
/// Gets and sets the property OptOut.
///
/// Specifies whether the user who's associated with the endpoint has opted out of receiving
/// messages and push notifications from you. Possible values are: ALL, the user has opted
/// out and doesn't want to receive any messages or push notifications; and, NONE, the
/// user hasn't opted out and wants to receive all messages and push notifications.
///
///
public string OptOut
{
get { return this._optOut; }
set { this._optOut = value; }
}
// Check to see if OptOut property is set
internal bool IsSetOptOut()
{
return this._optOut != null;
}
///
/// Gets and sets the property RequestId.
///
/// The unique identifier for the request to create or update the endpoint.
///
///
public string RequestId
{
get { return this._requestId; }
set { this._requestId = value; }
}
// Check to see if RequestId property is set
internal bool IsSetRequestId()
{
return this._requestId != null;
}
///
/// Gets and sets the property User.
///
/// One or more custom attributes that describe the user who's associated with the endpoint.
///
///
public EndpointUser User
{
get { return this._user; }
set { this._user = value; }
}
// Check to see if User property is set
internal bool IsSetUser()
{
return this._user != null;
}
}
}