aws-sdk-budgets 1.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,879 @@
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 Budgets
10
+ module Types
11
+
12
+ # AWS Budget model
13
+ # @note When making an API call, pass Budget
14
+ # data as a hash:
15
+ #
16
+ # {
17
+ # budget_name: "BudgetName", # required
18
+ # budget_limit: { # required
19
+ # amount: "NumericValue", # required
20
+ # unit: "GenericString", # required
21
+ # },
22
+ # cost_filters: {
23
+ # "GenericString" => ["GenericString"],
24
+ # },
25
+ # cost_types: { # required
26
+ # include_tax: false, # required
27
+ # include_subscription: false, # required
28
+ # use_blended: false, # required
29
+ # },
30
+ # time_unit: "MONTHLY", # required, accepts MONTHLY, QUARTERLY, ANNUALLY
31
+ # time_period: { # required
32
+ # start: Time.now, # required
33
+ # end: Time.now, # required
34
+ # },
35
+ # calculated_spend: {
36
+ # actual_spend: { # required
37
+ # amount: "NumericValue", # required
38
+ # unit: "GenericString", # required
39
+ # },
40
+ # forecasted_spend: {
41
+ # amount: "NumericValue", # required
42
+ # unit: "GenericString", # required
43
+ # },
44
+ # },
45
+ # budget_type: "USAGE", # required, accepts USAGE, COST
46
+ # }
47
+ # @!attribute [rw] budget_name
48
+ # A string represents the budget name. No ":" character is allowed.
49
+ # @return [String]
50
+ #
51
+ # @!attribute [rw] budget_limit
52
+ # A structure represent either a cost spend or usage spend. Contains
53
+ # an amount and a unit.
54
+ # @return [Types::Spend]
55
+ #
56
+ # @!attribute [rw] cost_filters
57
+ # A map represents the cost filters applied to the budget.
58
+ # @return [Hash<String,Array<String>>]
59
+ #
60
+ # @!attribute [rw] cost_types
61
+ # This includes the options for getting the cost of a budget.
62
+ # @return [Types::CostTypes]
63
+ #
64
+ # @!attribute [rw] time_unit
65
+ # The time unit of the budget. e.g. weekly, monthly, etc.
66
+ # @return [String]
67
+ #
68
+ # @!attribute [rw] time_period
69
+ # A time period indicated the start date and end date of a budget.
70
+ # @return [Types::TimePeriod]
71
+ #
72
+ # @!attribute [rw] calculated_spend
73
+ # A structure holds the actual and forecasted spend for a budget.
74
+ # @return [Types::CalculatedSpend]
75
+ #
76
+ # @!attribute [rw] budget_type
77
+ # The type of a budget. Can be COST or USAGE.
78
+ # @return [String]
79
+ class Budget < Struct.new(
80
+ :budget_name,
81
+ :budget_limit,
82
+ :cost_filters,
83
+ :cost_types,
84
+ :time_unit,
85
+ :time_period,
86
+ :calculated_spend,
87
+ :budget_type)
88
+ include Aws::Structure
89
+ end
90
+
91
+ # A structure holds the actual and forecasted spend for a budget.
92
+ # @note When making an API call, pass CalculatedSpend
93
+ # data as a hash:
94
+ #
95
+ # {
96
+ # actual_spend: { # required
97
+ # amount: "NumericValue", # required
98
+ # unit: "GenericString", # required
99
+ # },
100
+ # forecasted_spend: {
101
+ # amount: "NumericValue", # required
102
+ # unit: "GenericString", # required
103
+ # },
104
+ # }
105
+ # @!attribute [rw] actual_spend
106
+ # A structure represent either a cost spend or usage spend. Contains
107
+ # an amount and a unit.
108
+ # @return [Types::Spend]
109
+ #
110
+ # @!attribute [rw] forecasted_spend
111
+ # A structure represent either a cost spend or usage spend. Contains
112
+ # an amount and a unit.
113
+ # @return [Types::Spend]
114
+ class CalculatedSpend < Struct.new(
115
+ :actual_spend,
116
+ :forecasted_spend)
117
+ include Aws::Structure
118
+ end
119
+
120
+ # This includes the options for getting the cost of a budget.
121
+ # @note When making an API call, pass CostTypes
122
+ # data as a hash:
123
+ #
124
+ # {
125
+ # include_tax: false, # required
126
+ # include_subscription: false, # required
127
+ # use_blended: false, # required
128
+ # }
129
+ # @!attribute [rw] include_tax
130
+ # A generic boolean value.
131
+ # @return [Boolean]
132
+ #
133
+ # @!attribute [rw] include_subscription
134
+ # A generic boolean value.
135
+ # @return [Boolean]
136
+ #
137
+ # @!attribute [rw] use_blended
138
+ # A generic boolean value.
139
+ # @return [Boolean]
140
+ class CostTypes < Struct.new(
141
+ :include_tax,
142
+ :include_subscription,
143
+ :use_blended)
144
+ include Aws::Structure
145
+ end
146
+
147
+ # Request of CreateBudget
148
+ # @note When making an API call, pass CreateBudgetRequest
149
+ # data as a hash:
150
+ #
151
+ # {
152
+ # account_id: "AccountId", # required
153
+ # budget: { # required
154
+ # budget_name: "BudgetName", # required
155
+ # budget_limit: { # required
156
+ # amount: "NumericValue", # required
157
+ # unit: "GenericString", # required
158
+ # },
159
+ # cost_filters: {
160
+ # "GenericString" => ["GenericString"],
161
+ # },
162
+ # cost_types: { # required
163
+ # include_tax: false, # required
164
+ # include_subscription: false, # required
165
+ # use_blended: false, # required
166
+ # },
167
+ # time_unit: "MONTHLY", # required, accepts MONTHLY, QUARTERLY, ANNUALLY
168
+ # time_period: { # required
169
+ # start: Time.now, # required
170
+ # end: Time.now, # required
171
+ # },
172
+ # calculated_spend: {
173
+ # actual_spend: { # required
174
+ # amount: "NumericValue", # required
175
+ # unit: "GenericString", # required
176
+ # },
177
+ # forecasted_spend: {
178
+ # amount: "NumericValue", # required
179
+ # unit: "GenericString", # required
180
+ # },
181
+ # },
182
+ # budget_type: "USAGE", # required, accepts USAGE, COST
183
+ # },
184
+ # notifications_with_subscribers: [
185
+ # {
186
+ # notification: { # required
187
+ # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
188
+ # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
189
+ # threshold: 1.0, # required
190
+ # },
191
+ # subscribers: [ # required
192
+ # {
193
+ # subscription_type: "SNS", # required, accepts SNS, EMAIL
194
+ # address: "GenericString", # required
195
+ # },
196
+ # ],
197
+ # },
198
+ # ],
199
+ # }
200
+ # @!attribute [rw] account_id
201
+ # Account Id of the customer. It should be a 12 digit number.
202
+ # @return [String]
203
+ #
204
+ # @!attribute [rw] budget
205
+ # AWS Budget model
206
+ # @return [Types::Budget]
207
+ #
208
+ # @!attribute [rw] notifications_with_subscribers
209
+ # A list of Notifications, each with a list of subscribers.
210
+ # @return [Array<Types::NotificationWithSubscribers>]
211
+ class CreateBudgetRequest < Struct.new(
212
+ :account_id,
213
+ :budget,
214
+ :notifications_with_subscribers)
215
+ include Aws::Structure
216
+ end
217
+
218
+ # Response of CreateBudget
219
+ class CreateBudgetResponse < Aws::EmptyStructure; end
220
+
221
+ # Request of CreateNotification
222
+ # @note When making an API call, pass CreateNotificationRequest
223
+ # data as a hash:
224
+ #
225
+ # {
226
+ # account_id: "AccountId", # required
227
+ # budget_name: "BudgetName", # required
228
+ # notification: { # required
229
+ # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
230
+ # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
231
+ # threshold: 1.0, # required
232
+ # },
233
+ # subscribers: [ # required
234
+ # {
235
+ # subscription_type: "SNS", # required, accepts SNS, EMAIL
236
+ # address: "GenericString", # required
237
+ # },
238
+ # ],
239
+ # }
240
+ # @!attribute [rw] account_id
241
+ # Account Id of the customer. It should be a 12 digit number.
242
+ # @return [String]
243
+ #
244
+ # @!attribute [rw] budget_name
245
+ # A string represents the budget name. No ":" character is allowed.
246
+ # @return [String]
247
+ #
248
+ # @!attribute [rw] notification
249
+ # Notification model. Each budget may contain multiple notifications
250
+ # with different settings.
251
+ # @return [Types::Notification]
252
+ #
253
+ # @!attribute [rw] subscribers
254
+ # A list of subscribers.
255
+ # @return [Array<Types::Subscriber>]
256
+ class CreateNotificationRequest < Struct.new(
257
+ :account_id,
258
+ :budget_name,
259
+ :notification,
260
+ :subscribers)
261
+ include Aws::Structure
262
+ end
263
+
264
+ # Response of CreateNotification
265
+ class CreateNotificationResponse < Aws::EmptyStructure; end
266
+
267
+ # Request of CreateSubscriber
268
+ # @note When making an API call, pass CreateSubscriberRequest
269
+ # data as a hash:
270
+ #
271
+ # {
272
+ # account_id: "AccountId", # required
273
+ # budget_name: "BudgetName", # required
274
+ # notification: { # required
275
+ # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
276
+ # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
277
+ # threshold: 1.0, # required
278
+ # },
279
+ # subscriber: { # required
280
+ # subscription_type: "SNS", # required, accepts SNS, EMAIL
281
+ # address: "GenericString", # required
282
+ # },
283
+ # }
284
+ # @!attribute [rw] account_id
285
+ # Account Id of the customer. It should be a 12 digit number.
286
+ # @return [String]
287
+ #
288
+ # @!attribute [rw] budget_name
289
+ # A string represents the budget name. No ":" character is allowed.
290
+ # @return [String]
291
+ #
292
+ # @!attribute [rw] notification
293
+ # Notification model. Each budget may contain multiple notifications
294
+ # with different settings.
295
+ # @return [Types::Notification]
296
+ #
297
+ # @!attribute [rw] subscriber
298
+ # Subscriber model. Each notification may contain multiple subscribers
299
+ # with different addresses.
300
+ # @return [Types::Subscriber]
301
+ class CreateSubscriberRequest < Struct.new(
302
+ :account_id,
303
+ :budget_name,
304
+ :notification,
305
+ :subscriber)
306
+ include Aws::Structure
307
+ end
308
+
309
+ # Response of CreateSubscriber
310
+ class CreateSubscriberResponse < Aws::EmptyStructure; end
311
+
312
+ # Request of DeleteBudget
313
+ # @note When making an API call, pass DeleteBudgetRequest
314
+ # data as a hash:
315
+ #
316
+ # {
317
+ # account_id: "AccountId", # required
318
+ # budget_name: "BudgetName", # required
319
+ # }
320
+ # @!attribute [rw] account_id
321
+ # Account Id of the customer. It should be a 12 digit number.
322
+ # @return [String]
323
+ #
324
+ # @!attribute [rw] budget_name
325
+ # A string represents the budget name. No ":" character is allowed.
326
+ # @return [String]
327
+ class DeleteBudgetRequest < Struct.new(
328
+ :account_id,
329
+ :budget_name)
330
+ include Aws::Structure
331
+ end
332
+
333
+ # Response of DeleteBudget
334
+ class DeleteBudgetResponse < Aws::EmptyStructure; end
335
+
336
+ # Request of DeleteNotification
337
+ # @note When making an API call, pass DeleteNotificationRequest
338
+ # data as a hash:
339
+ #
340
+ # {
341
+ # account_id: "AccountId", # required
342
+ # budget_name: "BudgetName", # required
343
+ # notification: { # required
344
+ # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
345
+ # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
346
+ # threshold: 1.0, # required
347
+ # },
348
+ # }
349
+ # @!attribute [rw] account_id
350
+ # Account Id of the customer. It should be a 12 digit number.
351
+ # @return [String]
352
+ #
353
+ # @!attribute [rw] budget_name
354
+ # A string represents the budget name. No ":" character is allowed.
355
+ # @return [String]
356
+ #
357
+ # @!attribute [rw] notification
358
+ # Notification model. Each budget may contain multiple notifications
359
+ # with different settings.
360
+ # @return [Types::Notification]
361
+ class DeleteNotificationRequest < Struct.new(
362
+ :account_id,
363
+ :budget_name,
364
+ :notification)
365
+ include Aws::Structure
366
+ end
367
+
368
+ # Response of DeleteNotification
369
+ class DeleteNotificationResponse < Aws::EmptyStructure; end
370
+
371
+ # Request of DeleteSubscriber
372
+ # @note When making an API call, pass DeleteSubscriberRequest
373
+ # data as a hash:
374
+ #
375
+ # {
376
+ # account_id: "AccountId", # required
377
+ # budget_name: "BudgetName", # required
378
+ # notification: { # required
379
+ # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
380
+ # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
381
+ # threshold: 1.0, # required
382
+ # },
383
+ # subscriber: { # required
384
+ # subscription_type: "SNS", # required, accepts SNS, EMAIL
385
+ # address: "GenericString", # required
386
+ # },
387
+ # }
388
+ # @!attribute [rw] account_id
389
+ # Account Id of the customer. It should be a 12 digit number.
390
+ # @return [String]
391
+ #
392
+ # @!attribute [rw] budget_name
393
+ # A string represents the budget name. No ":" character is allowed.
394
+ # @return [String]
395
+ #
396
+ # @!attribute [rw] notification
397
+ # Notification model. Each budget may contain multiple notifications
398
+ # with different settings.
399
+ # @return [Types::Notification]
400
+ #
401
+ # @!attribute [rw] subscriber
402
+ # Subscriber model. Each notification may contain multiple subscribers
403
+ # with different addresses.
404
+ # @return [Types::Subscriber]
405
+ class DeleteSubscriberRequest < Struct.new(
406
+ :account_id,
407
+ :budget_name,
408
+ :notification,
409
+ :subscriber)
410
+ include Aws::Structure
411
+ end
412
+
413
+ # Response of DeleteSubscriber
414
+ class DeleteSubscriberResponse < Aws::EmptyStructure; end
415
+
416
+ # Request of DescribeBudget
417
+ # @note When making an API call, pass DescribeBudgetRequest
418
+ # data as a hash:
419
+ #
420
+ # {
421
+ # account_id: "AccountId", # required
422
+ # budget_name: "BudgetName", # required
423
+ # }
424
+ # @!attribute [rw] account_id
425
+ # Account Id of the customer. It should be a 12 digit number.
426
+ # @return [String]
427
+ #
428
+ # @!attribute [rw] budget_name
429
+ # A string represents the budget name. No ":" character is allowed.
430
+ # @return [String]
431
+ class DescribeBudgetRequest < Struct.new(
432
+ :account_id,
433
+ :budget_name)
434
+ include Aws::Structure
435
+ end
436
+
437
+ # Response of DescribeBudget
438
+ # @!attribute [rw] budget
439
+ # AWS Budget model
440
+ # @return [Types::Budget]
441
+ class DescribeBudgetResponse < Struct.new(
442
+ :budget)
443
+ include Aws::Structure
444
+ end
445
+
446
+ # Request of DescribeBudgets
447
+ # @note When making an API call, pass DescribeBudgetsRequest
448
+ # data as a hash:
449
+ #
450
+ # {
451
+ # account_id: "AccountId", # required
452
+ # max_results: 1,
453
+ # next_token: "GenericString",
454
+ # }
455
+ # @!attribute [rw] account_id
456
+ # Account Id of the customer. It should be a 12 digit number.
457
+ # @return [String]
458
+ #
459
+ # @!attribute [rw] max_results
460
+ # An integer to represent how many entries should a pagianted response
461
+ # contains. Maxium is set to 100.
462
+ # @return [Integer]
463
+ #
464
+ # @!attribute [rw] next_token
465
+ # A generic String.
466
+ # @return [String]
467
+ class DescribeBudgetsRequest < Struct.new(
468
+ :account_id,
469
+ :max_results,
470
+ :next_token)
471
+ include Aws::Structure
472
+ end
473
+
474
+ # Response of DescribeBudgets
475
+ # @!attribute [rw] budgets
476
+ # A list of budgets
477
+ # @return [Array<Types::Budget>]
478
+ #
479
+ # @!attribute [rw] next_token
480
+ # A generic String.
481
+ # @return [String]
482
+ class DescribeBudgetsResponse < Struct.new(
483
+ :budgets,
484
+ :next_token)
485
+ include Aws::Structure
486
+ end
487
+
488
+ # Request of DescribeNotificationsForBudget
489
+ # @note When making an API call, pass DescribeNotificationsForBudgetRequest
490
+ # data as a hash:
491
+ #
492
+ # {
493
+ # account_id: "AccountId", # required
494
+ # budget_name: "BudgetName", # required
495
+ # max_results: 1,
496
+ # next_token: "GenericString",
497
+ # }
498
+ # @!attribute [rw] account_id
499
+ # Account Id of the customer. It should be a 12 digit number.
500
+ # @return [String]
501
+ #
502
+ # @!attribute [rw] budget_name
503
+ # A string represents the budget name. No ":" character is allowed.
504
+ # @return [String]
505
+ #
506
+ # @!attribute [rw] max_results
507
+ # An integer to represent how many entries should a pagianted response
508
+ # contains. Maxium is set to 100.
509
+ # @return [Integer]
510
+ #
511
+ # @!attribute [rw] next_token
512
+ # A generic String.
513
+ # @return [String]
514
+ class DescribeNotificationsForBudgetRequest < Struct.new(
515
+ :account_id,
516
+ :budget_name,
517
+ :max_results,
518
+ :next_token)
519
+ include Aws::Structure
520
+ end
521
+
522
+ # Response of GetNotificationsForBudget
523
+ # @!attribute [rw] notifications
524
+ # A list of notifications.
525
+ # @return [Array<Types::Notification>]
526
+ #
527
+ # @!attribute [rw] next_token
528
+ # A generic String.
529
+ # @return [String]
530
+ class DescribeNotificationsForBudgetResponse < Struct.new(
531
+ :notifications,
532
+ :next_token)
533
+ include Aws::Structure
534
+ end
535
+
536
+ # Request of DescribeSubscribersForNotification
537
+ # @note When making an API call, pass DescribeSubscribersForNotificationRequest
538
+ # data as a hash:
539
+ #
540
+ # {
541
+ # account_id: "AccountId", # required
542
+ # budget_name: "BudgetName", # required
543
+ # notification: { # required
544
+ # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
545
+ # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
546
+ # threshold: 1.0, # required
547
+ # },
548
+ # max_results: 1,
549
+ # next_token: "GenericString",
550
+ # }
551
+ # @!attribute [rw] account_id
552
+ # Account Id of the customer. It should be a 12 digit number.
553
+ # @return [String]
554
+ #
555
+ # @!attribute [rw] budget_name
556
+ # A string represents the budget name. No ":" character is allowed.
557
+ # @return [String]
558
+ #
559
+ # @!attribute [rw] notification
560
+ # Notification model. Each budget may contain multiple notifications
561
+ # with different settings.
562
+ # @return [Types::Notification]
563
+ #
564
+ # @!attribute [rw] max_results
565
+ # An integer to represent how many entries should a pagianted response
566
+ # contains. Maxium is set to 100.
567
+ # @return [Integer]
568
+ #
569
+ # @!attribute [rw] next_token
570
+ # A generic String.
571
+ # @return [String]
572
+ class DescribeSubscribersForNotificationRequest < Struct.new(
573
+ :account_id,
574
+ :budget_name,
575
+ :notification,
576
+ :max_results,
577
+ :next_token)
578
+ include Aws::Structure
579
+ end
580
+
581
+ # Response of DescribeSubscribersForNotification
582
+ # @!attribute [rw] subscribers
583
+ # A list of subscribers.
584
+ # @return [Array<Types::Subscriber>]
585
+ #
586
+ # @!attribute [rw] next_token
587
+ # A generic String.
588
+ # @return [String]
589
+ class DescribeSubscribersForNotificationResponse < Struct.new(
590
+ :subscribers,
591
+ :next_token)
592
+ include Aws::Structure
593
+ end
594
+
595
+ # Notification model. Each budget may contain multiple notifications
596
+ # with different settings.
597
+ # @note When making an API call, pass Notification
598
+ # data as a hash:
599
+ #
600
+ # {
601
+ # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
602
+ # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
603
+ # threshold: 1.0, # required
604
+ # }
605
+ # @!attribute [rw] notification_type
606
+ # The type of a notification. It should be ACTUAL or FORECASTED.
607
+ # @return [String]
608
+ #
609
+ # @!attribute [rw] comparison_operator
610
+ # The comparison operator of a notification. Currently we support less
611
+ # than, equal to and greater than.
612
+ # @return [String]
613
+ #
614
+ # @!attribute [rw] threshold
615
+ # The threshold of the a notification. It should be a number between 0
616
+ # and 100.
617
+ # @return [Float]
618
+ class Notification < Struct.new(
619
+ :notification_type,
620
+ :comparison_operator,
621
+ :threshold)
622
+ include Aws::Structure
623
+ end
624
+
625
+ # A structure to relate notification and a list of subscribers who
626
+ # belong to the notification.
627
+ # @note When making an API call, pass NotificationWithSubscribers
628
+ # data as a hash:
629
+ #
630
+ # {
631
+ # notification: { # required
632
+ # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
633
+ # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
634
+ # threshold: 1.0, # required
635
+ # },
636
+ # subscribers: [ # required
637
+ # {
638
+ # subscription_type: "SNS", # required, accepts SNS, EMAIL
639
+ # address: "GenericString", # required
640
+ # },
641
+ # ],
642
+ # }
643
+ # @!attribute [rw] notification
644
+ # Notification model. Each budget may contain multiple notifications
645
+ # with different settings.
646
+ # @return [Types::Notification]
647
+ #
648
+ # @!attribute [rw] subscribers
649
+ # A list of subscribers.
650
+ # @return [Array<Types::Subscriber>]
651
+ class NotificationWithSubscribers < Struct.new(
652
+ :notification,
653
+ :subscribers)
654
+ include Aws::Structure
655
+ end
656
+
657
+ # A structure represent either a cost spend or usage spend. Contains an
658
+ # amount and a unit.
659
+ # @note When making an API call, pass Spend
660
+ # data as a hash:
661
+ #
662
+ # {
663
+ # amount: "NumericValue", # required
664
+ # unit: "GenericString", # required
665
+ # }
666
+ # @!attribute [rw] amount
667
+ # A string to represent NumericValue.
668
+ # @return [String]
669
+ #
670
+ # @!attribute [rw] unit
671
+ # A generic String.
672
+ # @return [String]
673
+ class Spend < Struct.new(
674
+ :amount,
675
+ :unit)
676
+ include Aws::Structure
677
+ end
678
+
679
+ # Subscriber model. Each notification may contain multiple subscribers
680
+ # with different addresses.
681
+ # @note When making an API call, pass Subscriber
682
+ # data as a hash:
683
+ #
684
+ # {
685
+ # subscription_type: "SNS", # required, accepts SNS, EMAIL
686
+ # address: "GenericString", # required
687
+ # }
688
+ # @!attribute [rw] subscription_type
689
+ # The subscription type of the subscriber. It can be SMS or EMAIL.
690
+ # @return [String]
691
+ #
692
+ # @!attribute [rw] address
693
+ # A generic String.
694
+ # @return [String]
695
+ class Subscriber < Struct.new(
696
+ :subscription_type,
697
+ :address)
698
+ include Aws::Structure
699
+ end
700
+
701
+ # A time period indicated the start date and end date of a budget.
702
+ # @note When making an API call, pass TimePeriod
703
+ # data as a hash:
704
+ #
705
+ # {
706
+ # start: Time.now, # required
707
+ # end: Time.now, # required
708
+ # }
709
+ # @!attribute [rw] start
710
+ # A generic timestamp. In Java it is transformed to a Date object.
711
+ # @return [Time]
712
+ #
713
+ # @!attribute [rw] end
714
+ # A generic timestamp. In Java it is transformed to a Date object.
715
+ # @return [Time]
716
+ class TimePeriod < Struct.new(
717
+ :start,
718
+ :end)
719
+ include Aws::Structure
720
+ end
721
+
722
+ # Request of UpdateBudget
723
+ # @note When making an API call, pass UpdateBudgetRequest
724
+ # data as a hash:
725
+ #
726
+ # {
727
+ # account_id: "AccountId", # required
728
+ # new_budget: { # required
729
+ # budget_name: "BudgetName", # required
730
+ # budget_limit: { # required
731
+ # amount: "NumericValue", # required
732
+ # unit: "GenericString", # required
733
+ # },
734
+ # cost_filters: {
735
+ # "GenericString" => ["GenericString"],
736
+ # },
737
+ # cost_types: { # required
738
+ # include_tax: false, # required
739
+ # include_subscription: false, # required
740
+ # use_blended: false, # required
741
+ # },
742
+ # time_unit: "MONTHLY", # required, accepts MONTHLY, QUARTERLY, ANNUALLY
743
+ # time_period: { # required
744
+ # start: Time.now, # required
745
+ # end: Time.now, # required
746
+ # },
747
+ # calculated_spend: {
748
+ # actual_spend: { # required
749
+ # amount: "NumericValue", # required
750
+ # unit: "GenericString", # required
751
+ # },
752
+ # forecasted_spend: {
753
+ # amount: "NumericValue", # required
754
+ # unit: "GenericString", # required
755
+ # },
756
+ # },
757
+ # budget_type: "USAGE", # required, accepts USAGE, COST
758
+ # },
759
+ # }
760
+ # @!attribute [rw] account_id
761
+ # Account Id of the customer. It should be a 12 digit number.
762
+ # @return [String]
763
+ #
764
+ # @!attribute [rw] new_budget
765
+ # AWS Budget model
766
+ # @return [Types::Budget]
767
+ class UpdateBudgetRequest < Struct.new(
768
+ :account_id,
769
+ :new_budget)
770
+ include Aws::Structure
771
+ end
772
+
773
+ # Response of UpdateBudget
774
+ class UpdateBudgetResponse < Aws::EmptyStructure; end
775
+
776
+ # Request of UpdateNotification
777
+ # @note When making an API call, pass UpdateNotificationRequest
778
+ # data as a hash:
779
+ #
780
+ # {
781
+ # account_id: "AccountId", # required
782
+ # budget_name: "BudgetName", # required
783
+ # old_notification: { # required
784
+ # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
785
+ # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
786
+ # threshold: 1.0, # required
787
+ # },
788
+ # new_notification: { # required
789
+ # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
790
+ # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
791
+ # threshold: 1.0, # required
792
+ # },
793
+ # }
794
+ # @!attribute [rw] account_id
795
+ # Account Id of the customer. It should be a 12 digit number.
796
+ # @return [String]
797
+ #
798
+ # @!attribute [rw] budget_name
799
+ # A string represents the budget name. No ":" character is allowed.
800
+ # @return [String]
801
+ #
802
+ # @!attribute [rw] old_notification
803
+ # Notification model. Each budget may contain multiple notifications
804
+ # with different settings.
805
+ # @return [Types::Notification]
806
+ #
807
+ # @!attribute [rw] new_notification
808
+ # Notification model. Each budget may contain multiple notifications
809
+ # with different settings.
810
+ # @return [Types::Notification]
811
+ class UpdateNotificationRequest < Struct.new(
812
+ :account_id,
813
+ :budget_name,
814
+ :old_notification,
815
+ :new_notification)
816
+ include Aws::Structure
817
+ end
818
+
819
+ # Response of UpdateNotification
820
+ class UpdateNotificationResponse < Aws::EmptyStructure; end
821
+
822
+ # Request of UpdateSubscriber
823
+ # @note When making an API call, pass UpdateSubscriberRequest
824
+ # data as a hash:
825
+ #
826
+ # {
827
+ # account_id: "AccountId", # required
828
+ # budget_name: "BudgetName", # required
829
+ # notification: { # required
830
+ # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
831
+ # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
832
+ # threshold: 1.0, # required
833
+ # },
834
+ # old_subscriber: { # required
835
+ # subscription_type: "SNS", # required, accepts SNS, EMAIL
836
+ # address: "GenericString", # required
837
+ # },
838
+ # new_subscriber: { # required
839
+ # subscription_type: "SNS", # required, accepts SNS, EMAIL
840
+ # address: "GenericString", # required
841
+ # },
842
+ # }
843
+ # @!attribute [rw] account_id
844
+ # Account Id of the customer. It should be a 12 digit number.
845
+ # @return [String]
846
+ #
847
+ # @!attribute [rw] budget_name
848
+ # A string represents the budget name. No ":" character is allowed.
849
+ # @return [String]
850
+ #
851
+ # @!attribute [rw] notification
852
+ # Notification model. Each budget may contain multiple notifications
853
+ # with different settings.
854
+ # @return [Types::Notification]
855
+ #
856
+ # @!attribute [rw] old_subscriber
857
+ # Subscriber model. Each notification may contain multiple subscribers
858
+ # with different addresses.
859
+ # @return [Types::Subscriber]
860
+ #
861
+ # @!attribute [rw] new_subscriber
862
+ # Subscriber model. Each notification may contain multiple subscribers
863
+ # with different addresses.
864
+ # @return [Types::Subscriber]
865
+ class UpdateSubscriberRequest < Struct.new(
866
+ :account_id,
867
+ :budget_name,
868
+ :notification,
869
+ :old_subscriber,
870
+ :new_subscriber)
871
+ include Aws::Structure
872
+ end
873
+
874
+ # Response of UpdateSubscriber
875
+ class UpdateSubscriberResponse < Aws::EmptyStructure; end
876
+
877
+ end
878
+ end
879
+ end