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