/*
* 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 the configuration and other settings for a journey.
///
public partial class WriteJourneyRequest
{
private Dictionary _activities = new Dictionary();
private ClosedDays _closedDays;
private string _creationDate;
private JourneyChannelSettings _journeyChannelSettings;
private string _lastModifiedDate;
private JourneyLimits _limits;
private bool? _localTime;
private string _name;
private OpenHours _openHours;
private QuietTime _quietTime;
private string _refreshFrequency;
private bool? _refreshOnSegmentUpdate;
private JourneySchedule _schedule;
private bool? _sendingSchedule;
private string _startActivity;
private StartCondition _startCondition;
private State _state;
private List _timezoneEstimationMethods = new List();
private bool? _waitForQuietTime;
///
/// Gets and sets the property Activities.
///
/// A map that contains a set of Activity objects, one object for each activity in the
/// journey. For each Activity object, the key is the unique identifier (string) for an
/// activity and the value is the settings for the activity. An activity identifier can
/// contain a maximum of 100 characters. The characters must be alphanumeric characters.
///
///
public Dictionary Activities
{
get { return this._activities; }
set { this._activities = value; }
}
// Check to see if Activities property is set
internal bool IsSetActivities()
{
return this._activities != null && this._activities.Count > 0;
}
///
/// Gets and sets the property ClosedDays.
///
/// The time when journey will stop sending messages. QuietTime should be configured first
/// and SendingSchedule should be set to true.
///
///
public ClosedDays ClosedDays
{
get { return this._closedDays; }
set { this._closedDays = value; }
}
// Check to see if ClosedDays property is set
internal bool IsSetClosedDays()
{
return this._closedDays != null;
}
///
/// Gets and sets the property CreationDate.
///
/// The date, in ISO 8601 format, when the journey was created.
///
///
public string CreationDate
{
get { return this._creationDate; }
set { this._creationDate = value; }
}
// Check to see if CreationDate property is set
internal bool IsSetCreationDate()
{
return this._creationDate != null;
}
///
/// Gets and sets the property JourneyChannelSettings.
///
/// The channel-specific configurations for the journey.
///
///
public JourneyChannelSettings JourneyChannelSettings
{
get { return this._journeyChannelSettings; }
set { this._journeyChannelSettings = value; }
}
// Check to see if JourneyChannelSettings property is set
internal bool IsSetJourneyChannelSettings()
{
return this._journeyChannelSettings != null;
}
///
/// Gets and sets the property LastModifiedDate.
///
/// The date, in ISO 8601 format, when the journey was last modified.
///
///
public string LastModifiedDate
{
get { return this._lastModifiedDate; }
set { this._lastModifiedDate = value; }
}
// Check to see if LastModifiedDate property is set
internal bool IsSetLastModifiedDate()
{
return this._lastModifiedDate != null;
}
///
/// Gets and sets the property Limits.
///
/// The messaging and entry limits for the journey.
///
///
public JourneyLimits Limits
{
get { return this._limits; }
set { this._limits = value; }
}
// Check to see if Limits property is set
internal bool IsSetLimits()
{
return this._limits != null;
}
///
/// Gets and sets the property LocalTime.
///
/// Specifies whether the journey's scheduled start and end times use each participant's
/// local time. To base the schedule on each participant's local time, set this value
/// to true.
///
///
public bool LocalTime
{
get { return this._localTime.GetValueOrDefault(); }
set { this._localTime = value; }
}
// Check to see if LocalTime property is set
internal bool IsSetLocalTime()
{
return this._localTime.HasValue;
}
///
/// Gets and sets the property Name.
///
/// The name of the journey. A journey name can contain a maximum of 150 characters. The
/// characters can be alphanumeric characters or symbols, such as underscores (_) or hyphens
/// (-). A journey name can't contain any spaces.
///
///
[AWSProperty(Required=true)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property OpenHours.
///
/// The time when journey allow to send messages. QuietTime should be configured first
/// and SendingSchedule should be set to true.
///
///
public OpenHours OpenHours
{
get { return this._openHours; }
set { this._openHours = value; }
}
// Check to see if OpenHours property is set
internal bool IsSetOpenHours()
{
return this._openHours != null;
}
///
/// Gets and sets the property QuietTime.
///
/// The quiet time settings for the journey. Quiet time is a specific time range when
/// a journey doesn't send messages to participants, if all the following conditions are
/// met:
///
///
///
/// The EndpointDemographic.Timezone property of the endpoint for the participant is set
/// to a valid value.
///
///
///
/// The current time in the participant's time zone is later than or equal to the time
/// specified by the QuietTime.Start property for the journey.
///
///
///
/// The current time in the participant's time zone is earlier than or equal to the time
/// specified by the QuietTime.End property for the journey.
///
///
///
/// If any of the preceding conditions isn't met, the participant will receive messages
/// from the journey, even if quiet time is enabled.
///
///
public QuietTime QuietTime
{
get { return this._quietTime; }
set { this._quietTime = value; }
}
// Check to see if QuietTime property is set
internal bool IsSetQuietTime()
{
return this._quietTime != null;
}
///
/// Gets and sets the property RefreshFrequency.
///
/// The frequency with which Amazon Pinpoint evaluates segment and event data for the
/// journey, as a duration in ISO 8601 format.
///
///
public string RefreshFrequency
{
get { return this._refreshFrequency; }
set { this._refreshFrequency = value; }
}
// Check to see if RefreshFrequency property is set
internal bool IsSetRefreshFrequency()
{
return this._refreshFrequency != null;
}
///
/// Gets and sets the property RefreshOnSegmentUpdate.
///
/// Indicates whether the journey participants should be refreshed when a segment is updated.
///
///
public bool RefreshOnSegmentUpdate
{
get { return this._refreshOnSegmentUpdate.GetValueOrDefault(); }
set { this._refreshOnSegmentUpdate = value; }
}
// Check to see if RefreshOnSegmentUpdate property is set
internal bool IsSetRefreshOnSegmentUpdate()
{
return this._refreshOnSegmentUpdate.HasValue;
}
///
/// Gets and sets the property Schedule.
///
/// The schedule settings for the journey.
///
///
public JourneySchedule Schedule
{
get { return this._schedule; }
set { this._schedule = value; }
}
// Check to see if Schedule property is set
internal bool IsSetSchedule()
{
return this._schedule != null;
}
///
/// Gets and sets the property SendingSchedule.
///
/// Indicates if journey has Advance Quiet Time enabled. This flag should be set to true
/// in order to allow using OpenHours and ClosedDays.
///
///
public bool SendingSchedule
{
get { return this._sendingSchedule.GetValueOrDefault(); }
set { this._sendingSchedule = value; }
}
// Check to see if SendingSchedule property is set
internal bool IsSetSendingSchedule()
{
return this._sendingSchedule.HasValue;
}
///
/// Gets and sets the property StartActivity.
///
/// The unique identifier for the first activity in the journey. The identifier for this
/// activity can contain a maximum of 128 characters. The characters must be alphanumeric
/// characters.
///
///
public string StartActivity
{
get { return this._startActivity; }
set { this._startActivity = value; }
}
// Check to see if StartActivity property is set
internal bool IsSetStartActivity()
{
return this._startActivity != null;
}
///
/// Gets and sets the property StartCondition.
///
/// The segment that defines which users are participants in the journey.
///
///
public StartCondition StartCondition
{
get { return this._startCondition; }
set { this._startCondition = value; }
}
// Check to see if StartCondition property is set
internal bool IsSetStartCondition()
{
return this._startCondition != null;
}
///
/// Gets and sets the property State.
///
/// The status of the journey. Valid values are:
///
///
///
/// DRAFT - Saves the journey and doesn't publish it.
///
///
///
/// ACTIVE - Saves and publishes the journey. Depending on the journey's schedule, the
/// journey starts running immediately or at the scheduled start time. If a journey's
/// status is ACTIVE, you can't add, change, or remove activities from it.
///
///
///
/// PAUSED, CANCELLED, COMPLETED, and CLOSED states are not supported in requests to create
/// or update a journey. To cancel, pause, or resume a journey, use the Journey
/// State resource.
///
///
public State State
{
get { return this._state; }
set { this._state = value; }
}
// Check to see if State property is set
internal bool IsSetState()
{
return this._state != null;
}
///
/// Gets and sets the property TimezoneEstimationMethods.
///
/// An array of time zone estimation methods, if any, to use for determining an Endpoints
/// time zone if the Endpoint does not have a value for the Demographic.Timezone attribute.
///
///
///
/// PHONE_NUMBER - A time zone is determined based on the Endpoint.Address and Endpoint.Location.Country.
///
///
///
/// POSTAL_CODE - A time zone is determined based on the Endpoint.Location.PostalCode
/// and Endpoint.Location.Country.
///
///
///
/// POSTAL_CODE detection is only supported in the United States, United Kingdom, Australia,
/// New Zealand, Canada, France, Italy, Spain, Germany and in regions where Amazon Pinpoint
/// is available.
///
///
///
public List TimezoneEstimationMethods
{
get { return this._timezoneEstimationMethods; }
set { this._timezoneEstimationMethods = value; }
}
// Check to see if TimezoneEstimationMethods property is set
internal bool IsSetTimezoneEstimationMethods()
{
return this._timezoneEstimationMethods != null && this._timezoneEstimationMethods.Count > 0;
}
///
/// Gets and sets the property WaitForQuietTime.
///
/// Specifies whether endpoints in quiet hours should enter a wait till the end of their
/// quiet hours.
///
///
public bool WaitForQuietTime
{
get { return this._waitForQuietTime.GetValueOrDefault(); }
set { this._waitForQuietTime = value; }
}
// Check to see if WaitForQuietTime property is set
internal bool IsSetWaitForQuietTime()
{
return this._waitForQuietTime.HasValue;
}
}
}