aws-sdk-pinpoint 1.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
File without changes
@@ -0,0 +1,23 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module Pinpoint
10
+ module Errors
11
+
12
+ extend Aws::Errors::DynamicErrors
13
+
14
+ # Raised when calling #load or #data on a resource class that can not be
15
+ # loaded. This can happen when:
16
+ #
17
+ # * A resource class has identifiers, but no data attributes.
18
+ # * Resource data is only available when making an API call that
19
+ # enumerates all resources of that type.
20
+ class ResourceNotLoadable < RuntimeError; end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module Pinpoint
10
+ class Resource
11
+
12
+ # @param options ({})
13
+ # @option options [Client] :client
14
+ def initialize(options = {})
15
+ @client = options[:client] || Client.new(options)
16
+ end
17
+
18
+ # @return [Client]
19
+ def client
20
+ @client
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,3176 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module Pinpoint
10
+ module Types
11
+
12
+ # @note When making an API call, pass APNSChannelRequest
13
+ # data as a hash:
14
+ #
15
+ # {
16
+ # certificate: "__string",
17
+ # private_key: "__string",
18
+ # }
19
+ # @!attribute [rw] certificate
20
+ # The distribution certificate from Apple.
21
+ # @return [String]
22
+ #
23
+ # @!attribute [rw] private_key
24
+ # The certificate private key.
25
+ # @return [String]
26
+ class APNSChannelRequest < Struct.new(
27
+ :certificate,
28
+ :private_key)
29
+ include Aws::Structure
30
+ end
31
+
32
+ # @!attribute [rw] application_id
33
+ # @return [String]
34
+ #
35
+ # @!attribute [rw] creation_date
36
+ # When was this segment created
37
+ # @return [String]
38
+ #
39
+ # @!attribute [rw] id
40
+ # @return [String]
41
+ #
42
+ # @!attribute [rw] is_archived
43
+ # Is this channel archived
44
+ # @return [Boolean]
45
+ #
46
+ # @!attribute [rw] last_modified_by
47
+ # Who last updated this entry
48
+ # @return [String]
49
+ #
50
+ # @!attribute [rw] last_modified_date
51
+ # Last date this was updated
52
+ # @return [String]
53
+ #
54
+ # @!attribute [rw] platform
55
+ # The platform type. Will be APNS.
56
+ # @return [String]
57
+ #
58
+ # @!attribute [rw] version
59
+ # Version of channel
60
+ # @return [Integer]
61
+ class APNSChannelResponse < Struct.new(
62
+ :application_id,
63
+ :creation_date,
64
+ :id,
65
+ :is_archived,
66
+ :last_modified_by,
67
+ :last_modified_date,
68
+ :platform,
69
+ :version)
70
+ include Aws::Structure
71
+ end
72
+
73
+ # @!attribute [rw] item
74
+ # List of campaign activities
75
+ # @return [Array<Types::ActivityResponse>]
76
+ class ActivitiesResponse < Struct.new(
77
+ :item)
78
+ include Aws::Structure
79
+ end
80
+
81
+ # @!attribute [rw] application_id
82
+ # The ID of the application to which the campaign applies.
83
+ # @return [String]
84
+ #
85
+ # @!attribute [rw] campaign_id
86
+ # The ID of the campaign to which the activity applies.
87
+ # @return [String]
88
+ #
89
+ # @!attribute [rw] end
90
+ # The actual time the activity was marked CANCELLED or COMPLETED.
91
+ # Provided in ISO 8601 format.
92
+ # @return [String]
93
+ #
94
+ # @!attribute [rw] id
95
+ # The unique activity ID.
96
+ # @return [String]
97
+ #
98
+ # @!attribute [rw] result
99
+ # Indicates whether the activity succeeded. Valid values: SUCCESS,
100
+ # FAIL
101
+ # @return [String]
102
+ #
103
+ # @!attribute [rw] scheduled_start
104
+ # The scheduled start time for the activity in ISO 8601 format.
105
+ # @return [String]
106
+ #
107
+ # @!attribute [rw] start
108
+ # The actual start time of the activity in ISO 8601 format.
109
+ # @return [String]
110
+ #
111
+ # @!attribute [rw] state
112
+ # The state of the activity. Valid values: PENDING, INITIALIZING,
113
+ # RUNNING, PAUSED, CANCELLED, COMPLETED
114
+ # @return [String]
115
+ #
116
+ # @!attribute [rw] successful_endpoint_count
117
+ # The total number of endpoints to which the campaign successfully
118
+ # delivered messages.
119
+ # @return [Integer]
120
+ #
121
+ # @!attribute [rw] total_endpoint_count
122
+ # The total number of endpoints to which the campaign attempts to
123
+ # deliver messages.
124
+ # @return [Integer]
125
+ #
126
+ # @!attribute [rw] treatment_id
127
+ # The ID of a variation of the campaign used for A/B testing.
128
+ # @return [String]
129
+ class ActivityResponse < Struct.new(
130
+ :application_id,
131
+ :campaign_id,
132
+ :end,
133
+ :id,
134
+ :result,
135
+ :scheduled_start,
136
+ :start,
137
+ :state,
138
+ :successful_endpoint_count,
139
+ :total_endpoint_count,
140
+ :treatment_id)
141
+ include Aws::Structure
142
+ end
143
+
144
+ # @!attribute [rw] application_id
145
+ # The unique ID for the application.
146
+ # @return [String]
147
+ #
148
+ # @!attribute [rw] last_modified_date
149
+ # The date that the settings were last updated in ISO 8601 format.
150
+ # @return [String]
151
+ #
152
+ # @!attribute [rw] limits
153
+ # The default campaign limits for the app. These limits apply to each
154
+ # campaign for the app, unless the campaign overrides the default with
155
+ # limits of its own.
156
+ # @return [Types::CampaignLimits]
157
+ #
158
+ # @!attribute [rw] quiet_time
159
+ # The default quiet time for the app. Each campaign for this app sends
160
+ # no messages during this time unless the campaign overrides the
161
+ # default with a quiet time of its own.
162
+ # @return [Types::QuietTime]
163
+ class ApplicationSettingsResource < Struct.new(
164
+ :application_id,
165
+ :last_modified_date,
166
+ :limits,
167
+ :quiet_time)
168
+ include Aws::Structure
169
+ end
170
+
171
+ # @note When making an API call, pass AttributeDimension
172
+ # data as a hash:
173
+ #
174
+ # {
175
+ # attribute_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
176
+ # values: ["__string"],
177
+ # }
178
+ # @!attribute [rw] attribute_type
179
+ # @return [String]
180
+ #
181
+ # @!attribute [rw] values
182
+ # @return [Array<String>]
183
+ class AttributeDimension < Struct.new(
184
+ :attribute_type,
185
+ :values)
186
+ include Aws::Structure
187
+ end
188
+
189
+ # @note When making an API call, pass CampaignLimits
190
+ # data as a hash:
191
+ #
192
+ # {
193
+ # daily: 1,
194
+ # total: 1,
195
+ # }
196
+ # @!attribute [rw] daily
197
+ # The maximum number of messages that the campaign can send daily.
198
+ # @return [Integer]
199
+ #
200
+ # @!attribute [rw] total
201
+ # The maximum total number of messages that the campaign can send.
202
+ # @return [Integer]
203
+ class CampaignLimits < Struct.new(
204
+ :daily,
205
+ :total)
206
+ include Aws::Structure
207
+ end
208
+
209
+ # @!attribute [rw] additional_treatments
210
+ # Treatments that are defined in addition to the default treatment.
211
+ # @return [Array<Types::TreatmentResource>]
212
+ #
213
+ # @!attribute [rw] application_id
214
+ # The ID of the application to which the campaign applies.
215
+ # @return [String]
216
+ #
217
+ # @!attribute [rw] creation_date
218
+ # The date the campaign was created in ISO 8601 format.
219
+ # @return [String]
220
+ #
221
+ # @!attribute [rw] default_state
222
+ # The status of the campaign's default treatment. Only present for
223
+ # A/B test campaigns.
224
+ # @return [Types::CampaignState]
225
+ #
226
+ # @!attribute [rw] description
227
+ # A description of the campaign.
228
+ # @return [String]
229
+ #
230
+ # @!attribute [rw] holdout_percent
231
+ # The allocated percentage of end users who will not receive messages
232
+ # from this campaign.
233
+ # @return [Integer]
234
+ #
235
+ # @!attribute [rw] id
236
+ # The unique campaign ID.
237
+ # @return [String]
238
+ #
239
+ # @!attribute [rw] is_paused
240
+ # Indicates whether the campaign is paused. A paused campaign does not
241
+ # send messages unless you resume it by setting IsPaused to false.
242
+ # @return [Boolean]
243
+ #
244
+ # @!attribute [rw] last_modified_date
245
+ # The date the campaign was last updated in ISO 8601 format.
246
+ # @return [String]
247
+ #
248
+ # @!attribute [rw] limits
249
+ # The campaign limits settings.
250
+ # @return [Types::CampaignLimits]
251
+ #
252
+ # @!attribute [rw] message_configuration
253
+ # The message configuration settings.
254
+ # @return [Types::MessageConfiguration]
255
+ #
256
+ # @!attribute [rw] name
257
+ # The custom name of the campaign.
258
+ # @return [String]
259
+ #
260
+ # @!attribute [rw] schedule
261
+ # The campaign schedule.
262
+ # @return [Types::Schedule]
263
+ #
264
+ # @!attribute [rw] segment_id
265
+ # The ID of the segment to which the campaign sends messages.
266
+ # @return [String]
267
+ #
268
+ # @!attribute [rw] segment_version
269
+ # The version of the segment to which the campaign sends messages.
270
+ # @return [Integer]
271
+ #
272
+ # @!attribute [rw] state
273
+ # The campaign status. An A/B test campaign will have a status of
274
+ # COMPLETED only when all treatments have a status of COMPLETED.
275
+ # @return [Types::CampaignState]
276
+ #
277
+ # @!attribute [rw] treatment_description
278
+ # A custom description for the treatment.
279
+ # @return [String]
280
+ #
281
+ # @!attribute [rw] treatment_name
282
+ # The custom name of a variation of the campaign used for A/B testing.
283
+ # @return [String]
284
+ #
285
+ # @!attribute [rw] version
286
+ # The campaign version number.
287
+ # @return [Integer]
288
+ class CampaignResponse < Struct.new(
289
+ :additional_treatments,
290
+ :application_id,
291
+ :creation_date,
292
+ :default_state,
293
+ :description,
294
+ :holdout_percent,
295
+ :id,
296
+ :is_paused,
297
+ :last_modified_date,
298
+ :limits,
299
+ :message_configuration,
300
+ :name,
301
+ :schedule,
302
+ :segment_id,
303
+ :segment_version,
304
+ :state,
305
+ :treatment_description,
306
+ :treatment_name,
307
+ :version)
308
+ include Aws::Structure
309
+ end
310
+
311
+ # @!attribute [rw] campaign_status
312
+ # @return [String]
313
+ class CampaignState < Struct.new(
314
+ :campaign_status)
315
+ include Aws::Structure
316
+ end
317
+
318
+ # @!attribute [rw] item
319
+ # A list of campaigns.
320
+ # @return [Array<Types::CampaignResponse>]
321
+ #
322
+ # @!attribute [rw] next_token
323
+ # The string that you use in a subsequent request to get the next page
324
+ # of results in a paginated response.
325
+ # @return [String]
326
+ class CampaignsResponse < Struct.new(
327
+ :item,
328
+ :next_token)
329
+ include Aws::Structure
330
+ end
331
+
332
+ # @note When making an API call, pass CreateCampaignRequest
333
+ # data as a hash:
334
+ #
335
+ # {
336
+ # application_id: "__string", # required
337
+ # write_campaign_request: { # required
338
+ # additional_treatments: [
339
+ # {
340
+ # message_configuration: {
341
+ # apns_message: {
342
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
343
+ # body: "__string",
344
+ # image_icon_url: "__string",
345
+ # image_url: "__string",
346
+ # json_body: "__string",
347
+ # media_url: "__string",
348
+ # silent_push: false,
349
+ # title: "__string",
350
+ # url: "__string",
351
+ # },
352
+ # default_message: {
353
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
354
+ # body: "__string",
355
+ # image_icon_url: "__string",
356
+ # image_url: "__string",
357
+ # json_body: "__string",
358
+ # media_url: "__string",
359
+ # silent_push: false,
360
+ # title: "__string",
361
+ # url: "__string",
362
+ # },
363
+ # gcm_message: {
364
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
365
+ # body: "__string",
366
+ # image_icon_url: "__string",
367
+ # image_url: "__string",
368
+ # json_body: "__string",
369
+ # media_url: "__string",
370
+ # silent_push: false,
371
+ # title: "__string",
372
+ # url: "__string",
373
+ # },
374
+ # },
375
+ # schedule: {
376
+ # end_time: "__string",
377
+ # frequency: "ONCE", # accepts ONCE, HOURLY, DAILY, WEEKLY, MONTHLY
378
+ # is_local_time: false,
379
+ # quiet_time: {
380
+ # end: "__string",
381
+ # start: "__string",
382
+ # },
383
+ # start_time: "__string",
384
+ # timezone: "__string",
385
+ # },
386
+ # size_percent: 1,
387
+ # treatment_description: "__string",
388
+ # treatment_name: "__string",
389
+ # },
390
+ # ],
391
+ # description: "__string",
392
+ # holdout_percent: 1,
393
+ # is_paused: false,
394
+ # limits: {
395
+ # daily: 1,
396
+ # total: 1,
397
+ # },
398
+ # message_configuration: {
399
+ # apns_message: {
400
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
401
+ # body: "__string",
402
+ # image_icon_url: "__string",
403
+ # image_url: "__string",
404
+ # json_body: "__string",
405
+ # media_url: "__string",
406
+ # silent_push: false,
407
+ # title: "__string",
408
+ # url: "__string",
409
+ # },
410
+ # default_message: {
411
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
412
+ # body: "__string",
413
+ # image_icon_url: "__string",
414
+ # image_url: "__string",
415
+ # json_body: "__string",
416
+ # media_url: "__string",
417
+ # silent_push: false,
418
+ # title: "__string",
419
+ # url: "__string",
420
+ # },
421
+ # gcm_message: {
422
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
423
+ # body: "__string",
424
+ # image_icon_url: "__string",
425
+ # image_url: "__string",
426
+ # json_body: "__string",
427
+ # media_url: "__string",
428
+ # silent_push: false,
429
+ # title: "__string",
430
+ # url: "__string",
431
+ # },
432
+ # },
433
+ # name: "__string",
434
+ # schedule: {
435
+ # end_time: "__string",
436
+ # frequency: "ONCE", # accepts ONCE, HOURLY, DAILY, WEEKLY, MONTHLY
437
+ # is_local_time: false,
438
+ # quiet_time: {
439
+ # end: "__string",
440
+ # start: "__string",
441
+ # },
442
+ # start_time: "__string",
443
+ # timezone: "__string",
444
+ # },
445
+ # segment_id: "__string",
446
+ # segment_version: 1,
447
+ # treatment_description: "__string",
448
+ # treatment_name: "__string",
449
+ # },
450
+ # }
451
+ # @!attribute [rw] application_id
452
+ # @return [String]
453
+ #
454
+ # @!attribute [rw] write_campaign_request
455
+ # @return [Types::WriteCampaignRequest]
456
+ class CreateCampaignRequest < Struct.new(
457
+ :application_id,
458
+ :write_campaign_request)
459
+ include Aws::Structure
460
+ end
461
+
462
+ # @!attribute [rw] campaign_response
463
+ # @return [Types::CampaignResponse]
464
+ class CreateCampaignResponse < Struct.new(
465
+ :campaign_response)
466
+ include Aws::Structure
467
+ end
468
+
469
+ # @note When making an API call, pass CreateImportJobRequest
470
+ # data as a hash:
471
+ #
472
+ # {
473
+ # application_id: "__string", # required
474
+ # import_job_request: { # required
475
+ # define_segment: false,
476
+ # external_id: "__string",
477
+ # format: "CSV", # accepts CSV, JSON
478
+ # register_endpoints: false,
479
+ # role_arn: "__string",
480
+ # s3_url: "__string",
481
+ # segment_id: "__string",
482
+ # segment_name: "__string",
483
+ # },
484
+ # }
485
+ # @!attribute [rw] application_id
486
+ # @return [String]
487
+ #
488
+ # @!attribute [rw] import_job_request
489
+ # @return [Types::ImportJobRequest]
490
+ class CreateImportJobRequest < Struct.new(
491
+ :application_id,
492
+ :import_job_request)
493
+ include Aws::Structure
494
+ end
495
+
496
+ # @!attribute [rw] import_job_response
497
+ # @return [Types::ImportJobResponse]
498
+ class CreateImportJobResponse < Struct.new(
499
+ :import_job_response)
500
+ include Aws::Structure
501
+ end
502
+
503
+ # @note When making an API call, pass CreateSegmentRequest
504
+ # data as a hash:
505
+ #
506
+ # {
507
+ # application_id: "__string", # required
508
+ # write_segment_request: { # required
509
+ # dimensions: {
510
+ # attributes: {
511
+ # "__string" => {
512
+ # attribute_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
513
+ # values: ["__string"],
514
+ # },
515
+ # },
516
+ # behavior: {
517
+ # recency: {
518
+ # duration: "HR_24", # accepts HR_24, DAY_7, DAY_14, DAY_30
519
+ # recency_type: "ACTIVE", # accepts ACTIVE, INACTIVE
520
+ # },
521
+ # },
522
+ # demographic: {
523
+ # app_version: {
524
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
525
+ # values: ["__string"],
526
+ # },
527
+ # device_type: {
528
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
529
+ # values: ["__string"],
530
+ # },
531
+ # make: {
532
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
533
+ # values: ["__string"],
534
+ # },
535
+ # model: {
536
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
537
+ # values: ["__string"],
538
+ # },
539
+ # platform: {
540
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
541
+ # values: ["__string"],
542
+ # },
543
+ # },
544
+ # location: {
545
+ # country: {
546
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
547
+ # values: ["__string"],
548
+ # },
549
+ # },
550
+ # },
551
+ # name: "__string",
552
+ # },
553
+ # }
554
+ # @!attribute [rw] application_id
555
+ # @return [String]
556
+ #
557
+ # @!attribute [rw] write_segment_request
558
+ # @return [Types::WriteSegmentRequest]
559
+ class CreateSegmentRequest < Struct.new(
560
+ :application_id,
561
+ :write_segment_request)
562
+ include Aws::Structure
563
+ end
564
+
565
+ # @!attribute [rw] segment_response
566
+ # @return [Types::SegmentResponse]
567
+ class CreateSegmentResponse < Struct.new(
568
+ :segment_response)
569
+ include Aws::Structure
570
+ end
571
+
572
+ # @note When making an API call, pass DeleteApnsChannelRequest
573
+ # data as a hash:
574
+ #
575
+ # {
576
+ # application_id: "__string", # required
577
+ # }
578
+ # @!attribute [rw] application_id
579
+ # @return [String]
580
+ class DeleteApnsChannelRequest < Struct.new(
581
+ :application_id)
582
+ include Aws::Structure
583
+ end
584
+
585
+ # @!attribute [rw] apns_channel_response
586
+ # @return [Types::APNSChannelResponse]
587
+ class DeleteApnsChannelResponse < Struct.new(
588
+ :apns_channel_response)
589
+ include Aws::Structure
590
+ end
591
+
592
+ # @note When making an API call, pass DeleteCampaignRequest
593
+ # data as a hash:
594
+ #
595
+ # {
596
+ # application_id: "__string", # required
597
+ # campaign_id: "__string", # required
598
+ # }
599
+ # @!attribute [rw] application_id
600
+ # @return [String]
601
+ #
602
+ # @!attribute [rw] campaign_id
603
+ # @return [String]
604
+ class DeleteCampaignRequest < Struct.new(
605
+ :application_id,
606
+ :campaign_id)
607
+ include Aws::Structure
608
+ end
609
+
610
+ # @!attribute [rw] campaign_response
611
+ # @return [Types::CampaignResponse]
612
+ class DeleteCampaignResponse < Struct.new(
613
+ :campaign_response)
614
+ include Aws::Structure
615
+ end
616
+
617
+ # @note When making an API call, pass DeleteGcmChannelRequest
618
+ # data as a hash:
619
+ #
620
+ # {
621
+ # application_id: "__string", # required
622
+ # }
623
+ # @!attribute [rw] application_id
624
+ # @return [String]
625
+ class DeleteGcmChannelRequest < Struct.new(
626
+ :application_id)
627
+ include Aws::Structure
628
+ end
629
+
630
+ # @!attribute [rw] gcm_channel_response
631
+ # @return [Types::GCMChannelResponse]
632
+ class DeleteGcmChannelResponse < Struct.new(
633
+ :gcm_channel_response)
634
+ include Aws::Structure
635
+ end
636
+
637
+ # @note When making an API call, pass DeleteSegmentRequest
638
+ # data as a hash:
639
+ #
640
+ # {
641
+ # application_id: "__string", # required
642
+ # segment_id: "__string", # required
643
+ # }
644
+ # @!attribute [rw] application_id
645
+ # @return [String]
646
+ #
647
+ # @!attribute [rw] segment_id
648
+ # @return [String]
649
+ class DeleteSegmentRequest < Struct.new(
650
+ :application_id,
651
+ :segment_id)
652
+ include Aws::Structure
653
+ end
654
+
655
+ # @!attribute [rw] segment_response
656
+ # @return [Types::SegmentResponse]
657
+ class DeleteSegmentResponse < Struct.new(
658
+ :segment_response)
659
+ include Aws::Structure
660
+ end
661
+
662
+ # @note When making an API call, pass EndpointBatchItem
663
+ # data as a hash:
664
+ #
665
+ # {
666
+ # address: "__string",
667
+ # attributes: {
668
+ # "__string" => ["__string"],
669
+ # },
670
+ # channel_type: "APNS", # accepts APNS, GCM
671
+ # demographic: {
672
+ # app_version: "__string",
673
+ # locale: "__string",
674
+ # make: "__string",
675
+ # model: "__string",
676
+ # model_version: "__string",
677
+ # platform: "__string",
678
+ # platform_version: "__string",
679
+ # timezone: "__string",
680
+ # },
681
+ # effective_date: "__string",
682
+ # endpoint_status: "__string",
683
+ # id: "__string",
684
+ # location: {
685
+ # city: "__string",
686
+ # country: "__string",
687
+ # latitude: 1.0,
688
+ # longitude: 1.0,
689
+ # postal_code: "__string",
690
+ # region: "__string",
691
+ # },
692
+ # metrics: {
693
+ # "__string" => 1.0,
694
+ # },
695
+ # opt_out: "__string",
696
+ # request_id: "__string",
697
+ # user: {
698
+ # user_attributes: {
699
+ # "__string" => ["__string"],
700
+ # },
701
+ # user_id: "__string",
702
+ # },
703
+ # }
704
+ # @!attribute [rw] address
705
+ # The address or token of the endpoint.
706
+ # @return [String]
707
+ #
708
+ # @!attribute [rw] attributes
709
+ # @return [Hash<String,Array<String>>]
710
+ #
711
+ # @!attribute [rw] channel_type
712
+ # @return [String]
713
+ #
714
+ # @!attribute [rw] demographic
715
+ # The endpoint demographic attributes.
716
+ # @return [Types::EndpointDemographic]
717
+ #
718
+ # @!attribute [rw] effective_date
719
+ # The last time the endpoint was updated. Provided in ISO 8601 format.
720
+ # @return [String]
721
+ #
722
+ # @!attribute [rw] endpoint_status
723
+ # The endpoint status. Can be either ACTIVE or INACTIVE. Will be set
724
+ # to INACTIVE if a delivery fails. Will be set to ACTIVE if the
725
+ # address is updated.
726
+ # @return [String]
727
+ #
728
+ # @!attribute [rw] id
729
+ # @return [String]
730
+ #
731
+ # @!attribute [rw] location
732
+ # The endpoint location attributes.
733
+ # @return [Types::EndpointLocation]
734
+ #
735
+ # @!attribute [rw] metrics
736
+ # @return [Hash<String,Float>]
737
+ #
738
+ # @!attribute [rw] opt_out
739
+ # Indicates whether a user has opted out of receiving messages with
740
+ # one of the following values: ALL – User receives all messages. NONE
741
+ # – User receives no messages.
742
+ # @return [String]
743
+ #
744
+ # @!attribute [rw] request_id
745
+ # The unique ID for the most recent request to update the endpoint.
746
+ # @return [String]
747
+ #
748
+ # @!attribute [rw] user
749
+ # Custom user-specific attributes that your app reports to Amazon
750
+ # Pinpoint.
751
+ # @return [Types::EndpointUser]
752
+ class EndpointBatchItem < Struct.new(
753
+ :address,
754
+ :attributes,
755
+ :channel_type,
756
+ :demographic,
757
+ :effective_date,
758
+ :endpoint_status,
759
+ :id,
760
+ :location,
761
+ :metrics,
762
+ :opt_out,
763
+ :request_id,
764
+ :user)
765
+ include Aws::Structure
766
+ end
767
+
768
+ # @note When making an API call, pass EndpointBatchRequest
769
+ # data as a hash:
770
+ #
771
+ # {
772
+ # item: [
773
+ # {
774
+ # address: "__string",
775
+ # attributes: {
776
+ # "__string" => ["__string"],
777
+ # },
778
+ # channel_type: "APNS", # accepts APNS, GCM
779
+ # demographic: {
780
+ # app_version: "__string",
781
+ # locale: "__string",
782
+ # make: "__string",
783
+ # model: "__string",
784
+ # model_version: "__string",
785
+ # platform: "__string",
786
+ # platform_version: "__string",
787
+ # timezone: "__string",
788
+ # },
789
+ # effective_date: "__string",
790
+ # endpoint_status: "__string",
791
+ # id: "__string",
792
+ # location: {
793
+ # city: "__string",
794
+ # country: "__string",
795
+ # latitude: 1.0,
796
+ # longitude: 1.0,
797
+ # postal_code: "__string",
798
+ # region: "__string",
799
+ # },
800
+ # metrics: {
801
+ # "__string" => 1.0,
802
+ # },
803
+ # opt_out: "__string",
804
+ # request_id: "__string",
805
+ # user: {
806
+ # user_attributes: {
807
+ # "__string" => ["__string"],
808
+ # },
809
+ # user_id: "__string",
810
+ # },
811
+ # },
812
+ # ],
813
+ # }
814
+ # @!attribute [rw] item
815
+ # List of items to update. Maximum 100 items
816
+ # @return [Array<Types::EndpointBatchItem>]
817
+ class EndpointBatchRequest < Struct.new(
818
+ :item)
819
+ include Aws::Structure
820
+ end
821
+
822
+ # @note When making an API call, pass EndpointDemographic
823
+ # data as a hash:
824
+ #
825
+ # {
826
+ # app_version: "__string",
827
+ # locale: "__string",
828
+ # make: "__string",
829
+ # model: "__string",
830
+ # model_version: "__string",
831
+ # platform: "__string",
832
+ # platform_version: "__string",
833
+ # timezone: "__string",
834
+ # }
835
+ # @!attribute [rw] app_version
836
+ # The version of the application associated with the endpoint.
837
+ # @return [String]
838
+ #
839
+ # @!attribute [rw] locale
840
+ # The endpoint locale in the following format: The ISO 639-1 alpha-2
841
+ # code, followed by an underscore, followed by an ISO 3166-1 alpha-2
842
+ # value.
843
+ # @return [String]
844
+ #
845
+ # @!attribute [rw] make
846
+ # The endpoint make, such as such as Apple or Samsung.
847
+ # @return [String]
848
+ #
849
+ # @!attribute [rw] model
850
+ # The endpoint model, such as iPhone.
851
+ # @return [String]
852
+ #
853
+ # @!attribute [rw] model_version
854
+ # The endpoint model version.
855
+ # @return [String]
856
+ #
857
+ # @!attribute [rw] platform
858
+ # The endpoint platform, such as ios or android.
859
+ # @return [String]
860
+ #
861
+ # @!attribute [rw] platform_version
862
+ # The endpoint platform version.
863
+ # @return [String]
864
+ #
865
+ # @!attribute [rw] timezone
866
+ # The timezone of the endpoint. Specified as a tz database value, such
867
+ # as Americas/Los\_Angeles.
868
+ # @return [String]
869
+ class EndpointDemographic < Struct.new(
870
+ :app_version,
871
+ :locale,
872
+ :make,
873
+ :model,
874
+ :model_version,
875
+ :platform,
876
+ :platform_version,
877
+ :timezone)
878
+ include Aws::Structure
879
+ end
880
+
881
+ # @note When making an API call, pass EndpointLocation
882
+ # data as a hash:
883
+ #
884
+ # {
885
+ # city: "__string",
886
+ # country: "__string",
887
+ # latitude: 1.0,
888
+ # longitude: 1.0,
889
+ # postal_code: "__string",
890
+ # region: "__string",
891
+ # }
892
+ # @!attribute [rw] city
893
+ # The city where the endpoint is located.
894
+ # @return [String]
895
+ #
896
+ # @!attribute [rw] country
897
+ # Country according to ISO 3166-1 Alpha-2 codes. For example, US.
898
+ # @return [String]
899
+ #
900
+ # @!attribute [rw] latitude
901
+ # The latitude of the endpoint location. Rounded to one decimal
902
+ # (Roughly corresponding to a mile).
903
+ # @return [Float]
904
+ #
905
+ # @!attribute [rw] longitude
906
+ # The longitude of the endpoint location. Rounded to one decimal
907
+ # (Roughly corresponding to a mile).
908
+ # @return [Float]
909
+ #
910
+ # @!attribute [rw] postal_code
911
+ # The postal code or zip code of the endpoint.
912
+ # @return [String]
913
+ #
914
+ # @!attribute [rw] region
915
+ # The region of the endpoint location. For example, corresponds to a
916
+ # state in US.
917
+ # @return [String]
918
+ class EndpointLocation < Struct.new(
919
+ :city,
920
+ :country,
921
+ :latitude,
922
+ :longitude,
923
+ :postal_code,
924
+ :region)
925
+ include Aws::Structure
926
+ end
927
+
928
+ # @note When making an API call, pass EndpointRequest
929
+ # data as a hash:
930
+ #
931
+ # {
932
+ # address: "__string",
933
+ # attributes: {
934
+ # "__string" => ["__string"],
935
+ # },
936
+ # channel_type: "APNS", # accepts APNS, GCM
937
+ # demographic: {
938
+ # app_version: "__string",
939
+ # locale: "__string",
940
+ # make: "__string",
941
+ # model: "__string",
942
+ # model_version: "__string",
943
+ # platform: "__string",
944
+ # platform_version: "__string",
945
+ # timezone: "__string",
946
+ # },
947
+ # effective_date: "__string",
948
+ # endpoint_status: "__string",
949
+ # location: {
950
+ # city: "__string",
951
+ # country: "__string",
952
+ # latitude: 1.0,
953
+ # longitude: 1.0,
954
+ # postal_code: "__string",
955
+ # region: "__string",
956
+ # },
957
+ # metrics: {
958
+ # "__string" => 1.0,
959
+ # },
960
+ # opt_out: "__string",
961
+ # request_id: "__string",
962
+ # user: {
963
+ # user_attributes: {
964
+ # "__string" => ["__string"],
965
+ # },
966
+ # user_id: "__string",
967
+ # },
968
+ # }
969
+ # @!attribute [rw] address
970
+ # The address or token of the endpoint.
971
+ # @return [String]
972
+ #
973
+ # @!attribute [rw] attributes
974
+ # @return [Hash<String,Array<String>>]
975
+ #
976
+ # @!attribute [rw] channel_type
977
+ # @return [String]
978
+ #
979
+ # @!attribute [rw] demographic
980
+ # The endpoint demographic attributes.
981
+ # @return [Types::EndpointDemographic]
982
+ #
983
+ # @!attribute [rw] effective_date
984
+ # The last time the endpoint was updated. Provided in ISO 8601 format.
985
+ # @return [String]
986
+ #
987
+ # @!attribute [rw] endpoint_status
988
+ # The endpoint status. Can be either ACTIVE or INACTIVE. Will be set
989
+ # to INACTIVE if a delivery fails. Will be set to ACTIVE if the
990
+ # address is updated.
991
+ # @return [String]
992
+ #
993
+ # @!attribute [rw] location
994
+ # The endpoint location attributes.
995
+ # @return [Types::EndpointLocation]
996
+ #
997
+ # @!attribute [rw] metrics
998
+ # @return [Hash<String,Float>]
999
+ #
1000
+ # @!attribute [rw] opt_out
1001
+ # Indicates whether a user has opted out of receiving messages with
1002
+ # one of the following values: ALL – User receives all messages. NONE
1003
+ # – User receives no messages.
1004
+ # @return [String]
1005
+ #
1006
+ # @!attribute [rw] request_id
1007
+ # The unique ID for the most recent request to update the endpoint.
1008
+ # @return [String]
1009
+ #
1010
+ # @!attribute [rw] user
1011
+ # Custom user-specific attributes that your app reports to Amazon
1012
+ # Pinpoint.
1013
+ # @return [Types::EndpointUser]
1014
+ class EndpointRequest < Struct.new(
1015
+ :address,
1016
+ :attributes,
1017
+ :channel_type,
1018
+ :demographic,
1019
+ :effective_date,
1020
+ :endpoint_status,
1021
+ :location,
1022
+ :metrics,
1023
+ :opt_out,
1024
+ :request_id,
1025
+ :user)
1026
+ include Aws::Structure
1027
+ end
1028
+
1029
+ # @!attribute [rw] address
1030
+ # The address or token of the endpoint.
1031
+ # @return [String]
1032
+ #
1033
+ # @!attribute [rw] application_id
1034
+ # The ID of the application associated with the endpoint.
1035
+ # @return [String]
1036
+ #
1037
+ # @!attribute [rw] attributes
1038
+ # @return [Hash<String,Array<String>>]
1039
+ #
1040
+ # @!attribute [rw] channel_type
1041
+ # @return [String]
1042
+ #
1043
+ # @!attribute [rw] cohort_id
1044
+ # A number from 0 - 99 that represents the cohort the endpoint is
1045
+ # assigned to. Endpoints are grouped into cohorts randomly, and each
1046
+ # cohort contains approximately 1 percent of the endpoints for an app.
1047
+ # Amazon Pinpoint assigns cohorts to the holdout or treatment
1048
+ # allocations for a campaign.
1049
+ # @return [String]
1050
+ #
1051
+ # @!attribute [rw] creation_date
1052
+ # The last time the endpoint was created. Provided in ISO 8601 format.
1053
+ # @return [String]
1054
+ #
1055
+ # @!attribute [rw] demographic
1056
+ # The endpoint demographic attributes.
1057
+ # @return [Types::EndpointDemographic]
1058
+ #
1059
+ # @!attribute [rw] effective_date
1060
+ # The last time the endpoint was updated. Provided in ISO 8601 format.
1061
+ # @return [String]
1062
+ #
1063
+ # @!attribute [rw] endpoint_status
1064
+ # The endpoint status. Can be either ACTIVE or INACTIVE. Will be set
1065
+ # to INACTIVE if a delivery fails. Will be set to ACTIVE if the
1066
+ # address is updated.
1067
+ # @return [String]
1068
+ #
1069
+ # @!attribute [rw] id
1070
+ # The unique ID that you assigned to the endpoint. The ID should be a
1071
+ # globally unique identifier (GUID) to ensure that it is unique
1072
+ # compared to all other endpoints for the application.
1073
+ # @return [String]
1074
+ #
1075
+ # @!attribute [rw] location
1076
+ # The endpoint location attributes.
1077
+ # @return [Types::EndpointLocation]
1078
+ #
1079
+ # @!attribute [rw] metrics
1080
+ # @return [Hash<String,Float>]
1081
+ #
1082
+ # @!attribute [rw] opt_out
1083
+ # Indicates whether a user has opted out of receiving messages with
1084
+ # one of the following values: ALL – User receives all messages. NONE
1085
+ # – User receives no messages.
1086
+ # @return [String]
1087
+ #
1088
+ # @!attribute [rw] request_id
1089
+ # The unique ID for the most recent request to update the endpoint.
1090
+ # @return [String]
1091
+ #
1092
+ # @!attribute [rw] shard_id
1093
+ # The ShardId of endpoint
1094
+ # @return [String]
1095
+ #
1096
+ # @!attribute [rw] user
1097
+ # Custom user-specific attributes that your app reports to Amazon
1098
+ # Pinpoint.
1099
+ # @return [Types::EndpointUser]
1100
+ class EndpointResponse < Struct.new(
1101
+ :address,
1102
+ :application_id,
1103
+ :attributes,
1104
+ :channel_type,
1105
+ :cohort_id,
1106
+ :creation_date,
1107
+ :demographic,
1108
+ :effective_date,
1109
+ :endpoint_status,
1110
+ :id,
1111
+ :location,
1112
+ :metrics,
1113
+ :opt_out,
1114
+ :request_id,
1115
+ :shard_id,
1116
+ :user)
1117
+ include Aws::Structure
1118
+ end
1119
+
1120
+ # @note When making an API call, pass EndpointUser
1121
+ # data as a hash:
1122
+ #
1123
+ # {
1124
+ # user_attributes: {
1125
+ # "__string" => ["__string"],
1126
+ # },
1127
+ # user_id: "__string",
1128
+ # }
1129
+ # @!attribute [rw] user_attributes
1130
+ # @return [Hash<String,Array<String>>]
1131
+ #
1132
+ # @!attribute [rw] user_id
1133
+ # The unique ID of the user.
1134
+ # @return [String]
1135
+ class EndpointUser < Struct.new(
1136
+ :user_attributes,
1137
+ :user_id)
1138
+ include Aws::Structure
1139
+ end
1140
+
1141
+ # @note When making an API call, pass GCMChannelRequest
1142
+ # data as a hash:
1143
+ #
1144
+ # {
1145
+ # api_key: "__string",
1146
+ # }
1147
+ # @!attribute [rw] api_key
1148
+ # Platform credential API key from Google.
1149
+ # @return [String]
1150
+ class GCMChannelRequest < Struct.new(
1151
+ :api_key)
1152
+ include Aws::Structure
1153
+ end
1154
+
1155
+ # @!attribute [rw] application_id
1156
+ # @return [String]
1157
+ #
1158
+ # @!attribute [rw] creation_date
1159
+ # When was this segment created
1160
+ # @return [String]
1161
+ #
1162
+ # @!attribute [rw] credential
1163
+ # The GCM API key from Google.
1164
+ # @return [String]
1165
+ #
1166
+ # @!attribute [rw] id
1167
+ # @return [String]
1168
+ #
1169
+ # @!attribute [rw] is_archived
1170
+ # Is this channel archived
1171
+ # @return [Boolean]
1172
+ #
1173
+ # @!attribute [rw] last_modified_by
1174
+ # Who last updated this entry
1175
+ # @return [String]
1176
+ #
1177
+ # @!attribute [rw] last_modified_date
1178
+ # Last date this was updated
1179
+ # @return [String]
1180
+ #
1181
+ # @!attribute [rw] platform
1182
+ # The platform type. Will be GCM
1183
+ # @return [String]
1184
+ #
1185
+ # @!attribute [rw] version
1186
+ # Version of channel
1187
+ # @return [Integer]
1188
+ class GCMChannelResponse < Struct.new(
1189
+ :application_id,
1190
+ :creation_date,
1191
+ :credential,
1192
+ :id,
1193
+ :is_archived,
1194
+ :last_modified_by,
1195
+ :last_modified_date,
1196
+ :platform,
1197
+ :version)
1198
+ include Aws::Structure
1199
+ end
1200
+
1201
+ # @note When making an API call, pass GetApnsChannelRequest
1202
+ # data as a hash:
1203
+ #
1204
+ # {
1205
+ # application_id: "__string", # required
1206
+ # }
1207
+ # @!attribute [rw] application_id
1208
+ # @return [String]
1209
+ class GetApnsChannelRequest < Struct.new(
1210
+ :application_id)
1211
+ include Aws::Structure
1212
+ end
1213
+
1214
+ # @!attribute [rw] apns_channel_response
1215
+ # @return [Types::APNSChannelResponse]
1216
+ class GetApnsChannelResponse < Struct.new(
1217
+ :apns_channel_response)
1218
+ include Aws::Structure
1219
+ end
1220
+
1221
+ # @note When making an API call, pass GetApplicationSettingsRequest
1222
+ # data as a hash:
1223
+ #
1224
+ # {
1225
+ # application_id: "__string", # required
1226
+ # }
1227
+ # @!attribute [rw] application_id
1228
+ # @return [String]
1229
+ class GetApplicationSettingsRequest < Struct.new(
1230
+ :application_id)
1231
+ include Aws::Structure
1232
+ end
1233
+
1234
+ # @!attribute [rw] application_settings_resource
1235
+ # @return [Types::ApplicationSettingsResource]
1236
+ class GetApplicationSettingsResponse < Struct.new(
1237
+ :application_settings_resource)
1238
+ include Aws::Structure
1239
+ end
1240
+
1241
+ # @note When making an API call, pass GetCampaignActivitiesRequest
1242
+ # data as a hash:
1243
+ #
1244
+ # {
1245
+ # application_id: "__string", # required
1246
+ # campaign_id: "__string", # required
1247
+ # page_size: "__string",
1248
+ # token: "__string",
1249
+ # }
1250
+ # @!attribute [rw] application_id
1251
+ # @return [String]
1252
+ #
1253
+ # @!attribute [rw] campaign_id
1254
+ # @return [String]
1255
+ #
1256
+ # @!attribute [rw] page_size
1257
+ # @return [String]
1258
+ #
1259
+ # @!attribute [rw] token
1260
+ # @return [String]
1261
+ class GetCampaignActivitiesRequest < Struct.new(
1262
+ :application_id,
1263
+ :campaign_id,
1264
+ :page_size,
1265
+ :token)
1266
+ include Aws::Structure
1267
+ end
1268
+
1269
+ # @!attribute [rw] activities_response
1270
+ # @return [Types::ActivitiesResponse]
1271
+ class GetCampaignActivitiesResponse < Struct.new(
1272
+ :activities_response)
1273
+ include Aws::Structure
1274
+ end
1275
+
1276
+ # @note When making an API call, pass GetCampaignRequest
1277
+ # data as a hash:
1278
+ #
1279
+ # {
1280
+ # application_id: "__string", # required
1281
+ # campaign_id: "__string", # required
1282
+ # }
1283
+ # @!attribute [rw] application_id
1284
+ # @return [String]
1285
+ #
1286
+ # @!attribute [rw] campaign_id
1287
+ # @return [String]
1288
+ class GetCampaignRequest < Struct.new(
1289
+ :application_id,
1290
+ :campaign_id)
1291
+ include Aws::Structure
1292
+ end
1293
+
1294
+ # @!attribute [rw] campaign_response
1295
+ # @return [Types::CampaignResponse]
1296
+ class GetCampaignResponse < Struct.new(
1297
+ :campaign_response)
1298
+ include Aws::Structure
1299
+ end
1300
+
1301
+ # @note When making an API call, pass GetCampaignVersionRequest
1302
+ # data as a hash:
1303
+ #
1304
+ # {
1305
+ # application_id: "__string", # required
1306
+ # campaign_id: "__string", # required
1307
+ # version: "__string", # required
1308
+ # }
1309
+ # @!attribute [rw] application_id
1310
+ # @return [String]
1311
+ #
1312
+ # @!attribute [rw] campaign_id
1313
+ # @return [String]
1314
+ #
1315
+ # @!attribute [rw] version
1316
+ # @return [String]
1317
+ class GetCampaignVersionRequest < Struct.new(
1318
+ :application_id,
1319
+ :campaign_id,
1320
+ :version)
1321
+ include Aws::Structure
1322
+ end
1323
+
1324
+ # @!attribute [rw] campaign_response
1325
+ # @return [Types::CampaignResponse]
1326
+ class GetCampaignVersionResponse < Struct.new(
1327
+ :campaign_response)
1328
+ include Aws::Structure
1329
+ end
1330
+
1331
+ # @note When making an API call, pass GetCampaignVersionsRequest
1332
+ # data as a hash:
1333
+ #
1334
+ # {
1335
+ # application_id: "__string", # required
1336
+ # campaign_id: "__string", # required
1337
+ # page_size: "__string",
1338
+ # token: "__string",
1339
+ # }
1340
+ # @!attribute [rw] application_id
1341
+ # @return [String]
1342
+ #
1343
+ # @!attribute [rw] campaign_id
1344
+ # @return [String]
1345
+ #
1346
+ # @!attribute [rw] page_size
1347
+ # @return [String]
1348
+ #
1349
+ # @!attribute [rw] token
1350
+ # @return [String]
1351
+ class GetCampaignVersionsRequest < Struct.new(
1352
+ :application_id,
1353
+ :campaign_id,
1354
+ :page_size,
1355
+ :token)
1356
+ include Aws::Structure
1357
+ end
1358
+
1359
+ # @!attribute [rw] campaigns_response
1360
+ # @return [Types::CampaignsResponse]
1361
+ class GetCampaignVersionsResponse < Struct.new(
1362
+ :campaigns_response)
1363
+ include Aws::Structure
1364
+ end
1365
+
1366
+ # @note When making an API call, pass GetCampaignsRequest
1367
+ # data as a hash:
1368
+ #
1369
+ # {
1370
+ # application_id: "__string", # required
1371
+ # page_size: "__string",
1372
+ # token: "__string",
1373
+ # }
1374
+ # @!attribute [rw] application_id
1375
+ # @return [String]
1376
+ #
1377
+ # @!attribute [rw] page_size
1378
+ # @return [String]
1379
+ #
1380
+ # @!attribute [rw] token
1381
+ # @return [String]
1382
+ class GetCampaignsRequest < Struct.new(
1383
+ :application_id,
1384
+ :page_size,
1385
+ :token)
1386
+ include Aws::Structure
1387
+ end
1388
+
1389
+ # @!attribute [rw] campaigns_response
1390
+ # @return [Types::CampaignsResponse]
1391
+ class GetCampaignsResponse < Struct.new(
1392
+ :campaigns_response)
1393
+ include Aws::Structure
1394
+ end
1395
+
1396
+ # @note When making an API call, pass GetEndpointRequest
1397
+ # data as a hash:
1398
+ #
1399
+ # {
1400
+ # application_id: "__string", # required
1401
+ # endpoint_id: "__string", # required
1402
+ # }
1403
+ # @!attribute [rw] application_id
1404
+ # @return [String]
1405
+ #
1406
+ # @!attribute [rw] endpoint_id
1407
+ # @return [String]
1408
+ class GetEndpointRequest < Struct.new(
1409
+ :application_id,
1410
+ :endpoint_id)
1411
+ include Aws::Structure
1412
+ end
1413
+
1414
+ # @!attribute [rw] endpoint_response
1415
+ # @return [Types::EndpointResponse]
1416
+ class GetEndpointResponse < Struct.new(
1417
+ :endpoint_response)
1418
+ include Aws::Structure
1419
+ end
1420
+
1421
+ # @note When making an API call, pass GetGcmChannelRequest
1422
+ # data as a hash:
1423
+ #
1424
+ # {
1425
+ # application_id: "__string", # required
1426
+ # }
1427
+ # @!attribute [rw] application_id
1428
+ # @return [String]
1429
+ class GetGcmChannelRequest < Struct.new(
1430
+ :application_id)
1431
+ include Aws::Structure
1432
+ end
1433
+
1434
+ # @!attribute [rw] gcm_channel_response
1435
+ # @return [Types::GCMChannelResponse]
1436
+ class GetGcmChannelResponse < Struct.new(
1437
+ :gcm_channel_response)
1438
+ include Aws::Structure
1439
+ end
1440
+
1441
+ # @note When making an API call, pass GetImportJobRequest
1442
+ # data as a hash:
1443
+ #
1444
+ # {
1445
+ # application_id: "__string", # required
1446
+ # job_id: "__string", # required
1447
+ # }
1448
+ # @!attribute [rw] application_id
1449
+ # @return [String]
1450
+ #
1451
+ # @!attribute [rw] job_id
1452
+ # @return [String]
1453
+ class GetImportJobRequest < Struct.new(
1454
+ :application_id,
1455
+ :job_id)
1456
+ include Aws::Structure
1457
+ end
1458
+
1459
+ # @!attribute [rw] import_job_response
1460
+ # @return [Types::ImportJobResponse]
1461
+ class GetImportJobResponse < Struct.new(
1462
+ :import_job_response)
1463
+ include Aws::Structure
1464
+ end
1465
+
1466
+ # @note When making an API call, pass GetImportJobsRequest
1467
+ # data as a hash:
1468
+ #
1469
+ # {
1470
+ # application_id: "__string", # required
1471
+ # page_size: "__string",
1472
+ # token: "__string",
1473
+ # }
1474
+ # @!attribute [rw] application_id
1475
+ # @return [String]
1476
+ #
1477
+ # @!attribute [rw] page_size
1478
+ # @return [String]
1479
+ #
1480
+ # @!attribute [rw] token
1481
+ # @return [String]
1482
+ class GetImportJobsRequest < Struct.new(
1483
+ :application_id,
1484
+ :page_size,
1485
+ :token)
1486
+ include Aws::Structure
1487
+ end
1488
+
1489
+ # @!attribute [rw] import_jobs_response
1490
+ # @return [Types::ImportJobsResponse]
1491
+ class GetImportJobsResponse < Struct.new(
1492
+ :import_jobs_response)
1493
+ include Aws::Structure
1494
+ end
1495
+
1496
+ # @note When making an API call, pass GetSegmentImportJobsRequest
1497
+ # data as a hash:
1498
+ #
1499
+ # {
1500
+ # application_id: "__string", # required
1501
+ # page_size: "__string",
1502
+ # segment_id: "__string", # required
1503
+ # token: "__string",
1504
+ # }
1505
+ # @!attribute [rw] application_id
1506
+ # @return [String]
1507
+ #
1508
+ # @!attribute [rw] page_size
1509
+ # @return [String]
1510
+ #
1511
+ # @!attribute [rw] segment_id
1512
+ # @return [String]
1513
+ #
1514
+ # @!attribute [rw] token
1515
+ # @return [String]
1516
+ class GetSegmentImportJobsRequest < Struct.new(
1517
+ :application_id,
1518
+ :page_size,
1519
+ :segment_id,
1520
+ :token)
1521
+ include Aws::Structure
1522
+ end
1523
+
1524
+ # @!attribute [rw] import_jobs_response
1525
+ # @return [Types::ImportJobsResponse]
1526
+ class GetSegmentImportJobsResponse < Struct.new(
1527
+ :import_jobs_response)
1528
+ include Aws::Structure
1529
+ end
1530
+
1531
+ # @note When making an API call, pass GetSegmentRequest
1532
+ # data as a hash:
1533
+ #
1534
+ # {
1535
+ # application_id: "__string", # required
1536
+ # segment_id: "__string", # required
1537
+ # }
1538
+ # @!attribute [rw] application_id
1539
+ # @return [String]
1540
+ #
1541
+ # @!attribute [rw] segment_id
1542
+ # @return [String]
1543
+ class GetSegmentRequest < Struct.new(
1544
+ :application_id,
1545
+ :segment_id)
1546
+ include Aws::Structure
1547
+ end
1548
+
1549
+ # @!attribute [rw] segment_response
1550
+ # @return [Types::SegmentResponse]
1551
+ class GetSegmentResponse < Struct.new(
1552
+ :segment_response)
1553
+ include Aws::Structure
1554
+ end
1555
+
1556
+ # @note When making an API call, pass GetSegmentVersionRequest
1557
+ # data as a hash:
1558
+ #
1559
+ # {
1560
+ # application_id: "__string", # required
1561
+ # segment_id: "__string", # required
1562
+ # version: "__string", # required
1563
+ # }
1564
+ # @!attribute [rw] application_id
1565
+ # @return [String]
1566
+ #
1567
+ # @!attribute [rw] segment_id
1568
+ # @return [String]
1569
+ #
1570
+ # @!attribute [rw] version
1571
+ # @return [String]
1572
+ class GetSegmentVersionRequest < Struct.new(
1573
+ :application_id,
1574
+ :segment_id,
1575
+ :version)
1576
+ include Aws::Structure
1577
+ end
1578
+
1579
+ # @!attribute [rw] segment_response
1580
+ # @return [Types::SegmentResponse]
1581
+ class GetSegmentVersionResponse < Struct.new(
1582
+ :segment_response)
1583
+ include Aws::Structure
1584
+ end
1585
+
1586
+ # @note When making an API call, pass GetSegmentVersionsRequest
1587
+ # data as a hash:
1588
+ #
1589
+ # {
1590
+ # application_id: "__string", # required
1591
+ # page_size: "__string",
1592
+ # segment_id: "__string", # required
1593
+ # token: "__string",
1594
+ # }
1595
+ # @!attribute [rw] application_id
1596
+ # @return [String]
1597
+ #
1598
+ # @!attribute [rw] page_size
1599
+ # @return [String]
1600
+ #
1601
+ # @!attribute [rw] segment_id
1602
+ # @return [String]
1603
+ #
1604
+ # @!attribute [rw] token
1605
+ # @return [String]
1606
+ class GetSegmentVersionsRequest < Struct.new(
1607
+ :application_id,
1608
+ :page_size,
1609
+ :segment_id,
1610
+ :token)
1611
+ include Aws::Structure
1612
+ end
1613
+
1614
+ # @!attribute [rw] segments_response
1615
+ # @return [Types::SegmentsResponse]
1616
+ class GetSegmentVersionsResponse < Struct.new(
1617
+ :segments_response)
1618
+ include Aws::Structure
1619
+ end
1620
+
1621
+ # @note When making an API call, pass GetSegmentsRequest
1622
+ # data as a hash:
1623
+ #
1624
+ # {
1625
+ # application_id: "__string", # required
1626
+ # page_size: "__string",
1627
+ # token: "__string",
1628
+ # }
1629
+ # @!attribute [rw] application_id
1630
+ # @return [String]
1631
+ #
1632
+ # @!attribute [rw] page_size
1633
+ # @return [String]
1634
+ #
1635
+ # @!attribute [rw] token
1636
+ # @return [String]
1637
+ class GetSegmentsRequest < Struct.new(
1638
+ :application_id,
1639
+ :page_size,
1640
+ :token)
1641
+ include Aws::Structure
1642
+ end
1643
+
1644
+ # @!attribute [rw] segments_response
1645
+ # @return [Types::SegmentsResponse]
1646
+ class GetSegmentsResponse < Struct.new(
1647
+ :segments_response)
1648
+ include Aws::Structure
1649
+ end
1650
+
1651
+ # @note When making an API call, pass ImportJobRequest
1652
+ # data as a hash:
1653
+ #
1654
+ # {
1655
+ # define_segment: false,
1656
+ # external_id: "__string",
1657
+ # format: "CSV", # accepts CSV, JSON
1658
+ # register_endpoints: false,
1659
+ # role_arn: "__string",
1660
+ # s3_url: "__string",
1661
+ # segment_id: "__string",
1662
+ # segment_name: "__string",
1663
+ # }
1664
+ # @!attribute [rw] define_segment
1665
+ # Sets whether the endpoints create a segment when they are imported.
1666
+ # @return [Boolean]
1667
+ #
1668
+ # @!attribute [rw] external_id
1669
+ # A unique, custom ID assigned to the IAM role that restricts who can
1670
+ # assume the role.
1671
+ # @return [String]
1672
+ #
1673
+ # @!attribute [rw] format
1674
+ # @return [String]
1675
+ #
1676
+ # @!attribute [rw] register_endpoints
1677
+ # Sets whether the endpoints are registered with Amazon Pinpoint when
1678
+ # they are imported.
1679
+ # @return [Boolean]
1680
+ #
1681
+ # @!attribute [rw] role_arn
1682
+ # The Amazon Resource Name (ARN) of an IAM role that grants Amazon
1683
+ # Pinpoint access to the Amazon S3 location that contains the
1684
+ # endpoints to import.
1685
+ # @return [String]
1686
+ #
1687
+ # @!attribute [rw] s3_url
1688
+ # A URL that points to the location within an Amazon S3 bucket that
1689
+ # contains the endpoints to import. The location can be a folder or a
1690
+ # single file. The URL should follow this format:
1691
+ # s3://bucket-name/folder-name/file-name Amazon Pinpoint will import
1692
+ # endpoints from this location and any subfolders it contains.
1693
+ # @return [String]
1694
+ #
1695
+ # @!attribute [rw] segment_id
1696
+ # The ID of the segment to update if the import job is meant to update
1697
+ # an existing segment.
1698
+ # @return [String]
1699
+ #
1700
+ # @!attribute [rw] segment_name
1701
+ # A custom name for the segment created by the import job. Use if
1702
+ # DefineSegment is true.
1703
+ # @return [String]
1704
+ class ImportJobRequest < Struct.new(
1705
+ :define_segment,
1706
+ :external_id,
1707
+ :format,
1708
+ :register_endpoints,
1709
+ :role_arn,
1710
+ :s3_url,
1711
+ :segment_id,
1712
+ :segment_name)
1713
+ include Aws::Structure
1714
+ end
1715
+
1716
+ # @!attribute [rw] define_segment
1717
+ # Sets whether the endpoints create a segment when they are imported.
1718
+ # @return [Boolean]
1719
+ #
1720
+ # @!attribute [rw] external_id
1721
+ # A unique, custom ID assigned to the IAM role that restricts who can
1722
+ # assume the role.
1723
+ # @return [String]
1724
+ #
1725
+ # @!attribute [rw] format
1726
+ # @return [String]
1727
+ #
1728
+ # @!attribute [rw] register_endpoints
1729
+ # Sets whether the endpoints are registered with Amazon Pinpoint when
1730
+ # they are imported.
1731
+ # @return [Boolean]
1732
+ #
1733
+ # @!attribute [rw] role_arn
1734
+ # The Amazon Resource Name (ARN) of an IAM role that grants Amazon
1735
+ # Pinpoint access to the Amazon S3 location that contains the
1736
+ # endpoints to import.
1737
+ # @return [String]
1738
+ #
1739
+ # @!attribute [rw] s3_url
1740
+ # A URL that points to the location within an Amazon S3 bucket that
1741
+ # contains the endpoints to import. The location can be a folder or a
1742
+ # single file. The URL should follow this format:
1743
+ # s3://bucket-name/folder-name/file-name Amazon Pinpoint will import
1744
+ # endpoints from this location and any subfolders it contains.
1745
+ # @return [String]
1746
+ #
1747
+ # @!attribute [rw] segment_id
1748
+ # The ID of the segment to update if the import job is meant to update
1749
+ # an existing segment.
1750
+ # @return [String]
1751
+ #
1752
+ # @!attribute [rw] segment_name
1753
+ # A custom name for the segment created by the import job. Use if
1754
+ # DefineSegment is true.
1755
+ # @return [String]
1756
+ class ImportJobResource < Struct.new(
1757
+ :define_segment,
1758
+ :external_id,
1759
+ :format,
1760
+ :register_endpoints,
1761
+ :role_arn,
1762
+ :s3_url,
1763
+ :segment_id,
1764
+ :segment_name)
1765
+ include Aws::Structure
1766
+ end
1767
+
1768
+ # @!attribute [rw] application_id
1769
+ # The unique ID of the application to which the import job applies.
1770
+ # @return [String]
1771
+ #
1772
+ # @!attribute [rw] completed_pieces
1773
+ # The number of pieces that have successfully imported as of the time
1774
+ # of the request.
1775
+ # @return [Integer]
1776
+ #
1777
+ # @!attribute [rw] completion_date
1778
+ # The date the import job completed in ISO 8601 format.
1779
+ # @return [String]
1780
+ #
1781
+ # @!attribute [rw] creation_date
1782
+ # The date the import job was created in ISO 8601 format.
1783
+ # @return [String]
1784
+ #
1785
+ # @!attribute [rw] definition
1786
+ # The import job settings.
1787
+ # @return [Types::ImportJobResource]
1788
+ #
1789
+ # @!attribute [rw] failed_pieces
1790
+ # The number of pieces that have failed to import as of the time of
1791
+ # the request.
1792
+ # @return [Integer]
1793
+ #
1794
+ # @!attribute [rw] failures
1795
+ # @return [Array<String>]
1796
+ #
1797
+ # @!attribute [rw] id
1798
+ # The unique ID of the import job.
1799
+ # @return [String]
1800
+ #
1801
+ # @!attribute [rw] job_status
1802
+ # @return [String]
1803
+ #
1804
+ # @!attribute [rw] total_failures
1805
+ # The number of endpoints that failed to import; for example, because
1806
+ # of syntax errors.
1807
+ # @return [Integer]
1808
+ #
1809
+ # @!attribute [rw] total_pieces
1810
+ # The total number of pieces that must be imported to finish the job.
1811
+ # Each piece is an approximately equal portion of the endpoints to
1812
+ # import.
1813
+ # @return [Integer]
1814
+ #
1815
+ # @!attribute [rw] total_processed
1816
+ # The number of endpoints that were processed by the import job.
1817
+ # @return [Integer]
1818
+ #
1819
+ # @!attribute [rw] type
1820
+ # The job type. Will be Import.
1821
+ # @return [String]
1822
+ class ImportJobResponse < Struct.new(
1823
+ :application_id,
1824
+ :completed_pieces,
1825
+ :completion_date,
1826
+ :creation_date,
1827
+ :definition,
1828
+ :failed_pieces,
1829
+ :failures,
1830
+ :id,
1831
+ :job_status,
1832
+ :total_failures,
1833
+ :total_pieces,
1834
+ :total_processed,
1835
+ :type)
1836
+ include Aws::Structure
1837
+ end
1838
+
1839
+ # @!attribute [rw] item
1840
+ # A list of import jobs for the application.
1841
+ # @return [Array<Types::ImportJobResponse>]
1842
+ #
1843
+ # @!attribute [rw] next_token
1844
+ # The string that you use in a subsequent request to get the next page
1845
+ # of results in a paginated response.
1846
+ # @return [String]
1847
+ class ImportJobsResponse < Struct.new(
1848
+ :item,
1849
+ :next_token)
1850
+ include Aws::Structure
1851
+ end
1852
+
1853
+ # @note When making an API call, pass Message
1854
+ # data as a hash:
1855
+ #
1856
+ # {
1857
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
1858
+ # body: "__string",
1859
+ # image_icon_url: "__string",
1860
+ # image_url: "__string",
1861
+ # json_body: "__string",
1862
+ # media_url: "__string",
1863
+ # silent_push: false,
1864
+ # title: "__string",
1865
+ # url: "__string",
1866
+ # }
1867
+ # @!attribute [rw] action
1868
+ # @return [String]
1869
+ #
1870
+ # @!attribute [rw] body
1871
+ # The message body. Can include up to 140 characters.
1872
+ # @return [String]
1873
+ #
1874
+ # @!attribute [rw] image_icon_url
1875
+ # The URL that points to the icon image for the push notification
1876
+ # icon, for example, the app icon.
1877
+ # @return [String]
1878
+ #
1879
+ # @!attribute [rw] image_url
1880
+ # The URL that points to an image used in the push notification.
1881
+ # @return [String]
1882
+ #
1883
+ # @!attribute [rw] json_body
1884
+ # The JSON payload used for a silent push.
1885
+ # @return [String]
1886
+ #
1887
+ # @!attribute [rw] media_url
1888
+ # The URL that points to the media resource, for example a .mp4 or
1889
+ # .gif file.
1890
+ # @return [String]
1891
+ #
1892
+ # @!attribute [rw] silent_push
1893
+ # Indicates if the message should display on the users device. Silent
1894
+ # pushes can be used for Remote Configuration and Phone Home use
1895
+ # cases.
1896
+ # @return [Boolean]
1897
+ #
1898
+ # @!attribute [rw] title
1899
+ # The message title that displays above the message on the user's
1900
+ # device.
1901
+ # @return [String]
1902
+ #
1903
+ # @!attribute [rw] url
1904
+ # The URL to open in the user's mobile browser. Used if the value for
1905
+ # Action is URL.
1906
+ # @return [String]
1907
+ class Message < Struct.new(
1908
+ :action,
1909
+ :body,
1910
+ :image_icon_url,
1911
+ :image_url,
1912
+ :json_body,
1913
+ :media_url,
1914
+ :silent_push,
1915
+ :title,
1916
+ :url)
1917
+ include Aws::Structure
1918
+ end
1919
+
1920
+ # @!attribute [rw] message
1921
+ # @return [String]
1922
+ #
1923
+ # @!attribute [rw] request_id
1924
+ # @return [String]
1925
+ class MessageBody < Struct.new(
1926
+ :message,
1927
+ :request_id)
1928
+ include Aws::Structure
1929
+ end
1930
+
1931
+ # @note When making an API call, pass MessageConfiguration
1932
+ # data as a hash:
1933
+ #
1934
+ # {
1935
+ # apns_message: {
1936
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
1937
+ # body: "__string",
1938
+ # image_icon_url: "__string",
1939
+ # image_url: "__string",
1940
+ # json_body: "__string",
1941
+ # media_url: "__string",
1942
+ # silent_push: false,
1943
+ # title: "__string",
1944
+ # url: "__string",
1945
+ # },
1946
+ # default_message: {
1947
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
1948
+ # body: "__string",
1949
+ # image_icon_url: "__string",
1950
+ # image_url: "__string",
1951
+ # json_body: "__string",
1952
+ # media_url: "__string",
1953
+ # silent_push: false,
1954
+ # title: "__string",
1955
+ # url: "__string",
1956
+ # },
1957
+ # gcm_message: {
1958
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
1959
+ # body: "__string",
1960
+ # image_icon_url: "__string",
1961
+ # image_url: "__string",
1962
+ # json_body: "__string",
1963
+ # media_url: "__string",
1964
+ # silent_push: false,
1965
+ # title: "__string",
1966
+ # url: "__string",
1967
+ # },
1968
+ # }
1969
+ # @!attribute [rw] apns_message
1970
+ # The message that the campaign delivers to APNS channels. Overrides
1971
+ # the default message.
1972
+ # @return [Types::Message]
1973
+ #
1974
+ # @!attribute [rw] default_message
1975
+ # The default message for all channels.
1976
+ # @return [Types::Message]
1977
+ #
1978
+ # @!attribute [rw] gcm_message
1979
+ # The message that the campaign delivers to GCM channels. Overrides
1980
+ # the default message.
1981
+ # @return [Types::Message]
1982
+ class MessageConfiguration < Struct.new(
1983
+ :apns_message,
1984
+ :default_message,
1985
+ :gcm_message)
1986
+ include Aws::Structure
1987
+ end
1988
+
1989
+ # @note When making an API call, pass QuietTime
1990
+ # data as a hash:
1991
+ #
1992
+ # {
1993
+ # end: "__string",
1994
+ # start: "__string",
1995
+ # }
1996
+ # @!attribute [rw] end
1997
+ # The default end time for quiet time in ISO 8601 format.
1998
+ # @return [String]
1999
+ #
2000
+ # @!attribute [rw] start
2001
+ # The default start time for quiet time in ISO 8601 format.
2002
+ # @return [String]
2003
+ class QuietTime < Struct.new(
2004
+ :end,
2005
+ :start)
2006
+ include Aws::Structure
2007
+ end
2008
+
2009
+ # @note When making an API call, pass RecencyDimension
2010
+ # data as a hash:
2011
+ #
2012
+ # {
2013
+ # duration: "HR_24", # accepts HR_24, DAY_7, DAY_14, DAY_30
2014
+ # recency_type: "ACTIVE", # accepts ACTIVE, INACTIVE
2015
+ # }
2016
+ # @!attribute [rw] duration
2017
+ # @return [String]
2018
+ #
2019
+ # @!attribute [rw] recency_type
2020
+ # @return [String]
2021
+ class RecencyDimension < Struct.new(
2022
+ :duration,
2023
+ :recency_type)
2024
+ include Aws::Structure
2025
+ end
2026
+
2027
+ # @note When making an API call, pass Schedule
2028
+ # data as a hash:
2029
+ #
2030
+ # {
2031
+ # end_time: "__string",
2032
+ # frequency: "ONCE", # accepts ONCE, HOURLY, DAILY, WEEKLY, MONTHLY
2033
+ # is_local_time: false,
2034
+ # quiet_time: {
2035
+ # end: "__string",
2036
+ # start: "__string",
2037
+ # },
2038
+ # start_time: "__string",
2039
+ # timezone: "__string",
2040
+ # }
2041
+ # @!attribute [rw] end_time
2042
+ # The scheduled time that the campaign ends in ISO 8601 format.
2043
+ # @return [String]
2044
+ #
2045
+ # @!attribute [rw] frequency
2046
+ # @return [String]
2047
+ #
2048
+ # @!attribute [rw] is_local_time
2049
+ # Indicates whether the campaign schedule takes effect according to
2050
+ # each user's local time.
2051
+ # @return [Boolean]
2052
+ #
2053
+ # @!attribute [rw] quiet_time
2054
+ # The time during which the campaign sends no messages.
2055
+ # @return [Types::QuietTime]
2056
+ #
2057
+ # @!attribute [rw] start_time
2058
+ # The scheduled time that the campaign begins in ISO 8601 format.
2059
+ # @return [String]
2060
+ #
2061
+ # @!attribute [rw] timezone
2062
+ # The starting UTC offset for the schedule if the value for
2063
+ # isLocalTime is true Valid values: UTC UTC+01 UTC+02 UTC+03 UTC+03:30
2064
+ # UTC+04 UTC+04:30 UTC+05 UTC+05:30 UTC+05:45 UTC+06 UTC+06:30 UTC+07
2065
+ # UTC+08 UTC+09 UTC+09:30 UTC+10 UTC+10:30 UTC+11 UTC+12 UTC+13 UTC-02
2066
+ # UTC-03 UTC-04 UTC-05 UTC-06 UTC-07 UTC-08 UTC-09 UTC-10 UTC-11
2067
+ # @return [String]
2068
+ class Schedule < Struct.new(
2069
+ :end_time,
2070
+ :frequency,
2071
+ :is_local_time,
2072
+ :quiet_time,
2073
+ :start_time,
2074
+ :timezone)
2075
+ include Aws::Structure
2076
+ end
2077
+
2078
+ # @note When making an API call, pass SegmentBehaviors
2079
+ # data as a hash:
2080
+ #
2081
+ # {
2082
+ # recency: {
2083
+ # duration: "HR_24", # accepts HR_24, DAY_7, DAY_14, DAY_30
2084
+ # recency_type: "ACTIVE", # accepts ACTIVE, INACTIVE
2085
+ # },
2086
+ # }
2087
+ # @!attribute [rw] recency
2088
+ # The recency of use.
2089
+ # @return [Types::RecencyDimension]
2090
+ class SegmentBehaviors < Struct.new(
2091
+ :recency)
2092
+ include Aws::Structure
2093
+ end
2094
+
2095
+ # @note When making an API call, pass SegmentDemographics
2096
+ # data as a hash:
2097
+ #
2098
+ # {
2099
+ # app_version: {
2100
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2101
+ # values: ["__string"],
2102
+ # },
2103
+ # device_type: {
2104
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2105
+ # values: ["__string"],
2106
+ # },
2107
+ # make: {
2108
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2109
+ # values: ["__string"],
2110
+ # },
2111
+ # model: {
2112
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2113
+ # values: ["__string"],
2114
+ # },
2115
+ # platform: {
2116
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2117
+ # values: ["__string"],
2118
+ # },
2119
+ # }
2120
+ # @!attribute [rw] app_version
2121
+ # The app version criteria for the segment.
2122
+ # @return [Types::SetDimension]
2123
+ #
2124
+ # @!attribute [rw] device_type
2125
+ # The device type criteria for the segment.
2126
+ # @return [Types::SetDimension]
2127
+ #
2128
+ # @!attribute [rw] make
2129
+ # The device make criteria for the segment.
2130
+ # @return [Types::SetDimension]
2131
+ #
2132
+ # @!attribute [rw] model
2133
+ # The device model criteria for the segment.
2134
+ # @return [Types::SetDimension]
2135
+ #
2136
+ # @!attribute [rw] platform
2137
+ # The device platform criteria for the segment.
2138
+ # @return [Types::SetDimension]
2139
+ class SegmentDemographics < Struct.new(
2140
+ :app_version,
2141
+ :device_type,
2142
+ :make,
2143
+ :model,
2144
+ :platform)
2145
+ include Aws::Structure
2146
+ end
2147
+
2148
+ # @note When making an API call, pass SegmentDimensions
2149
+ # data as a hash:
2150
+ #
2151
+ # {
2152
+ # attributes: {
2153
+ # "__string" => {
2154
+ # attribute_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2155
+ # values: ["__string"],
2156
+ # },
2157
+ # },
2158
+ # behavior: {
2159
+ # recency: {
2160
+ # duration: "HR_24", # accepts HR_24, DAY_7, DAY_14, DAY_30
2161
+ # recency_type: "ACTIVE", # accepts ACTIVE, INACTIVE
2162
+ # },
2163
+ # },
2164
+ # demographic: {
2165
+ # app_version: {
2166
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2167
+ # values: ["__string"],
2168
+ # },
2169
+ # device_type: {
2170
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2171
+ # values: ["__string"],
2172
+ # },
2173
+ # make: {
2174
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2175
+ # values: ["__string"],
2176
+ # },
2177
+ # model: {
2178
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2179
+ # values: ["__string"],
2180
+ # },
2181
+ # platform: {
2182
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2183
+ # values: ["__string"],
2184
+ # },
2185
+ # },
2186
+ # location: {
2187
+ # country: {
2188
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2189
+ # values: ["__string"],
2190
+ # },
2191
+ # },
2192
+ # }
2193
+ # @!attribute [rw] attributes
2194
+ # Custom segment attributes.
2195
+ # @return [Hash<String,Types::AttributeDimension>]
2196
+ #
2197
+ # @!attribute [rw] behavior
2198
+ # The segment behaviors attributes.
2199
+ # @return [Types::SegmentBehaviors]
2200
+ #
2201
+ # @!attribute [rw] demographic
2202
+ # The segment demographics attributes.
2203
+ # @return [Types::SegmentDemographics]
2204
+ #
2205
+ # @!attribute [rw] location
2206
+ # The segment location attributes.
2207
+ # @return [Types::SegmentLocation]
2208
+ class SegmentDimensions < Struct.new(
2209
+ :attributes,
2210
+ :behavior,
2211
+ :demographic,
2212
+ :location)
2213
+ include Aws::Structure
2214
+ end
2215
+
2216
+ # @!attribute [rw] external_id
2217
+ # A unique, custom ID assigned to the IAM role that restricts who can
2218
+ # assume the role.
2219
+ # @return [String]
2220
+ #
2221
+ # @!attribute [rw] format
2222
+ # @return [String]
2223
+ #
2224
+ # @!attribute [rw] role_arn
2225
+ # The Amazon Resource Name (ARN) of an IAM role that grants Amazon
2226
+ # Pinpoint access to the endpoints in Amazon S3.
2227
+ # @return [String]
2228
+ #
2229
+ # @!attribute [rw] s3_url
2230
+ # A URL that points to the Amazon S3 location from which the endpoints
2231
+ # for this segment were imported.
2232
+ # @return [String]
2233
+ #
2234
+ # @!attribute [rw] size
2235
+ # The number of endpoints that were successfully imported to create
2236
+ # this segment.
2237
+ # @return [Integer]
2238
+ class SegmentImportResource < Struct.new(
2239
+ :external_id,
2240
+ :format,
2241
+ :role_arn,
2242
+ :s3_url,
2243
+ :size)
2244
+ include Aws::Structure
2245
+ end
2246
+
2247
+ # @note When making an API call, pass SegmentLocation
2248
+ # data as a hash:
2249
+ #
2250
+ # {
2251
+ # country: {
2252
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2253
+ # values: ["__string"],
2254
+ # },
2255
+ # }
2256
+ # @!attribute [rw] country
2257
+ # The country filter according to ISO 3166-1 Alpha-2 codes.
2258
+ # @return [Types::SetDimension]
2259
+ class SegmentLocation < Struct.new(
2260
+ :country)
2261
+ include Aws::Structure
2262
+ end
2263
+
2264
+ # @!attribute [rw] application_id
2265
+ # The ID of the application to which the segment applies.
2266
+ # @return [String]
2267
+ #
2268
+ # @!attribute [rw] creation_date
2269
+ # The date the segment was created in ISO 8601 format.
2270
+ # @return [String]
2271
+ #
2272
+ # @!attribute [rw] dimensions
2273
+ # The segment dimensions attributes.
2274
+ # @return [Types::SegmentDimensions]
2275
+ #
2276
+ # @!attribute [rw] id
2277
+ # The unique segment ID.
2278
+ # @return [String]
2279
+ #
2280
+ # @!attribute [rw] import_definition
2281
+ # The import job settings.
2282
+ # @return [Types::SegmentImportResource]
2283
+ #
2284
+ # @!attribute [rw] last_modified_date
2285
+ # The date the segment was last updated in ISO 8601 format.
2286
+ # @return [String]
2287
+ #
2288
+ # @!attribute [rw] name
2289
+ # The name of segment
2290
+ # @return [String]
2291
+ #
2292
+ # @!attribute [rw] segment_type
2293
+ # @return [String]
2294
+ #
2295
+ # @!attribute [rw] version
2296
+ # The segment version number.
2297
+ # @return [Integer]
2298
+ class SegmentResponse < Struct.new(
2299
+ :application_id,
2300
+ :creation_date,
2301
+ :dimensions,
2302
+ :id,
2303
+ :import_definition,
2304
+ :last_modified_date,
2305
+ :name,
2306
+ :segment_type,
2307
+ :version)
2308
+ include Aws::Structure
2309
+ end
2310
+
2311
+ # @!attribute [rw] item
2312
+ # The list of segments.
2313
+ # @return [Array<Types::SegmentResponse>]
2314
+ #
2315
+ # @!attribute [rw] next_token
2316
+ # An identifier used to retrieve the next page of results. The token
2317
+ # is null if no additional pages exist.
2318
+ # @return [String]
2319
+ class SegmentsResponse < Struct.new(
2320
+ :item,
2321
+ :next_token)
2322
+ include Aws::Structure
2323
+ end
2324
+
2325
+ # @note When making an API call, pass SetDimension
2326
+ # data as a hash:
2327
+ #
2328
+ # {
2329
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2330
+ # values: ["__string"],
2331
+ # }
2332
+ # @!attribute [rw] dimension_type
2333
+ # @return [String]
2334
+ #
2335
+ # @!attribute [rw] values
2336
+ # @return [Array<String>]
2337
+ class SetDimension < Struct.new(
2338
+ :dimension_type,
2339
+ :values)
2340
+ include Aws::Structure
2341
+ end
2342
+
2343
+ # @!attribute [rw] id
2344
+ # The unique treatment ID.
2345
+ # @return [String]
2346
+ #
2347
+ # @!attribute [rw] message_configuration
2348
+ # The message configuration settings.
2349
+ # @return [Types::MessageConfiguration]
2350
+ #
2351
+ # @!attribute [rw] schedule
2352
+ # The campaign schedule.
2353
+ # @return [Types::Schedule]
2354
+ #
2355
+ # @!attribute [rw] size_percent
2356
+ # The allocated percentage of users for this treatment.
2357
+ # @return [Integer]
2358
+ #
2359
+ # @!attribute [rw] state
2360
+ # The treatment status.
2361
+ # @return [Types::CampaignState]
2362
+ #
2363
+ # @!attribute [rw] treatment_description
2364
+ # A custom description for the treatment.
2365
+ # @return [String]
2366
+ #
2367
+ # @!attribute [rw] treatment_name
2368
+ # The custom name of a variation of the campaign used for A/B testing.
2369
+ # @return [String]
2370
+ class TreatmentResource < Struct.new(
2371
+ :id,
2372
+ :message_configuration,
2373
+ :schedule,
2374
+ :size_percent,
2375
+ :state,
2376
+ :treatment_description,
2377
+ :treatment_name)
2378
+ include Aws::Structure
2379
+ end
2380
+
2381
+ # @note When making an API call, pass UpdateApnsChannelRequest
2382
+ # data as a hash:
2383
+ #
2384
+ # {
2385
+ # apns_channel_request: { # required
2386
+ # certificate: "__string",
2387
+ # private_key: "__string",
2388
+ # },
2389
+ # application_id: "__string", # required
2390
+ # }
2391
+ # @!attribute [rw] apns_channel_request
2392
+ # @return [Types::APNSChannelRequest]
2393
+ #
2394
+ # @!attribute [rw] application_id
2395
+ # @return [String]
2396
+ class UpdateApnsChannelRequest < Struct.new(
2397
+ :apns_channel_request,
2398
+ :application_id)
2399
+ include Aws::Structure
2400
+ end
2401
+
2402
+ # @!attribute [rw] apns_channel_response
2403
+ # @return [Types::APNSChannelResponse]
2404
+ class UpdateApnsChannelResponse < Struct.new(
2405
+ :apns_channel_response)
2406
+ include Aws::Structure
2407
+ end
2408
+
2409
+ # @note When making an API call, pass UpdateApplicationSettingsRequest
2410
+ # data as a hash:
2411
+ #
2412
+ # {
2413
+ # application_id: "__string", # required
2414
+ # write_application_settings_request: { # required
2415
+ # limits: {
2416
+ # daily: 1,
2417
+ # total: 1,
2418
+ # },
2419
+ # quiet_time: {
2420
+ # end: "__string",
2421
+ # start: "__string",
2422
+ # },
2423
+ # },
2424
+ # }
2425
+ # @!attribute [rw] application_id
2426
+ # @return [String]
2427
+ #
2428
+ # @!attribute [rw] write_application_settings_request
2429
+ # @return [Types::WriteApplicationSettingsRequest]
2430
+ class UpdateApplicationSettingsRequest < Struct.new(
2431
+ :application_id,
2432
+ :write_application_settings_request)
2433
+ include Aws::Structure
2434
+ end
2435
+
2436
+ # @!attribute [rw] application_settings_resource
2437
+ # @return [Types::ApplicationSettingsResource]
2438
+ class UpdateApplicationSettingsResponse < Struct.new(
2439
+ :application_settings_resource)
2440
+ include Aws::Structure
2441
+ end
2442
+
2443
+ # @note When making an API call, pass UpdateCampaignRequest
2444
+ # data as a hash:
2445
+ #
2446
+ # {
2447
+ # application_id: "__string", # required
2448
+ # campaign_id: "__string", # required
2449
+ # write_campaign_request: { # required
2450
+ # additional_treatments: [
2451
+ # {
2452
+ # message_configuration: {
2453
+ # apns_message: {
2454
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
2455
+ # body: "__string",
2456
+ # image_icon_url: "__string",
2457
+ # image_url: "__string",
2458
+ # json_body: "__string",
2459
+ # media_url: "__string",
2460
+ # silent_push: false,
2461
+ # title: "__string",
2462
+ # url: "__string",
2463
+ # },
2464
+ # default_message: {
2465
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
2466
+ # body: "__string",
2467
+ # image_icon_url: "__string",
2468
+ # image_url: "__string",
2469
+ # json_body: "__string",
2470
+ # media_url: "__string",
2471
+ # silent_push: false,
2472
+ # title: "__string",
2473
+ # url: "__string",
2474
+ # },
2475
+ # gcm_message: {
2476
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
2477
+ # body: "__string",
2478
+ # image_icon_url: "__string",
2479
+ # image_url: "__string",
2480
+ # json_body: "__string",
2481
+ # media_url: "__string",
2482
+ # silent_push: false,
2483
+ # title: "__string",
2484
+ # url: "__string",
2485
+ # },
2486
+ # },
2487
+ # schedule: {
2488
+ # end_time: "__string",
2489
+ # frequency: "ONCE", # accepts ONCE, HOURLY, DAILY, WEEKLY, MONTHLY
2490
+ # is_local_time: false,
2491
+ # quiet_time: {
2492
+ # end: "__string",
2493
+ # start: "__string",
2494
+ # },
2495
+ # start_time: "__string",
2496
+ # timezone: "__string",
2497
+ # },
2498
+ # size_percent: 1,
2499
+ # treatment_description: "__string",
2500
+ # treatment_name: "__string",
2501
+ # },
2502
+ # ],
2503
+ # description: "__string",
2504
+ # holdout_percent: 1,
2505
+ # is_paused: false,
2506
+ # limits: {
2507
+ # daily: 1,
2508
+ # total: 1,
2509
+ # },
2510
+ # message_configuration: {
2511
+ # apns_message: {
2512
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
2513
+ # body: "__string",
2514
+ # image_icon_url: "__string",
2515
+ # image_url: "__string",
2516
+ # json_body: "__string",
2517
+ # media_url: "__string",
2518
+ # silent_push: false,
2519
+ # title: "__string",
2520
+ # url: "__string",
2521
+ # },
2522
+ # default_message: {
2523
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
2524
+ # body: "__string",
2525
+ # image_icon_url: "__string",
2526
+ # image_url: "__string",
2527
+ # json_body: "__string",
2528
+ # media_url: "__string",
2529
+ # silent_push: false,
2530
+ # title: "__string",
2531
+ # url: "__string",
2532
+ # },
2533
+ # gcm_message: {
2534
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
2535
+ # body: "__string",
2536
+ # image_icon_url: "__string",
2537
+ # image_url: "__string",
2538
+ # json_body: "__string",
2539
+ # media_url: "__string",
2540
+ # silent_push: false,
2541
+ # title: "__string",
2542
+ # url: "__string",
2543
+ # },
2544
+ # },
2545
+ # name: "__string",
2546
+ # schedule: {
2547
+ # end_time: "__string",
2548
+ # frequency: "ONCE", # accepts ONCE, HOURLY, DAILY, WEEKLY, MONTHLY
2549
+ # is_local_time: false,
2550
+ # quiet_time: {
2551
+ # end: "__string",
2552
+ # start: "__string",
2553
+ # },
2554
+ # start_time: "__string",
2555
+ # timezone: "__string",
2556
+ # },
2557
+ # segment_id: "__string",
2558
+ # segment_version: 1,
2559
+ # treatment_description: "__string",
2560
+ # treatment_name: "__string",
2561
+ # },
2562
+ # }
2563
+ # @!attribute [rw] application_id
2564
+ # @return [String]
2565
+ #
2566
+ # @!attribute [rw] campaign_id
2567
+ # @return [String]
2568
+ #
2569
+ # @!attribute [rw] write_campaign_request
2570
+ # @return [Types::WriteCampaignRequest]
2571
+ class UpdateCampaignRequest < Struct.new(
2572
+ :application_id,
2573
+ :campaign_id,
2574
+ :write_campaign_request)
2575
+ include Aws::Structure
2576
+ end
2577
+
2578
+ # @!attribute [rw] campaign_response
2579
+ # @return [Types::CampaignResponse]
2580
+ class UpdateCampaignResponse < Struct.new(
2581
+ :campaign_response)
2582
+ include Aws::Structure
2583
+ end
2584
+
2585
+ # @note When making an API call, pass UpdateEndpointRequest
2586
+ # data as a hash:
2587
+ #
2588
+ # {
2589
+ # application_id: "__string", # required
2590
+ # endpoint_id: "__string", # required
2591
+ # endpoint_request: { # required
2592
+ # address: "__string",
2593
+ # attributes: {
2594
+ # "__string" => ["__string"],
2595
+ # },
2596
+ # channel_type: "APNS", # accepts APNS, GCM
2597
+ # demographic: {
2598
+ # app_version: "__string",
2599
+ # locale: "__string",
2600
+ # make: "__string",
2601
+ # model: "__string",
2602
+ # model_version: "__string",
2603
+ # platform: "__string",
2604
+ # platform_version: "__string",
2605
+ # timezone: "__string",
2606
+ # },
2607
+ # effective_date: "__string",
2608
+ # endpoint_status: "__string",
2609
+ # location: {
2610
+ # city: "__string",
2611
+ # country: "__string",
2612
+ # latitude: 1.0,
2613
+ # longitude: 1.0,
2614
+ # postal_code: "__string",
2615
+ # region: "__string",
2616
+ # },
2617
+ # metrics: {
2618
+ # "__string" => 1.0,
2619
+ # },
2620
+ # opt_out: "__string",
2621
+ # request_id: "__string",
2622
+ # user: {
2623
+ # user_attributes: {
2624
+ # "__string" => ["__string"],
2625
+ # },
2626
+ # user_id: "__string",
2627
+ # },
2628
+ # },
2629
+ # }
2630
+ # @!attribute [rw] application_id
2631
+ # @return [String]
2632
+ #
2633
+ # @!attribute [rw] endpoint_id
2634
+ # @return [String]
2635
+ #
2636
+ # @!attribute [rw] endpoint_request
2637
+ # @return [Types::EndpointRequest]
2638
+ class UpdateEndpointRequest < Struct.new(
2639
+ :application_id,
2640
+ :endpoint_id,
2641
+ :endpoint_request)
2642
+ include Aws::Structure
2643
+ end
2644
+
2645
+ # @!attribute [rw] message_body
2646
+ # @return [Types::MessageBody]
2647
+ class UpdateEndpointResponse < Struct.new(
2648
+ :message_body)
2649
+ include Aws::Structure
2650
+ end
2651
+
2652
+ # @note When making an API call, pass UpdateEndpointsBatchRequest
2653
+ # data as a hash:
2654
+ #
2655
+ # {
2656
+ # application_id: "__string", # required
2657
+ # endpoint_batch_request: { # required
2658
+ # item: [
2659
+ # {
2660
+ # address: "__string",
2661
+ # attributes: {
2662
+ # "__string" => ["__string"],
2663
+ # },
2664
+ # channel_type: "APNS", # accepts APNS, GCM
2665
+ # demographic: {
2666
+ # app_version: "__string",
2667
+ # locale: "__string",
2668
+ # make: "__string",
2669
+ # model: "__string",
2670
+ # model_version: "__string",
2671
+ # platform: "__string",
2672
+ # platform_version: "__string",
2673
+ # timezone: "__string",
2674
+ # },
2675
+ # effective_date: "__string",
2676
+ # endpoint_status: "__string",
2677
+ # id: "__string",
2678
+ # location: {
2679
+ # city: "__string",
2680
+ # country: "__string",
2681
+ # latitude: 1.0,
2682
+ # longitude: 1.0,
2683
+ # postal_code: "__string",
2684
+ # region: "__string",
2685
+ # },
2686
+ # metrics: {
2687
+ # "__string" => 1.0,
2688
+ # },
2689
+ # opt_out: "__string",
2690
+ # request_id: "__string",
2691
+ # user: {
2692
+ # user_attributes: {
2693
+ # "__string" => ["__string"],
2694
+ # },
2695
+ # user_id: "__string",
2696
+ # },
2697
+ # },
2698
+ # ],
2699
+ # },
2700
+ # }
2701
+ # @!attribute [rw] application_id
2702
+ # @return [String]
2703
+ #
2704
+ # @!attribute [rw] endpoint_batch_request
2705
+ # @return [Types::EndpointBatchRequest]
2706
+ class UpdateEndpointsBatchRequest < Struct.new(
2707
+ :application_id,
2708
+ :endpoint_batch_request)
2709
+ include Aws::Structure
2710
+ end
2711
+
2712
+ # @!attribute [rw] message_body
2713
+ # @return [Types::MessageBody]
2714
+ class UpdateEndpointsBatchResponse < Struct.new(
2715
+ :message_body)
2716
+ include Aws::Structure
2717
+ end
2718
+
2719
+ # @note When making an API call, pass UpdateGcmChannelRequest
2720
+ # data as a hash:
2721
+ #
2722
+ # {
2723
+ # application_id: "__string", # required
2724
+ # gcm_channel_request: { # required
2725
+ # api_key: "__string",
2726
+ # },
2727
+ # }
2728
+ # @!attribute [rw] application_id
2729
+ # @return [String]
2730
+ #
2731
+ # @!attribute [rw] gcm_channel_request
2732
+ # @return [Types::GCMChannelRequest]
2733
+ class UpdateGcmChannelRequest < Struct.new(
2734
+ :application_id,
2735
+ :gcm_channel_request)
2736
+ include Aws::Structure
2737
+ end
2738
+
2739
+ # @!attribute [rw] gcm_channel_response
2740
+ # @return [Types::GCMChannelResponse]
2741
+ class UpdateGcmChannelResponse < Struct.new(
2742
+ :gcm_channel_response)
2743
+ include Aws::Structure
2744
+ end
2745
+
2746
+ # @note When making an API call, pass UpdateSegmentRequest
2747
+ # data as a hash:
2748
+ #
2749
+ # {
2750
+ # application_id: "__string", # required
2751
+ # segment_id: "__string", # required
2752
+ # write_segment_request: { # required
2753
+ # dimensions: {
2754
+ # attributes: {
2755
+ # "__string" => {
2756
+ # attribute_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2757
+ # values: ["__string"],
2758
+ # },
2759
+ # },
2760
+ # behavior: {
2761
+ # recency: {
2762
+ # duration: "HR_24", # accepts HR_24, DAY_7, DAY_14, DAY_30
2763
+ # recency_type: "ACTIVE", # accepts ACTIVE, INACTIVE
2764
+ # },
2765
+ # },
2766
+ # demographic: {
2767
+ # app_version: {
2768
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2769
+ # values: ["__string"],
2770
+ # },
2771
+ # device_type: {
2772
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2773
+ # values: ["__string"],
2774
+ # },
2775
+ # make: {
2776
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2777
+ # values: ["__string"],
2778
+ # },
2779
+ # model: {
2780
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2781
+ # values: ["__string"],
2782
+ # },
2783
+ # platform: {
2784
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2785
+ # values: ["__string"],
2786
+ # },
2787
+ # },
2788
+ # location: {
2789
+ # country: {
2790
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
2791
+ # values: ["__string"],
2792
+ # },
2793
+ # },
2794
+ # },
2795
+ # name: "__string",
2796
+ # },
2797
+ # }
2798
+ # @!attribute [rw] application_id
2799
+ # @return [String]
2800
+ #
2801
+ # @!attribute [rw] segment_id
2802
+ # @return [String]
2803
+ #
2804
+ # @!attribute [rw] write_segment_request
2805
+ # @return [Types::WriteSegmentRequest]
2806
+ class UpdateSegmentRequest < Struct.new(
2807
+ :application_id,
2808
+ :segment_id,
2809
+ :write_segment_request)
2810
+ include Aws::Structure
2811
+ end
2812
+
2813
+ # @!attribute [rw] segment_response
2814
+ # @return [Types::SegmentResponse]
2815
+ class UpdateSegmentResponse < Struct.new(
2816
+ :segment_response)
2817
+ include Aws::Structure
2818
+ end
2819
+
2820
+ # @note When making an API call, pass WriteApplicationSettingsRequest
2821
+ # data as a hash:
2822
+ #
2823
+ # {
2824
+ # limits: {
2825
+ # daily: 1,
2826
+ # total: 1,
2827
+ # },
2828
+ # quiet_time: {
2829
+ # end: "__string",
2830
+ # start: "__string",
2831
+ # },
2832
+ # }
2833
+ # @!attribute [rw] limits
2834
+ # The default campaign limits for the app. These limits apply to each
2835
+ # campaign for the app, unless the campaign overrides the default with
2836
+ # limits of its own.
2837
+ # @return [Types::CampaignLimits]
2838
+ #
2839
+ # @!attribute [rw] quiet_time
2840
+ # The default quiet time for the app. Each campaign for this app sends
2841
+ # no messages during this time unless the campaign overrides the
2842
+ # default with a quiet time of its own.
2843
+ # @return [Types::QuietTime]
2844
+ class WriteApplicationSettingsRequest < Struct.new(
2845
+ :limits,
2846
+ :quiet_time)
2847
+ include Aws::Structure
2848
+ end
2849
+
2850
+ # @note When making an API call, pass WriteCampaignRequest
2851
+ # data as a hash:
2852
+ #
2853
+ # {
2854
+ # additional_treatments: [
2855
+ # {
2856
+ # message_configuration: {
2857
+ # apns_message: {
2858
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
2859
+ # body: "__string",
2860
+ # image_icon_url: "__string",
2861
+ # image_url: "__string",
2862
+ # json_body: "__string",
2863
+ # media_url: "__string",
2864
+ # silent_push: false,
2865
+ # title: "__string",
2866
+ # url: "__string",
2867
+ # },
2868
+ # default_message: {
2869
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
2870
+ # body: "__string",
2871
+ # image_icon_url: "__string",
2872
+ # image_url: "__string",
2873
+ # json_body: "__string",
2874
+ # media_url: "__string",
2875
+ # silent_push: false,
2876
+ # title: "__string",
2877
+ # url: "__string",
2878
+ # },
2879
+ # gcm_message: {
2880
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
2881
+ # body: "__string",
2882
+ # image_icon_url: "__string",
2883
+ # image_url: "__string",
2884
+ # json_body: "__string",
2885
+ # media_url: "__string",
2886
+ # silent_push: false,
2887
+ # title: "__string",
2888
+ # url: "__string",
2889
+ # },
2890
+ # },
2891
+ # schedule: {
2892
+ # end_time: "__string",
2893
+ # frequency: "ONCE", # accepts ONCE, HOURLY, DAILY, WEEKLY, MONTHLY
2894
+ # is_local_time: false,
2895
+ # quiet_time: {
2896
+ # end: "__string",
2897
+ # start: "__string",
2898
+ # },
2899
+ # start_time: "__string",
2900
+ # timezone: "__string",
2901
+ # },
2902
+ # size_percent: 1,
2903
+ # treatment_description: "__string",
2904
+ # treatment_name: "__string",
2905
+ # },
2906
+ # ],
2907
+ # description: "__string",
2908
+ # holdout_percent: 1,
2909
+ # is_paused: false,
2910
+ # limits: {
2911
+ # daily: 1,
2912
+ # total: 1,
2913
+ # },
2914
+ # message_configuration: {
2915
+ # apns_message: {
2916
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
2917
+ # body: "__string",
2918
+ # image_icon_url: "__string",
2919
+ # image_url: "__string",
2920
+ # json_body: "__string",
2921
+ # media_url: "__string",
2922
+ # silent_push: false,
2923
+ # title: "__string",
2924
+ # url: "__string",
2925
+ # },
2926
+ # default_message: {
2927
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
2928
+ # body: "__string",
2929
+ # image_icon_url: "__string",
2930
+ # image_url: "__string",
2931
+ # json_body: "__string",
2932
+ # media_url: "__string",
2933
+ # silent_push: false,
2934
+ # title: "__string",
2935
+ # url: "__string",
2936
+ # },
2937
+ # gcm_message: {
2938
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
2939
+ # body: "__string",
2940
+ # image_icon_url: "__string",
2941
+ # image_url: "__string",
2942
+ # json_body: "__string",
2943
+ # media_url: "__string",
2944
+ # silent_push: false,
2945
+ # title: "__string",
2946
+ # url: "__string",
2947
+ # },
2948
+ # },
2949
+ # name: "__string",
2950
+ # schedule: {
2951
+ # end_time: "__string",
2952
+ # frequency: "ONCE", # accepts ONCE, HOURLY, DAILY, WEEKLY, MONTHLY
2953
+ # is_local_time: false,
2954
+ # quiet_time: {
2955
+ # end: "__string",
2956
+ # start: "__string",
2957
+ # },
2958
+ # start_time: "__string",
2959
+ # timezone: "__string",
2960
+ # },
2961
+ # segment_id: "__string",
2962
+ # segment_version: 1,
2963
+ # treatment_description: "__string",
2964
+ # treatment_name: "__string",
2965
+ # }
2966
+ # @!attribute [rw] additional_treatments
2967
+ # Treatments that are defined in addition to the default treatment.
2968
+ # @return [Array<Types::WriteTreatmentResource>]
2969
+ #
2970
+ # @!attribute [rw] description
2971
+ # A description of the campaign.
2972
+ # @return [String]
2973
+ #
2974
+ # @!attribute [rw] holdout_percent
2975
+ # The allocated percentage of end users who will not receive messages
2976
+ # from this campaign.
2977
+ # @return [Integer]
2978
+ #
2979
+ # @!attribute [rw] is_paused
2980
+ # Indicates whether the campaign is paused. A paused campaign does not
2981
+ # send messages unless you resume it by setting IsPaused to false.
2982
+ # @return [Boolean]
2983
+ #
2984
+ # @!attribute [rw] limits
2985
+ # The campaign limits settings.
2986
+ # @return [Types::CampaignLimits]
2987
+ #
2988
+ # @!attribute [rw] message_configuration
2989
+ # The message configuration settings.
2990
+ # @return [Types::MessageConfiguration]
2991
+ #
2992
+ # @!attribute [rw] name
2993
+ # The custom name of the campaign.
2994
+ # @return [String]
2995
+ #
2996
+ # @!attribute [rw] schedule
2997
+ # The campaign schedule.
2998
+ # @return [Types::Schedule]
2999
+ #
3000
+ # @!attribute [rw] segment_id
3001
+ # The ID of the segment to which the campaign sends messages.
3002
+ # @return [String]
3003
+ #
3004
+ # @!attribute [rw] segment_version
3005
+ # The version of the segment to which the campaign sends messages.
3006
+ # @return [Integer]
3007
+ #
3008
+ # @!attribute [rw] treatment_description
3009
+ # A custom description for the treatment.
3010
+ # @return [String]
3011
+ #
3012
+ # @!attribute [rw] treatment_name
3013
+ # The custom name of a variation of the campaign used for A/B testing.
3014
+ # @return [String]
3015
+ class WriteCampaignRequest < Struct.new(
3016
+ :additional_treatments,
3017
+ :description,
3018
+ :holdout_percent,
3019
+ :is_paused,
3020
+ :limits,
3021
+ :message_configuration,
3022
+ :name,
3023
+ :schedule,
3024
+ :segment_id,
3025
+ :segment_version,
3026
+ :treatment_description,
3027
+ :treatment_name)
3028
+ include Aws::Structure
3029
+ end
3030
+
3031
+ # @note When making an API call, pass WriteSegmentRequest
3032
+ # data as a hash:
3033
+ #
3034
+ # {
3035
+ # dimensions: {
3036
+ # attributes: {
3037
+ # "__string" => {
3038
+ # attribute_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
3039
+ # values: ["__string"],
3040
+ # },
3041
+ # },
3042
+ # behavior: {
3043
+ # recency: {
3044
+ # duration: "HR_24", # accepts HR_24, DAY_7, DAY_14, DAY_30
3045
+ # recency_type: "ACTIVE", # accepts ACTIVE, INACTIVE
3046
+ # },
3047
+ # },
3048
+ # demographic: {
3049
+ # app_version: {
3050
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
3051
+ # values: ["__string"],
3052
+ # },
3053
+ # device_type: {
3054
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
3055
+ # values: ["__string"],
3056
+ # },
3057
+ # make: {
3058
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
3059
+ # values: ["__string"],
3060
+ # },
3061
+ # model: {
3062
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
3063
+ # values: ["__string"],
3064
+ # },
3065
+ # platform: {
3066
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
3067
+ # values: ["__string"],
3068
+ # },
3069
+ # },
3070
+ # location: {
3071
+ # country: {
3072
+ # dimension_type: "INCLUSIVE", # accepts INCLUSIVE, EXCLUSIVE
3073
+ # values: ["__string"],
3074
+ # },
3075
+ # },
3076
+ # },
3077
+ # name: "__string",
3078
+ # }
3079
+ # @!attribute [rw] dimensions
3080
+ # The segment dimensions attributes.
3081
+ # @return [Types::SegmentDimensions]
3082
+ #
3083
+ # @!attribute [rw] name
3084
+ # The name of segment
3085
+ # @return [String]
3086
+ class WriteSegmentRequest < Struct.new(
3087
+ :dimensions,
3088
+ :name)
3089
+ include Aws::Structure
3090
+ end
3091
+
3092
+ # @note When making an API call, pass WriteTreatmentResource
3093
+ # data as a hash:
3094
+ #
3095
+ # {
3096
+ # message_configuration: {
3097
+ # apns_message: {
3098
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
3099
+ # body: "__string",
3100
+ # image_icon_url: "__string",
3101
+ # image_url: "__string",
3102
+ # json_body: "__string",
3103
+ # media_url: "__string",
3104
+ # silent_push: false,
3105
+ # title: "__string",
3106
+ # url: "__string",
3107
+ # },
3108
+ # default_message: {
3109
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
3110
+ # body: "__string",
3111
+ # image_icon_url: "__string",
3112
+ # image_url: "__string",
3113
+ # json_body: "__string",
3114
+ # media_url: "__string",
3115
+ # silent_push: false,
3116
+ # title: "__string",
3117
+ # url: "__string",
3118
+ # },
3119
+ # gcm_message: {
3120
+ # action: "OPEN_APP", # accepts OPEN_APP, DEEP_LINK, URL
3121
+ # body: "__string",
3122
+ # image_icon_url: "__string",
3123
+ # image_url: "__string",
3124
+ # json_body: "__string",
3125
+ # media_url: "__string",
3126
+ # silent_push: false,
3127
+ # title: "__string",
3128
+ # url: "__string",
3129
+ # },
3130
+ # },
3131
+ # schedule: {
3132
+ # end_time: "__string",
3133
+ # frequency: "ONCE", # accepts ONCE, HOURLY, DAILY, WEEKLY, MONTHLY
3134
+ # is_local_time: false,
3135
+ # quiet_time: {
3136
+ # end: "__string",
3137
+ # start: "__string",
3138
+ # },
3139
+ # start_time: "__string",
3140
+ # timezone: "__string",
3141
+ # },
3142
+ # size_percent: 1,
3143
+ # treatment_description: "__string",
3144
+ # treatment_name: "__string",
3145
+ # }
3146
+ # @!attribute [rw] message_configuration
3147
+ # The message configuration settings.
3148
+ # @return [Types::MessageConfiguration]
3149
+ #
3150
+ # @!attribute [rw] schedule
3151
+ # The campaign schedule.
3152
+ # @return [Types::Schedule]
3153
+ #
3154
+ # @!attribute [rw] size_percent
3155
+ # The allocated percentage of users for this treatment.
3156
+ # @return [Integer]
3157
+ #
3158
+ # @!attribute [rw] treatment_description
3159
+ # A custom description for the treatment.
3160
+ # @return [String]
3161
+ #
3162
+ # @!attribute [rw] treatment_name
3163
+ # The custom name of a variation of the campaign used for A/B testing.
3164
+ # @return [String]
3165
+ class WriteTreatmentResource < Struct.new(
3166
+ :message_configuration,
3167
+ :schedule,
3168
+ :size_percent,
3169
+ :treatment_description,
3170
+ :treatment_name)
3171
+ include Aws::Structure
3172
+ end
3173
+
3174
+ end
3175
+ end
3176
+ end