/*
* 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
{
///
/// Provides information about the status, configuration, and other settings for a journey.
///
public partial class JourneyResponse
{
private Dictionary _activities = new Dictionary();
private string _applicationId;
private ClosedDays _closedDays;
private string _creationDate;
private string _id;
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 Dictionary _tags = new Dictionary();
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.
///
///
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 ApplicationId.
///
/// The unique identifier for the application that the journey applies to.
///
///
[AWSProperty(Required=true)]
public string ApplicationId
{
get { return this._applicationId; }
set { this._applicationId = value; }
}
// Check to see if ApplicationId property is set
internal bool IsSetApplicationId()
{
return this._applicationId != null;
}
///
/// Gets and sets the property ClosedDays.
///
/// The time when a journey will not send 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 Id.
///
/// The unique identifier for the journey.
///
///
[AWSProperty(Required=true)]
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 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. If this value is true, the schedule uses each participant's local time.
///
///
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.
///
///
[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 a journey can 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.
///
///
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 current status of the journey. Possible values are:
///
/// -
///
/// DRAFT - The journey is being developed and hasn't been published yet.
///
///
-
///
/// ACTIVE - The journey has been developed and published. Depending on the journey's
/// schedule, the journey may currently be running or scheduled to start running at a
/// later time. If a journey's status is ACTIVE, you can't add, change, or remove activities
/// from it.
///
///
-
///
/// COMPLETED - The journey has been published and has finished running. All participants
/// have entered the journey and no participants are waiting to complete the journey or
/// any activities in the journey.
///
///
-
///
/// CANCELLED - The journey has been stopped. If a journey's status is CANCELLED, you
/// can't add, change, or remove activities or segment settings from the journey.
///
///
-
///
/// CLOSED - The journey has been published and has started running. It may have also
/// passed its scheduled end time, or passed its scheduled start time and a refresh frequency
/// hasn't been specified for it. If a journey's status is CLOSED, you can't add participants
/// to it, and no existing participants can enter the journey for the first time. However,
/// any existing participants who are currently waiting to start an activity may continue
/// the journey.
///
///
///
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 Tags.
///
/// This object is not used or supported.
///
///
public Dictionary Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// 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.
///
/// Indicates whether endpoints in quiet hours should enter a wait activity until quiet
/// hours have elapsed.
///
///
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;
}
}
}