1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// Provides information about the activities that were performed by a campaign.
10type ActivitiesResponse struct {
11
12	// An array of responses, one for each activity that was performed by the campaign.
13	//
14	// This member is required.
15	Item []ActivityResponse
16
17	// The string to use in a subsequent request to get the next page of results in a
18	// paginated response. This value is null if there are no additional pages.
19	NextToken *string
20}
21
22// Specifies the configuration and other settings for an activity in a journey.
23type Activity struct {
24
25	// The settings for a custom message activity. This type of activity calls an AWS
26	// Lambda function or web hook that sends messages to participants.
27	CUSTOM *CustomMessageActivity
28
29	// The settings for a yes/no split activity. This type of activity sends
30	// participants down one of two paths in a journey, based on conditions that you
31	// specify.
32	ConditionalSplit *ConditionalSplitActivity
33
34	// The custom description of the activity.
35	Description *string
36
37	// The settings for an email activity. This type of activity sends an email message
38	// to participants.
39	EMAIL *EmailMessageActivity
40
41	// The settings for a holdout activity. This type of activity stops a journey for a
42	// specified percentage of participants.
43	Holdout *HoldoutActivity
44
45	// The settings for a multivariate split activity. This type of activity sends
46	// participants down one of as many as five paths (including a default Else path)
47	// in a journey, based on conditions that you specify.
48	MultiCondition *MultiConditionalSplitActivity
49
50	// The settings for a push notification activity. This type of activity sends a
51	// push notification to participants.
52	PUSH *PushMessageActivity
53
54	// The settings for a random split activity. This type of activity randomly sends
55	// specified percentages of participants down one of as many as five paths in a
56	// journey, based on conditions that you specify.
57	RandomSplit *RandomSplitActivity
58
59	// The settings for an SMS activity. This type of activity sends a text message to
60	// participants.
61	SMS *SMSMessageActivity
62
63	// The settings for a wait activity. This type of activity waits for a certain
64	// amount of time or until a specific date and time before moving participants to
65	// the next activity in a journey.
66	Wait *WaitActivity
67}
68
69// Provides information about an activity that was performed by a campaign.
70type ActivityResponse struct {
71
72	// The unique identifier for the application that the campaign applies to.
73	//
74	// This member is required.
75	ApplicationId *string
76
77	// The unique identifier for the campaign that the activity applies to.
78	//
79	// This member is required.
80	CampaignId *string
81
82	// The unique identifier for the activity.
83	//
84	// This member is required.
85	Id *string
86
87	// The actual time, in ISO 8601 format, when the activity was marked CANCELLED or
88	// COMPLETED.
89	End *string
90
91	// Specifies whether the activity succeeded. Possible values are SUCCESS and FAIL.
92	Result *string
93
94	// The scheduled start time, in ISO 8601 format, for the activity.
95	ScheduledStart *string
96
97	// The actual start time, in ISO 8601 format, of the activity.
98	Start *string
99
100	// The current status of the activity. Possible values are: PENDING, INITIALIZING,
101	// RUNNING, PAUSED, CANCELLED, and COMPLETED.
102	State *string
103
104	// The total number of endpoints that the campaign successfully delivered messages
105	// to.
106	SuccessfulEndpointCount int32
107
108	// The total number of time zones that were completed.
109	TimezonesCompletedCount int32
110
111	// The total number of unique time zones that are in the segment for the campaign.
112	TimezonesTotalCount int32
113
114	// The total number of endpoints that the campaign attempted to deliver messages
115	// to.
116	TotalEndpointCount int32
117
118	// The unique identifier for the campaign treatment that the activity applies to. A
119	// treatment is a variation of a campaign that's used for A/B testing of a
120	// campaign.
121	TreatmentId *string
122}
123
124// Specifies address-based configuration settings for a message that's sent
125// directly to an endpoint.
126type AddressConfiguration struct {
127
128	// The message body to use instead of the default message body. This value
129	// overrides the default message body.
130	BodyOverride *string
131
132	// The channel to use when sending the message.
133	ChannelType ChannelType
134
135	// An object that maps custom attributes to attributes for the address and is
136	// attached to the message. Attribute names are case sensitive. For a push
137	// notification, this payload is added to the data.pinpoint object. For an email or
138	// text message, this payload is added to email/SMS delivery receipt event
139	// attributes.
140	Context map[string]string
141
142	// The raw, JSON-formatted string to use as the payload for the message. If
143	// specified, this value overrides all other values for the message.
144	RawContent *string
145
146	// A map of the message variables to merge with the variables specified by
147	// properties of the DefaultMessage object. The variables specified in this map
148	// take precedence over all other variables.
149	Substitutions map[string][]string
150
151	// The message title to use instead of the default message title. This value
152	// overrides the default message title.
153	TitleOverride *string
154}
155
156// Specifies the status and settings of the ADM (Amazon Device Messaging) channel
157// for an application.
158type ADMChannelRequest struct {
159
160	// The Client ID that you received from Amazon to send messages by using ADM.
161	//
162	// This member is required.
163	ClientId *string
164
165	// The Client Secret that you received from Amazon to send messages by using ADM.
166	//
167	// This member is required.
168	ClientSecret *string
169
170	// Specifies whether to enable the ADM channel for the application.
171	Enabled bool
172}
173
174// Provides information about the status and settings of the ADM (Amazon Device
175// Messaging) channel for an application.
176type ADMChannelResponse struct {
177
178	// The type of messaging or notification platform for the channel. For the ADM
179	// channel, this value is ADM.
180	//
181	// This member is required.
182	Platform *string
183
184	// The unique identifier for the application that the ADM channel applies to.
185	ApplicationId *string
186
187	// The date and time when the ADM channel was enabled.
188	CreationDate *string
189
190	// Specifies whether the ADM channel is enabled for the application.
191	Enabled bool
192
193	// (Not used) This property is retained only for backward compatibility.
194	HasCredential bool
195
196	// (Deprecated) An identifier for the ADM channel. This property is retained only
197	// for backward compatibility.
198	Id *string
199
200	// Specifies whether the ADM channel is archived.
201	IsArchived bool
202
203	// The user who last modified the ADM channel.
204	LastModifiedBy *string
205
206	// The date and time when the ADM channel was last modified.
207	LastModifiedDate *string
208
209	// The current version of the ADM channel.
210	Version int32
211}
212
213// Specifies the settings for a one-time message that's sent directly to an
214// endpoint through the ADM (Amazon Device Messaging) channel.
215type ADMMessage struct {
216
217	// The action to occur if the recipient taps the push notification. Valid values
218	// are:
219	//
220	// * OPEN_APP - Your app opens or it becomes the foreground app if it was
221	// sent to the background. This is the default action.
222	//
223	// * DEEP_LINK - Your app
224	// opens and displays a designated user interface in the app. This action uses the
225	// deep-linking features of the Android platform.
226	//
227	// * URL - The default mobile
228	// browser on the recipient's device opens and loads the web page at a URL that you
229	// specify.
230	Action Action
231
232	// The body of the notification message.
233	Body *string
234
235	// An arbitrary string that indicates that multiple messages are logically the same
236	// and that Amazon Device Messaging (ADM) can drop previously enqueued messages in
237	// favor of this message.
238	ConsolidationKey *string
239
240	// The JSON data payload to use for the push notification, if the notification is a
241	// silent push notification. This payload is added to the data.pinpoint.jsonBody
242	// object of the notification.
243	Data map[string]string
244
245	// The amount of time, in seconds, that ADM should store the message if the
246	// recipient's device is offline. Amazon Pinpoint specifies this value in the
247	// expiresAfter parameter when it sends the notification message to ADM.
248	ExpiresAfter *string
249
250	// The icon image name of the asset saved in your app.
251	IconReference *string
252
253	// The URL of the large icon image to display in the content view of the push
254	// notification.
255	ImageIconUrl *string
256
257	// The URL of an image to display in the push notification.
258	ImageUrl *string
259
260	// The base64-encoded, MD5 checksum of the value specified by the Data property.
261	// ADM uses the MD5 value to verify the integrity of the data.
262	MD5 *string
263
264	// The raw, JSON-formatted string to use as the payload for the notification
265	// message. If specified, this value overrides all other content for the message.
266	RawContent *string
267
268	// Specifies whether the notification is a silent push notification, which is a
269	// push notification that doesn't display on a recipient's device. Silent push
270	// notifications can be used for cases such as updating an app's configuration or
271	// supporting phone home functionality.
272	SilentPush bool
273
274	// The URL of the small icon image to display in the status bar and the content
275	// view of the push notification.
276	SmallImageIconUrl *string
277
278	// The sound to play when the recipient receives the push notification. You can use
279	// the default stream or specify the file name of a sound resource that's bundled
280	// in your app. On an Android platform, the sound file must reside in /res/raw/.
281	Sound *string
282
283	// The default message variables to use in the notification message. You can
284	// override the default variables with individual address variables.
285	Substitutions map[string][]string
286
287	// The title to display above the notification message on the recipient's device.
288	Title *string
289
290	// The URL to open in the recipient's default mobile browser, if a recipient taps
291	// the push notification and the value of the Action property is URL.
292	Url *string
293}
294
295// Specifies channel-specific content and settings for a message template that can
296// be used in push notifications that are sent through the ADM (Amazon Device
297// Messaging), Baidu (Baidu Cloud Push), or GCM (Firebase Cloud Messaging, formerly
298// Google Cloud Messaging) channel.
299type AndroidPushNotificationTemplate struct {
300
301	// The action to occur if a recipient taps a push notification that's based on the
302	// message template. Valid values are:
303	//
304	// * OPEN_APP - Your app opens or it becomes
305	// the foreground app if it was sent to the background. This is the default
306	// action.
307	//
308	// * DEEP_LINK - Your app opens and displays a designated user interface
309	// in the app. This action uses the deep-linking features of the Android
310	// platform.
311	//
312	// * URL - The default mobile browser on the recipient's device opens
313	// and loads the web page at a URL that you specify.
314	Action Action
315
316	// The message body to use in a push notification that's based on the message
317	// template.
318	Body *string
319
320	// The URL of the large icon image to display in the content view of a push
321	// notification that's based on the message template.
322	ImageIconUrl *string
323
324	// The URL of an image to display in a push notification that's based on the
325	// message template.
326	ImageUrl *string
327
328	// The raw, JSON-formatted string to use as the payload for a push notification
329	// that's based on the message template. If specified, this value overrides all
330	// other content for the message template.
331	RawContent *string
332
333	// The URL of the small icon image to display in the status bar and the content
334	// view of a push notification that's based on the message template.
335	SmallImageIconUrl *string
336
337	// The sound to play when a recipient receives a push notification that's based on
338	// the message template. You can use the default stream or specify the file name of
339	// a sound resource that's bundled in your app. On an Android platform, the sound
340	// file must reside in /res/raw/.
341	Sound *string
342
343	// The title to use in a push notification that's based on the message template.
344	// This title appears above the notification message on a recipient's device.
345	Title *string
346
347	// The URL to open in a recipient's default mobile browser, if a recipient taps a
348	// push notification that's based on the message template and the value of the
349	// Action property is URL.
350	Url *string
351}
352
353// Specifies the status and settings of the APNs (Apple Push Notification service)
354// channel for an application.
355type APNSChannelRequest struct {
356
357	// The bundle identifier that's assigned to your iOS app. This identifier is used
358	// for APNs tokens.
359	BundleId *string
360
361	// The APNs client certificate that you received from Apple, if you want Amazon
362	// Pinpoint to communicate with APNs by using an APNs certificate.
363	Certificate *string
364
365	// The default authentication method that you want Amazon Pinpoint to use when
366	// authenticating with APNs, key or certificate.
367	DefaultAuthenticationMethod *string
368
369	// Specifies whether to enable the APNs channel for the application.
370	Enabled bool
371
372	// The private key for the APNs client certificate that you want Amazon Pinpoint to
373	// use to communicate with APNs.
374	PrivateKey *string
375
376	// The identifier that's assigned to your Apple developer account team. This
377	// identifier is used for APNs tokens.
378	TeamId *string
379
380	// The authentication key to use for APNs tokens.
381	TokenKey *string
382
383	// The key identifier that's assigned to your APNs signing key, if you want Amazon
384	// Pinpoint to communicate with APNs by using APNs tokens.
385	TokenKeyId *string
386}
387
388// Provides information about the status and settings of the APNs (Apple Push
389// Notification service) channel for an application.
390type APNSChannelResponse struct {
391
392	// The type of messaging or notification platform for the channel. For the APNs
393	// channel, this value is APNS.
394	//
395	// This member is required.
396	Platform *string
397
398	// The unique identifier for the application that the APNs channel applies to.
399	ApplicationId *string
400
401	// The date and time when the APNs channel was enabled.
402	CreationDate *string
403
404	// The default authentication method that Amazon Pinpoint uses to authenticate with
405	// APNs for this channel, key or certificate.
406	DefaultAuthenticationMethod *string
407
408	// Specifies whether the APNs channel is enabled for the application.
409	Enabled bool
410
411	// (Not used) This property is retained only for backward compatibility.
412	HasCredential bool
413
414	// Specifies whether the APNs channel is configured to communicate with APNs by
415	// using APNs tokens. To provide an authentication key for APNs tokens, set the
416	// TokenKey property of the channel.
417	HasTokenKey bool
418
419	// (Deprecated) An identifier for the APNs channel. This property is retained only
420	// for backward compatibility.
421	Id *string
422
423	// Specifies whether the APNs channel is archived.
424	IsArchived bool
425
426	// The user who last modified the APNs channel.
427	LastModifiedBy *string
428
429	// The date and time when the APNs channel was last modified.
430	LastModifiedDate *string
431
432	// The current version of the APNs channel.
433	Version int32
434}
435
436// Specifies the settings for a one-time message that's sent directly to an
437// endpoint through the APNs (Apple Push Notification service) channel.
438type APNSMessage struct {
439
440	// The type of push notification to send. Valid values are:
441	//
442	// * alert - For a
443	// standard notification that's displayed on recipients' devices and prompts a
444	// recipient to interact with the notification.
445	//
446	// * background - For a silent
447	// notification that delivers content in the background and isn't displayed on
448	// recipients' devices.
449	//
450	// * complication - For a notification that contains update
451	// information for an app’s complication timeline.
452	//
453	// * fileprovider - For a
454	// notification that signals changes to a File Provider extension.
455	//
456	// * mdm - For a
457	// notification that tells managed devices to contact the MDM server.
458	//
459	// * voip - For
460	// a notification that provides information about an incoming VoIP call.
461	//
462	// Amazon
463	// Pinpoint specifies this value in the apns-push-type request header when it sends
464	// the notification message to APNs. If you don't specify a value for this
465	// property, Amazon Pinpoint sets the value to alert or background automatically,
466	// based on the value that you specify for the SilentPush or RawContent property of
467	// the message. For more information about the apns-push-type request header, see
468	// Sending Notification Requests to APNs
469	// (https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns)
470	// on the Apple Developer website.
471	APNSPushType *string
472
473	// The action to occur if the recipient taps the push notification. Valid values
474	// are:
475	//
476	// * OPEN_APP - Your app opens or it becomes the foreground app if it was
477	// sent to the background. This is the default action.
478	//
479	// * DEEP_LINK - Your app
480	// opens and displays a designated user interface in the app. This setting uses the
481	// deep-linking features of the iOS platform.
482	//
483	// * URL - The default mobile browser
484	// on the recipient's device opens and loads the web page at a URL that you
485	// specify.
486	Action Action
487
488	// The key that indicates whether and how to modify the badge of your app's icon
489	// when the recipient receives the push notification. If this key isn't included in
490	// the dictionary, the badge doesn't change. To remove the badge, set this value to
491	// 0.
492	Badge int32
493
494	// The body of the notification message.
495	Body *string
496
497	// The key that indicates the notification type for the push notification. This key
498	// is a value that's defined by the identifier property of one of your app's
499	// registered categories.
500	Category *string
501
502	// An arbitrary identifier that, if assigned to multiple messages, APNs uses to
503	// coalesce the messages into a single push notification instead of delivering each
504	// message individually. This value can't exceed 64 bytes. Amazon Pinpoint
505	// specifies this value in the apns-collapse-id request header when it sends the
506	// notification message to APNs.
507	CollapseId *string
508
509	// The JSON payload to use for a silent push notification. This payload is added to
510	// the data.pinpoint.jsonBody object of the notification.
511	Data map[string]string
512
513	// The URL of an image or video to display in the push notification.
514	MediaUrl *string
515
516	// The authentication method that you want Amazon Pinpoint to use when
517	// authenticating with APNs, CERTIFICATE or TOKEN.
518	PreferredAuthenticationMethod *string
519
520	// para>5 - Low priority, the notification might be delayed, delivered as part of a
521	// group, or throttled./listitem>
522	// * 10 - High priority, the notification is sent
523	// immediately. This is the default value. A high priority notification should
524	// trigger an alert, play a sound, or badge your app's icon on the recipient's
525	// device.
526	// /para> Amazon Pinpoint specifies this value in the apns-priority request
527	// header when it sends the notification message to APNs. The equivalent values for
528	// Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), are
529	// normal, for 5, and high, for 10. If you specify an FCM value for this property,
530	// Amazon Pinpoint accepts and converts the value to the corresponding APNs value.
531	Priority *string
532
533	// The raw, JSON-formatted string to use as the payload for the notification
534	// message. If specified, this value overrides all other content for the message.
535	// If you specify the raw content of an APNs push notification, the message payload
536	// has to include the content-available key. The value of the content-available key
537	// has to be an integer, and can only be 0 or 1. If you're sending a standard
538	// notification, set the value of content-available to 0. If you're sending a
539	// silent (background) notification, set the value of content-available to 1.
540	// Additionally, silent notification payloads can't include the alert, badge, or
541	// sound keys. For more information, see Generating a Remote Notification
542	// (https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification)
543	// and Pushing Background Updates to Your App
544	// (https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app)
545	// on the Apple Developer website.
546	RawContent *string
547
548	// Specifies whether the notification is a silent push notification. A silent (or
549	// background) push notification isn't displayed on recipients' devices. You can
550	// use silent push notifications to make small updates to your app, or to display
551	// messages in an in-app message center. Amazon Pinpoint uses this property to
552	// determine the correct value for the apns-push-type request header when it sends
553	// the notification message to APNs. If you specify a value of true for this
554	// property, Amazon Pinpoint sets the value for the apns-push-type header field to
555	// background. If you specify the raw content of an APNs push notification, the
556	// message payload has to include the content-available key. For silent
557	// (background) notifications, set the value of content-available to 1.
558	// Additionally, the message payload for a silent notification can't include the
559	// alert, badge, or sound keys. For more information, see Generating a Remote
560	// Notification
561	// (https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification)
562	// and Pushing Background Updates to Your App
563	// (https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app)
564	// on the Apple Developer website. Apple has indicated that they will throttle
565	// "excessive" background notifications based on current traffic volumes. To
566	// prevent your notifications being throttled, Apple recommends that you send no
567	// more than 3 silent push notifications to each recipient per hour.
568	SilentPush bool
569
570	// The key for the sound to play when the recipient receives the push notification.
571	// The value for this key is the name of a sound file in your app's main bundle or
572	// the Library/Sounds folder in your app's data container. If the sound file can't
573	// be found or you specify default for the value, the system plays the default
574	// alert sound.
575	Sound *string
576
577	// The default message variables to use in the notification message. You can
578	// override these default variables with individual address variables.
579	Substitutions map[string][]string
580
581	// The key that represents your app-specific identifier for grouping notifications.
582	// If you provide a Notification Content app extension, you can use this value to
583	// group your notifications together.
584	ThreadId *string
585
586	// The amount of time, in seconds, that APNs should store and attempt to deliver
587	// the push notification, if the service is unable to deliver the notification the
588	// first time. If this value is 0, APNs treats the notification as if it expires
589	// immediately and the service doesn't store or try to deliver the notification
590	// again. Amazon Pinpoint specifies this value in the apns-expiration request
591	// header when it sends the notification message to APNs.
592	TimeToLive int32
593
594	// The title to display above the notification message on the recipient's device.
595	Title *string
596
597	// The URL to open in the recipient's default mobile browser, if a recipient taps
598	// the push notification and the value of the Action property is URL.
599	Url *string
600}
601
602// Specifies channel-specific content and settings for a message template that can
603// be used in push notifications that are sent through the APNs (Apple Push
604// Notification service) channel.
605type APNSPushNotificationTemplate struct {
606
607	// The action to occur if a recipient taps a push notification that's based on the
608	// message template. Valid values are:
609	//
610	// * OPEN_APP - Your app opens or it becomes
611	// the foreground app if it was sent to the background. This is the default
612	// action.
613	//
614	// * DEEP_LINK - Your app opens and displays a designated user interface
615	// in the app. This setting uses the deep-linking features of the iOS platform.
616	//
617	// *
618	// URL - The default mobile browser on the recipient's device opens and loads the
619	// web page at a URL that you specify.
620	Action Action
621
622	// The message body to use in push notifications that are based on the message
623	// template.
624	Body *string
625
626	// The URL of an image or video to display in push notifications that are based on
627	// the message template.
628	MediaUrl *string
629
630	// The raw, JSON-formatted string to use as the payload for push notifications that
631	// are based on the message template. If specified, this value overrides all other
632	// content for the message template.
633	RawContent *string
634
635	// The key for the sound to play when the recipient receives a push notification
636	// that's based on the message template. The value for this key is the name of a
637	// sound file in your app's main bundle or the Library/Sounds folder in your app's
638	// data container. If the sound file can't be found or you specify default for the
639	// value, the system plays the default alert sound.
640	Sound *string
641
642	// The title to use in push notifications that are based on the message template.
643	// This title appears above the notification message on a recipient's device.
644	Title *string
645
646	// The URL to open in the recipient's default mobile browser, if a recipient taps a
647	// push notification that's based on the message template and the value of the
648	// Action property is URL.
649	Url *string
650}
651
652// Specifies the status and settings of the APNs (Apple Push Notification service)
653// sandbox channel for an application.
654type APNSSandboxChannelRequest struct {
655
656	// The bundle identifier that's assigned to your iOS app. This identifier is used
657	// for APNs tokens.
658	BundleId *string
659
660	// The APNs client certificate that you received from Apple, if you want Amazon
661	// Pinpoint to communicate with the APNs sandbox environment by using an APNs
662	// certificate.
663	Certificate *string
664
665	// The default authentication method that you want Amazon Pinpoint to use when
666	// authenticating with the APNs sandbox environment, key or certificate.
667	DefaultAuthenticationMethod *string
668
669	// Specifies whether to enable the APNs sandbox channel for the application.
670	Enabled bool
671
672	// The private key for the APNs client certificate that you want Amazon Pinpoint to
673	// use to communicate with the APNs sandbox environment.
674	PrivateKey *string
675
676	// The identifier that's assigned to your Apple developer account team. This
677	// identifier is used for APNs tokens.
678	TeamId *string
679
680	// The authentication key to use for APNs tokens.
681	TokenKey *string
682
683	// The key identifier that's assigned to your APNs signing key, if you want Amazon
684	// Pinpoint to communicate with the APNs sandbox environment by using APNs tokens.
685	TokenKeyId *string
686}
687
688// Provides information about the status and settings of the APNs (Apple Push
689// Notification service) sandbox channel for an application.
690type APNSSandboxChannelResponse struct {
691
692	// The type of messaging or notification platform for the channel. For the APNs
693	// sandbox channel, this value is APNS_SANDBOX.
694	//
695	// This member is required.
696	Platform *string
697
698	// The unique identifier for the application that the APNs sandbox channel applies
699	// to.
700	ApplicationId *string
701
702	// The date and time when the APNs sandbox channel was enabled.
703	CreationDate *string
704
705	// The default authentication method that Amazon Pinpoint uses to authenticate with
706	// the APNs sandbox environment for this channel, key or certificate.
707	DefaultAuthenticationMethod *string
708
709	// Specifies whether the APNs sandbox channel is enabled for the application.
710	Enabled bool
711
712	// (Not used) This property is retained only for backward compatibility.
713	HasCredential bool
714
715	// Specifies whether the APNs sandbox channel is configured to communicate with
716	// APNs by using APNs tokens. To provide an authentication key for APNs tokens, set
717	// the TokenKey property of the channel.
718	HasTokenKey bool
719
720	// (Deprecated) An identifier for the APNs sandbox channel. This property is
721	// retained only for backward compatibility.
722	Id *string
723
724	// Specifies whether the APNs sandbox channel is archived.
725	IsArchived bool
726
727	// The user who last modified the APNs sandbox channel.
728	LastModifiedBy *string
729
730	// The date and time when the APNs sandbox channel was last modified.
731	LastModifiedDate *string
732
733	// The current version of the APNs sandbox channel.
734	Version int32
735}
736
737// Specifies the status and settings of the APNs (Apple Push Notification service)
738// VoIP channel for an application.
739type APNSVoipChannelRequest struct {
740
741	// The bundle identifier that's assigned to your iOS app. This identifier is used
742	// for APNs tokens.
743	BundleId *string
744
745	// The APNs client certificate that you received from Apple, if you want Amazon
746	// Pinpoint to communicate with APNs by using an APNs certificate.
747	Certificate *string
748
749	// The default authentication method that you want Amazon Pinpoint to use when
750	// authenticating with APNs, key or certificate.
751	DefaultAuthenticationMethod *string
752
753	// Specifies whether to enable the APNs VoIP channel for the application.
754	Enabled bool
755
756	// The private key for the APNs client certificate that you want Amazon Pinpoint to
757	// use to communicate with APNs.
758	PrivateKey *string
759
760	// The identifier that's assigned to your Apple developer account team. This
761	// identifier is used for APNs tokens.
762	TeamId *string
763
764	// The authentication key to use for APNs tokens.
765	TokenKey *string
766
767	// The key identifier that's assigned to your APNs signing key, if you want Amazon
768	// Pinpoint to communicate with APNs by using APNs tokens.
769	TokenKeyId *string
770}
771
772// Provides information about the status and settings of the APNs (Apple Push
773// Notification service) VoIP channel for an application.
774type APNSVoipChannelResponse struct {
775
776	// The type of messaging or notification platform for the channel. For the APNs
777	// VoIP channel, this value is APNS_VOIP.
778	//
779	// This member is required.
780	Platform *string
781
782	// The unique identifier for the application that the APNs VoIP channel applies to.
783	ApplicationId *string
784
785	// The date and time when the APNs VoIP channel was enabled.
786	CreationDate *string
787
788	// The default authentication method that Amazon Pinpoint uses to authenticate with
789	// APNs for this channel, key or certificate.
790	DefaultAuthenticationMethod *string
791
792	// Specifies whether the APNs VoIP channel is enabled for the application.
793	Enabled bool
794
795	// (Not used) This property is retained only for backward compatibility.
796	HasCredential bool
797
798	// Specifies whether the APNs VoIP channel is configured to communicate with APNs
799	// by using APNs tokens. To provide an authentication key for APNs tokens, set the
800	// TokenKey property of the channel.
801	HasTokenKey bool
802
803	// (Deprecated) An identifier for the APNs VoIP channel. This property is retained
804	// only for backward compatibility.
805	Id *string
806
807	// Specifies whether the APNs VoIP channel is archived.
808	IsArchived bool
809
810	// The user who last modified the APNs VoIP channel.
811	LastModifiedBy *string
812
813	// The date and time when the APNs VoIP channel was last modified.
814	LastModifiedDate *string
815
816	// The current version of the APNs VoIP channel.
817	Version int32
818}
819
820// Specifies the status and settings of the APNs (Apple Push Notification service)
821// VoIP sandbox channel for an application.
822type APNSVoipSandboxChannelRequest struct {
823
824	// The bundle identifier that's assigned to your iOS app. This identifier is used
825	// for APNs tokens.
826	BundleId *string
827
828	// The APNs client certificate that you received from Apple, if you want Amazon
829	// Pinpoint to communicate with the APNs sandbox environment by using an APNs
830	// certificate.
831	Certificate *string
832
833	// The default authentication method that you want Amazon Pinpoint to use when
834	// authenticating with the APNs sandbox environment for this channel, key or
835	// certificate.
836	DefaultAuthenticationMethod *string
837
838	// Specifies whether the APNs VoIP sandbox channel is enabled for the application.
839	Enabled bool
840
841	// The private key for the APNs client certificate that you want Amazon Pinpoint to
842	// use to communicate with the APNs sandbox environment.
843	PrivateKey *string
844
845	// The identifier that's assigned to your Apple developer account team. This
846	// identifier is used for APNs tokens.
847	TeamId *string
848
849	// The authentication key to use for APNs tokens.
850	TokenKey *string
851
852	// The key identifier that's assigned to your APNs signing key, if you want Amazon
853	// Pinpoint to communicate with the APNs sandbox environment by using APNs tokens.
854	TokenKeyId *string
855}
856
857// Provides information about the status and settings of the APNs (Apple Push
858// Notification service) VoIP sandbox channel for an application.
859type APNSVoipSandboxChannelResponse struct {
860
861	// The type of messaging or notification platform for the channel. For the APNs
862	// VoIP sandbox channel, this value is APNS_VOIP_SANDBOX.
863	//
864	// This member is required.
865	Platform *string
866
867	// The unique identifier for the application that the APNs VoIP sandbox channel
868	// applies to.
869	ApplicationId *string
870
871	// The date and time when the APNs VoIP sandbox channel was enabled.
872	CreationDate *string
873
874	// The default authentication method that Amazon Pinpoint uses to authenticate with
875	// the APNs sandbox environment for this channel, key or certificate.
876	DefaultAuthenticationMethod *string
877
878	// Specifies whether the APNs VoIP sandbox channel is enabled for the application.
879	Enabled bool
880
881	// (Not used) This property is retained only for backward compatibility.
882	HasCredential bool
883
884	// Specifies whether the APNs VoIP sandbox channel is configured to communicate
885	// with APNs by using APNs tokens. To provide an authentication key for APNs
886	// tokens, set the TokenKey property of the channel.
887	HasTokenKey bool
888
889	// (Deprecated) An identifier for the APNs VoIP sandbox channel. This property is
890	// retained only for backward compatibility.
891	Id *string
892
893	// Specifies whether the APNs VoIP sandbox channel is archived.
894	IsArchived bool
895
896	// The user who last modified the APNs VoIP sandbox channel.
897	LastModifiedBy *string
898
899	// The date and time when the APNs VoIP sandbox channel was last modified.
900	LastModifiedDate *string
901
902	// The current version of the APNs VoIP sandbox channel.
903	Version int32
904}
905
906// Provides the results of a query that retrieved the data for a standard metric
907// that applies to an application, and provides information about that query.
908type ApplicationDateRangeKpiResponse struct {
909
910	// The unique identifier for the application that the metric applies to.
911	//
912	// This member is required.
913	ApplicationId *string
914
915	// The last date and time of the date range that was used to filter the query
916	// results, in extended ISO 8601 format. The date range is inclusive.
917	//
918	// This member is required.
919	EndTime *time.Time
920
921	// The name of the metric, also referred to as a key performance indicator (KPI),
922	// that the data was retrieved for. This value describes the associated metric and
923	// consists of two or more terms, which are comprised of lowercase alphanumeric
924	// characters, separated by a hyphen. For a list of possible values, see the Amazon
925	// Pinpoint Developer Guide
926	// (https://docs.aws.amazon.com/pinpoint/latest/developerguide/analytics-standard-metrics.html).
927	//
928	// This member is required.
929	KpiName *string
930
931	// An array of objects that contains the results of the query. Each object contains
932	// the value for the metric and metadata about that value.
933	//
934	// This member is required.
935	KpiResult *BaseKpiResult
936
937	// The first date and time of the date range that was used to filter the query
938	// results, in extended ISO 8601 format. The date range is inclusive.
939	//
940	// This member is required.
941	StartTime *time.Time
942
943	// The string to use in a subsequent request to get the next page of results in a
944	// paginated response. This value is null for the Application Metrics resource
945	// because the resource returns all results in a single page.
946	NextToken *string
947}
948
949// Provides information about an application.
950type ApplicationResponse struct {
951
952	// The Amazon Resource Name (ARN) of the application.
953	//
954	// This member is required.
955	Arn *string
956
957	// The unique identifier for the application. This identifier is displayed as the
958	// Project ID on the Amazon Pinpoint console.
959	//
960	// This member is required.
961	Id *string
962
963	// The display name of the application. This name is displayed as the Project name
964	// on the Amazon Pinpoint console.
965	//
966	// This member is required.
967	Name *string
968
969	// A string-to-string map of key-value pairs that identifies the tags that are
970	// associated with the application. Each tag consists of a required tag key and an
971	// associated tag value.
972	Tags map[string]string
973}
974
975// Provides information about an application, including the default settings for an
976// application.
977type ApplicationSettingsResource struct {
978
979	// The unique identifier for the application. This identifier is displayed as the
980	// Project ID on the Amazon Pinpoint console.
981	//
982	// This member is required.
983	ApplicationId *string
984
985	// The settings for the AWS Lambda function to invoke by default as a code hook for
986	// campaigns in the application. You can use this hook to customize segments that
987	// are used by campaigns in the application.
988	CampaignHook *CampaignHook
989
990	// The date and time, in ISO 8601 format, when the application's settings were last
991	// modified.
992	LastModifiedDate *string
993
994	// The default sending limits for campaigns in the application.
995	Limits *CampaignLimits
996
997	// The default quiet time for campaigns in the application. Quiet time is a
998	// specific time range when messages aren't sent to endpoints, if all the following
999	// conditions are met:
1000	//
1001	// * The EndpointDemographic.Timezone property of the endpoint
1002	// is set to a valid value.
1003	//
1004	// * The current time in the endpoint's time zone is
1005	// later than or equal to the time specified by the QuietTime.Start property for
1006	// the application (or a campaign or journey that has custom quiet time
1007	// settings).
1008	//
1009	// * The current time in the endpoint's time zone is earlier than or
1010	// equal to the time specified by the QuietTime.End property for the application
1011	// (or a campaign or journey that has custom quiet time settings).
1012	//
1013	// If any of the
1014	// preceding conditions isn't met, the endpoint will receive messages from a
1015	// campaign or journey, even if quiet time is enabled.
1016	QuietTime *QuietTime
1017}
1018
1019// Provides information about all of your applications.
1020type ApplicationsResponse struct {
1021
1022	// An array of responses, one for each application that was returned.
1023	Item []ApplicationResponse
1024
1025	// The string to use in a subsequent request to get the next page of results in a
1026	// paginated response. This value is null if there are no additional pages.
1027	NextToken *string
1028}
1029
1030// Specifies attribute-based criteria for including or excluding endpoints from a
1031// segment.
1032type AttributeDimension struct {
1033
1034	// The criteria values to use for the segment dimension. Depending on the value of
1035	// the AttributeType property, endpoints are included or excluded from the segment
1036	// if their attribute values match the criteria values.
1037	//
1038	// This member is required.
1039	Values []string
1040
1041	// The type of segment dimension to use. Valid values are:
1042	//
1043	// * INCLUSIVE - endpoints
1044	// that have attributes matching the values are included in the segment.
1045	//
1046	// *
1047	// EXCLUSIVE - endpoints that have attributes matching the values are excluded in
1048	// the segment.
1049	//
1050	// * CONTAINS - endpoints that have attributes' substrings match the
1051	// values are included in the segment.
1052	//
1053	// * BEFORE - endpoints with attributes read
1054	// as ISO_INSTANT datetimes before the value are included in the segment.
1055	//
1056	// * AFTER
1057	// - endpoints with attributes read as ISO_INSTANT datetimes after the value are
1058	// included in the segment.
1059	//
1060	// * ON - endpoints with attributes read as ISO_INSTANT
1061	// dates on the value are included in the segment. Time is ignored in this
1062	// comparison.
1063	//
1064	// * BETWEEN - endpoints with attributes read as ISO_INSTANT datetimes
1065	// between the values are included in the segment.
1066	AttributeType AttributeType
1067}
1068
1069// Provides information about the type and the names of attributes that were
1070// removed from all the endpoints that are associated with an application.
1071type AttributesResource struct {
1072
1073	// The unique identifier for the application.
1074	//
1075	// This member is required.
1076	ApplicationId *string
1077
1078	// The type of attribute or attributes that were removed from the endpoints. Valid
1079	// values are:
1080	//
1081	// * endpoint-custom-attributes - Custom attributes that describe
1082	// endpoints.
1083	//
1084	// * endpoint-metric-attributes - Custom metrics that your app reports
1085	// to Amazon Pinpoint for endpoints.
1086	//
1087	// * endpoint-user-attributes - Custom
1088	// attributes that describe users.
1089	//
1090	// This member is required.
1091	AttributeType *string
1092
1093	// An array that specifies the names of the attributes that were removed from the
1094	// endpoints.
1095	Attributes []string
1096}
1097
1098// Specifies the status and settings of the Baidu (Baidu Cloud Push) channel for an
1099// application.
1100type BaiduChannelRequest struct {
1101
1102	// The API key that you received from the Baidu Cloud Push service to communicate
1103	// with the service.
1104	//
1105	// This member is required.
1106	ApiKey *string
1107
1108	// The secret key that you received from the Baidu Cloud Push service to
1109	// communicate with the service.
1110	//
1111	// This member is required.
1112	SecretKey *string
1113
1114	// Specifies whether to enable the Baidu channel for the application.
1115	Enabled bool
1116}
1117
1118// Provides information about the status and settings of the Baidu (Baidu Cloud
1119// Push) channel for an application.
1120type BaiduChannelResponse struct {
1121
1122	// The API key that you received from the Baidu Cloud Push service to communicate
1123	// with the service.
1124	//
1125	// This member is required.
1126	Credential *string
1127
1128	// The type of messaging or notification platform for the channel. For the Baidu
1129	// channel, this value is BAIDU.
1130	//
1131	// This member is required.
1132	Platform *string
1133
1134	// The unique identifier for the application that the Baidu channel applies to.
1135	ApplicationId *string
1136
1137	// The date and time when the Baidu channel was enabled.
1138	CreationDate *string
1139
1140	// Specifies whether the Baidu channel is enabled for the application.
1141	Enabled bool
1142
1143	// (Not used) This property is retained only for backward compatibility.
1144	HasCredential bool
1145
1146	// (Deprecated) An identifier for the Baidu channel. This property is retained only
1147	// for backward compatibility.
1148	Id *string
1149
1150	// Specifies whether the Baidu channel is archived.
1151	IsArchived bool
1152
1153	// The user who last modified the Baidu channel.
1154	LastModifiedBy *string
1155
1156	// The date and time when the Baidu channel was last modified.
1157	LastModifiedDate *string
1158
1159	// The current version of the Baidu channel.
1160	Version int32
1161}
1162
1163// Specifies the settings for a one-time message that's sent directly to an
1164// endpoint through the Baidu (Baidu Cloud Push) channel.
1165type BaiduMessage struct {
1166
1167	// The action to occur if the recipient taps the push notification. Valid values
1168	// are:
1169	//
1170	// * OPEN_APP - Your app opens or it becomes the foreground app if it was
1171	// sent to the background. This is the default action.
1172	//
1173	// * DEEP_LINK - Your app
1174	// opens and displays a designated user interface in the app. This action uses the
1175	// deep-linking features of the Android platform.
1176	//
1177	// * URL - The default mobile
1178	// browser on the recipient's device opens and loads the web page at a URL that you
1179	// specify.
1180	Action Action
1181
1182	// The body of the notification message.
1183	Body *string
1184
1185	// The JSON data payload to use for the push notification, if the notification is a
1186	// silent push notification. This payload is added to the data.pinpoint.jsonBody
1187	// object of the notification.
1188	Data map[string]string
1189
1190	// The icon image name of the asset saved in your app.
1191	IconReference *string
1192
1193	// The URL of the large icon image to display in the content view of the push
1194	// notification.
1195	ImageIconUrl *string
1196
1197	// The URL of an image to display in the push notification.
1198	ImageUrl *string
1199
1200	// The raw, JSON-formatted string to use as the payload for the notification
1201	// message. If specified, this value overrides all other content for the message.
1202	RawContent *string
1203
1204	// Specifies whether the notification is a silent push notification, which is a
1205	// push notification that doesn't display on a recipient's device. Silent push
1206	// notifications can be used for cases such as updating an app's configuration or
1207	// supporting phone home functionality.
1208	SilentPush bool
1209
1210	// The URL of the small icon image to display in the status bar and the content
1211	// view of the push notification.
1212	SmallImageIconUrl *string
1213
1214	// The sound to play when the recipient receives the push notification. You can use
1215	// the default stream or specify the file name of a sound resource that's bundled
1216	// in your app. On an Android platform, the sound file must reside in /res/raw/.
1217	Sound *string
1218
1219	// The default message variables to use in the notification message. You can
1220	// override the default variables with individual address variables.
1221	Substitutions map[string][]string
1222
1223	// The amount of time, in seconds, that the Baidu Cloud Push service should store
1224	// the message if the recipient's device is offline. The default value and maximum
1225	// supported time is 604,800 seconds (7 days).
1226	TimeToLive int32
1227
1228	// The title to display above the notification message on the recipient's device.
1229	Title *string
1230
1231	// The URL to open in the recipient's default mobile browser, if a recipient taps
1232	// the push notification and the value of the Action property is URL.
1233	Url *string
1234}
1235
1236// Provides the results of a query that retrieved the data for a standard metric
1237// that applies to an application, campaign, or journey.
1238type BaseKpiResult struct {
1239
1240	// An array of objects that provides the results of a query that retrieved the data
1241	// for a standard metric that applies to an application, campaign, or journey.
1242	//
1243	// This member is required.
1244	Rows []ResultRow
1245}
1246
1247// Specifies the contents of a message that's sent through a custom channel to
1248// recipients of a campaign.
1249type CampaignCustomMessage struct {
1250
1251	// The raw, JSON-formatted string to use as the payload for the message. The
1252	// maximum size is 5 KB.
1253	Data *string
1254}
1255
1256// Provides the results of a query that retrieved the data for a standard metric
1257// that applies to a campaign, and provides information about that query.
1258type CampaignDateRangeKpiResponse struct {
1259
1260	// The unique identifier for the application that the metric applies to.
1261	//
1262	// This member is required.
1263	ApplicationId *string
1264
1265	// The unique identifier for the campaign that the metric applies to.
1266	//
1267	// This member is required.
1268	CampaignId *string
1269
1270	// The last date and time of the date range that was used to filter the query
1271	// results, in extended ISO 8601 format. The date range is inclusive.
1272	//
1273	// This member is required.
1274	EndTime *time.Time
1275
1276	// The name of the metric, also referred to as a key performance indicator (KPI),
1277	// that the data was retrieved for. This value describes the associated metric and
1278	// consists of two or more terms, which are comprised of lowercase alphanumeric
1279	// characters, separated by a hyphen. For a list of possible values, see the Amazon
1280	// Pinpoint Developer Guide
1281	// (https://docs.aws.amazon.com/pinpoint/latest/developerguide/analytics-standard-metrics.html).
1282	//
1283	// This member is required.
1284	KpiName *string
1285
1286	// An array of objects that contains the results of the query. Each object contains
1287	// the value for the metric and metadata about that value.
1288	//
1289	// This member is required.
1290	KpiResult *BaseKpiResult
1291
1292	// The first date and time of the date range that was used to filter the query
1293	// results, in extended ISO 8601 format. The date range is inclusive.
1294	//
1295	// This member is required.
1296	StartTime *time.Time
1297
1298	// The string to use in a subsequent request to get the next page of results in a
1299	// paginated response. This value is null for the Campaign Metrics resource because
1300	// the resource returns all results in a single page.
1301	NextToken *string
1302}
1303
1304// Specifies the content and "From" address for an email message that's sent to
1305// recipients of a campaign.
1306type CampaignEmailMessage struct {
1307
1308	// The body of the email for recipients whose email clients don't render HTML
1309	// content.
1310	Body *string
1311
1312	// The verified email address to send the email from. The default address is the
1313	// FromAddress specified for the email channel for the application.
1314	FromAddress *string
1315
1316	// The body of the email, in HTML format, for recipients whose email clients render
1317	// HTML content.
1318	HtmlBody *string
1319
1320	// The subject line, or title, of the email.
1321	Title *string
1322}
1323
1324// Specifies the settings for events that cause a campaign to be sent.
1325type CampaignEventFilter struct {
1326
1327	// The dimension settings of the event filter for the campaign.
1328	//
1329	// This member is required.
1330	Dimensions *EventDimensions
1331
1332	// The type of event that causes the campaign to be sent. Valid values are: SYSTEM,
1333	// sends the campaign when a system event occurs; and, ENDPOINT, sends the campaign
1334	// when an endpoint event (Events resource) occurs.
1335	//
1336	// This member is required.
1337	FilterType FilterType
1338}
1339
1340// Specifies settings for invoking an AWS Lambda function that customizes a segment
1341// for a campaign.
1342type CampaignHook struct {
1343
1344	// The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon
1345	// Pinpoint invokes to customize a segment for a campaign.
1346	LambdaFunctionName *string
1347
1348	// The mode that Amazon Pinpoint uses to invoke the AWS Lambda function. Possible
1349	// values are:
1350	//
1351	// * FILTER - Invoke the function to customize the segment that's used
1352	// by a campaign.
1353	//
1354	// * DELIVERY - (Deprecated) Previously, invoked the function to
1355	// send a campaign through a custom channel. This functionality is not supported
1356	// anymore. To send a campaign through a custom channel, use the
1357	// CustomDeliveryConfiguration and CampaignCustomMessage objects of the campaign.
1358	Mode Mode
1359
1360	// The web URL that Amazon Pinpoint calls to invoke the AWS Lambda function over
1361	// HTTPS.
1362	WebUrl *string
1363}
1364
1365// For a campaign, specifies limits on the messages that the campaign can send. For
1366// an application, specifies the default limits for messages that campaigns in the
1367// application can send.
1368type CampaignLimits struct {
1369
1370	// The maximum number of messages that a campaign can send to a single endpoint
1371	// during a 24-hour period. For an application, this value specifies the default
1372	// limit for the number of messages that campaigns and journeys can send to a
1373	// single endpoint during a 24-hour period. The maximum value is 100.
1374	Daily int32
1375
1376	// The maximum amount of time, in seconds, that a campaign can attempt to deliver a
1377	// message after the scheduled start time for the campaign. The minimum value is 60
1378	// seconds.
1379	MaximumDuration int32
1380
1381	// The maximum number of messages that a campaign can send each second. For an
1382	// application, this value specifies the default limit for the number of messages
1383	// that campaigns can send each second. The minimum value is 50. The maximum value
1384	// is 20,000.
1385	MessagesPerSecond int32
1386
1387	// The maximum number of messages that a campaign can send to a single endpoint
1388	// during the course of the campaign. If a campaign recurs, this setting applies to
1389	// all runs of the campaign. The maximum value is 100.
1390	Total int32
1391}
1392
1393// Provides information about the status, configuration, and other settings for a
1394// campaign.
1395type CampaignResponse struct {
1396
1397	// The unique identifier for the application that the campaign applies to.
1398	//
1399	// This member is required.
1400	ApplicationId *string
1401
1402	// The Amazon Resource Name (ARN) of the campaign.
1403	//
1404	// This member is required.
1405	Arn *string
1406
1407	// The date, in ISO 8601 format, when the campaign was created.
1408	//
1409	// This member is required.
1410	CreationDate *string
1411
1412	// The unique identifier for the campaign.
1413	//
1414	// This member is required.
1415	Id *string
1416
1417	// The date, in ISO 8601 format, when the campaign was last modified.
1418	//
1419	// This member is required.
1420	LastModifiedDate *string
1421
1422	// The unique identifier for the segment that's associated with the campaign.
1423	//
1424	// This member is required.
1425	SegmentId *string
1426
1427	// The version number of the segment that's associated with the campaign.
1428	//
1429	// This member is required.
1430	SegmentVersion int32
1431
1432	// An array of responses, one for each treatment that you defined for the campaign,
1433	// in addition to the default treatment.
1434	AdditionalTreatments []TreatmentResource
1435
1436	// The delivery configuration settings for sending the campaign through a custom
1437	// channel.
1438	CustomDeliveryConfiguration *CustomDeliveryConfiguration
1439
1440	// The current status of the campaign's default treatment. This value exists only
1441	// for campaigns that have more than one treatment.
1442	DefaultState *CampaignState
1443
1444	// The custom description of the campaign.
1445	Description *string
1446
1447	// The allocated percentage of users (segment members) who shouldn't receive
1448	// messages from the campaign.
1449	HoldoutPercent int32
1450
1451	// The settings for the AWS Lambda function to use as a code hook for the campaign.
1452	// You can use this hook to customize the segment that's used by the campaign.
1453	Hook *CampaignHook
1454
1455	// Specifies whether the campaign is paused. A paused campaign doesn't run unless
1456	// you resume it by changing this value to false.
1457	IsPaused bool
1458
1459	// The messaging limits for the campaign.
1460	Limits *CampaignLimits
1461
1462	// The message configuration settings for the campaign.
1463	MessageConfiguration *MessageConfiguration
1464
1465	// The name of the campaign.
1466	Name *string
1467
1468	// The schedule settings for the campaign.
1469	Schedule *Schedule
1470
1471	// The current status of the campaign.
1472	State *CampaignState
1473
1474	// A string-to-string map of key-value pairs that identifies the tags that are
1475	// associated with the campaign. Each tag consists of a required tag key and an
1476	// associated tag value.
1477	Tags map[string]string
1478
1479	// The message template that’s used for the campaign.
1480	TemplateConfiguration *TemplateConfiguration
1481
1482	// The custom description of the default treatment for the campaign.
1483	TreatmentDescription *string
1484
1485	// The custom name of the default treatment for the campaign, if the campaign has
1486	// multiple treatments. A treatment is a variation of a campaign that's used for
1487	// A/B testing.
1488	TreatmentName *string
1489
1490	// The version number of the campaign.
1491	Version int32
1492}
1493
1494// Specifies the content and settings for an SMS message that's sent to recipients
1495// of a campaign.
1496type CampaignSmsMessage struct {
1497
1498	// The body of the SMS message.
1499	Body *string
1500
1501	// The entity ID or Principal Entity (PE) id received from the regulatory body for
1502	// sending SMS in your country.
1503	EntityId *string
1504
1505	// The SMS message type. Valid values are TRANSACTIONAL (for messages that are
1506	// critical or time-sensitive, such as a one-time passwords) and PROMOTIONAL (for
1507	// messsages that aren't critical or time-sensitive, such as marketing messages).
1508	MessageType MessageType
1509
1510	// The long code to send the SMS message from. This value should be one of the
1511	// dedicated long codes that's assigned to your AWS account. Although it isn't
1512	// required, we recommend that you specify the long code using an E.164 format to
1513	// ensure prompt and accurate delivery of the message. For example, +12065550100.
1514	OriginationNumber *string
1515
1516	// The sender ID to display on recipients' devices when they receive the SMS
1517	// message.
1518	SenderId *string
1519
1520	// The template ID received from the regulatory body for sending SMS in your
1521	// country.
1522	TemplateId *string
1523}
1524
1525// Provides information about the configuration and other settings for all the
1526// campaigns that are associated with an application.
1527type CampaignsResponse struct {
1528
1529	// An array of responses, one for each campaign that's associated with the
1530	// application.
1531	//
1532	// This member is required.
1533	Item []CampaignResponse
1534
1535	// The string to use in a subsequent request to get the next page of results in a
1536	// paginated response. This value is null if there are no additional pages.
1537	NextToken *string
1538}
1539
1540// Provides information about the status of a campaign.
1541type CampaignState struct {
1542
1543	// The current status of the campaign, or the current status of a treatment that
1544	// belongs to an A/B test campaign. If a campaign uses A/B testing, the campaign
1545	// has a status of COMPLETED only if all campaign treatments have a status of
1546	// COMPLETED. If you delete the segment that's associated with a campaign, the
1547	// campaign fails and has a status of DELETED.
1548	CampaignStatus CampaignStatus
1549}
1550
1551// Provides information about the general settings and status of a channel for an
1552// application.
1553type ChannelResponse struct {
1554
1555	// The unique identifier for the application.
1556	ApplicationId *string
1557
1558	// The date and time, in ISO 8601 format, when the channel was enabled.
1559	CreationDate *string
1560
1561	// Specifies whether the channel is enabled for the application.
1562	Enabled bool
1563
1564	// (Not used) This property is retained only for backward compatibility.
1565	HasCredential bool
1566
1567	// (Deprecated) An identifier for the channel. This property is retained only for
1568	// backward compatibility.
1569	Id *string
1570
1571	// Specifies whether the channel is archived.
1572	IsArchived bool
1573
1574	// The user who last modified the channel.
1575	LastModifiedBy *string
1576
1577	// The date and time, in ISO 8601 format, when the channel was last modified.
1578	LastModifiedDate *string
1579
1580	// The current version of the channel.
1581	Version int32
1582}
1583
1584// Provides information about the general settings and status of all channels for
1585// an application, including channels that aren't enabled for the application.
1586type ChannelsResponse struct {
1587
1588	// A map that contains a multipart response for each channel. For each item in this
1589	// object, the ChannelType is the key and the Channel is the value.
1590	//
1591	// This member is required.
1592	Channels map[string]ChannelResponse
1593}
1594
1595// Specifies the conditions to evaluate for an activity in a journey, and how to
1596// evaluate those conditions.
1597type Condition struct {
1598
1599	// The conditions to evaluate for the activity.
1600	Conditions []SimpleCondition
1601
1602	// Specifies how to handle multiple conditions for the activity. For example, if
1603	// you specify two conditions for an activity, whether both or only one of the
1604	// conditions must be met for the activity to be performed.
1605	Operator Operator
1606}
1607
1608// Specifies the settings for a yes/no split activity in a journey. This type of
1609// activity sends participants down one of two paths in a journey, based on
1610// conditions that you specify. To create yes/no split activities that send
1611// participants down different paths based on push notification events (such as
1612// Open or Received events), your mobile app has to specify the User ID and
1613// Endpoint ID values. For more information, see Integrating Amazon Pinpoint with
1614// your application
1615// (https://docs.aws.amazon.com/pinpoint/latest/developerguide/integrate.html) in
1616// the Amazon Pinpoint Developer Guide.
1617type ConditionalSplitActivity struct {
1618
1619	// The conditions that define the paths for the activity, and the relationship
1620	// between the conditions.
1621	Condition *Condition
1622
1623	// The amount of time to wait before determining whether the conditions are met, or
1624	// the date and time when Amazon Pinpoint determines whether the conditions are
1625	// met.
1626	EvaluationWaitTime *WaitTime
1627
1628	// The unique identifier for the activity to perform if the conditions aren't met.
1629	FalseActivity *string
1630
1631	// The unique identifier for the activity to perform if the conditions are met.
1632	TrueActivity *string
1633}
1634
1635// Specifies the display name of an application and the tags to associate with the
1636// application.
1637type CreateApplicationRequest struct {
1638
1639	// The display name of the application. This name is displayed as the Project name
1640	// on the Amazon Pinpoint console.
1641	//
1642	// This member is required.
1643	Name *string
1644
1645	// A string-to-string map of key-value pairs that defines the tags to associate
1646	// with the application. Each tag consists of a required tag key and an associated
1647	// tag value.
1648	Tags map[string]string
1649}
1650
1651// Specifies Amazon Pinpoint configuration settings for retrieving and processing
1652// recommendation data from a recommender model.
1653type CreateRecommenderConfigurationShape struct {
1654
1655	// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM)
1656	// role that authorizes Amazon Pinpoint to retrieve recommendation data from the
1657	// recommender model.
1658	//
1659	// This member is required.
1660	RecommendationProviderRoleArn *string
1661
1662	// The Amazon Resource Name (ARN) of the recommender model to retrieve
1663	// recommendation data from. This value must match the ARN of an Amazon Personalize
1664	// campaign.
1665	//
1666	// This member is required.
1667	RecommendationProviderUri *string
1668
1669	// A map of key-value pairs that defines 1-10 custom endpoint or user attributes,
1670	// depending on the value for the RecommendationProviderIdType property. Each of
1671	// these attributes temporarily stores a recommended item that's retrieved from the
1672	// recommender model and sent to an AWS Lambda function for additional processing.
1673	// Each attribute can be used as a message variable in a message template. In the
1674	// map, the key is the name of a custom attribute and the value is a custom display
1675	// name for that attribute. The display name appears in the Attribute finder of the
1676	// template editor on the Amazon Pinpoint console. The following restrictions apply
1677	// to these names:
1678	//
1679	// * An attribute name must start with a letter or number and it
1680	// can contain up to 50 characters. The characters can be letters, numbers,
1681	// underscores (_), or hyphens (-). Attribute names are case sensitive and must be
1682	// unique.
1683	//
1684	// * An attribute display name must start with a letter or number and it
1685	// can contain up to 25 characters. The characters can be letters, numbers, spaces,
1686	// underscores (_), or hyphens (-).
1687	//
1688	// This object is required if the configuration
1689	// invokes an AWS Lambda function (RecommendationTransformerUri) to process
1690	// recommendation data. Otherwise, don't include this object in your request.
1691	Attributes map[string]string
1692
1693	// A custom description of the configuration for the recommender model. The
1694	// description can contain up to 128 characters. The characters can be letters,
1695	// numbers, spaces, or the following symbols: _ ; () , ‐.
1696	Description *string
1697
1698	// A custom name of the configuration for the recommender model. The name must
1699	// start with a letter or number and it can contain up to 128 characters. The
1700	// characters can be letters, numbers, spaces, underscores (_), or hyphens (-).
1701	Name *string
1702
1703	// The type of Amazon Pinpoint ID to associate with unique user IDs in the
1704	// recommender model. This value enables the model to use attribute and event data
1705	// that’s specific to a particular endpoint or user in an Amazon Pinpoint
1706	// application. Valid values are:
1707	//
1708	// * PINPOINT_ENDPOINT_ID - Associate each user in
1709	// the model with a particular endpoint in Amazon Pinpoint. The data is correlated
1710	// based on endpoint IDs in Amazon Pinpoint. This is the default value.
1711	//
1712	// *
1713	// PINPOINT_USER_ID - Associate each user in the model with a particular user and
1714	// endpoint in Amazon Pinpoint. The data is correlated based on user IDs in Amazon
1715	// Pinpoint. If you specify this value, an endpoint definition in Amazon Pinpoint
1716	// has to specify both a user ID (UserId) and an endpoint ID. Otherwise, messages
1717	// won’t be sent to the user's endpoint.
1718	RecommendationProviderIdType *string
1719
1720	// The name or Amazon Resource Name (ARN) of the AWS Lambda function to invoke for
1721	// additional processing of recommendation data that's retrieved from the
1722	// recommender model.
1723	RecommendationTransformerUri *string
1724
1725	// A custom display name for the standard endpoint or user attribute
1726	// (RecommendationItems) that temporarily stores recommended items for each
1727	// endpoint or user, depending on the value for the RecommendationProviderIdType
1728	// property. This value is required if the configuration doesn't invoke an AWS
1729	// Lambda function (RecommendationTransformerUri) to perform additional processing
1730	// of recommendation data. This name appears in the Attribute finder of the
1731	// template editor on the Amazon Pinpoint console. The name can contain up to 25
1732	// characters. The characters can be letters, numbers, spaces, underscores (_), or
1733	// hyphens (-). These restrictions don't apply to attribute values.
1734	RecommendationsDisplayName *string
1735
1736	// The number of recommended items to retrieve from the model for each endpoint or
1737	// user, depending on the value for the RecommendationProviderIdType property. This
1738	// number determines how many recommended items are available for use in message
1739	// variables. The minimum value is 1. The maximum value is 5. The default value is
1740	// 5. To use multiple recommended items and custom attributes with message
1741	// variables, you have to use an AWS Lambda function (RecommendationTransformerUri)
1742	// to perform additional processing of recommendation data.
1743	RecommendationsPerMessage int32
1744}
1745
1746// Provides information about a request to create a message template.
1747type CreateTemplateMessageBody struct {
1748
1749	// The Amazon Resource Name (ARN) of the message template that was created.
1750	Arn *string
1751
1752	// The message that's returned from the API for the request to create the message
1753	// template.
1754	Message *string
1755
1756	// The unique identifier for the request to create the message template.
1757	RequestID *string
1758}
1759
1760// Specifies the delivery configuration settings for sending a campaign or campaign
1761// treatment through a custom channel. This object is required if you use the
1762// CampaignCustomMessage object to define the message to send for the campaign or
1763// campaign treatment.
1764type CustomDeliveryConfiguration struct {
1765
1766	// The destination to send the campaign or treatment to. This value can be one of
1767	// the following:
1768	//
1769	// * The name or Amazon Resource Name (ARN) of an AWS Lambda
1770	// function to invoke to handle delivery of the campaign or treatment.
1771	//
1772	// * The URL
1773	// for a web application or service that supports HTTPS and can receive the
1774	// message. The URL has to be a full URL, including the HTTPS protocol.
1775	//
1776	// This member is required.
1777	DeliveryUri *string
1778
1779	// The types of endpoints to send the campaign or treatment to. Each valid value
1780	// maps to a type of channel that you can associate with an endpoint by using the
1781	// ChannelType property of an endpoint.
1782	EndpointTypes []EndpointTypesElement
1783}
1784
1785// The settings for a custom message activity. This type of activity calls an AWS
1786// Lambda function or web hook that sends messages to participants.
1787type CustomMessageActivity struct {
1788
1789	// The destination to send the campaign or treatment to. This value can be one of
1790	// the following:
1791	//
1792	// * The name or Amazon Resource Name (ARN) of an AWS Lambda
1793	// function to invoke to handle delivery of the campaign or treatment.
1794	//
1795	// * The URL
1796	// for a web application or service that supports HTTPS and can receive the
1797	// message. The URL has to be a full URL, including the HTTPS protocol.
1798	DeliveryUri *string
1799
1800	// The types of endpoints to send the custom message to. Each valid value maps to a
1801	// type of channel that you can associate with an endpoint by using the ChannelType
1802	// property of an endpoint.
1803	EndpointTypes []EndpointTypesElement
1804
1805	// Specifies the message data included in a custom channel message that's sent to
1806	// participants in a journey.
1807	MessageConfig *JourneyCustomMessage
1808
1809	// The unique identifier for the next activity to perform, after Amazon Pinpoint
1810	// calls the AWS Lambda function or web hook.
1811	NextActivity *string
1812
1813	// The name of the custom message template to use for the message. If specified,
1814	// this value must match the name of an existing message template.
1815	TemplateName *string
1816
1817	// The unique identifier for the version of the message template to use for the
1818	// message. If specified, this value must match the identifier for an existing
1819	// template version. To retrieve a list of versions and version identifiers for a
1820	// template, use the Template Versions resource. If you don't specify a value for
1821	// this property, Amazon Pinpoint uses the active version of the template. The
1822	// active version is typically the version of a template that's been most recently
1823	// reviewed and approved for use, depending on your workflow. It isn't necessarily
1824	// the latest version of a template.
1825	TemplateVersion *string
1826}
1827
1828// Specifies the default message for all channels.
1829type DefaultMessage struct {
1830
1831	// The default body of the message.
1832	Body *string
1833
1834	// The default message variables to use in the message. You can override these
1835	// default variables with individual address variables.
1836	Substitutions map[string][]string
1837}
1838
1839// Specifies the default settings and content for a push notification that's sent
1840// directly to an endpoint.
1841type DefaultPushNotificationMessage struct {
1842
1843	// The default action to occur if a recipient taps the push notification. Valid
1844	// values are:
1845	//
1846	// * OPEN_APP - Your app opens or it becomes the foreground app if it
1847	// was sent to the background. This is the default action.
1848	//
1849	// * DEEP_LINK - Your app
1850	// opens and displays a designated user interface in the app. This setting uses the
1851	// deep-linking features of the iOS and Android platforms.
1852	//
1853	// * URL - The default
1854	// mobile browser on the recipient's device opens and loads the web page at a URL
1855	// that you specify.
1856	Action Action
1857
1858	// The default body of the notification message.
1859	Body *string
1860
1861	// The JSON data payload to use for the default push notification, if the
1862	// notification is a silent push notification. This payload is added to the
1863	// data.pinpoint.jsonBody object of the notification.
1864	Data map[string]string
1865
1866	// Specifies whether the default notification is a silent push notification, which
1867	// is a push notification that doesn't display on a recipient's device. Silent push
1868	// notifications can be used for cases such as updating an app's configuration or
1869	// delivering messages to an in-app notification center.
1870	SilentPush bool
1871
1872	// The default message variables to use in the notification message. You can
1873	// override the default variables with individual address variables.
1874	Substitutions map[string][]string
1875
1876	// The default title to display above the notification message on a recipient's
1877	// device.
1878	Title *string
1879
1880	// The default URL to open in a recipient's default mobile browser, if a recipient
1881	// taps the push notification and the value of the Action property is URL.
1882	Url *string
1883}
1884
1885// Specifies the default settings and content for a message template that can be
1886// used in messages that are sent through a push notification channel.
1887type DefaultPushNotificationTemplate struct {
1888
1889	// The action to occur if a recipient taps a push notification that's based on the
1890	// message template. Valid values are:
1891	//
1892	// * OPEN_APP - Your app opens or it becomes
1893	// the foreground app if it was sent to the background. This is the default
1894	// action.
1895	//
1896	// * DEEP_LINK - Your app opens and displays a designated user interface
1897	// in the app. This setting uses the deep-linking features of the iOS and Android
1898	// platforms.
1899	//
1900	// * URL - The default mobile browser on the recipient's device opens
1901	// and loads the web page at a URL that you specify.
1902	Action Action
1903
1904	// The message body to use in push notifications that are based on the message
1905	// template.
1906	Body *string
1907
1908	// The sound to play when a recipient receives a push notification that's based on
1909	// the message template. You can use the default stream or specify the file name of
1910	// a sound resource that's bundled in your app. On an Android platform, the sound
1911	// file must reside in /res/raw/. For an iOS platform, this value is the key for
1912	// the name of a sound file in your app's main bundle or the Library/Sounds folder
1913	// in your app's data container. If the sound file can't be found or you specify
1914	// default for the value, the system plays the default alert sound.
1915	Sound *string
1916
1917	// The title to use in push notifications that are based on the message template.
1918	// This title appears above the notification message on a recipient's device.
1919	Title *string
1920
1921	// The URL to open in a recipient's default mobile browser, if a recipient taps a
1922	// push notification that's based on the message template and the value of the
1923	// Action property is URL.
1924	Url *string
1925}
1926
1927// Specifies the settings and content for the default message and any default
1928// messages that you tailored for specific channels.
1929type DirectMessageConfiguration struct {
1930
1931	// The default push notification message for the ADM (Amazon Device Messaging)
1932	// channel. This message overrides the default push notification message
1933	// (DefaultPushNotificationMessage).
1934	ADMMessage *ADMMessage
1935
1936	// The default push notification message for the APNs (Apple Push Notification
1937	// service) channel. This message overrides the default push notification message
1938	// (DefaultPushNotificationMessage).
1939	APNSMessage *APNSMessage
1940
1941	// The default push notification message for the Baidu (Baidu Cloud Push) channel.
1942	// This message overrides the default push notification message
1943	// (DefaultPushNotificationMessage).
1944	BaiduMessage *BaiduMessage
1945
1946	// The default message for all channels.
1947	DefaultMessage *DefaultMessage
1948
1949	// The default push notification message for all push notification channels.
1950	DefaultPushNotificationMessage *DefaultPushNotificationMessage
1951
1952	// The default message for the email channel. This message overrides the default
1953	// message (DefaultMessage).
1954	EmailMessage *EmailMessage
1955
1956	// The default push notification message for the GCM channel, which is used to send
1957	// notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud
1958	// Messaging (GCM), service. This message overrides the default push notification
1959	// message (DefaultPushNotificationMessage).
1960	GCMMessage *GCMMessage
1961
1962	// The default message for the SMS channel. This message overrides the default
1963	// message (DefaultMessage).
1964	SMSMessage *SMSMessage
1965
1966	// The default message for the voice channel. This message overrides the default
1967	// message (DefaultMessage).
1968	VoiceMessage *VoiceMessage
1969}
1970
1971// Specifies the status and settings of the email channel for an application.
1972type EmailChannelRequest struct {
1973
1974	// The verified email address that you want to send email from when you send email
1975	// through the channel.
1976	//
1977	// This member is required.
1978	FromAddress *string
1979
1980	// The Amazon Resource Name (ARN) of the identity, verified with Amazon Simple
1981	// Email Service (Amazon SES), that you want to use when you send email through the
1982	// channel.
1983	//
1984	// This member is required.
1985	Identity *string
1986
1987	// The Amazon SES configuration set
1988	// (https://docs.aws.amazon.com/ses/latest/APIReference/API_ConfigurationSet.html)
1989	// that you want to apply to messages that you send through the channel.
1990	ConfigurationSet *string
1991
1992	// Specifies whether to enable the email channel for the application.
1993	Enabled bool
1994
1995	// The ARN of the AWS Identity and Access Management (IAM) role that you want
1996	// Amazon Pinpoint to use when it submits email-related event data for the channel.
1997	RoleArn *string
1998}
1999
2000// Provides information about the status and settings of the email channel for an
2001// application.
2002type EmailChannelResponse struct {
2003
2004	// The type of messaging or notification platform for the channel. For the email
2005	// channel, this value is EMAIL.
2006	//
2007	// This member is required.
2008	Platform *string
2009
2010	// The unique identifier for the application that the email channel applies to.
2011	ApplicationId *string
2012
2013	// The Amazon SES configuration set
2014	// (https://docs.aws.amazon.com/ses/latest/APIReference/API_ConfigurationSet.html)
2015	// that's applied to messages that are sent through the channel.
2016	ConfigurationSet *string
2017
2018	// The date and time, in ISO 8601 format, when the email channel was enabled.
2019	CreationDate *string
2020
2021	// Specifies whether the email channel is enabled for the application.
2022	Enabled bool
2023
2024	// The verified email address that email is sent from when you send email through
2025	// the channel.
2026	FromAddress *string
2027
2028	// (Not used) This property is retained only for backward compatibility.
2029	HasCredential bool
2030
2031	// (Deprecated) An identifier for the email channel. This property is retained only
2032	// for backward compatibility.
2033	Id *string
2034
2035	// The Amazon Resource Name (ARN) of the identity, verified with Amazon Simple
2036	// Email Service (Amazon SES), that's used when you send email through the channel.
2037	Identity *string
2038
2039	// Specifies whether the email channel is archived.
2040	IsArchived bool
2041
2042	// The user who last modified the email channel.
2043	LastModifiedBy *string
2044
2045	// The date and time, in ISO 8601 format, when the email channel was last modified.
2046	LastModifiedDate *string
2047
2048	// The maximum number of emails that can be sent through the channel each second.
2049	MessagesPerSecond int32
2050
2051	// The ARN of the AWS Identity and Access Management (IAM) role that Amazon
2052	// Pinpoint uses to submit email-related event data for the channel.
2053	RoleArn *string
2054
2055	// The current version of the email channel.
2056	Version int32
2057}
2058
2059// Specifies the default settings and content for a one-time email message that's
2060// sent directly to an endpoint.
2061type EmailMessage struct {
2062
2063	// The body of the email message.
2064	Body *string
2065
2066	// The email address to forward bounces and complaints to, if feedback forwarding
2067	// is enabled.
2068	FeedbackForwardingAddress *string
2069
2070	// The verified email address to send the email message from. The default value is
2071	// the FromAddress specified for the email channel.
2072	FromAddress *string
2073
2074	// The email message, represented as a raw MIME message.
2075	RawEmail *RawEmail
2076
2077	// The reply-to email address(es) for the email message. If a recipient replies to
2078	// the email, each reply-to address receives the reply.
2079	ReplyToAddresses []string
2080
2081	// The email message, composed of a subject, a text part, and an HTML part.
2082	SimpleEmail *SimpleEmail
2083
2084	// The default message variables to use in the email message. You can override the
2085	// default variables with individual address variables.
2086	Substitutions map[string][]string
2087}
2088
2089// Specifies the settings for an email activity in a journey. This type of activity
2090// sends an email message to participants.
2091type EmailMessageActivity struct {
2092
2093	// Specifies the sender address for an email message that's sent to participants in
2094	// the journey.
2095	MessageConfig *JourneyEmailMessage
2096
2097	// The unique identifier for the next activity to perform, after the message is
2098	// sent.
2099	NextActivity *string
2100
2101	// The name of the email message template to use for the message. If specified,
2102	// this value must match the name of an existing message template.
2103	TemplateName *string
2104
2105	// The unique identifier for the version of the email template to use for the
2106	// message. If specified, this value must match the identifier for an existing
2107	// template version. To retrieve a list of versions and version identifiers for a
2108	// template, use the Template Versions resource. If you don't specify a value for
2109	// this property, Amazon Pinpoint uses the active version of the template. The
2110	// active version is typically the version of a template that's been most recently
2111	// reviewed and approved for use, depending on your workflow. It isn't necessarily
2112	// the latest version of a template.
2113	TemplateVersion *string
2114}
2115
2116// Specifies the content and settings for a message template that can be used in
2117// messages that are sent through the email channel.
2118type EmailTemplateRequest struct {
2119
2120	// A JSON object that specifies the default values to use for message variables in
2121	// the message template. This object is a set of key-value pairs. Each key defines
2122	// a message variable in the template. The corresponding value defines the default
2123	// value for that variable. When you create a message that's based on the template,
2124	// you can override these defaults with message-specific and address-specific
2125	// variables and values.
2126	DefaultSubstitutions *string
2127
2128	// The message body, in HTML format, to use in email messages that are based on the
2129	// message template. We recommend using HTML format for email clients that render
2130	// HTML content. You can include links, formatted text, and more in an HTML
2131	// message.
2132	HtmlPart *string
2133
2134	// The unique identifier for the recommender model to use for the message template.
2135	// Amazon Pinpoint uses this value to determine how to retrieve and process data
2136	// from a recommender model when it sends messages that use the template, if the
2137	// template contains message variables for recommendation data.
2138	RecommenderId *string
2139
2140	// The subject line, or title, to use in email messages that are based on the
2141	// message template.
2142	Subject *string
2143
2144	// A string-to-string map of key-value pairs that defines the tags to associate
2145	// with the message template. Each tag consists of a required tag key and an
2146	// associated tag value.
2147	Tags map[string]string
2148
2149	// A custom description of the message template.
2150	TemplateDescription *string
2151
2152	// The message body, in plain text format, to use in email messages that are based
2153	// on the message template. We recommend using plain text format for email clients
2154	// that don't render HTML content and clients that are connected to high-latency
2155	// networks, such as mobile devices.
2156	TextPart *string
2157}
2158
2159// Provides information about the content and settings for a message template that
2160// can be used in messages that are sent through the email channel.
2161type EmailTemplateResponse struct {
2162
2163	// The date, in ISO 8601 format, when the message template was created.
2164	//
2165	// This member is required.
2166	CreationDate *string
2167
2168	// The date, in ISO 8601 format, when the message template was last modified.
2169	//
2170	// This member is required.
2171	LastModifiedDate *string
2172
2173	// The name of the message template.
2174	//
2175	// This member is required.
2176	TemplateName *string
2177
2178	// The type of channel that the message template is designed for. For an email
2179	// template, this value is EMAIL.
2180	//
2181	// This member is required.
2182	TemplateType TemplateType
2183
2184	// The Amazon Resource Name (ARN) of the message template.
2185	Arn *string
2186
2187	// The JSON object that specifies the default values that are used for message
2188	// variables in the message template. This object is a set of key-value pairs. Each
2189	// key defines a message variable in the template. The corresponding value defines
2190	// the default value for that variable.
2191	DefaultSubstitutions *string
2192
2193	// The message body, in HTML format, that's used in email messages that are based
2194	// on the message template.
2195	HtmlPart *string
2196
2197	// The unique identifier for the recommender model that's used by the message
2198	// template.
2199	RecommenderId *string
2200
2201	// The subject line, or title, that's used in email messages that are based on the
2202	// message template.
2203	Subject *string
2204
2205	// A string-to-string map of key-value pairs that identifies the tags that are
2206	// associated with the message template. Each tag consists of a required tag key
2207	// and an associated tag value.
2208	Tags map[string]string
2209
2210	// The custom description of the message template.
2211	TemplateDescription *string
2212
2213	// The message body, in plain text format, that's used in email messages that are
2214	// based on the message template.
2215	TextPart *string
2216
2217	// The unique identifier, as an integer, for the active version of the message
2218	// template, or the version of the template that you specified by using the version
2219	// parameter in your request.
2220	Version *string
2221}
2222
2223// Specifies an endpoint to create or update and the settings and attributes to set
2224// or change for the endpoint.
2225type EndpointBatchItem struct {
2226
2227	// The destination address for messages or push notifications that you send to the
2228	// endpoint. The address varies by channel. For a push-notification channel, use
2229	// the token provided by the push notification service, such as an Apple Push
2230	// Notification service (APNs) device token or a Firebase Cloud Messaging (FCM)
2231	// registration token. For the SMS channel, use a phone number in E.164 format,
2232	// such as +12065550100. For the email channel, use an email address.
2233	Address *string
2234
2235	// One or more custom attributes that describe the endpoint by associating a name
2236	// with an array of values. For example, the value of a custom attribute named
2237	// Interests might be: ["Science", "Music", "Travel"]. You can use these attributes
2238	// as filter criteria when you create segments. Attribute names are case sensitive.
2239	// An attribute name can contain up to 50 characters. An attribute value can
2240	// contain up to 100 characters. When you define the name of a custom attribute,
2241	// avoid using the following characters: number sign (#), colon (:), question mark
2242	// (?), backslash (\), and slash (/). The Amazon Pinpoint console can't display
2243	// attribute names that contain these characters. This restriction doesn't apply to
2244	// attribute values.
2245	Attributes map[string][]string
2246
2247	// The channel to use when sending messages or push notifications to the endpoint.
2248	ChannelType ChannelType
2249
2250	// The demographic information for the endpoint, such as the time zone and
2251	// platform.
2252	Demographic *EndpointDemographic
2253
2254	// The date and time, in ISO 8601 format, when the endpoint was created or updated.
2255	EffectiveDate *string
2256
2257	// Specifies whether to send messages or push notifications to the endpoint. Valid
2258	// values are: ACTIVE, messages are sent to the endpoint; and, INACTIVE, messages
2259	// aren’t sent to the endpoint. Amazon Pinpoint automatically sets this value to
2260	// ACTIVE when you create an endpoint or update an existing endpoint. Amazon
2261	// Pinpoint automatically sets this value to INACTIVE if you update another
2262	// endpoint that has the same address specified by the Address property.
2263	EndpointStatus *string
2264
2265	// The unique identifier for the endpoint in the context of the batch.
2266	Id *string
2267
2268	// The geographic information for the endpoint.
2269	Location *EndpointLocation
2270
2271	// One or more custom metrics that your app reports to Amazon Pinpoint for the
2272	// endpoint.
2273	Metrics map[string]float64
2274
2275	// Specifies whether the user who's associated with the endpoint has opted out of
2276	// receiving messages and push notifications from you. Possible values are: ALL,
2277	// the user has opted out and doesn't want to receive any messages or push
2278	// notifications; and, NONE, the user hasn't opted out and wants to receive all
2279	// messages and push notifications.
2280	OptOut *string
2281
2282	// The unique identifier for the request to create or update the endpoint.
2283	RequestId *string
2284
2285	// One or more custom attributes that describe the user who's associated with the
2286	// endpoint.
2287	User *EndpointUser
2288}
2289
2290// Specifies a batch of endpoints to create or update and the settings and
2291// attributes to set or change for each endpoint.
2292type EndpointBatchRequest struct {
2293
2294	// An array that defines the endpoints to create or update and, for each endpoint,
2295	// the property values to set or change. An array can contain a maximum of 100
2296	// items.
2297	//
2298	// This member is required.
2299	Item []EndpointBatchItem
2300}
2301
2302// Specifies demographic information about an endpoint, such as the applicable time
2303// zone and platform.
2304type EndpointDemographic struct {
2305
2306	// The version of the app that's associated with the endpoint.
2307	AppVersion *string
2308
2309	// The locale of the endpoint, in the following format: the ISO 639-1 alpha-2 code,
2310	// followed by an underscore (_), followed by an ISO 3166-1 alpha-2 value.
2311	Locale *string
2312
2313	// The manufacturer of the endpoint device, such as apple or samsung.
2314	Make *string
2315
2316	// The model name or number of the endpoint device, such as iPhone or SM-G900F.
2317	Model *string
2318
2319	// The model version of the endpoint device.
2320	ModelVersion *string
2321
2322	// The platform of the endpoint device, such as ios.
2323	Platform *string
2324
2325	// The platform version of the endpoint device.
2326	PlatformVersion *string
2327
2328	// The time zone of the endpoint, specified as a tz database name value, such as
2329	// America/Los_Angeles.
2330	Timezone *string
2331}
2332
2333// Provides the status code and message that result from processing data for an
2334// endpoint.
2335type EndpointItemResponse struct {
2336
2337	// The custom message that's returned in the response as a result of processing the
2338	// endpoint data.
2339	Message *string
2340
2341	// The status code that's returned in the response as a result of processing the
2342	// endpoint data.
2343	StatusCode int32
2344}
2345
2346// Specifies geographic information about an endpoint.
2347type EndpointLocation struct {
2348
2349	// The name of the city where the endpoint is located.
2350	City *string
2351
2352	// The two-character code, in ISO 3166-1 alpha-2 format, for the country or region
2353	// where the endpoint is located. For example, US for the United States.
2354	Country *string
2355
2356	// The latitude coordinate of the endpoint location, rounded to one decimal place.
2357	Latitude float64
2358
2359	// The longitude coordinate of the endpoint location, rounded to one decimal place.
2360	Longitude float64
2361
2362	// The postal or ZIP code for the area where the endpoint is located.
2363	PostalCode *string
2364
2365	// The name of the region where the endpoint is located. For locations in the
2366	// United States, this value is the name of a state.
2367	Region *string
2368}
2369
2370// Provides information about the delivery status and results of sending a message
2371// directly to an endpoint.
2372type EndpointMessageResult struct {
2373
2374	// The delivery status of the message. Possible values are:
2375	//
2376	// * DUPLICATE - The
2377	// endpoint address is a duplicate of another endpoint address. Amazon Pinpoint
2378	// won't attempt to send the message again.
2379	//
2380	// * OPT_OUT - The user who's associated
2381	// with the endpoint has opted out of receiving messages from you. Amazon Pinpoint
2382	// won't attempt to send the message again.
2383	//
2384	// * PERMANENT_FAILURE - An error
2385	// occurred when delivering the message to the endpoint. Amazon Pinpoint won't
2386	// attempt to send the message again.
2387	//
2388	// * SUCCESSFUL - The message was successfully
2389	// delivered to the endpoint.
2390	//
2391	// * TEMPORARY_FAILURE - A temporary error occurred.
2392	// Amazon Pinpoint won't attempt to send the message again.
2393	//
2394	// * THROTTLED - Amazon
2395	// Pinpoint throttled the operation to send the message to the endpoint.
2396	//
2397	// * TIMEOUT
2398	// - The message couldn't be sent within the timeout period.
2399	//
2400	// * UNKNOWN_FAILURE -
2401	// An unknown error occurred.
2402	//
2403	// This member is required.
2404	DeliveryStatus DeliveryStatus
2405
2406	// The downstream service status code for delivering the message.
2407	//
2408	// This member is required.
2409	StatusCode int32
2410
2411	// The endpoint address that the message was delivered to.
2412	Address *string
2413
2414	// The unique identifier for the message that was sent.
2415	MessageId *string
2416
2417	// The status message for delivering the message.
2418	StatusMessage *string
2419
2420	// For push notifications that are sent through the GCM channel, specifies whether
2421	// the endpoint's device registration token was updated as part of delivering the
2422	// message.
2423	UpdatedToken *string
2424}
2425
2426// Specifies the channel type and other settings for an endpoint.
2427type EndpointRequest struct {
2428
2429	// The destination address for messages or push notifications that you send to the
2430	// endpoint. The address varies by channel. For a push-notification channel, use
2431	// the token provided by the push notification service, such as an Apple Push
2432	// Notification service (APNs) device token or a Firebase Cloud Messaging (FCM)
2433	// registration token. For the SMS channel, use a phone number in E.164 format,
2434	// such as +12065550100. For the email channel, use an email address.
2435	Address *string
2436
2437	// One or more custom attributes that describe the endpoint by associating a name
2438	// with an array of values. For example, the value of a custom attribute named
2439	// Interests might be: ["Science", "Music", "Travel"]. You can use these attributes
2440	// as filter criteria when you create segments. Attribute names are case sensitive.
2441	// An attribute name can contain up to 50 characters. An attribute value can
2442	// contain up to 100 characters. When you define the name of a custom attribute,
2443	// avoid using the following characters: number sign (#), colon (:), question mark
2444	// (?), backslash (\), and slash (/). The Amazon Pinpoint console can't display
2445	// attribute names that contain these characters. This restriction doesn't apply to
2446	// attribute values.
2447	Attributes map[string][]string
2448
2449	// The channel to use when sending messages or push notifications to the endpoint.
2450	ChannelType ChannelType
2451
2452	// The demographic information for the endpoint, such as the time zone and
2453	// platform.
2454	Demographic *EndpointDemographic
2455
2456	// The date and time, in ISO 8601 format, when the endpoint is updated.
2457	EffectiveDate *string
2458
2459	// Specifies whether to send messages or push notifications to the endpoint. Valid
2460	// values are: ACTIVE, messages are sent to the endpoint; and, INACTIVE, messages
2461	// aren’t sent to the endpoint. Amazon Pinpoint automatically sets this value to
2462	// ACTIVE when you create an endpoint or update an existing endpoint. Amazon
2463	// Pinpoint automatically sets this value to INACTIVE if you update another
2464	// endpoint that has the same address specified by the Address property.
2465	EndpointStatus *string
2466
2467	// The geographic information for the endpoint.
2468	Location *EndpointLocation
2469
2470	// One or more custom metrics that your app reports to Amazon Pinpoint for the
2471	// endpoint.
2472	Metrics map[string]float64
2473
2474	// Specifies whether the user who's associated with the endpoint has opted out of
2475	// receiving messages and push notifications from you. Possible values are: ALL,
2476	// the user has opted out and doesn't want to receive any messages or push
2477	// notifications; and, NONE, the user hasn't opted out and wants to receive all
2478	// messages and push notifications.
2479	OptOut *string
2480
2481	// The unique identifier for the most recent request to update the endpoint.
2482	RequestId *string
2483
2484	// One or more custom attributes that describe the user who's associated with the
2485	// endpoint.
2486	User *EndpointUser
2487}
2488
2489// Provides information about the channel type and other settings for an endpoint.
2490type EndpointResponse struct {
2491
2492	// The destination address for messages or push notifications that you send to the
2493	// endpoint. The address varies by channel. For example, the address for a
2494	// push-notification channel is typically the token provided by a push notification
2495	// service, such as an Apple Push Notification service (APNs) device token or a
2496	// Firebase Cloud Messaging (FCM) registration token. The address for the SMS
2497	// channel is a phone number in E.164 format, such as +12065550100. The address for
2498	// the email channel is an email address.
2499	Address *string
2500
2501	// The unique identifier for the application that's associated with the endpoint.
2502	ApplicationId *string
2503
2504	// One or more custom attributes that describe the endpoint by associating a name
2505	// with an array of values. For example, the value of a custom attribute named
2506	// Interests might be: ["Science", "Music", "Travel"]. You can use these attributes
2507	// as filter criteria when you create segments.
2508	Attributes map[string][]string
2509
2510	// The channel that's used when sending messages or push notifications to the
2511	// endpoint.
2512	ChannelType ChannelType
2513
2514	// A number from 0-99 that represents the cohort that the endpoint is assigned to.
2515	// Endpoints are grouped into cohorts randomly, and each cohort contains
2516	// approximately 1 percent of the endpoints for an application. Amazon Pinpoint
2517	// assigns cohorts to the holdout or treatment allocations for campaigns.
2518	CohortId *string
2519
2520	// The date and time, in ISO 8601 format, when the endpoint was created.
2521	CreationDate *string
2522
2523	// The demographic information for the endpoint, such as the time zone and
2524	// platform.
2525	Demographic *EndpointDemographic
2526
2527	// The date and time, in ISO 8601 format, when the endpoint was last updated.
2528	EffectiveDate *string
2529
2530	// Specifies whether messages or push notifications are sent to the endpoint.
2531	// Possible values are: ACTIVE, messages are sent to the endpoint; and, INACTIVE,
2532	// messages aren’t sent to the endpoint. Amazon Pinpoint automatically sets this
2533	// value to ACTIVE when you create an endpoint or update an existing endpoint.
2534	// Amazon Pinpoint automatically sets this value to INACTIVE if you update another
2535	// endpoint that has the same address specified by the Address property.
2536	EndpointStatus *string
2537
2538	// The unique identifier that you assigned to the endpoint. The identifier should
2539	// be a globally unique identifier (GUID) to ensure that it doesn't conflict with
2540	// other endpoint identifiers that are associated with the application.
2541	Id *string
2542
2543	// The geographic information for the endpoint.
2544	Location *EndpointLocation
2545
2546	// One or more custom metrics that your app reports to Amazon Pinpoint for the
2547	// endpoint.
2548	Metrics map[string]float64
2549
2550	// Specifies whether the user who's associated with the endpoint has opted out of
2551	// receiving messages and push notifications from you. Possible values are: ALL,
2552	// the user has opted out and doesn't want to receive any messages or push
2553	// notifications; and, NONE, the user hasn't opted out and wants to receive all
2554	// messages and push notifications.
2555	OptOut *string
2556
2557	// The unique identifier for the most recent request to update the endpoint.
2558	RequestId *string
2559
2560	// One or more custom user attributes that your app reports to Amazon Pinpoint for
2561	// the user who's associated with the endpoint.
2562	User *EndpointUser
2563}
2564
2565// Specifies the content, including message variables and attributes, to use in a
2566// message that's sent directly to an endpoint.
2567type EndpointSendConfiguration struct {
2568
2569	// The body of the message. If specified, this value overrides the default message
2570	// body.
2571	BodyOverride *string
2572
2573	// A map of custom attributes to attach to the message for the address. Attribute
2574	// names are case sensitive. For a push notification, this payload is added to the
2575	// data.pinpoint object. For an email or text message, this payload is added to
2576	// email/SMS delivery receipt event attributes.
2577	Context map[string]string
2578
2579	// The raw, JSON-formatted string to use as the payload for the message. If
2580	// specified, this value overrides all other values for the message.
2581	RawContent *string
2582
2583	// A map of the message variables to merge with the variables specified for the
2584	// default message (DefaultMessage.Substitutions). The variables specified in this
2585	// map take precedence over all other variables.
2586	Substitutions map[string][]string
2587
2588	// The title or subject line of the message. If specified, this value overrides the
2589	// default message title or subject line.
2590	TitleOverride *string
2591}
2592
2593// Provides information about all the endpoints that are associated with a user ID.
2594type EndpointsResponse struct {
2595
2596	// An array of responses, one for each endpoint that's associated with the user ID.
2597	//
2598	// This member is required.
2599	Item []EndpointResponse
2600}
2601
2602// Specifies data for one or more attributes that describe the user who's
2603// associated with an endpoint.
2604type EndpointUser struct {
2605
2606	// One or more custom attributes that describe the user by associating a name with
2607	// an array of values. For example, the value of an attribute named Interests might
2608	// be: ["Science", "Music", "Travel"]. You can use these attributes as filter
2609	// criteria when you create segments. Attribute names are case sensitive. An
2610	// attribute name can contain up to 50 characters. An attribute value can contain
2611	// up to 100 characters. When you define the name of a custom attribute, avoid
2612	// using the following characters: number sign (#), colon (:), question mark (?),
2613	// backslash (\), and slash (/). The Amazon Pinpoint console can't display
2614	// attribute names that contain these characters. This restriction doesn't apply to
2615	// attribute values.
2616	UserAttributes map[string][]string
2617
2618	// The unique identifier for the user.
2619	UserId *string
2620}
2621
2622// Specifies information about an event that reports data to Amazon Pinpoint.
2623type Event struct {
2624
2625	// The name of the event.
2626	//
2627	// This member is required.
2628	EventType *string
2629
2630	// The date and time, in ISO 8601 format, when the event occurred.
2631	//
2632	// This member is required.
2633	Timestamp *string
2634
2635	// The package name of the app that's recording the event.
2636	AppPackageName *string
2637
2638	// The title of the app that's recording the event.
2639	AppTitle *string
2640
2641	// The version number of the app that's recording the event.
2642	AppVersionCode *string
2643
2644	// One or more custom attributes that are associated with the event.
2645	Attributes map[string]string
2646
2647	// The version of the SDK that's running on the client device.
2648	ClientSdkVersion *string
2649
2650	// One or more custom metrics that are associated with the event.
2651	Metrics map[string]float64
2652
2653	// The name of the SDK that's being used to record the event.
2654	SdkName *string
2655
2656	// Information about the session in which the event occurred.
2657	Session *Session
2658}
2659
2660// Specifies the conditions to evaluate for an event that applies to an activity in
2661// a journey.
2662type EventCondition struct {
2663
2664	// The dimensions for the event filter to use for the activity.
2665	Dimensions *EventDimensions
2666
2667	// The message identifier (message_id) for the message to use when determining
2668	// whether message events meet the condition.
2669	MessageActivity *string
2670}
2671
2672// Specifies the dimensions for an event filter that determines when a campaign is
2673// sent or a journey activity is performed.
2674type EventDimensions struct {
2675
2676	// One or more custom attributes that your application reports to Amazon Pinpoint.
2677	// You can use these attributes as selection criteria when you create an event
2678	// filter.
2679	Attributes map[string]AttributeDimension
2680
2681	// The name of the event that causes the campaign to be sent or the journey
2682	// activity to be performed. This can be a standard event that Amazon Pinpoint
2683	// generates, such as _email.delivered. For campaigns, this can also be a custom
2684	// event that's specific to your application. For information about standard
2685	// events, see Streaming Amazon Pinpoint Events
2686	// (https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams.html)
2687	// in the Amazon Pinpoint Developer Guide.
2688	EventType *SetDimension
2689
2690	// One or more custom metrics that your application reports to Amazon Pinpoint. You
2691	// can use these metrics as selection criteria when you create an event filter.
2692	Metrics map[string]MetricDimension
2693}
2694
2695// Specifies the settings for an event that causes a campaign to be sent or a
2696// journey activity to be performed.
2697type EventFilter struct {
2698
2699	// The dimensions for the event filter to use for the campaign or the journey
2700	// activity.
2701	//
2702	// This member is required.
2703	Dimensions *EventDimensions
2704
2705	// The type of event that causes the campaign to be sent or the journey activity to
2706	// be performed. Valid values are: SYSTEM, sends the campaign or performs the
2707	// activity when a system event occurs; and, ENDPOINT, sends the campaign or
2708	// performs the activity when an endpoint event (Events resource) occurs.
2709	//
2710	// This member is required.
2711	FilterType FilterType
2712}
2713
2714// Provides the status code and message that result from processing an event.
2715type EventItemResponse struct {
2716
2717	// A custom message that's returned in the response as a result of processing the
2718	// event.
2719	Message *string
2720
2721	// The status code that's returned in the response as a result of processing the
2722	// event. Possible values are: 202, for events that were accepted; and, 400, for
2723	// events that weren't valid.
2724	StatusCode int32
2725}
2726
2727// Specifies a batch of endpoints and events to process.
2728type EventsBatch struct {
2729
2730	// A set of properties and attributes that are associated with the endpoint.
2731	//
2732	// This member is required.
2733	Endpoint *PublicEndpoint
2734
2735	// A set of properties that are associated with the event.
2736	//
2737	// This member is required.
2738	Events map[string]Event
2739}
2740
2741// Specifies a batch of events to process.
2742type EventsRequest struct {
2743
2744	// The batch of events to process. For each item in a batch, the endpoint ID acts
2745	// as a key that has an EventsBatch object as its value.
2746	//
2747	// This member is required.
2748	BatchItem map[string]EventsBatch
2749}
2750
2751// Provides information about endpoints and the events that they're associated
2752// with.
2753type EventsResponse struct {
2754
2755	// A map that contains a multipart response for each endpoint. For each item in
2756	// this object, the endpoint ID is the key and the item response is the value. If
2757	// no item response exists, the value can also be one of the following: 202, the
2758	// request was processed successfully; or 400, the payload wasn't valid or required
2759	// fields were missing.
2760	Results map[string]ItemResponse
2761}
2762
2763// Specifies the settings for an event that causes a journey activity to start.
2764type EventStartCondition struct {
2765
2766	// Specifies the settings for an event that causes a campaign to be sent or a
2767	// journey activity to be performed.
2768	EventFilter *EventFilter
2769
2770	SegmentId *string
2771}
2772
2773// Specifies settings for publishing event data to an Amazon Kinesis data stream or
2774// an Amazon Kinesis Data Firehose delivery stream.
2775type EventStream struct {
2776
2777	// The unique identifier for the application to publish event data for.
2778	//
2779	// This member is required.
2780	ApplicationId *string
2781
2782	// The Amazon Resource Name (ARN) of the Amazon Kinesis data stream or Amazon
2783	// Kinesis Data Firehose delivery stream to publish event data to. For a Kinesis
2784	// data stream, the ARN format is:
2785	// arn:aws:kinesis:region:account-id:stream/stream_name For a Kinesis Data Firehose
2786	// delivery stream, the ARN format is:
2787	// arn:aws:firehose:region:account-id:deliverystream/stream_name
2788	//
2789	// This member is required.
2790	DestinationStreamArn *string
2791
2792	// The AWS Identity and Access Management (IAM) role that authorizes Amazon
2793	// Pinpoint to publish event data to the stream in your AWS account.
2794	//
2795	// This member is required.
2796	RoleArn *string
2797
2798	// (Deprecated) Your AWS account ID, which you assigned to an external ID key in an
2799	// IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM
2800	// role when publishing event data, but we removed this requirement. We don't
2801	// recommend use of external IDs for IAM roles that are assumed by Amazon Pinpoint.
2802	ExternalId *string
2803
2804	// The date, in ISO 8601 format, when the event stream was last modified.
2805	LastModifiedDate *string
2806
2807	// The IAM user who last modified the event stream.
2808	LastUpdatedBy *string
2809}
2810
2811// Specifies the settings for a job that exports endpoint definitions to an Amazon
2812// Simple Storage Service (Amazon S3) bucket.
2813type ExportJobRequest struct {
2814
2815	// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM)
2816	// role that authorizes Amazon Pinpoint to access the Amazon S3 location where you
2817	// want to export endpoint definitions to.
2818	//
2819	// This member is required.
2820	RoleArn *string
2821
2822	// The URL of the location in an Amazon Simple Storage Service (Amazon S3) bucket
2823	// where you want to export endpoint definitions to. This location is typically a
2824	// folder that contains multiple files. The URL should be in the following format:
2825	// s3://bucket-name/folder-name/.
2826	//
2827	// This member is required.
2828	S3UrlPrefix *string
2829
2830	// The identifier for the segment to export endpoint definitions from. If you don't
2831	// specify this value, Amazon Pinpoint exports definitions for all the endpoints
2832	// that are associated with the application.
2833	SegmentId *string
2834
2835	// The version of the segment to export endpoint definitions from, if specified.
2836	SegmentVersion int32
2837}
2838
2839// Provides information about the resource settings for a job that exports endpoint
2840// definitions to a file. The file can be added directly to an Amazon Simple
2841// Storage Service (Amazon S3) bucket by using the Amazon Pinpoint API or
2842// downloaded directly to a computer by using the Amazon Pinpoint console.
2843type ExportJobResource struct {
2844
2845	// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM)
2846	// role that authorized Amazon Pinpoint to access the Amazon S3 location where the
2847	// endpoint definitions were exported to.
2848	//
2849	// This member is required.
2850	RoleArn *string
2851
2852	// The URL of the location in an Amazon Simple Storage Service (Amazon S3) bucket
2853	// where the endpoint definitions were exported to. This location is typically a
2854	// folder that contains multiple files. The URL should be in the following format:
2855	// s3://bucket-name/folder-name/.
2856	//
2857	// This member is required.
2858	S3UrlPrefix *string
2859
2860	// The identifier for the segment that the endpoint definitions were exported from.
2861	// If this value isn't present, Amazon Pinpoint exported definitions for all the
2862	// endpoints that are associated with the application.
2863	SegmentId *string
2864
2865	// The version of the segment that the endpoint definitions were exported from.
2866	SegmentVersion int32
2867}
2868
2869// Provides information about the status and settings of a job that exports
2870// endpoint definitions to a file. The file can be added directly to an Amazon
2871// Simple Storage Service (Amazon S3) bucket by using the Amazon Pinpoint API or
2872// downloaded directly to a computer by using the Amazon Pinpoint console.
2873type ExportJobResponse struct {
2874
2875	// The unique identifier for the application that's associated with the export job.
2876	//
2877	// This member is required.
2878	ApplicationId *string
2879
2880	// The date, in ISO 8601 format, when the export job was created.
2881	//
2882	// This member is required.
2883	CreationDate *string
2884
2885	// The resource settings that apply to the export job.
2886	//
2887	// This member is required.
2888	Definition *ExportJobResource
2889
2890	// The unique identifier for the export job.
2891	//
2892	// This member is required.
2893	Id *string
2894
2895	// The status of the export job. The job status is FAILED if Amazon Pinpoint wasn't
2896	// able to process one or more pieces in the job.
2897	//
2898	// This member is required.
2899	JobStatus JobStatus
2900
2901	// The job type. This value is EXPORT for export jobs.
2902	//
2903	// This member is required.
2904	Type *string
2905
2906	// The number of pieces that were processed successfully (completed) by the export
2907	// job, as of the time of the request.
2908	CompletedPieces int32
2909
2910	// The date, in ISO 8601 format, when the export job was completed.
2911	CompletionDate *string
2912
2913	// The number of pieces that weren't processed successfully (failed) by the export
2914	// job, as of the time of the request.
2915	FailedPieces int32
2916
2917	// An array of entries, one for each of the first 100 entries that weren't
2918	// processed successfully (failed) by the export job, if any.
2919	Failures []string
2920
2921	// The total number of endpoint definitions that weren't processed successfully
2922	// (failed) by the export job, typically because an error, such as a syntax error,
2923	// occurred.
2924	TotalFailures int32
2925
2926	// The total number of pieces that must be processed to complete the export job.
2927	// Each piece consists of an approximately equal portion of the endpoint
2928	// definitions that are part of the export job.
2929	TotalPieces int32
2930
2931	// The total number of endpoint definitions that were processed by the export job.
2932	TotalProcessed int32
2933}
2934
2935// Provides information about all the export jobs that are associated with an
2936// application or segment. An export job is a job that exports endpoint definitions
2937// to a file.
2938type ExportJobsResponse struct {
2939
2940	// An array of responses, one for each export job that's associated with the
2941	// application (Export Jobs resource) or segment (Segment Export Jobs resource).
2942	//
2943	// This member is required.
2944	Item []ExportJobResponse
2945
2946	// The string to use in a subsequent request to get the next page of results in a
2947	// paginated response. This value is null if there are no additional pages.
2948	NextToken *string
2949}
2950
2951// Specifies the status and settings of the GCM channel for an application. This
2952// channel enables Amazon Pinpoint to send push notifications through the Firebase
2953// Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service.
2954type GCMChannelRequest struct {
2955
2956	// The Web API Key, also referred to as an API_KEY or server key, that you received
2957	// from Google to communicate with Google services.
2958	//
2959	// This member is required.
2960	ApiKey *string
2961
2962	// Specifies whether to enable the GCM channel for the application.
2963	Enabled bool
2964}
2965
2966// Provides information about the status and settings of the GCM channel for an
2967// application. The GCM channel enables Amazon Pinpoint to send push notifications
2968// through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging
2969// (GCM), service.
2970type GCMChannelResponse struct {
2971
2972	// The Web API Key, also referred to as an API_KEY or server key, that you received
2973	// from Google to communicate with Google services.
2974	//
2975	// This member is required.
2976	Credential *string
2977
2978	// The type of messaging or notification platform for the channel. For the GCM
2979	// channel, this value is GCM.
2980	//
2981	// This member is required.
2982	Platform *string
2983
2984	// The unique identifier for the application that the GCM channel applies to.
2985	ApplicationId *string
2986
2987	// The date and time when the GCM channel was enabled.
2988	CreationDate *string
2989
2990	// Specifies whether the GCM channel is enabled for the application.
2991	Enabled bool
2992
2993	// (Not used) This property is retained only for backward compatibility.
2994	HasCredential bool
2995
2996	// (Deprecated) An identifier for the GCM channel. This property is retained only
2997	// for backward compatibility.
2998	Id *string
2999
3000	// Specifies whether the GCM channel is archived.
3001	IsArchived bool
3002
3003	// The user who last modified the GCM channel.
3004	LastModifiedBy *string
3005
3006	// The date and time when the GCM channel was last modified.
3007	LastModifiedDate *string
3008
3009	// The current version of the GCM channel.
3010	Version int32
3011}
3012
3013// Specifies the settings for a one-time message that's sent directly to an
3014// endpoint through the GCM channel. The GCM channel enables Amazon Pinpoint to
3015// send messages to the Firebase Cloud Messaging (FCM), formerly Google Cloud
3016// Messaging (GCM), service.
3017type GCMMessage struct {
3018
3019	// The action to occur if the recipient taps the push notification. Valid values
3020	// are:
3021	//
3022	// * OPEN_APP - Your app opens or it becomes the foreground app if it was
3023	// sent to the background. This is the default action.
3024	//
3025	// * DEEP_LINK - Your app
3026	// opens and displays a designated user interface in the app. This action uses the
3027	// deep-linking features of the Android platform.
3028	//
3029	// * URL - The default mobile
3030	// browser on the recipient's device opens and loads the web page at a URL that you
3031	// specify.
3032	Action Action
3033
3034	// The body of the notification message.
3035	Body *string
3036
3037	// An arbitrary string that identifies a group of messages that can be collapsed to
3038	// ensure that only the last message is sent when delivery can resume. This helps
3039	// avoid sending too many instances of the same messages when the recipient's
3040	// device comes online again or becomes active. Amazon Pinpoint specifies this
3041	// value in the Firebase Cloud Messaging (FCM) collapse_key parameter when it sends
3042	// the notification message to FCM.
3043	CollapseKey *string
3044
3045	// The JSON data payload to use for the push notification, if the notification is a
3046	// silent push notification. This payload is added to the data.pinpoint.jsonBody
3047	// object of the notification.
3048	Data map[string]string
3049
3050	// The icon image name of the asset saved in your app.
3051	IconReference *string
3052
3053	// The URL of the large icon image to display in the content view of the push
3054	// notification.
3055	ImageIconUrl *string
3056
3057	// The URL of an image to display in the push notification.
3058	ImageUrl *string
3059
3060	// para>normal - The notification might be delayed. Delivery is optimized for
3061	// battery usage on the recipient's device. Use this value unless immediate
3062	// delivery is required./listitem>
3063	// * high - The notification is sent immediately
3064	// and might wake a sleeping device.
3065	// /para> Amazon Pinpoint specifies this value in
3066	// the FCM priority parameter when it sends the notification message to FCM. The
3067	// equivalent values for Apple Push Notification service (APNs) are 5, for normal,
3068	// and 10, for high. If you specify an APNs value for this property, Amazon
3069	// Pinpoint accepts and converts the value to the corresponding FCM value.
3070	Priority *string
3071
3072	// The raw, JSON-formatted string to use as the payload for the notification
3073	// message. If specified, this value overrides all other content for the message.
3074	RawContent *string
3075
3076	// The package name of the application where registration tokens must match in
3077	// order for the recipient to receive the message.
3078	RestrictedPackageName *string
3079
3080	// Specifies whether the notification is a silent push notification, which is a
3081	// push notification that doesn't display on a recipient's device. Silent push
3082	// notifications can be used for cases such as updating an app's configuration or
3083	// supporting phone home functionality.
3084	SilentPush bool
3085
3086	// The URL of the small icon image to display in the status bar and the content
3087	// view of the push notification.
3088	SmallImageIconUrl *string
3089
3090	// The sound to play when the recipient receives the push notification. You can use
3091	// the default stream or specify the file name of a sound resource that's bundled
3092	// in your app. On an Android platform, the sound file must reside in /res/raw/.
3093	Sound *string
3094
3095	// The default message variables to use in the notification message. You can
3096	// override the default variables with individual address variables.
3097	Substitutions map[string][]string
3098
3099	// The amount of time, in seconds, that FCM should store and attempt to deliver the
3100	// push notification, if the service is unable to deliver the notification the
3101	// first time. If you don't specify this value, FCM defaults to the maximum value,
3102	// which is 2,419,200 seconds (28 days). Amazon Pinpoint specifies this value in
3103	// the FCM time_to_live parameter when it sends the notification message to FCM.
3104	TimeToLive int32
3105
3106	// The title to display above the notification message on the recipient's device.
3107	Title *string
3108
3109	// The URL to open in the recipient's default mobile browser, if a recipient taps
3110	// the push notification and the value of the Action property is URL.
3111	Url *string
3112}
3113
3114// Specifies the GPS coordinates of a location.
3115type GPSCoordinates struct {
3116
3117	// The latitude coordinate of the location.
3118	//
3119	// This member is required.
3120	Latitude float64
3121
3122	// The longitude coordinate of the location.
3123	//
3124	// This member is required.
3125	Longitude float64
3126}
3127
3128// Specifies GPS-based criteria for including or excluding endpoints from a
3129// segment.
3130type GPSPointDimension struct {
3131
3132	// The GPS coordinates to measure distance from.
3133	//
3134	// This member is required.
3135	Coordinates *GPSCoordinates
3136
3137	// The range, in kilometers, from the GPS coordinates.
3138	RangeInKilometers float64
3139}
3140
3141// Specifies the settings for a holdout activity in a journey. This type of
3142// activity stops a journey for a specified percentage of participants.
3143type HoldoutActivity struct {
3144
3145	// The percentage of participants who shouldn't continue the journey. To determine
3146	// which participants are held out, Amazon Pinpoint applies a probability-based
3147	// algorithm to the percentage that you specify. Therefore, the actual percentage
3148	// of participants who are held out may not be equal to the percentage that you
3149	// specify.
3150	//
3151	// This member is required.
3152	Percentage int32
3153
3154	// The unique identifier for the next activity to perform, after performing the
3155	// holdout activity.
3156	NextActivity *string
3157}
3158
3159// Specifies the settings for a job that imports endpoint definitions from an
3160// Amazon Simple Storage Service (Amazon S3) bucket.
3161type ImportJobRequest struct {
3162
3163	// The format of the files that contain the endpoint definitions to import. Valid
3164	// values are: CSV, for comma-separated values format; and, JSON, for
3165	// newline-delimited JSON format. If the Amazon S3 location stores multiple files
3166	// that use different formats, Amazon Pinpoint imports data only from the files
3167	// that use the specified format.
3168	//
3169	// This member is required.
3170	Format Format
3171
3172	// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM)
3173	// role that authorizes Amazon Pinpoint to access the Amazon S3 location to import
3174	// endpoint definitions from.
3175	//
3176	// This member is required.
3177	RoleArn *string
3178
3179	// The URL of the Amazon Simple Storage Service (Amazon S3) bucket that contains
3180	// the endpoint definitions to import. This location can be a folder or a single
3181	// file. If the location is a folder, Amazon Pinpoint imports endpoint definitions
3182	// from the files in this location, including any subfolders that the folder
3183	// contains. The URL should be in the following format:
3184	// s3://bucket-name/folder-name/file-name. The location can end with the key for an
3185	// individual object or a prefix that qualifies multiple objects.
3186	//
3187	// This member is required.
3188	S3Url *string
3189
3190	// Specifies whether to create a segment that contains the endpoints, when the
3191	// endpoint definitions are imported.
3192	DefineSegment bool
3193
3194	// (Deprecated) Your AWS account ID, which you assigned to an external ID key in an
3195	// IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM
3196	// role when importing endpoint definitions, but we removed this requirement. We
3197	// don't recommend use of external IDs for IAM roles that are assumed by Amazon
3198	// Pinpoint.
3199	ExternalId *string
3200
3201	// Specifies whether to register the endpoints with Amazon Pinpoint, when the
3202	// endpoint definitions are imported.
3203	RegisterEndpoints bool
3204
3205	// The identifier for the segment to update or add the imported endpoint
3206	// definitions to, if the import job is meant to update an existing segment.
3207	SegmentId *string
3208
3209	// A custom name for the segment that's created by the import job, if the value of
3210	// the DefineSegment property is true.
3211	SegmentName *string
3212}
3213
3214// Provides information about the resource settings for a job that imports endpoint
3215// definitions from one or more files. The files can be stored in an Amazon Simple
3216// Storage Service (Amazon S3) bucket or uploaded directly from a computer by using
3217// the Amazon Pinpoint console.
3218type ImportJobResource struct {
3219
3220	// The format of the files that contain the endpoint definitions to import. Valid
3221	// values are: CSV, for comma-separated values format; and, JSON, for
3222	// newline-delimited JSON format. If the files are stored in an Amazon S3 location
3223	// and that location contains multiple files that use different formats, Amazon
3224	// Pinpoint imports data only from the files that use the specified format.
3225	//
3226	// This member is required.
3227	Format Format
3228
3229	// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM)
3230	// role that authorizes Amazon Pinpoint to access the Amazon S3 location to import
3231	// endpoint definitions from.
3232	//
3233	// This member is required.
3234	RoleArn *string
3235
3236	// The URL of the Amazon Simple Storage Service (Amazon S3) bucket that contains
3237	// the endpoint definitions to import. This location can be a folder or a single
3238	// file. If the location is a folder, Amazon Pinpoint imports endpoint definitions
3239	// from the files in this location, including any subfolders that the folder
3240	// contains. The URL should be in the following format:
3241	// s3://bucket-name/folder-name/file-name. The location can end with the key for an
3242	// individual object or a prefix that qualifies multiple objects.
3243	//
3244	// This member is required.
3245	S3Url *string
3246
3247	// Specifies whether the import job creates a segment that contains the endpoints,
3248	// when the endpoint definitions are imported.
3249	DefineSegment bool
3250
3251	// (Deprecated) Your AWS account ID, which you assigned to an external ID key in an
3252	// IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM
3253	// role when importing endpoint definitions, but we removed this requirement. We
3254	// don't recommend use of external IDs for IAM roles that are assumed by Amazon
3255	// Pinpoint.
3256	ExternalId *string
3257
3258	// Specifies whether the import job registers the endpoints with Amazon Pinpoint,
3259	// when the endpoint definitions are imported.
3260	RegisterEndpoints bool
3261
3262	// The identifier for the segment that the import job updates or adds endpoint
3263	// definitions to, if the import job updates an existing segment.
3264	SegmentId *string
3265
3266	// The custom name for the segment that's created by the import job, if the value
3267	// of the DefineSegment property is true.
3268	SegmentName *string
3269}
3270
3271// Provides information about the status and settings of a job that imports
3272// endpoint definitions from one or more files. The files can be stored in an
3273// Amazon Simple Storage Service (Amazon S3) bucket or uploaded directly from a
3274// computer by using the Amazon Pinpoint console.
3275type ImportJobResponse struct {
3276
3277	// The unique identifier for the application that's associated with the import job.
3278	//
3279	// This member is required.
3280	ApplicationId *string
3281
3282	// The date, in ISO 8601 format, when the import job was created.
3283	//
3284	// This member is required.
3285	CreationDate *string
3286
3287	// The resource settings that apply to the import job.
3288	//
3289	// This member is required.
3290	Definition *ImportJobResource
3291
3292	// The unique identifier for the import job.
3293	//
3294	// This member is required.
3295	Id *string
3296
3297	// The status of the import job. The job status is FAILED if Amazon Pinpoint wasn't
3298	// able to process one or more pieces in the job.
3299	//
3300	// This member is required.
3301	JobStatus JobStatus
3302
3303	// The job type. This value is IMPORT for import jobs.
3304	//
3305	// This member is required.
3306	Type *string
3307
3308	// The number of pieces that were processed successfully (completed) by the import
3309	// job, as of the time of the request.
3310	CompletedPieces int32
3311
3312	// The date, in ISO 8601 format, when the import job was completed.
3313	CompletionDate *string
3314
3315	// The number of pieces that weren't processed successfully (failed) by the import
3316	// job, as of the time of the request.
3317	FailedPieces int32
3318
3319	// An array of entries, one for each of the first 100 entries that weren't
3320	// processed successfully (failed) by the import job, if any.
3321	Failures []string
3322
3323	// The total number of endpoint definitions that weren't processed successfully
3324	// (failed) by the import job, typically because an error, such as a syntax error,
3325	// occurred.
3326	TotalFailures int32
3327
3328	// The total number of pieces that must be processed to complete the import job.
3329	// Each piece consists of an approximately equal portion of the endpoint
3330	// definitions that are part of the import job.
3331	TotalPieces int32
3332
3333	// The total number of endpoint definitions that were processed by the import job.
3334	TotalProcessed int32
3335}
3336
3337// Provides information about the status and settings of all the import jobs that
3338// are associated with an application or segment. An import job is a job that
3339// imports endpoint definitions from one or more files.
3340type ImportJobsResponse struct {
3341
3342	// An array of responses, one for each import job that's associated with the
3343	// application (Import Jobs resource) or segment (Segment Import Jobs resource).
3344	//
3345	// This member is required.
3346	Item []ImportJobResponse
3347
3348	// The string to use in a subsequent request to get the next page of results in a
3349	// paginated response. This value is null if there are no additional pages.
3350	NextToken *string
3351}
3352
3353// Provides information about the results of a request to create or update an
3354// endpoint that's associated with an event.
3355type ItemResponse struct {
3356
3357	// The response that was received after the endpoint data was accepted.
3358	EndpointItemResponse *EndpointItemResponse
3359
3360	// A multipart response object that contains a key and a value for each event in
3361	// the request. In each object, the event ID is the key and an EventItemResponse
3362	// object is the value.
3363	EventsItemResponse map[string]EventItemResponse
3364}
3365
3366// Specifies the message content for a custom channel message that's sent to
3367// participants in a journey.
3368type JourneyCustomMessage struct {
3369
3370	// The message content that's passed to an AWS Lambda function or to a web hook.
3371	Data *string
3372}
3373
3374// Provides the results of a query that retrieved the data for a standard
3375// engagement metric that applies to a journey, and provides information about that
3376// query.
3377type JourneyDateRangeKpiResponse struct {
3378
3379	// The unique identifier for the application that the metric applies to.
3380	//
3381	// This member is required.
3382	ApplicationId *string
3383
3384	// The last date and time of the date range that was used to filter the query
3385	// results, in extended ISO 8601 format. The date range is inclusive.
3386	//
3387	// This member is required.
3388	EndTime *time.Time
3389
3390	// The unique identifier for the journey that the metric applies to.
3391	//
3392	// This member is required.
3393	JourneyId *string
3394
3395	// The name of the metric, also referred to as a key performance indicator (KPI),
3396	// that the data was retrieved for. This value describes the associated metric and
3397	// consists of two or more terms, which are comprised of lowercase alphanumeric
3398	// characters, separated by a hyphen. For a list of possible values, see the Amazon
3399	// Pinpoint Developer Guide
3400	// (https://docs.aws.amazon.com/pinpoint/latest/developerguide/analytics-standard-metrics.html).
3401	//
3402	// This member is required.
3403	KpiName *string
3404
3405	// An array of objects that contains the results of the query. Each object contains
3406	// the value for the metric and metadata about that value.
3407	//
3408	// This member is required.
3409	KpiResult *BaseKpiResult
3410
3411	// The first date and time of the date range that was used to filter the query
3412	// results, in extended ISO 8601 format. The date range is inclusive.
3413	//
3414	// This member is required.
3415	StartTime *time.Time
3416
3417	// The string to use in a subsequent request to get the next page of results in a
3418	// paginated response. This value is null for the Journey Engagement Metrics
3419	// resource because the resource returns all results in a single page.
3420	NextToken *string
3421}
3422
3423// Specifies the "From" address for an email message that's sent to participants in
3424// a journey.
3425type JourneyEmailMessage struct {
3426
3427	// The verified email address to send the email message from. The default address
3428	// is the FromAddress specified for the email channel for the application.
3429	FromAddress *string
3430}
3431
3432// Provides the results of a query that retrieved the data for a standard execution
3433// metric that applies to a journey activity, and provides information about that
3434// query.
3435type JourneyExecutionActivityMetricsResponse struct {
3436
3437	// The type of activity that the metric applies to. Possible values are:
3438	//
3439	// *
3440	// CONDITIONAL_SPLIT - For a yes/no split activity, which is an activity that sends
3441	// participants down one of two paths in a journey.
3442	//
3443	// * HOLDOUT - For a holdout
3444	// activity, which is an activity that stops a journey for a specified percentage
3445	// of participants.
3446	//
3447	// * MESSAGE - For an email activity, which is an activity that
3448	// sends an email message to participants.
3449	//
3450	// * MULTI_CONDITIONAL_SPLIT - For a
3451	// multivariate split activity, which is an activity that sends participants down
3452	// one of as many as five paths in a journey.
3453	//
3454	// * RANDOM_SPLIT - For a random split
3455	// activity, which is an activity that sends specified percentages of participants
3456	// down one of as many as five paths in a journey.
3457	//
3458	// * WAIT - For a wait activity,
3459	// which is an activity that waits for a certain amount of time or until a specific
3460	// date and time before moving participants to the next activity in a journey.
3461	//
3462	// This member is required.
3463	ActivityType *string
3464
3465	// The unique identifier for the application that the metric applies to.
3466	//
3467	// This member is required.
3468	ApplicationId *string
3469
3470	// The unique identifier for the activity that the metric applies to.
3471	//
3472	// This member is required.
3473	JourneyActivityId *string
3474
3475	// The unique identifier for the journey that the metric applies to.
3476	//
3477	// This member is required.
3478	JourneyId *string
3479
3480	// The date and time, in ISO 8601 format, when Amazon Pinpoint last evaluated the
3481	// execution status of the activity and updated the data for the metric.
3482	//
3483	// This member is required.
3484	LastEvaluatedTime *string
3485
3486	// A JSON object that contains the results of the query. The results vary depending
3487	// on the type of activity (ActivityType). For information about the structure and
3488	// contents of the results, see the Amazon Pinpoint Developer Guide
3489	// (https://docs.aws.amazon.com/pinpoint/latest/developerguide/analytics-standard-metrics.html).
3490	//
3491	// This member is required.
3492	Metrics map[string]string
3493}
3494
3495// Provides the results of a query that retrieved the data for a standard execution
3496// metric that applies to a journey, and provides information about that query.
3497type JourneyExecutionMetricsResponse struct {
3498
3499	// The unique identifier for the application that the metric applies to.
3500	//
3501	// This member is required.
3502	ApplicationId *string
3503
3504	// The unique identifier for the journey that the metric applies to.
3505	//
3506	// This member is required.
3507	JourneyId *string
3508
3509	// The date and time, in ISO 8601 format, when Amazon Pinpoint last evaluated the
3510	// journey and updated the data for the metric.
3511	//
3512	// This member is required.
3513	LastEvaluatedTime *string
3514
3515	// A JSON object that contains the results of the query. For information about the
3516	// structure and contents of the results, see the Amazon Pinpoint Developer Guide
3517	// (https://docs.aws.amazon.com//pinpoint/latest/developerguide/analytics-standard-metrics.html).
3518	//
3519	// This member is required.
3520	Metrics map[string]string
3521}
3522
3523// Specifies limits on the messages that a journey can send and the number of times
3524// participants can enter a journey.
3525type JourneyLimits struct {
3526
3527	// The maximum number of messages that the journey can send to a single participant
3528	// during a 24-hour period. The maximum value is 100.
3529	DailyCap int32
3530
3531	// The maximum number of times that a participant can enter the journey. The
3532	// maximum value is 100. To allow participants to enter the journey an unlimited
3533	// number of times, set this value to 0.
3534	EndpointReentryCap int32
3535
3536	// Minimum time that must pass before an endpoint can re-enter a given journey. The
3537	// duration should use an ISO 8601 format, such as PT1H.
3538	EndpointReentryInterval *string
3539
3540	// The maximum number of messages that the journey can send each second.
3541	MessagesPerSecond int32
3542}
3543
3544// Specifies the message configuration for a push notification that's sent to
3545// participants in a journey.
3546type JourneyPushMessage struct {
3547
3548	// The number of seconds that the push notification service should keep the
3549	// message, if the service is unable to deliver the notification the first time.
3550	// This value is converted to an expiration value when it's sent to a
3551	// push-notification service. If this value is 0, the service treats the
3552	// notification as if it expires immediately and the service doesn't store or try
3553	// to deliver the notification again. This value doesn't apply to messages that are
3554	// sent through the Amazon Device Messaging (ADM) service.
3555	TimeToLive *string
3556}
3557
3558// Provides information about the status, configuration, and other settings for a
3559// journey.
3560type JourneyResponse struct {
3561
3562	// The unique identifier for the application that the journey applies to.
3563	//
3564	// This member is required.
3565	ApplicationId *string
3566
3567	// The unique identifier for the journey.
3568	//
3569	// This member is required.
3570	Id *string
3571
3572	// The name of the journey.
3573	//
3574	// This member is required.
3575	Name *string
3576
3577	// A map that contains a set of Activity objects, one object for each activity in
3578	// the journey. For each Activity object, the key is the unique identifier (string)
3579	// for an activity and the value is the settings for the activity.
3580	Activities map[string]Activity
3581
3582	// The date, in ISO 8601 format, when the journey was created.
3583	CreationDate *string
3584
3585	// The date, in ISO 8601 format, when the journey was last modified.
3586	LastModifiedDate *string
3587
3588	// The messaging and entry limits for the journey.
3589	Limits *JourneyLimits
3590
3591	// Specifies whether the journey's scheduled start and end times use each
3592	// participant's local time. If this value is true, the schedule uses each
3593	// participant's local time.
3594	LocalTime bool
3595
3596	// The quiet time settings for the journey. Quiet time is a specific time range
3597	// when a journey doesn't send messages to participants, if all the following
3598	// conditions are met:
3599	//
3600	// * The EndpointDemographic.Timezone property of the endpoint
3601	// for the participant is set to a valid value.
3602	//
3603	// * The current time in the
3604	// participant's time zone is later than or equal to the time specified by the
3605	// QuietTime.Start property for the journey.
3606	//
3607	// * The current time in the
3608	// participant's time zone is earlier than or equal to the time specified by the
3609	// QuietTime.End property for the journey.
3610	//
3611	// If any of the preceding conditions
3612	// isn't met, the participant will receive messages from the journey, even if quiet
3613	// time is enabled.
3614	QuietTime *QuietTime
3615
3616	// The frequency with which Amazon Pinpoint evaluates segment and event data for
3617	// the journey, as a duration in ISO 8601 format.
3618	RefreshFrequency *string
3619
3620	// Specifies whether a journey should be refreshed on segment update.
3621	RefreshOnSegmentUpdate bool
3622
3623	// The schedule settings for the journey.
3624	Schedule *JourneySchedule
3625
3626	// The unique identifier for the first activity in the journey.
3627	StartActivity *string
3628
3629	// The segment that defines which users are participants in the journey.
3630	StartCondition *StartCondition
3631
3632	// The current status of the journey. Possible values are:
3633	//
3634	// * DRAFT - The journey
3635	// is being developed and hasn't been published yet.
3636	//
3637	// * ACTIVE - The journey has
3638	// been developed and published. Depending on the journey's schedule, the journey
3639	// may currently be running or scheduled to start running at a later time. If a
3640	// journey's status is ACTIVE, you can't add, change, or remove activities from
3641	// it.
3642	//
3643	// * COMPLETED - The journey has been published and has finished running. All
3644	// participants have entered the journey and no participants are waiting to
3645	// complete the journey or any activities in the journey.
3646	//
3647	// * CANCELLED - The
3648	// journey has been stopped. If a journey's status is CANCELLED, you can't add,
3649	// change, or remove activities or segment settings from the journey.
3650	//
3651	// * CLOSED -
3652	// The journey has been published and has started running. It may have also passed
3653	// its scheduled end time, or passed its scheduled start time and a refresh
3654	// frequency hasn't been specified for it. If a journey's status is CLOSED, you
3655	// can't add participants to it, and no existing participants can enter the journey
3656	// for the first time. However, any existing participants who are currently waiting
3657	// to start an activity may continue the journey.
3658	State State
3659
3660	// This object is not used or supported.
3661	Tags map[string]string
3662
3663	// Specifies whether endpoints in quiet hours should enter a wait till the end of
3664	// their quiet hours.
3665	WaitForQuietTime bool
3666}
3667
3668// Specifies the schedule settings for a journey.
3669type JourneySchedule struct {
3670
3671	// The scheduled time, in ISO 8601 format, when the journey ended or will end.
3672	EndTime *time.Time
3673
3674	// The scheduled time, in ISO 8601 format, when the journey began or will begin.
3675	StartTime *time.Time
3676
3677	// The starting UTC offset for the journey schedule, if the value of the journey's
3678	// LocalTime property is true. Valid values are: UTC, UTC+01, UTC+02, UTC+03,
3679	// UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30, UTC+05:45, UTC+06, UTC+06:30,
3680	// UTC+07, UTC+08, UTC+08:45, UTC+09, UTC+09:30, UTC+10, UTC+10:30, UTC+11, UTC+12,
3681	// UTC+12:45, UTC+13, UTC+13:45, UTC-02, UTC-02:30, UTC-03, UTC-03:30, UTC-04,
3682	// UTC-05, UTC-06, UTC-07, UTC-08, UTC-09, UTC-09:30, UTC-10, and UTC-11.
3683	Timezone *string
3684}
3685
3686// Specifies the sender ID and message type for an SMS message that's sent to
3687// participants in a journey.
3688type JourneySMSMessage struct {
3689
3690	// The entity ID or Principal Entity (PE) id received from the regulatory body for
3691	// sending SMS in your country.
3692	EntityId *string
3693
3694	// The SMS message type. Valid values are TRANSACTIONAL (for messages that are
3695	// critical or time-sensitive, such as a one-time passwords) and PROMOTIONAL (for
3696	// messsages that aren't critical or time-sensitive, such as marketing messages).
3697	MessageType MessageType
3698
3699	// The long code to send the SMS message from. This value should be one of the
3700	// dedicated long codes that's assigned to your AWS account. Although it isn't
3701	// required, we recommend that you specify the long code using an E.164 format to
3702	// ensure prompt and accurate delivery of the message. For example, +12065550100.
3703	OriginationNumber *string
3704
3705	// The sender ID to display as the sender of the message on a recipient's device.
3706	// Support for sender IDs varies by country or region. For more information, see
3707	// Supported Countries and Regions
3708	// (https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html)
3709	// in the Amazon Pinpoint User Guide.
3710	SenderId *string
3711
3712	// The template ID received from the regulatory body for sending SMS in your
3713	// country.
3714	TemplateId *string
3715}
3716
3717// Provides information about the status, configuration, and other settings for all
3718// the journeys that are associated with an application.
3719type JourneysResponse struct {
3720
3721	// An array of responses, one for each journey that's associated with the
3722	// application.
3723	//
3724	// This member is required.
3725	Item []JourneyResponse
3726
3727	// The string to use in a subsequent request to get the next page of results in a
3728	// paginated response. This value is null if there are no additional pages.
3729	NextToken *string
3730}
3731
3732// Changes the status of a journey.
3733type JourneyStateRequest struct {
3734
3735	// The status of the journey. Currently, Supported values are ACTIVE, PAUSED, and
3736	// CANCELLED If you cancel a journey, Amazon Pinpoint continues to perform
3737	// activities that are currently in progress, until those activities are complete.
3738	// Amazon Pinpoint also continues to collect and aggregate analytics data for those
3739	// activities, until they are complete, and any activities that were complete when
3740	// you cancelled the journey. After you cancel a journey, you can't add, change, or
3741	// remove any activities from the journey. In addition, Amazon Pinpoint stops
3742	// evaluating the journey and doesn't perform any activities that haven't started.
3743	// When the journey is paused, Amazon Pinpoint continues to perform activities that
3744	// are currently in progress, until those activities are complete. Endpoints will
3745	// stop entering journeys when the journey is paused and will resume entering the
3746	// journey after the journey is resumed. For wait activities, wait time is paused
3747	// when the journey is paused. Currently, PAUSED only supports journeys with a
3748	// segment refresh interval.
3749	State State
3750}
3751
3752// Provides information about all the recommender model configurations that are
3753// associated with your Amazon Pinpoint account.
3754type ListRecommenderConfigurationsResponse struct {
3755
3756	// An array of responses, one for each recommender model configuration that's
3757	// associated with your Amazon Pinpoint account.
3758	//
3759	// This member is required.
3760	Item []RecommenderConfigurationResponse
3761
3762	// The string to use in a subsequent request to get the next page of results in a
3763	// paginated response. This value is null if there are no additional pages.
3764	NextToken *string
3765}
3766
3767// Specifies the content and settings for a push notification that's sent to
3768// recipients of a campaign.
3769type Message struct {
3770
3771	// The action to occur if a recipient taps the push notification. Valid values
3772	// are:
3773	//
3774	// * OPEN_APP - Your app opens or it becomes the foreground app if it was
3775	// sent to the background. This is the default action.
3776	//
3777	// * DEEP_LINK - Your app
3778	// opens and displays a designated user interface in the app. This setting uses the
3779	// deep-linking features of iOS and Android.
3780	//
3781	// * URL - The default mobile browser on
3782	// the recipient's device opens and loads the web page at a URL that you specify.
3783	Action Action
3784
3785	// The body of the notification message. The maximum number of characters is 200.
3786	Body *string
3787
3788	// The URL of the image to display as the push-notification icon, such as the icon
3789	// for the app.
3790	ImageIconUrl *string
3791
3792	// The URL of the image to display as the small, push-notification icon, such as a
3793	// small version of the icon for the app.
3794	ImageSmallIconUrl *string
3795
3796	// The URL of an image to display in the push notification.
3797	ImageUrl *string
3798
3799	// The JSON payload to use for a silent push notification.
3800	JsonBody *string
3801
3802	// The URL of the image or video to display in the push notification.
3803	MediaUrl *string
3804
3805	// The raw, JSON-formatted string to use as the payload for the notification
3806	// message. If specified, this value overrides all other content for the message.
3807	RawContent *string
3808
3809	// Specifies whether the notification is a silent push notification, which is a
3810	// push notification that doesn't display on a recipient's device. Silent push
3811	// notifications can be used for cases such as updating an app's configuration,
3812	// displaying messages in an in-app message center, or supporting phone home
3813	// functionality.
3814	SilentPush bool
3815
3816	// The number of seconds that the push-notification service should keep the
3817	// message, if the service is unable to deliver the notification the first time.
3818	// This value is converted to an expiration value when it's sent to a
3819	// push-notification service. If this value is 0, the service treats the
3820	// notification as if it expires immediately and the service doesn't store or try
3821	// to deliver the notification again. This value doesn't apply to messages that are
3822	// sent through the Amazon Device Messaging (ADM) service.
3823	TimeToLive int32
3824
3825	// The title to display above the notification message on a recipient's device.
3826	Title *string
3827
3828	// The URL to open in a recipient's default mobile browser, if a recipient taps the
3829	// push notification and the value of the Action property is URL.
3830	Url *string
3831}
3832
3833// Provides information about an API request or response.
3834type MessageBody struct {
3835
3836	// The message that's returned from the API.
3837	Message *string
3838
3839	// The unique identifier for the request or response.
3840	RequestID *string
3841}
3842
3843// Specifies the message configuration settings for a campaign.
3844type MessageConfiguration struct {
3845
3846	// The message that the campaign sends through the ADM (Amazon Device Messaging)
3847	// channel. If specified, this message overrides the default message.
3848	ADMMessage *Message
3849
3850	// The message that the campaign sends through the APNs (Apple Push Notification
3851	// service) channel. If specified, this message overrides the default message.
3852	APNSMessage *Message
3853
3854	// The message that the campaign sends through the Baidu (Baidu Cloud Push)
3855	// channel. If specified, this message overrides the default message.
3856	BaiduMessage *Message
3857
3858	// The message that the campaign sends through a custom channel, as specified by
3859	// the delivery configuration (CustomDeliveryConfiguration) settings for the
3860	// campaign. If specified, this message overrides the default message.
3861	CustomMessage *CampaignCustomMessage
3862
3863	// The default message that the campaign sends through all the channels that are
3864	// configured for the campaign.
3865	DefaultMessage *Message
3866
3867	// The message that the campaign sends through the email channel. If specified,
3868	// this message overrides the default message.
3869	EmailMessage *CampaignEmailMessage
3870
3871	// The message that the campaign sends through the GCM channel, which enables
3872	// Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging
3873	// (FCM), formerly Google Cloud Messaging (GCM), service. If specified, this
3874	// message overrides the default message.
3875	GCMMessage *Message
3876
3877	// The message that the campaign sends through the SMS channel. If specified, this
3878	// message overrides the default message.
3879	SMSMessage *CampaignSmsMessage
3880}
3881
3882// Specifies the configuration and other settings for a message.
3883type MessageRequest struct {
3884
3885	// The settings and content for the default message and any default messages that
3886	// you defined for specific channels.
3887	//
3888	// This member is required.
3889	MessageConfiguration *DirectMessageConfiguration
3890
3891	// A map of key-value pairs, where each key is an address and each value is an
3892	// AddressConfiguration
3893	// (https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-addressconfiguration)
3894	// object. An address can be a push notification token, a phone number, or an email
3895	// address. You can use an AddressConfiguration
3896	// (https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-addressconfiguration)
3897	// object to tailor the message for an address by specifying settings such as
3898	// content overrides and message variables.
3899	Addresses map[string]AddressConfiguration
3900
3901	// A map of custom attributes to attach to the message. For a push notification,
3902	// this payload is added to the data.pinpoint object. For an email or text message,
3903	// this payload is added to email/SMS delivery receipt event attributes.
3904	Context map[string]string
3905
3906	// A map of key-value pairs, where each key is an endpoint ID and each value is an
3907	// EndpointSendConfiguration
3908	// (https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-endpointsendconfiguration)
3909	// object. You can use an EndpointSendConfiguration
3910	// (https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-endpointsendconfiguration)
3911	// object to tailor the message for an endpoint by specifying settings such as
3912	// content overrides and message variables.
3913	Endpoints map[string]EndpointSendConfiguration
3914
3915	// The message template to use for the message.
3916	TemplateConfiguration *TemplateConfiguration
3917
3918	// The unique identifier for tracing the message. This identifier is visible to
3919	// message recipients.
3920	TraceId *string
3921}
3922
3923// Provides information about the results of a request to send a message to an
3924// endpoint address.
3925type MessageResponse struct {
3926
3927	// The unique identifier for the application that was used to send the message.
3928	//
3929	// This member is required.
3930	ApplicationId *string
3931
3932	// A map that contains a multipart response for each address that the message was
3933	// sent to. In the map, the endpoint ID is the key and the result is the value.
3934	EndpointResult map[string]EndpointMessageResult
3935
3936	// The identifier for the original request that the message was delivered for.
3937	RequestId *string
3938
3939	// A map that contains a multipart response for each address (email address, phone
3940	// number, or push notification token) that the message was sent to. In the map,
3941	// the address is the key and the result is the value.
3942	Result map[string]MessageResult
3943}
3944
3945// Provides information about the results of sending a message directly to an
3946// endpoint address.
3947type MessageResult struct {
3948
3949	// The delivery status of the message. Possible values are:
3950	//
3951	// * DUPLICATE - The
3952	// endpoint address is a duplicate of another endpoint address. Amazon Pinpoint
3953	// won't attempt to send the message again.
3954	//
3955	// * OPT_OUT - The user who's associated
3956	// with the endpoint address has opted out of receiving messages from you. Amazon
3957	// Pinpoint won't attempt to send the message again.
3958	//
3959	// * PERMANENT_FAILURE - An
3960	// error occurred when delivering the message to the endpoint address. Amazon
3961	// Pinpoint won't attempt to send the message again.
3962	//
3963	// * SUCCESSFUL - The message
3964	// was successfully delivered to the endpoint address.
3965	//
3966	// * TEMPORARY_FAILURE - A
3967	// temporary error occurred. Amazon Pinpoint won't attempt to send the message
3968	// again.
3969	//
3970	// * THROTTLED - Amazon Pinpoint throttled the operation to send the
3971	// message to the endpoint address.
3972	//
3973	// * TIMEOUT - The message couldn't be sent
3974	// within the timeout period.
3975	//
3976	// * UNKNOWN_FAILURE - An unknown error occurred.
3977	//
3978	// This member is required.
3979	DeliveryStatus DeliveryStatus
3980
3981	// The downstream service status code for delivering the message.
3982	//
3983	// This member is required.
3984	StatusCode int32
3985
3986	// The unique identifier for the message that was sent.
3987	MessageId *string
3988
3989	// The status message for delivering the message.
3990	StatusMessage *string
3991
3992	// For push notifications that are sent through the GCM channel, specifies whether
3993	// the endpoint's device registration token was updated as part of delivering the
3994	// message.
3995	UpdatedToken *string
3996}
3997
3998// Specifies metric-based criteria for including or excluding endpoints from a
3999// segment. These criteria derive from custom metrics that you define for
4000// endpoints.
4001type MetricDimension struct {
4002
4003	// The operator to use when comparing metric values. Valid values are:
4004	// GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, and EQUAL.
4005	//
4006	// This member is required.
4007	ComparisonOperator *string
4008
4009	// The value to compare.
4010	//
4011	// This member is required.
4012	Value float64
4013}
4014
4015// Specifies a condition to evaluate for an activity path in a journey.
4016type MultiConditionalBranch struct {
4017
4018	// The condition to evaluate for the activity path.
4019	Condition *SimpleCondition
4020
4021	// The unique identifier for the next activity to perform, after completing the
4022	// activity for the path.
4023	NextActivity *string
4024}
4025
4026// Specifies the settings for a multivariate split activity in a journey. This type
4027// of activity sends participants down one of as many as five paths (including a
4028// default Else path) in a journey, based on conditions that you specify. To create
4029// multivariate split activities that send participants down different paths based
4030// on push notification events (such as Open or Received events), your mobile app
4031// has to specify the User ID and Endpoint ID values. For more information, see
4032// Integrating Amazon Pinpoint with your application
4033// (https://docs.aws.amazon.com/pinpoint/latest/developerguide/integrate.html) in
4034// the Amazon Pinpoint Developer Guide.
4035type MultiConditionalSplitActivity struct {
4036
4037	// The paths for the activity, including the conditions for entering each path and
4038	// the activity to perform for each path.
4039	Branches []MultiConditionalBranch
4040
4041	// The unique identifier for the activity to perform for participants who don't
4042	// meet any of the conditions specified for other paths in the activity.
4043	DefaultActivity *string
4044
4045	// The amount of time to wait or the date and time when Amazon Pinpoint determines
4046	// whether the conditions are met.
4047	EvaluationWaitTime *WaitTime
4048}
4049
4050// Specifies a phone number to validate and retrieve information about.
4051type NumberValidateRequest struct {
4052
4053	// The two-character code, in ISO 3166-1 alpha-2 format, for the country or region
4054	// where the phone number was originally registered.
4055	IsoCountryCode *string
4056
4057	// The phone number to retrieve information about. The phone number that you
4058	// provide should include a valid numeric country code. Otherwise, the operation
4059	// might result in an error.
4060	PhoneNumber *string
4061}
4062
4063// Provides information about a phone number.
4064type NumberValidateResponse struct {
4065
4066	// The carrier or service provider that the phone number is currently registered
4067	// with. In some countries and regions, this value may be the carrier or service
4068	// provider that the phone number was originally registered with.
4069	Carrier *string
4070
4071	// The name of the city where the phone number was originally registered.
4072	City *string
4073
4074	// The cleansed phone number, in E.164 format, for the location where the phone
4075	// number was originally registered.
4076	CleansedPhoneNumberE164 *string
4077
4078	// The cleansed phone number, in the format for the location where the phone number
4079	// was originally registered.
4080	CleansedPhoneNumberNational *string
4081
4082	// The name of the country or region where the phone number was originally
4083	// registered.
4084	Country *string
4085
4086	// The two-character code, in ISO 3166-1 alpha-2 format, for the country or region
4087	// where the phone number was originally registered.
4088	CountryCodeIso2 *string
4089
4090	// The numeric code for the country or region where the phone number was originally
4091	// registered.
4092	CountryCodeNumeric *string
4093
4094	// The name of the county where the phone number was originally registered.
4095	County *string
4096
4097	// The two-character code, in ISO 3166-1 alpha-2 format, that was sent in the
4098	// request body.
4099	OriginalCountryCodeIso2 *string
4100
4101	// The phone number that was sent in the request body.
4102	OriginalPhoneNumber *string
4103
4104	// The description of the phone type. Valid values are: MOBILE, LANDLINE, VOIP,
4105	// INVALID, PREPAID, and OTHER.
4106	PhoneType *string
4107
4108	// The phone type, represented by an integer. Valid values are: 0 (mobile), 1
4109	// (landline), 2 (VoIP), 3 (invalid), 4 (other), and 5 (prepaid).
4110	PhoneTypeCode int32
4111
4112	// The time zone for the location where the phone number was originally registered.
4113	Timezone *string
4114
4115	// The postal or ZIP code for the location where the phone number was originally
4116	// registered.
4117	ZipCode *string
4118}
4119
4120// Specifies the properties and attributes of an endpoint that's associated with an
4121// event.
4122type PublicEndpoint struct {
4123
4124	// The unique identifier for the recipient, such as a device token, email address,
4125	// or mobile phone number.
4126	Address *string
4127
4128	// One or more custom attributes that describe the endpoint by associating a name
4129	// with an array of values. You can use these attributes as filter criteria when
4130	// you create segments.
4131	Attributes map[string][]string
4132
4133	// The channel that's used when sending messages or push notifications to the
4134	// endpoint.
4135	ChannelType ChannelType
4136
4137	// The demographic information for the endpoint, such as the time zone and
4138	// platform.
4139	Demographic *EndpointDemographic
4140
4141	// The date and time, in ISO 8601 format, when the endpoint was last updated.
4142	EffectiveDate *string
4143
4144	// Specifies whether to send messages or push notifications to the endpoint. Valid
4145	// values are: ACTIVE, messages are sent to the endpoint; and, INACTIVE, messages
4146	// aren’t sent to the endpoint. Amazon Pinpoint automatically sets this value to
4147	// ACTIVE when you create an endpoint or update an existing endpoint. Amazon
4148	// Pinpoint automatically sets this value to INACTIVE if you update another
4149	// endpoint that has the same address specified by the Address property.
4150	EndpointStatus *string
4151
4152	// The geographic information for the endpoint.
4153	Location *EndpointLocation
4154
4155	// One or more custom metrics that your app reports to Amazon Pinpoint for the
4156	// endpoint.
4157	Metrics map[string]float64
4158
4159	// Specifies whether the user who's associated with the endpoint has opted out of
4160	// receiving messages and push notifications from you. Possible values are: ALL,
4161	// the user has opted out and doesn't want to receive any messages or push
4162	// notifications; and, NONE, the user hasn't opted out and wants to receive all
4163	// messages and push notifications.
4164	OptOut *string
4165
4166	// A unique identifier that's generated each time the endpoint is updated.
4167	RequestId *string
4168
4169	// One or more custom user attributes that your app reports to Amazon Pinpoint for
4170	// the user who's associated with the endpoint.
4171	User *EndpointUser
4172}
4173
4174// Specifies the settings for a push notification activity in a journey. This type
4175// of activity sends a push notification to participants.
4176type PushMessageActivity struct {
4177
4178	// Specifies the time to live (TTL) value for push notifications that are sent to
4179	// participants in a journey.
4180	MessageConfig *JourneyPushMessage
4181
4182	// The unique identifier for the next activity to perform, after the message is
4183	// sent.
4184	NextActivity *string
4185
4186	// The name of the push notification template to use for the message. If specified,
4187	// this value must match the name of an existing message template.
4188	TemplateName *string
4189
4190	// The unique identifier for the version of the push notification template to use
4191	// for the message. If specified, this value must match the identifier for an
4192	// existing template version. To retrieve a list of versions and version
4193	// identifiers for a template, use the Template Versions resource. If you don't
4194	// specify a value for this property, Amazon Pinpoint uses the active version of
4195	// the template. The active version is typically the version of a template that's
4196	// been most recently reviewed and approved for use, depending on your workflow. It
4197	// isn't necessarily the latest version of a template.
4198	TemplateVersion *string
4199}
4200
4201// Specifies the content and settings for a message template that can be used in
4202// messages that are sent through a push notification channel.
4203type PushNotificationTemplateRequest struct {
4204
4205	// The message template to use for the ADM (Amazon Device Messaging) channel. This
4206	// message template overrides the default template for push notification channels
4207	// (DefaultPushNotificationTemplate).
4208	ADM *AndroidPushNotificationTemplate
4209
4210	// The message template to use for the APNs (Apple Push Notification service)
4211	// channel. This message template overrides the default template for push
4212	// notification channels (DefaultPushNotificationTemplate).
4213	APNS *APNSPushNotificationTemplate
4214
4215	// The message template to use for the Baidu (Baidu Cloud Push) channel. This
4216	// message template overrides the default template for push notification channels
4217	// (DefaultPushNotificationTemplate).
4218	Baidu *AndroidPushNotificationTemplate
4219
4220	// The default message template to use for push notification channels.
4221	Default *DefaultPushNotificationTemplate
4222
4223	// A JSON object that specifies the default values to use for message variables in
4224	// the message template. This object is a set of key-value pairs. Each key defines
4225	// a message variable in the template. The corresponding value defines the default
4226	// value for that variable. When you create a message that's based on the template,
4227	// you can override these defaults with message-specific and address-specific
4228	// variables and values.
4229	DefaultSubstitutions *string
4230
4231	// The message template to use for the GCM channel, which is used to send
4232	// notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud
4233	// Messaging (GCM), service. This message template overrides the default template
4234	// for push notification channels (DefaultPushNotificationTemplate).
4235	GCM *AndroidPushNotificationTemplate
4236
4237	// The unique identifier for the recommender model to use for the message template.
4238	// Amazon Pinpoint uses this value to determine how to retrieve and process data
4239	// from a recommender model when it sends messages that use the template, if the
4240	// template contains message variables for recommendation data.
4241	RecommenderId *string
4242
4243	// A string-to-string map of key-value pairs that defines the tags to associate
4244	// with the message template. Each tag consists of a required tag key and an
4245	// associated tag value.
4246	Tags map[string]string
4247
4248	// A custom description of the message template.
4249	TemplateDescription *string
4250}
4251
4252// Provides information about the content and settings for a message template that
4253// can be used in messages that are sent through a push notification channel.
4254type PushNotificationTemplateResponse struct {
4255
4256	// The date, in ISO 8601 format, when the message template was created.
4257	//
4258	// This member is required.
4259	CreationDate *string
4260
4261	// The date, in ISO 8601 format, when the message template was last modified.
4262	//
4263	// This member is required.
4264	LastModifiedDate *string
4265
4266	// The name of the message template.
4267	//
4268	// This member is required.
4269	TemplateName *string
4270
4271	// The type of channel that the message template is designed for. For a push
4272	// notification template, this value is PUSH.
4273	//
4274	// This member is required.
4275	TemplateType TemplateType
4276
4277	// The message template that's used for the ADM (Amazon Device Messaging) channel.
4278	// This message template overrides the default template for push notification
4279	// channels (DefaultPushNotificationTemplate).
4280	ADM *AndroidPushNotificationTemplate
4281
4282	// The message template that's used for the APNs (Apple Push Notification service)
4283	// channel. This message template overrides the default template for push
4284	// notification channels (DefaultPushNotificationTemplate).
4285	APNS *APNSPushNotificationTemplate
4286
4287	// The Amazon Resource Name (ARN) of the message template.
4288	Arn *string
4289
4290	// The message template that's used for the Baidu (Baidu Cloud Push) channel. This
4291	// message template overrides the default template for push notification channels
4292	// (DefaultPushNotificationTemplate).
4293	Baidu *AndroidPushNotificationTemplate
4294
4295	// The default message template that's used for push notification channels.
4296	Default *DefaultPushNotificationTemplate
4297
4298	// The JSON object that specifies the default values that are used for message
4299	// variables in the message template. This object is a set of key-value pairs. Each
4300	// key defines a message variable in the template. The corresponding value defines
4301	// the default value for that variable.
4302	DefaultSubstitutions *string
4303
4304	// The message template that's used for the GCM channel, which is used to send
4305	// notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud
4306	// Messaging (GCM), service. This message template overrides the default template
4307	// for push notification channels (DefaultPushNotificationTemplate).
4308	GCM *AndroidPushNotificationTemplate
4309
4310	// The unique identifier for the recommender model that's used by the message
4311	// template.
4312	RecommenderId *string
4313
4314	// A string-to-string map of key-value pairs that identifies the tags that are
4315	// associated with the message template. Each tag consists of a required tag key
4316	// and an associated tag value.
4317	Tags map[string]string
4318
4319	// The custom description of the message template.
4320	TemplateDescription *string
4321
4322	// The unique identifier, as an integer, for the active version of the message
4323	// template, or the version of the template that you specified by using the version
4324	// parameter in your request.
4325	Version *string
4326}
4327
4328// Specifies the start and end times that define a time range when messages aren't
4329// sent to endpoints.
4330type QuietTime struct {
4331
4332	// The specific time when quiet time ends. This value has to use 24-hour notation
4333	// and be in HH:MM format, where HH is the hour (with a leading zero, if
4334	// applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM,
4335	// or 14:30 to represent 2:30 PM.
4336	End *string
4337
4338	// The specific time when quiet time begins. This value has to use 24-hour notation
4339	// and be in HH:MM format, where HH is the hour (with a leading zero, if
4340	// applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM,
4341	// or 14:30 to represent 2:30 PM.
4342	Start *string
4343}
4344
4345// Specifies the settings for a random split activity in a journey. This type of
4346// activity randomly sends specified percentages of participants down one of as
4347// many as five paths in a journey, based on conditions that you specify.
4348type RandomSplitActivity struct {
4349
4350	// The paths for the activity, including the percentage of participants to enter
4351	// each path and the activity to perform for each path.
4352	Branches []RandomSplitEntry
4353}
4354
4355// Specifies the settings for a path in a random split activity in a journey.
4356type RandomSplitEntry struct {
4357
4358	// The unique identifier for the next activity to perform, after completing the
4359	// activity for the path.
4360	NextActivity *string
4361
4362	// The percentage of participants to send down the activity path. To determine
4363	// which participants are sent down each path, Amazon Pinpoint applies a
4364	// probability-based algorithm to the percentages that you specify for the paths.
4365	// Therefore, the actual percentage of participants who are sent down a path may
4366	// not be equal to the percentage that you specify.
4367	Percentage int32
4368}
4369
4370// Specifies the contents of an email message, represented as a raw MIME message.
4371type RawEmail struct {
4372
4373	// The email message, represented as a raw MIME message. The entire message must be
4374	// base64 encoded.
4375	Data []byte
4376}
4377
4378// Specifies criteria for including or excluding endpoints from a segment based on
4379// how recently an endpoint was active.
4380type RecencyDimension struct {
4381
4382	// The duration to use when determining whether an endpoint is active or inactive.
4383	//
4384	// This member is required.
4385	Duration Duration
4386
4387	// The type of recency dimension to use for the segment. Valid values are: ACTIVE,
4388	// endpoints that were active within the specified duration are included in the
4389	// segment; and, INACTIVE, endpoints that weren't active within the specified
4390	// duration are included in the segment.
4391	//
4392	// This member is required.
4393	RecencyType RecencyType
4394}
4395
4396// Provides information about Amazon Pinpoint configuration settings for retrieving
4397// and processing data from a recommender model.
4398type RecommenderConfigurationResponse struct {
4399
4400	// The date, in extended ISO 8601 format, when the configuration was created for
4401	// the recommender model.
4402	//
4403	// This member is required.
4404	CreationDate *string
4405
4406	// The unique identifier for the recommender model configuration.
4407	//
4408	// This member is required.
4409	Id *string
4410
4411	// The date, in extended ISO 8601 format, when the configuration for the
4412	// recommender model was last modified.
4413	//
4414	// This member is required.
4415	LastModifiedDate *string
4416
4417	// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM)
4418	// role that authorizes Amazon Pinpoint to retrieve recommendation data from the
4419	// recommender model.
4420	//
4421	// This member is required.
4422	RecommendationProviderRoleArn *string
4423
4424	// The Amazon Resource Name (ARN) of the recommender model that Amazon Pinpoint
4425	// retrieves the recommendation data from. This value is the ARN of an Amazon
4426	// Personalize campaign.
4427	//
4428	// This member is required.
4429	RecommendationProviderUri *string
4430
4431	// A map that defines 1-10 custom endpoint or user attributes, depending on the
4432	// value for the RecommendationProviderIdType property. Each of these attributes
4433	// temporarily stores a recommended item that's retrieved from the recommender
4434	// model and sent to an AWS Lambda function for additional processing. Each
4435	// attribute can be used as a message variable in a message template. This value is
4436	// null if the configuration doesn't invoke an AWS Lambda function
4437	// (RecommendationTransformerUri) to perform additional processing of
4438	// recommendation data.
4439	Attributes map[string]string
4440
4441	// The custom description of the configuration for the recommender model.
4442	Description *string
4443
4444	// The custom name of the configuration for the recommender model.
4445	Name *string
4446
4447	// The type of Amazon Pinpoint ID that's associated with unique user IDs in the
4448	// recommender model. This value enables the model to use attribute and event data
4449	// that’s specific to a particular endpoint or user in an Amazon Pinpoint
4450	// application. Possible values are:
4451	//
4452	// * PINPOINT_ENDPOINT_ID - Each user in the
4453	// model is associated with a particular endpoint in Amazon Pinpoint. The data is
4454	// correlated based on endpoint IDs in Amazon Pinpoint. This is the default
4455	// value.
4456	//
4457	// * PINPOINT_USER_ID - Each user in the model is associated with a
4458	// particular user and endpoint in Amazon Pinpoint. The data is correlated based on
4459	// user IDs in Amazon Pinpoint. If this value is specified, an endpoint definition
4460	// in Amazon Pinpoint has to specify both a user ID (UserId) and an endpoint ID.
4461	// Otherwise, messages won’t be sent to the user's endpoint.
4462	RecommendationProviderIdType *string
4463
4464	// The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon
4465	// Pinpoint invokes to perform additional processing of recommendation data that it
4466	// retrieves from the recommender model.
4467	RecommendationTransformerUri *string
4468
4469	// The custom display name for the standard endpoint or user attribute
4470	// (RecommendationItems) that temporarily stores recommended items for each
4471	// endpoint or user, depending on the value for the RecommendationProviderIdType
4472	// property. This name appears in the Attribute finder of the template editor on
4473	// the Amazon Pinpoint console. This value is null if the configuration doesn't
4474	// invoke an AWS Lambda function (RecommendationTransformerUri) to perform
4475	// additional processing of recommendation data.
4476	RecommendationsDisplayName *string
4477
4478	// The number of recommended items that are retrieved from the model for each
4479	// endpoint or user, depending on the value for the RecommendationProviderIdType
4480	// property. This number determines how many recommended items are available for
4481	// use in message variables.
4482	RecommendationsPerMessage int32
4483}
4484
4485// Provides the results of a query that retrieved the data for a standard metric
4486// that applies to an application, campaign, or journey.
4487type ResultRow struct {
4488
4489	// An array of objects that defines the field and field values that were used to
4490	// group data in a result set that contains multiple results. This value is null if
4491	// the data in a result set isn’t grouped.
4492	//
4493	// This member is required.
4494	GroupedBys []ResultRowValue
4495
4496	// An array of objects that provides pre-aggregated values for a standard metric
4497	// that applies to an application, campaign, or journey.
4498	//
4499	// This member is required.
4500	Values []ResultRowValue
4501}
4502
4503// Provides a single value and metadata about that value as part of an array of
4504// query results for a standard metric that applies to an application, campaign, or
4505// journey.
4506type ResultRowValue struct {
4507
4508	// The friendly name of the metric whose value is specified by the Value property.
4509	//
4510	// This member is required.
4511	Key *string
4512
4513	// The data type of the value specified by the Value property.
4514	//
4515	// This member is required.
4516	Type *string
4517
4518	// In a Values object, the value for the metric that the query retrieved data for.
4519	// In a GroupedBys object, the value for the field that was used to group data in a
4520	// result set that contains multiple results (Values objects).
4521	//
4522	// This member is required.
4523	Value *string
4524}
4525
4526// Specifies the schedule settings for a campaign.
4527type Schedule struct {
4528
4529	// The scheduled time when the campaign began or will begin. Valid values are:
4530	// IMMEDIATE, to start the campaign immediately; or, a specific time in ISO 8601
4531	// format.
4532	//
4533	// This member is required.
4534	StartTime *string
4535
4536	// The scheduled time, in ISO 8601 format, when the campaign ended or will end.
4537	EndTime *string
4538
4539	// The type of event that causes the campaign to be sent, if the value of the
4540	// Frequency property is EVENT.
4541	EventFilter *CampaignEventFilter
4542
4543	// Specifies how often the campaign is sent or whether the campaign is sent in
4544	// response to a specific event.
4545	Frequency Frequency
4546
4547	// Specifies whether the start and end times for the campaign schedule use each
4548	// recipient's local time. To base the schedule on each recipient's local time, set
4549	// this value to true.
4550	IsLocalTime bool
4551
4552	// The default quiet time for the campaign. Quiet time is a specific time range
4553	// when a campaign doesn't send messages to endpoints, if all the following
4554	// conditions are met:
4555	//
4556	// * The EndpointDemographic.Timezone property of the endpoint
4557	// is set to a valid value.
4558	//
4559	// * The current time in the endpoint's time zone is
4560	// later than or equal to the time specified by the QuietTime.Start property for
4561	// the campaign.
4562	//
4563	// * The current time in the endpoint's time zone is earlier than or
4564	// equal to the time specified by the QuietTime.End property for the campaign.
4565	//
4566	// If
4567	// any of the preceding conditions isn't met, the endpoint will receive messages
4568	// from the campaign, even if quiet time is enabled.
4569	QuietTime *QuietTime
4570
4571	// The starting UTC offset for the campaign schedule, if the value of the
4572	// IsLocalTime property is true. Valid values are: UTC, UTC+01, UTC+02, UTC+03,
4573	// UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30, UTC+05:45, UTC+06, UTC+06:30,
4574	// UTC+07, UTC+08, UTC+09, UTC+09:30, UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+13,
4575	// UTC-02, UTC-03, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09, UTC-10, and
4576	// UTC-11.
4577	Timezone *string
4578}
4579
4580// Specifies dimension settings for including or excluding endpoints from a segment
4581// based on how recently an endpoint was active.
4582type SegmentBehaviors struct {
4583
4584	// The dimension settings that are based on how recently an endpoint was active.
4585	Recency *RecencyDimension
4586}
4587
4588// Specifies a segment to associate with an activity in a journey.
4589type SegmentCondition struct {
4590
4591	// The unique identifier for the segment to associate with the activity.
4592	//
4593	// This member is required.
4594	SegmentId *string
4595}
4596
4597// Specifies demographic-based dimension settings for including or excluding
4598// endpoints from a segment. These settings derive from characteristics of endpoint
4599// devices, such as platform, make, and model.
4600type SegmentDemographics struct {
4601
4602	// The app version criteria for the segment.
4603	AppVersion *SetDimension
4604
4605	// The channel criteria for the segment.
4606	Channel *SetDimension
4607
4608	// The device type criteria for the segment.
4609	DeviceType *SetDimension
4610
4611	// The device make criteria for the segment.
4612	Make *SetDimension
4613
4614	// The device model criteria for the segment.
4615	Model *SetDimension
4616
4617	// The device platform criteria for the segment.
4618	Platform *SetDimension
4619}
4620
4621// Specifies the dimension settings for a segment.
4622type SegmentDimensions struct {
4623
4624	// One or more custom attributes to use as criteria for the segment.
4625	Attributes map[string]AttributeDimension
4626
4627	// The behavior-based criteria, such as how recently users have used your app, for
4628	// the segment.
4629	Behavior *SegmentBehaviors
4630
4631	// The demographic-based criteria, such as device platform, for the segment.
4632	Demographic *SegmentDemographics
4633
4634	// The location-based criteria, such as region or GPS coordinates, for the segment.
4635	Location *SegmentLocation
4636
4637	// One or more custom metrics to use as criteria for the segment.
4638	Metrics map[string]MetricDimension
4639
4640	// One or more custom user attributes to use as criteria for the segment.
4641	UserAttributes map[string]AttributeDimension
4642}
4643
4644// Specifies the base segments and dimensions for a segment, and the relationships
4645// between these base segments and dimensions.
4646type SegmentGroup struct {
4647
4648	// An array that defines the dimensions for the segment.
4649	Dimensions []SegmentDimensions
4650
4651	// The base segment to build the segment on. A base segment, also referred to as a
4652	// source segment, defines the initial population of endpoints for a segment. When
4653	// you add dimensions to a segment, Amazon Pinpoint filters the base segment by
4654	// using the dimensions that you specify. You can specify more than one dimensional
4655	// segment or only one imported segment. If you specify an imported segment, the
4656	// Amazon Pinpoint console displays a segment size estimate that indicates the size
4657	// of the imported segment without any filters applied to it.
4658	SourceSegments []SegmentReference
4659
4660	// Specifies how to handle multiple base segments for the segment. For example, if
4661	// you specify three base segments for the segment, whether the resulting segment
4662	// is based on all, any, or none of the base segments.
4663	SourceType SourceType
4664
4665	// Specifies how to handle multiple dimensions for the segment. For example, if you
4666	// specify three dimensions for the segment, whether the resulting segment includes
4667	// endpoints that match all, any, or none of the dimensions.
4668	Type Type
4669}
4670
4671// Specifies the settings that define the relationships between segment groups for
4672// a segment.
4673type SegmentGroupList struct {
4674
4675	// An array that defines the set of segment criteria to evaluate when handling
4676	// segment groups for the segment.
4677	Groups []SegmentGroup
4678
4679	// Specifies how to handle multiple segment groups for the segment. For example, if
4680	// the segment includes three segment groups, whether the resulting segment
4681	// includes endpoints that match all, any, or none of the segment groups.
4682	Include Include
4683}
4684
4685// Provides information about the import job that created a segment. An import job
4686// is a job that creates a user segment by importing endpoint definitions.
4687type SegmentImportResource struct {
4688
4689	// (Deprecated) Your AWS account ID, which you assigned to an external ID key in an
4690	// IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM
4691	// role when importing endpoint definitions, but we removed this requirement. We
4692	// don't recommend use of external IDs for IAM roles that are assumed by Amazon
4693	// Pinpoint.
4694	//
4695	// This member is required.
4696	ExternalId *string
4697
4698	// The format of the files that were imported to create the segment. Valid values
4699	// are: CSV, for comma-separated values format; and, JSON, for newline-delimited
4700	// JSON format.
4701	//
4702	// This member is required.
4703	Format Format
4704
4705	// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM)
4706	// role that authorized Amazon Pinpoint to access the Amazon S3 location to import
4707	// endpoint definitions from.
4708	//
4709	// This member is required.
4710	RoleArn *string
4711
4712	// The URL of the Amazon Simple Storage Service (Amazon S3) bucket that the
4713	// endpoint definitions were imported from to create the segment.
4714	//
4715	// This member is required.
4716	S3Url *string
4717
4718	// The number of endpoint definitions that were imported successfully to create the
4719	// segment.
4720	//
4721	// This member is required.
4722	Size int32
4723
4724	// The number of channel types in the endpoint definitions that were imported to
4725	// create the segment.
4726	ChannelCounts map[string]int32
4727}
4728
4729// Specifies geographical dimension settings for a segment.
4730type SegmentLocation struct {
4731
4732	// The country or region code, in ISO 3166-1 alpha-2 format, for the segment.
4733	Country *SetDimension
4734
4735	// The GPS location and range for the segment.
4736	GPSPoint *GPSPointDimension
4737}
4738
4739// Specifies the segment identifier and version of a segment.
4740type SegmentReference struct {
4741
4742	// The unique identifier for the segment.
4743	//
4744	// This member is required.
4745	Id *string
4746
4747	// The version number of the segment.
4748	Version int32
4749}
4750
4751// Provides information about the configuration, dimension, and other settings for
4752// a segment.
4753type SegmentResponse struct {
4754
4755	// The unique identifier for the application that the segment is associated with.
4756	//
4757	// This member is required.
4758	ApplicationId *string
4759
4760	// The Amazon Resource Name (ARN) of the segment.
4761	//
4762	// This member is required.
4763	Arn *string
4764
4765	// The date and time when the segment was created.
4766	//
4767	// This member is required.
4768	CreationDate *string
4769
4770	// The unique identifier for the segment.
4771	//
4772	// This member is required.
4773	Id *string
4774
4775	// The segment type. Valid values are:
4776	//
4777	// * DIMENSIONAL - A dynamic segment, which is
4778	// a segment that uses selection criteria that you specify and is based on endpoint
4779	// data that's reported by your app. Dynamic segments can change over time.
4780	//
4781	// *
4782	// IMPORT - A static segment, which is a segment that uses selection criteria that
4783	// you specify and is based on endpoint definitions that you import from a file.
4784	// Imported segments are static; they don't change over time.
4785	//
4786	// This member is required.
4787	SegmentType SegmentType
4788
4789	// The dimension settings for the segment.
4790	Dimensions *SegmentDimensions
4791
4792	// The settings for the import job that's associated with the segment.
4793	ImportDefinition *SegmentImportResource
4794
4795	// The date and time when the segment was last modified.
4796	LastModifiedDate *string
4797
4798	// The name of the segment.
4799	Name *string
4800
4801	// A list of one or more segment groups that apply to the segment. Each segment
4802	// group consists of zero or more base segments and the dimensions that are applied
4803	// to those base segments.
4804	SegmentGroups *SegmentGroupList
4805
4806	// A string-to-string map of key-value pairs that identifies the tags that are
4807	// associated with the segment. Each tag consists of a required tag key and an
4808	// associated tag value.
4809	Tags map[string]string
4810
4811	// The version number of the segment.
4812	Version int32
4813}
4814
4815// Provides information about all the segments that are associated with an
4816// application.
4817type SegmentsResponse struct {
4818
4819	// An array of responses, one for each segment that's associated with the
4820	// application (Segments resource) or each version of a segment that's associated
4821	// with the application (Segment Versions resource).
4822	//
4823	// This member is required.
4824	Item []SegmentResponse
4825
4826	// The string to use in a subsequent request to get the next page of results in a
4827	// paginated response. This value is null if there are no additional pages.
4828	NextToken *string
4829}
4830
4831// Specifies the configuration and other settings for a message to send to all the
4832// endpoints that are associated with a list of users.
4833type SendUsersMessageRequest struct {
4834
4835	// The settings and content for the default message and any default messages that
4836	// you defined for specific channels.
4837	//
4838	// This member is required.
4839	MessageConfiguration *DirectMessageConfiguration
4840
4841	// A map that associates user IDs with EndpointSendConfiguration
4842	// (https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-endpointsendconfiguration)
4843	// objects. You can use an EndpointSendConfiguration
4844	// (https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-endpointsendconfiguration)
4845	// object to tailor the message for a user by specifying settings such as content
4846	// overrides and message variables.
4847	//
4848	// This member is required.
4849	Users map[string]EndpointSendConfiguration
4850
4851	// A map of custom attribute-value pairs. For a push notification, Amazon Pinpoint
4852	// adds these attributes to the data.pinpoint object in the body of the
4853	// notification payload. Amazon Pinpoint also provides these attributes in the
4854	// events that it generates for users-messages deliveries.
4855	Context map[string]string
4856
4857	// The message template to use for the message.
4858	TemplateConfiguration *TemplateConfiguration
4859
4860	// The unique identifier for tracing the message. This identifier is visible to
4861	// message recipients.
4862	TraceId *string
4863}
4864
4865// Provides information about which users and endpoints a message was sent to.
4866type SendUsersMessageResponse struct {
4867
4868	// The unique identifier for the application that was used to send the message.
4869	//
4870	// This member is required.
4871	ApplicationId *string
4872
4873	// The unique identifier that was assigned to the message request.
4874	RequestId *string
4875
4876	// An object that indicates which endpoints the message was sent to, for each user.
4877	// The object lists user IDs and, for each user ID, provides the endpoint IDs that
4878	// the message was sent to. For each endpoint ID, it provides an
4879	// EndpointMessageResult object.
4880	Result map[string]map[string]EndpointMessageResult
4881}
4882
4883// Provides information about a session.
4884type Session struct {
4885
4886	// The unique identifier for the session.
4887	//
4888	// This member is required.
4889	Id *string
4890
4891	// The date and time when the session began.
4892	//
4893	// This member is required.
4894	StartTimestamp *string
4895
4896	// The duration of the session, in milliseconds.
4897	Duration int32
4898
4899	// The date and time when the session ended.
4900	StopTimestamp *string
4901}
4902
4903// Specifies the dimension type and values for a segment dimension.
4904type SetDimension struct {
4905
4906	// The criteria values to use for the segment dimension. Depending on the value of
4907	// the DimensionType property, endpoints are included or excluded from the segment
4908	// if their values match the criteria values.
4909	//
4910	// This member is required.
4911	Values []string
4912
4913	// The type of segment dimension to use. Valid values are: INCLUSIVE, endpoints
4914	// that match the criteria are included in the segment; and, EXCLUSIVE, endpoints
4915	// that match the criteria are excluded from the segment.
4916	DimensionType DimensionType
4917}
4918
4919// Specifies a condition to evaluate for an activity in a journey.
4920type SimpleCondition struct {
4921
4922	// The dimension settings for the event that's associated with the activity.
4923	EventCondition *EventCondition
4924
4925	// The segment that's associated with the activity.
4926	SegmentCondition *SegmentCondition
4927
4928	// The dimension settings for the segment that's associated with the activity.
4929	SegmentDimensions *SegmentDimensions
4930}
4931
4932// Specifies the contents of an email message, composed of a subject, a text part,
4933// and an HTML part.
4934type SimpleEmail struct {
4935
4936	// The body of the email message, in HTML format. We recommend using HTML format
4937	// for email clients that render HTML content. You can include links, formatted
4938	// text, and more in an HTML message.
4939	HtmlPart *SimpleEmailPart
4940
4941	// The subject line, or title, of the email.
4942	Subject *SimpleEmailPart
4943
4944	// The body of the email message, in plain text format. We recommend using plain
4945	// text format for email clients that don't render HTML content and clients that
4946	// are connected to high-latency networks, such as mobile devices.
4947	TextPart *SimpleEmailPart
4948}
4949
4950// Specifies the subject or body of an email message, represented as textual email
4951// data and the applicable character set.
4952type SimpleEmailPart struct {
4953
4954	// The applicable character set for the message content.
4955	Charset *string
4956
4957	// The textual data of the message content.
4958	Data *string
4959}
4960
4961// Specifies the status and settings of the SMS channel for an application.
4962type SMSChannelRequest struct {
4963
4964	// Specifies whether to enable the SMS channel for the application.
4965	Enabled bool
4966
4967	// The identity that you want to display on recipients' devices when they receive
4968	// messages from the SMS channel.
4969	SenderId *string
4970
4971	// The registered short code that you want to use when you send messages through
4972	// the SMS channel.
4973	ShortCode *string
4974}
4975
4976// Provides information about the status and settings of the SMS channel for an
4977// application.
4978type SMSChannelResponse struct {
4979
4980	// The type of messaging or notification platform for the channel. For the SMS
4981	// channel, this value is SMS.
4982	//
4983	// This member is required.
4984	Platform *string
4985
4986	// The unique identifier for the application that the SMS channel applies to.
4987	ApplicationId *string
4988
4989	// The date and time, in ISO 8601 format, when the SMS channel was enabled.
4990	CreationDate *string
4991
4992	// Specifies whether the SMS channel is enabled for the application.
4993	Enabled bool
4994
4995	// (Not used) This property is retained only for backward compatibility.
4996	HasCredential bool
4997
4998	// (Deprecated) An identifier for the SMS channel. This property is retained only
4999	// for backward compatibility.
5000	Id *string
5001
5002	// Specifies whether the SMS channel is archived.
5003	IsArchived bool
5004
5005	// The user who last modified the SMS channel.
5006	LastModifiedBy *string
5007
5008	// The date and time, in ISO 8601 format, when the SMS channel was last modified.
5009	LastModifiedDate *string
5010
5011	// The maximum number of promotional messages that you can send through the SMS
5012	// channel each second.
5013	PromotionalMessagesPerSecond int32
5014
5015	// The identity that displays on recipients' devices when they receive messages
5016	// from the SMS channel.
5017	SenderId *string
5018
5019	// The registered short code to use when you send messages through the SMS channel.
5020	ShortCode *string
5021
5022	// The maximum number of transactional messages that you can send through the SMS
5023	// channel each second.
5024	TransactionalMessagesPerSecond int32
5025
5026	// The current version of the SMS channel.
5027	Version int32
5028}
5029
5030// Specifies the default settings for a one-time SMS message that's sent directly
5031// to an endpoint.
5032type SMSMessage struct {
5033
5034	// The body of the SMS message.
5035	Body *string
5036
5037	// The entity ID or Principal Entity (PE) id received from the regulatory body for
5038	// sending SMS in your country.
5039	EntityId *string
5040
5041	// The SMS program name that you provided to AWS Support when you requested your
5042	// dedicated number.
5043	Keyword *string
5044
5045	// This field is reserved for future use.
5046	MediaUrl *string
5047
5048	// The SMS message type. Valid values are TRANSACTIONAL (for messages that are
5049	// critical or time-sensitive, such as a one-time passwords) and PROMOTIONAL (for
5050	// messsages that aren't critical or time-sensitive, such as marketing messages).
5051	MessageType MessageType
5052
5053	// The number to send the SMS message from. This value should be one of the
5054	// dedicated long or short codes that's assigned to your AWS account. If you don't
5055	// specify a long or short code, Amazon Pinpoint assigns a random long code to the
5056	// SMS message and sends the message from that code.
5057	OriginationNumber *string
5058
5059	// The sender ID to display as the sender of the message on a recipient's device.
5060	// Support for sender IDs varies by country or region.
5061	SenderId *string
5062
5063	// The message variables to use in the SMS message. You can override the default
5064	// variables with individual address variables.
5065	Substitutions map[string][]string
5066
5067	// The template ID received from the regulatory body for sending SMS in your
5068	// country.
5069	TemplateId *string
5070}
5071
5072// Specifies the settings for an SMS activity in a journey. This type of activity
5073// sends a text message to participants.
5074type SMSMessageActivity struct {
5075
5076	// Specifies the sender ID and message type for an SMS message that's sent to
5077	// participants in a journey.
5078	MessageConfig *JourneySMSMessage
5079
5080	// The unique identifier for the next activity to perform, after the message is
5081	// sent.
5082	NextActivity *string
5083
5084	// The name of the SMS message template to use for the message. If specified, this
5085	// value must match the name of an existing message template.
5086	TemplateName *string
5087
5088	// The unique identifier for the version of the SMS template to use for the
5089	// message. If specified, this value must match the identifier for an existing
5090	// template version. To retrieve a list of versions and version identifiers for a
5091	// template, use the Template Versions resource. If you don't specify a value for
5092	// this property, Amazon Pinpoint uses the active version of the template. The
5093	// active version is typically the version of a template that's been most recently
5094	// reviewed and approved for use, depending on your workflow. It isn't necessarily
5095	// the latest version of a template.
5096	TemplateVersion *string
5097}
5098
5099// Specifies the content and settings for a message template that can be used in
5100// text messages that are sent through the SMS channel.
5101type SMSTemplateRequest struct {
5102
5103	// The message body to use in text messages that are based on the message template.
5104	Body *string
5105
5106	// A JSON object that specifies the default values to use for message variables in
5107	// the message template. This object is a set of key-value pairs. Each key defines
5108	// a message variable in the template. The corresponding value defines the default
5109	// value for that variable. When you create a message that's based on the template,
5110	// you can override these defaults with message-specific and address-specific
5111	// variables and values.
5112	DefaultSubstitutions *string
5113
5114	// The unique identifier for the recommender model to use for the message template.
5115	// Amazon Pinpoint uses this value to determine how to retrieve and process data
5116	// from a recommender model when it sends messages that use the template, if the
5117	// template contains message variables for recommendation data.
5118	RecommenderId *string
5119
5120	// A string-to-string map of key-value pairs that defines the tags to associate
5121	// with the message template. Each tag consists of a required tag key and an
5122	// associated tag value.
5123	Tags map[string]string
5124
5125	// A custom description of the message template.
5126	TemplateDescription *string
5127}
5128
5129// Provides information about the content and settings for a message template that
5130// can be used in text messages that are sent through the SMS channel.
5131type SMSTemplateResponse struct {
5132
5133	// The date, in ISO 8601 format, when the message template was created.
5134	//
5135	// This member is required.
5136	CreationDate *string
5137
5138	// The date, in ISO 8601 format, when the message template was last modified.
5139	//
5140	// This member is required.
5141	LastModifiedDate *string
5142
5143	// The name of the message template.
5144	//
5145	// This member is required.
5146	TemplateName *string
5147
5148	// The type of channel that the message template is designed for. For an SMS
5149	// template, this value is SMS.
5150	//
5151	// This member is required.
5152	TemplateType TemplateType
5153
5154	// The Amazon Resource Name (ARN) of the message template.
5155	Arn *string
5156
5157	// The message body that's used in text messages that are based on the message
5158	// template.
5159	Body *string
5160
5161	// The JSON object that specifies the default values that are used for message
5162	// variables in the message template. This object is a set of key-value pairs. Each
5163	// key defines a message variable in the template. The corresponding value defines
5164	// the default value for that variable.
5165	DefaultSubstitutions *string
5166
5167	// The unique identifier for the recommender model that's used by the message
5168	// template.
5169	RecommenderId *string
5170
5171	// A string-to-string map of key-value pairs that identifies the tags that are
5172	// associated with the message template. Each tag consists of a required tag key
5173	// and an associated tag value.
5174	Tags map[string]string
5175
5176	// The custom description of the message template.
5177	TemplateDescription *string
5178
5179	// The unique identifier, as an integer, for the active version of the message
5180	// template, or the version of the template that you specified by using the version
5181	// parameter in your request.
5182	Version *string
5183}
5184
5185// Specifies the conditions for the first activity in a journey. This activity and
5186// its conditions determine which users are participants in a journey.
5187type StartCondition struct {
5188
5189	// The custom description of the condition.
5190	Description *string
5191
5192	// Specifies the settings for an event that causes a journey activity to start.
5193	EventStartCondition *EventStartCondition
5194
5195	// The segment that's associated with the first activity in the journey. This
5196	// segment determines which users are participants in the journey.
5197	SegmentStartCondition *SegmentCondition
5198}
5199
5200// Specifies the tags (keys and values) for an application, campaign, message
5201// template, or segment.
5202type TagsModel struct {
5203
5204	// A string-to-string map of key-value pairs that defines the tags for an
5205	// application, campaign, message template, or segment. Each of these resources can
5206	// have a maximum of 50 tags. Each tag consists of a required tag key and an
5207	// associated tag value. The maximum length of a tag key is 128 characters. The
5208	// maximum length of a tag value is 256 characters.
5209	//
5210	// This member is required.
5211	Tags map[string]string
5212}
5213
5214// Specifies the name and version of the message template to use for the message.
5215type Template struct {
5216
5217	// The name of the message template to use for the message. If specified, this
5218	// value must match the name of an existing message template.
5219	Name *string
5220
5221	// The unique identifier for the version of the message template to use for the
5222	// message. If specified, this value must match the identifier for an existing
5223	// template version. To retrieve a list of versions and version identifiers for a
5224	// template, use the Template Versions resource. If you don't specify a value for
5225	// this property, Amazon Pinpoint uses the active version of the template. The
5226	// active version is typically the version of a template that's been most recently
5227	// reviewed and approved for use, depending on your workflow. It isn't necessarily
5228	// the latest version of a template.
5229	Version *string
5230}
5231
5232// Specifies which version of a message template to use as the active version of
5233// the template.
5234type TemplateActiveVersionRequest struct {
5235
5236	// The version of the message template to use as the active version of the
5237	// template. Valid values are: latest, for the most recent version of the template;
5238	// or, the unique identifier for any existing version of the template. If you
5239	// specify an identifier, the value must match the identifier for an existing
5240	// template version. To retrieve a list of versions and version identifiers for a
5241	// template, use the Template Versions resource.
5242	Version *string
5243}
5244
5245// Specifies the message template to use for the message, for each type of channel.
5246type TemplateConfiguration struct {
5247
5248	// The email template to use for the message.
5249	EmailTemplate *Template
5250
5251	// The push notification template to use for the message.
5252	PushTemplate *Template
5253
5254	// The SMS template to use for the message.
5255	SMSTemplate *Template
5256
5257	// The voice template to use for the message. This object isn't supported for
5258	// campaigns.
5259	VoiceTemplate *Template
5260}
5261
5262// Provides information about a message template that's associated with your Amazon
5263// Pinpoint account.
5264type TemplateResponse struct {
5265
5266	// The date, in ISO 8601 format, when the message template was created.
5267	//
5268	// This member is required.
5269	CreationDate *string
5270
5271	// The date, in ISO 8601 format, when the message template was last modified.
5272	//
5273	// This member is required.
5274	LastModifiedDate *string
5275
5276	// The name of the message template.
5277	//
5278	// This member is required.
5279	TemplateName *string
5280
5281	// The type of channel that the message template is designed for. Possible values
5282	// are: EMAIL, PUSH, SMS, and VOICE.
5283	//
5284	// This member is required.
5285	TemplateType TemplateType
5286
5287	// The Amazon Resource Name (ARN) of the message template. This value isn't
5288	// included in a TemplateResponse object. To retrieve the ARN of a template, use
5289	// the GetEmailTemplate, GetPushTemplate, GetSmsTemplate, or GetVoiceTemplate
5290	// operation, depending on the type of template that you want to retrieve the ARN
5291	// for.
5292	Arn *string
5293
5294	// The JSON object that specifies the default values that are used for message
5295	// variables in the message template. This object isn't included in a
5296	// TemplateResponse object. To retrieve this object for a template, use the
5297	// GetEmailTemplate, GetPushTemplate, GetSmsTemplate, or GetVoiceTemplate
5298	// operation, depending on the type of template that you want to retrieve the
5299	// object for.
5300	DefaultSubstitutions *string
5301
5302	// A map of key-value pairs that identifies the tags that are associated with the
5303	// message template. This object isn't included in a TemplateResponse object. To
5304	// retrieve this object for a template, use the GetEmailTemplate, GetPushTemplate,
5305	// GetSmsTemplate, or GetVoiceTemplate operation, depending on the type of template
5306	// that you want to retrieve the object for.
5307	Tags map[string]string
5308
5309	// The custom description of the message template. This value isn't included in a
5310	// TemplateResponse object. To retrieve the description of a template, use the
5311	// GetEmailTemplate, GetPushTemplate, GetSmsTemplate, or GetVoiceTemplate
5312	// operation, depending on the type of template that you want to retrieve the
5313	// description for.
5314	TemplateDescription *string
5315
5316	// The unique identifier, as an integer, for the active version of the message
5317	// template.
5318	Version *string
5319}
5320
5321// Provides information about all the message templates that are associated with
5322// your Amazon Pinpoint account.
5323type TemplatesResponse struct {
5324
5325	// An array of responses, one for each message template that's associated with your
5326	// Amazon Pinpoint account and meets any filter criteria that you specified in the
5327	// request.
5328	//
5329	// This member is required.
5330	Item []TemplateResponse
5331
5332	// The string to use in a subsequent request to get the next page of results in a
5333	// paginated response. This value is null if there are no additional pages.
5334	NextToken *string
5335}
5336
5337// Provides information about a specific version of a message template.
5338type TemplateVersionResponse struct {
5339
5340	// The date, in ISO 8601 format, when the version of the message template was
5341	// created.
5342	//
5343	// This member is required.
5344	CreationDate *string
5345
5346	// The date, in ISO 8601 format, when the version of the message template was last
5347	// modified.
5348	//
5349	// This member is required.
5350	LastModifiedDate *string
5351
5352	// The name of the message template.
5353	//
5354	// This member is required.
5355	TemplateName *string
5356
5357	// The type of channel that the message template is designed for. Possible values
5358	// are: EMAIL, PUSH, SMS, and VOICE.
5359	//
5360	// This member is required.
5361	TemplateType *string
5362
5363	// A JSON object that specifies the default values that are used for message
5364	// variables in the version of the message template. This object is a set of
5365	// key-value pairs. Each key defines a message variable in the template. The
5366	// corresponding value defines the default value for that variable.
5367	DefaultSubstitutions *string
5368
5369	// The custom description of the version of the message template.
5370	TemplateDescription *string
5371
5372	// The unique identifier for the version of the message template. This value is an
5373	// integer that Amazon Pinpoint automatically increments and assigns to each new
5374	// version of a template.
5375	Version *string
5376}
5377
5378// Provides information about all the versions of a specific message template.
5379type TemplateVersionsResponse struct {
5380
5381	// An array of responses, one for each version of the message template.
5382	//
5383	// This member is required.
5384	Item []TemplateVersionResponse
5385
5386	// The message that's returned from the API for the request to retrieve information
5387	// about all the versions of the message template.
5388	Message *string
5389
5390	// The string to use in a subsequent request to get the next page of results in a
5391	// paginated response. This value is null if there are no additional pages.
5392	NextToken *string
5393
5394	// The unique identifier for the request to retrieve information about all the
5395	// versions of the message template.
5396	RequestID *string
5397}
5398
5399// Specifies the settings for a campaign treatment. A treatment is a variation of a
5400// campaign that's used for A/B testing of a campaign.
5401type TreatmentResource struct {
5402
5403	// The unique identifier for the treatment.
5404	//
5405	// This member is required.
5406	Id *string
5407
5408	// The allocated percentage of users (segment members) that the treatment is sent
5409	// to.
5410	//
5411	// This member is required.
5412	SizePercent int32
5413
5414	// The delivery configuration settings for sending the treatment through a custom
5415	// channel. This object is required if the MessageConfiguration object for the
5416	// treatment specifies a CustomMessage object.
5417	CustomDeliveryConfiguration *CustomDeliveryConfiguration
5418
5419	// The message configuration settings for the treatment.
5420	MessageConfiguration *MessageConfiguration
5421
5422	// The schedule settings for the treatment.
5423	Schedule *Schedule
5424
5425	// The current status of the treatment.
5426	State *CampaignState
5427
5428	// The message template to use for the treatment.
5429	TemplateConfiguration *TemplateConfiguration
5430
5431	// The custom description of the treatment.
5432	TreatmentDescription *string
5433
5434	// The custom name of the treatment.
5435	TreatmentName *string
5436}
5437
5438// Specifies one or more attributes to remove from all the endpoints that are
5439// associated with an application.
5440type UpdateAttributesRequest struct {
5441
5442	// An array of the attributes to remove from all the endpoints that are associated
5443	// with the application. The array can specify the complete, exact name of each
5444	// attribute to remove or it can specify a glob pattern that an attribute name must
5445	// match in order for the attribute to be removed.
5446	Blacklist []string
5447}
5448
5449// Specifies Amazon Pinpoint configuration settings for retrieving and processing
5450// recommendation data from a recommender model.
5451type UpdateRecommenderConfigurationShape struct {
5452
5453	// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM)
5454	// role that authorizes Amazon Pinpoint to retrieve recommendation data from the
5455	// recommender model.
5456	//
5457	// This member is required.
5458	RecommendationProviderRoleArn *string
5459
5460	// The Amazon Resource Name (ARN) of the recommender model to retrieve
5461	// recommendation data from. This value must match the ARN of an Amazon Personalize
5462	// campaign.
5463	//
5464	// This member is required.
5465	RecommendationProviderUri *string
5466
5467	// A map of key-value pairs that defines 1-10 custom endpoint or user attributes,
5468	// depending on the value for the RecommendationProviderIdType property. Each of
5469	// these attributes temporarily stores a recommended item that's retrieved from the
5470	// recommender model and sent to an AWS Lambda function for additional processing.
5471	// Each attribute can be used as a message variable in a message template. In the
5472	// map, the key is the name of a custom attribute and the value is a custom display
5473	// name for that attribute. The display name appears in the Attribute finder of the
5474	// template editor on the Amazon Pinpoint console. The following restrictions apply
5475	// to these names:
5476	//
5477	// * An attribute name must start with a letter or number and it
5478	// can contain up to 50 characters. The characters can be letters, numbers,
5479	// underscores (_), or hyphens (-). Attribute names are case sensitive and must be
5480	// unique.
5481	//
5482	// * An attribute display name must start with a letter or number and it
5483	// can contain up to 25 characters. The characters can be letters, numbers, spaces,
5484	// underscores (_), or hyphens (-).
5485	//
5486	// This object is required if the configuration
5487	// invokes an AWS Lambda function (RecommendationTransformerUri) to process
5488	// recommendation data. Otherwise, don't include this object in your request.
5489	Attributes map[string]string
5490
5491	// A custom description of the configuration for the recommender model. The
5492	// description can contain up to 128 characters. The characters can be letters,
5493	// numbers, spaces, or the following symbols: _ ; () , ‐.
5494	Description *string
5495
5496	// A custom name of the configuration for the recommender model. The name must
5497	// start with a letter or number and it can contain up to 128 characters. The
5498	// characters can be letters, numbers, spaces, underscores (_), or hyphens (-).
5499	Name *string
5500
5501	// The type of Amazon Pinpoint ID to associate with unique user IDs in the
5502	// recommender model. This value enables the model to use attribute and event data
5503	// that’s specific to a particular endpoint or user in an Amazon Pinpoint
5504	// application. Valid values are:
5505	//
5506	// * PINPOINT_ENDPOINT_ID - Associate each user in
5507	// the model with a particular endpoint in Amazon Pinpoint. The data is correlated
5508	// based on endpoint IDs in Amazon Pinpoint. This is the default value.
5509	//
5510	// *
5511	// PINPOINT_USER_ID - Associate each user in the model with a particular user and
5512	// endpoint in Amazon Pinpoint. The data is correlated based on user IDs in Amazon
5513	// Pinpoint. If you specify this value, an endpoint definition in Amazon Pinpoint
5514	// has to specify both a user ID (UserId) and an endpoint ID. Otherwise, messages
5515	// won’t be sent to the user's endpoint.
5516	RecommendationProviderIdType *string
5517
5518	// The name or Amazon Resource Name (ARN) of the AWS Lambda function to invoke for
5519	// additional processing of recommendation data that's retrieved from the
5520	// recommender model.
5521	RecommendationTransformerUri *string
5522
5523	// A custom display name for the standard endpoint or user attribute
5524	// (RecommendationItems) that temporarily stores recommended items for each
5525	// endpoint or user, depending on the value for the RecommendationProviderIdType
5526	// property. This value is required if the configuration doesn't invoke an AWS
5527	// Lambda function (RecommendationTransformerUri) to perform additional processing
5528	// of recommendation data. This name appears in the Attribute finder of the
5529	// template editor on the Amazon Pinpoint console. The name can contain up to 25
5530	// characters. The characters can be letters, numbers, spaces, underscores (_), or
5531	// hyphens (-). These restrictions don't apply to attribute values.
5532	RecommendationsDisplayName *string
5533
5534	// The number of recommended items to retrieve from the model for each endpoint or
5535	// user, depending on the value for the RecommendationProviderIdType property. This
5536	// number determines how many recommended items are available for use in message
5537	// variables. The minimum value is 1. The maximum value is 5. The default value is
5538	// 5. To use multiple recommended items and custom attributes with message
5539	// variables, you have to use an AWS Lambda function (RecommendationTransformerUri)
5540	// to perform additional processing of recommendation data.
5541	RecommendationsPerMessage int32
5542}
5543
5544// Specifies the status and settings of the voice channel for an application.
5545type VoiceChannelRequest struct {
5546
5547	// Specifies whether to enable the voice channel for the application.
5548	Enabled bool
5549}
5550
5551// Provides information about the status and settings of the voice channel for an
5552// application.
5553type VoiceChannelResponse struct {
5554
5555	// The type of messaging or notification platform for the channel. For the voice
5556	// channel, this value is VOICE.
5557	//
5558	// This member is required.
5559	Platform *string
5560
5561	// The unique identifier for the application that the voice channel applies to.
5562	ApplicationId *string
5563
5564	// The date and time, in ISO 8601 format, when the voice channel was enabled.
5565	CreationDate *string
5566
5567	// Specifies whether the voice channel is enabled for the application.
5568	Enabled bool
5569
5570	// (Not used) This property is retained only for backward compatibility.
5571	HasCredential bool
5572
5573	// (Deprecated) An identifier for the voice channel. This property is retained only
5574	// for backward compatibility.
5575	Id *string
5576
5577	// Specifies whether the voice channel is archived.
5578	IsArchived bool
5579
5580	// The user who last modified the voice channel.
5581	LastModifiedBy *string
5582
5583	// The date and time, in ISO 8601 format, when the voice channel was last modified.
5584	LastModifiedDate *string
5585
5586	// The current version of the voice channel.
5587	Version int32
5588}
5589
5590// Specifies the settings for a one-time voice message that's sent directly to an
5591// endpoint through the voice channel.
5592type VoiceMessage struct {
5593
5594	// The text of the script to use for the voice message.
5595	Body *string
5596
5597	// The code for the language to use when synthesizing the text of the message
5598	// script. For a list of supported languages and the code for each one, see the
5599	// Amazon Polly Developer Guide
5600	// (https://docs.aws.amazon.com/polly/latest/dg/what-is.html).
5601	LanguageCode *string
5602
5603	// The long code to send the voice message from. This value should be one of the
5604	// dedicated long codes that's assigned to your AWS account. Although it isn't
5605	// required, we recommend that you specify the long code in E.164 format, for
5606	// example +12065550100, to ensure prompt and accurate delivery of the message.
5607	OriginationNumber *string
5608
5609	// The default message variables to use in the voice message. You can override the
5610	// default variables with individual address variables.
5611	Substitutions map[string][]string
5612
5613	// The name of the voice to use when delivering the message. For a list of
5614	// supported voices, see the Amazon Polly Developer Guide
5615	// (https://docs.aws.amazon.com/polly/latest/dg/what-is.html).
5616	VoiceId *string
5617}
5618
5619// Specifies the content and settings for a message template that can be used in
5620// messages that are sent through the voice channel.
5621type VoiceTemplateRequest struct {
5622
5623	// The text of the script to use in messages that are based on the message
5624	// template, in plain text format.
5625	Body *string
5626
5627	// A JSON object that specifies the default values to use for message variables in
5628	// the message template. This object is a set of key-value pairs. Each key defines
5629	// a message variable in the template. The corresponding value defines the default
5630	// value for that variable. When you create a message that's based on the template,
5631	// you can override these defaults with message-specific and address-specific
5632	// variables and values.
5633	DefaultSubstitutions *string
5634
5635	// The code for the language to use when synthesizing the text of the script in
5636	// messages that are based on the message template. For a list of supported
5637	// languages and the code for each one, see the Amazon Polly Developer Guide
5638	// (https://docs.aws.amazon.com/polly/latest/dg/what-is.html).
5639	LanguageCode *string
5640
5641	// A string-to-string map of key-value pairs that defines the tags to associate
5642	// with the message template. Each tag consists of a required tag key and an
5643	// associated tag value.
5644	Tags map[string]string
5645
5646	// A custom description of the message template.
5647	TemplateDescription *string
5648
5649	// The name of the voice to use when delivering messages that are based on the
5650	// message template. For a list of supported voices, see the Amazon Polly Developer
5651	// Guide (https://docs.aws.amazon.com/polly/latest/dg/what-is.html).
5652	VoiceId *string
5653}
5654
5655// Provides information about the content and settings for a message template that
5656// can be used in messages that are sent through the voice channel.
5657type VoiceTemplateResponse struct {
5658
5659	// The date, in ISO 8601 format, when the message template was created.
5660	//
5661	// This member is required.
5662	CreationDate *string
5663
5664	// The date, in ISO 8601 format, when the message template was last modified.
5665	//
5666	// This member is required.
5667	LastModifiedDate *string
5668
5669	// The name of the message template.
5670	//
5671	// This member is required.
5672	TemplateName *string
5673
5674	// The type of channel that the message template is designed for. For a voice
5675	// template, this value is VOICE.
5676	//
5677	// This member is required.
5678	TemplateType TemplateType
5679
5680	// The Amazon Resource Name (ARN) of the message template.
5681	Arn *string
5682
5683	// The text of the script that's used in messages that are based on the message
5684	// template, in plain text format.
5685	Body *string
5686
5687	// The JSON object that specifies the default values that are used for message
5688	// variables in the message template. This object is a set of key-value pairs. Each
5689	// key defines a message variable in the template. The corresponding value defines
5690	// the default value for that variable.
5691	DefaultSubstitutions *string
5692
5693	// The code for the language that's used when synthesizing the text of the script
5694	// in messages that are based on the message template. For a list of supported
5695	// languages and the code for each one, see the Amazon Polly Developer Guide
5696	// (https://docs.aws.amazon.com/polly/latest/dg/what-is.html).
5697	LanguageCode *string
5698
5699	// A string-to-string map of key-value pairs that identifies the tags that are
5700	// associated with the message template. Each tag consists of a required tag key
5701	// and an associated tag value.
5702	Tags map[string]string
5703
5704	// The custom description of the message template.
5705	TemplateDescription *string
5706
5707	// The unique identifier, as an integer, for the active version of the message
5708	// template, or the version of the template that you specified by using the version
5709	// parameter in your request.
5710	Version *string
5711
5712	// The name of the voice that's used when delivering messages that are based on the
5713	// message template. For a list of supported voices, see the Amazon Polly Developer
5714	// Guide (https://docs.aws.amazon.com/polly/latest/dg/what-is.html).
5715	VoiceId *string
5716}
5717
5718// Specifies the settings for a wait activity in a journey. This type of activity
5719// waits for a certain amount of time or until a specific date and time before
5720// moving participants to the next activity in a journey.
5721type WaitActivity struct {
5722
5723	// The unique identifier for the next activity to perform, after performing the
5724	// wait activity.
5725	NextActivity *string
5726
5727	// The amount of time to wait or the date and time when the activity moves
5728	// participants to the next activity in the journey.
5729	WaitTime *WaitTime
5730}
5731
5732// Specifies a duration or a date and time that indicates when Amazon Pinpoint
5733// determines whether an activity's conditions have been met or an activity moves
5734// participants to the next activity in a journey.
5735type WaitTime struct {
5736
5737	// The amount of time to wait, as a duration in ISO 8601 format, before determining
5738	// whether the activity's conditions have been met or moving participants to the
5739	// next activity in the journey.
5740	WaitFor *string
5741
5742	// The date and time, in ISO 8601 format, when Amazon Pinpoint determines whether
5743	// the activity's conditions have been met or the activity moves participants to
5744	// the next activity in the journey.
5745	WaitUntil *string
5746}
5747
5748// Specifies the default settings for an application.
5749type WriteApplicationSettingsRequest struct {
5750
5751	// The settings for the AWS Lambda function to invoke by default as a code hook for
5752	// campaigns in the application. You can use this hook to customize segments that
5753	// are used by campaigns in the application. To override these settings and define
5754	// custom settings for a specific campaign, use the CampaignHook object of the
5755	// Campaign resource.
5756	CampaignHook *CampaignHook
5757
5758	// Specifies whether to enable application-related alarms in Amazon CloudWatch.
5759	CloudWatchMetricsEnabled bool
5760
5761	EventTaggingEnabled bool
5762
5763	// The default sending limits for campaigns in the application. To override these
5764	// limits and define custom limits for a specific campaign or journey, use the
5765	// Campaign resource or the Journey resource, respectively.
5766	Limits *CampaignLimits
5767
5768	// The default quiet time for campaigns in the application. Quiet time is a
5769	// specific time range when messages aren't sent to endpoints, if all the following
5770	// conditions are met:
5771	//
5772	// * The EndpointDemographic.Timezone property of the endpoint
5773	// is set to a valid value.
5774	//
5775	// * The current time in the endpoint's time zone is
5776	// later than or equal to the time specified by the QuietTime.Start property for
5777	// the application (or a campaign or journey that has custom quiet time
5778	// settings).
5779	//
5780	// * The current time in the endpoint's time zone is earlier than or
5781	// equal to the time specified by the QuietTime.End property for the application
5782	// (or a campaign or journey that has custom quiet time settings).
5783	//
5784	// If any of the
5785	// preceding conditions isn't met, the endpoint will receive messages from a
5786	// campaign or journey, even if quiet time is enabled. To override the default
5787	// quiet time settings for a specific campaign or journey, use the Campaign
5788	// resource or the Journey resource to define a custom quiet time for the campaign
5789	// or journey.
5790	QuietTime *QuietTime
5791}
5792
5793// Specifies the configuration and other settings for a campaign.
5794type WriteCampaignRequest struct {
5795
5796	// An array of requests that defines additional treatments for the campaign, in
5797	// addition to the default treatment for the campaign.
5798	AdditionalTreatments []WriteTreatmentResource
5799
5800	// The delivery configuration settings for sending the campaign through a custom
5801	// channel. This object is required if the MessageConfiguration object for the
5802	// campaign specifies a CustomMessage object.
5803	CustomDeliveryConfiguration *CustomDeliveryConfiguration
5804
5805	// A custom description of the campaign.
5806	Description *string
5807
5808	// The allocated percentage of users (segment members) who shouldn't receive
5809	// messages from the campaign.
5810	HoldoutPercent int32
5811
5812	// The settings for the AWS Lambda function to invoke as a code hook for the
5813	// campaign. You can use this hook to customize the segment that's used by the
5814	// campaign.
5815	Hook *CampaignHook
5816
5817	// Specifies whether to pause the campaign. A paused campaign doesn't run unless
5818	// you resume it by changing this value to false.
5819	IsPaused bool
5820
5821	// The messaging limits for the campaign.
5822	Limits *CampaignLimits
5823
5824	// The message configuration settings for the campaign.
5825	MessageConfiguration *MessageConfiguration
5826
5827	// A custom name for the campaign.
5828	Name *string
5829
5830	// The schedule settings for the campaign.
5831	Schedule *Schedule
5832
5833	// The unique identifier for the segment to associate with the campaign.
5834	SegmentId *string
5835
5836	// The version of the segment to associate with the campaign.
5837	SegmentVersion int32
5838
5839	// A string-to-string map of key-value pairs that defines the tags to associate
5840	// with the campaign. Each tag consists of a required tag key and an associated tag
5841	// value.
5842	Tags map[string]string
5843
5844	// The message template to use for the campaign.
5845	TemplateConfiguration *TemplateConfiguration
5846
5847	// A custom description of the default treatment for the campaign.
5848	TreatmentDescription *string
5849
5850	// A custom name of the default treatment for the campaign, if the campaign has
5851	// multiple treatments. A treatment is a variation of a campaign that's used for
5852	// A/B testing.
5853	TreatmentName *string
5854}
5855
5856// Specifies the Amazon Resource Name (ARN) of an event stream to publish events to
5857// and the AWS Identity and Access Management (IAM) role to use when publishing
5858// those events.
5859type WriteEventStream struct {
5860
5861	// The Amazon Resource Name (ARN) of the Amazon Kinesis data stream or Amazon
5862	// Kinesis Data Firehose delivery stream that you want to publish event data to.
5863	// For a Kinesis data stream, the ARN format is:
5864	// arn:aws:kinesis:region:account-id:stream/stream_name For a Kinesis Data Firehose
5865	// delivery stream, the ARN format is:
5866	// arn:aws:firehose:region:account-id:deliverystream/stream_name
5867	//
5868	// This member is required.
5869	DestinationStreamArn *string
5870
5871	// The AWS Identity and Access Management (IAM) role that authorizes Amazon
5872	// Pinpoint to publish event data to the stream in your AWS account.
5873	//
5874	// This member is required.
5875	RoleArn *string
5876}
5877
5878// Specifies the configuration and other settings for a journey.
5879type WriteJourneyRequest struct {
5880
5881	// The name of the journey. A journey name can contain a maximum of 150 characters.
5882	// The characters can be alphanumeric characters or symbols, such as underscores
5883	// (_) or hyphens (-). A journey name can't contain any spaces.
5884	//
5885	// This member is required.
5886	Name *string
5887
5888	// A map that contains a set of Activity objects, one object for each activity in
5889	// the journey. For each Activity object, the key is the unique identifier (string)
5890	// for an activity and the value is the settings for the activity. An activity
5891	// identifier can contain a maximum of 100 characters. The characters must be
5892	// alphanumeric characters.
5893	Activities map[string]Activity
5894
5895	// The date, in ISO 8601 format, when the journey was created.
5896	CreationDate *string
5897
5898	// The date, in ISO 8601 format, when the journey was last modified.
5899	LastModifiedDate *string
5900
5901	// The messaging and entry limits for the journey.
5902	Limits *JourneyLimits
5903
5904	// Specifies whether the journey's scheduled start and end times use each
5905	// participant's local time. To base the schedule on each participant's local time,
5906	// set this value to true.
5907	LocalTime bool
5908
5909	// The quiet time settings for the journey. Quiet time is a specific time range
5910	// when a journey doesn't send messages to participants, if all the following
5911	// conditions are met:
5912	//
5913	// * The EndpointDemographic.Timezone property of the endpoint
5914	// for the participant is set to a valid value.
5915	//
5916	// * The current time in the
5917	// participant's time zone is later than or equal to the time specified by the
5918	// QuietTime.Start property for the journey.
5919	//
5920	// * The current time in the
5921	// participant's time zone is earlier than or equal to the time specified by the
5922	// QuietTime.End property for the journey.
5923	//
5924	// If any of the preceding conditions
5925	// isn't met, the participant will receive messages from the journey, even if quiet
5926	// time is enabled.
5927	QuietTime *QuietTime
5928
5929	// The frequency with which Amazon Pinpoint evaluates segment and event data for
5930	// the journey, as a duration in ISO 8601 format.
5931	RefreshFrequency *string
5932
5933	// Specifies whether a journey should be refreshed on segment update.
5934	RefreshOnSegmentUpdate bool
5935
5936	// The schedule settings for the journey.
5937	Schedule *JourneySchedule
5938
5939	// The unique identifier for the first activity in the journey. The identifier for
5940	// this activity can contain a maximum of 128 characters. The characters must be
5941	// alphanumeric characters.
5942	StartActivity *string
5943
5944	// The segment that defines which users are participants in the journey.
5945	StartCondition *StartCondition
5946
5947	// The status of the journey. Valid values are:
5948	//
5949	// * DRAFT - Saves the journey and
5950	// doesn't publish it.
5951	//
5952	// * ACTIVE - Saves and publishes the journey. Depending on
5953	// the journey's schedule, the journey starts running immediately or at the
5954	// scheduled start time. If a journey's status is ACTIVE, you can't add, change, or
5955	// remove activities from it.
5956	//
5957	// PAUSED, CANCELLED, COMPLETED, and CLOSED states are
5958	// not supported in requests to create or update a journey. To cancel, pause, or
5959	// resume a journey, use the Journey State resource.
5960	State State
5961
5962	// Specifies whether endpoints in quiet hours should enter a wait till the end of
5963	// their quiet hours.
5964	WaitForQuietTime bool
5965}
5966
5967// Specifies the configuration, dimension, and other settings for a segment. A
5968// WriteSegmentRequest object can include a Dimensions object or a SegmentGroups
5969// object, but not both.
5970type WriteSegmentRequest struct {
5971
5972	// The criteria that define the dimensions for the segment.
5973	Dimensions *SegmentDimensions
5974
5975	// The name of the segment.
5976	Name *string
5977
5978	// The segment group to use and the dimensions to apply to the group's base
5979	// segments in order to build the segment. A segment group can consist of zero or
5980	// more base segments. Your request can include only one segment group.
5981	SegmentGroups *SegmentGroupList
5982
5983	// A string-to-string map of key-value pairs that defines the tags to associate
5984	// with the segment. Each tag consists of a required tag key and an associated tag
5985	// value.
5986	Tags map[string]string
5987}
5988
5989// Specifies the settings for a campaign treatment. A treatment is a variation of a
5990// campaign that's used for A/B testing of a campaign.
5991type WriteTreatmentResource struct {
5992
5993	// The allocated percentage of users (segment members) to send the treatment to.
5994	//
5995	// This member is required.
5996	SizePercent int32
5997
5998	// The delivery configuration settings for sending the treatment through a custom
5999	// channel. This object is required if the MessageConfiguration object for the
6000	// treatment specifies a CustomMessage object.
6001	CustomDeliveryConfiguration *CustomDeliveryConfiguration
6002
6003	// The message configuration settings for the treatment.
6004	MessageConfiguration *MessageConfiguration
6005
6006	// The schedule settings for the treatment.
6007	Schedule *Schedule
6008
6009	// The message template to use for the treatment.
6010	TemplateConfiguration *TemplateConfiguration
6011
6012	// A custom description of the treatment.
6013	TreatmentDescription *string
6014
6015	// A custom name for the treatment.
6016	TreatmentName *string
6017}
6018