aws-sdk-budgets 1.12.0 → 1.13.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 34a0d598171f0dc36b11bc6591328dd61d2af2ec
4
- data.tar.gz: 892db5e6714d23aec1b538579543662d3bd58e77
3
+ metadata.gz: 0543f32f12a8ed8f6dba8a52bb1773bce8f8e34a
4
+ data.tar.gz: bf7de44f7bec97aac02a8a1a040d907e6158821c
5
5
  SHA512:
6
- metadata.gz: 5c4142f609014932ff33f9cab3303ebd2daf5ca34f7b46e9aa518755ef5d2bb33468064e85297286e648924791f3a5730dc32f74d74bafdb1be0804912243905
7
- data.tar.gz: ed67155bded3b1de540462d3eef6bbeecaa4155cb12c3e92518ddf162eaad4a0ec02a3263f04f6b0049958e69a7e0248ca6270199d949781393805cee327cdda
6
+ metadata.gz: 5eed0bc6bf4f7818c945fde6f8b4f373f49e38b4c3144c4066bea632079fdeaa17c89c2ef04b9f2bdf685c248ad0b357ea6b2fd2b7455b9c111ba90354dc3d05
7
+ data.tar.gz: f7e653ac0d6d5ef387027c1efcd3907e5886d3a33f4d8b1a069949942e4d65f445e03270334abeccdf0455a29a73e472c3996530e22c0697546b22df4d335369
@@ -42,6 +42,6 @@ require_relative 'aws-sdk-budgets/customizations'
42
42
  # @service
43
43
  module Aws::Budgets
44
44
 
45
- GEM_VERSION = '1.12.0'
45
+ GEM_VERSION = '1.13.0'
46
46
 
47
47
  end
@@ -15,6 +15,7 @@ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
15
  require 'aws-sdk-core/plugins/retry_errors.rb'
16
16
  require 'aws-sdk-core/plugins/global_configuration.rb'
17
17
  require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
18
19
  require 'aws-sdk-core/plugins/response_paging.rb'
19
20
  require 'aws-sdk-core/plugins/stub_responses.rb'
20
21
  require 'aws-sdk-core/plugins/idempotency_token.rb'
@@ -45,6 +46,7 @@ module Aws::Budgets
45
46
  add_plugin(Aws::Plugins::RetryErrors)
46
47
  add_plugin(Aws::Plugins::GlobalConfiguration)
47
48
  add_plugin(Aws::Plugins::RegionalEndpoint)
49
+ add_plugin(Aws::Plugins::EndpointDiscovery)
48
50
  add_plugin(Aws::Plugins::ResponsePaging)
49
51
  add_plugin(Aws::Plugins::StubResponses)
50
52
  add_plugin(Aws::Plugins::IdempotencyToken)
@@ -98,6 +100,10 @@ module Aws::Budgets
98
100
  #
99
101
  # @option options [String] :access_key_id
100
102
  #
103
+ # @option options [Boolean] :active_endpoint_cache (false)
104
+ # When set to `true`, a thread polling for endpoints will be running in
105
+ # the background every 60 secs (default). Defaults to `false`.
106
+ #
101
107
  # @option options [Boolean] :client_side_monitoring (false)
102
108
  # When `true`, client-side metrics will be collected for all API requests from
103
109
  # this client.
@@ -123,6 +129,21 @@ module Aws::Budgets
123
129
  # option. You should only configure an `:endpoint` when connecting
124
130
  # to test endpoints. This should be avalid HTTP(S) URI.
125
131
  #
132
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
133
+ # Used for the maximum size limit of the LRU cache storing endpoints data
134
+ # for endpoint discovery enabled operations. Defaults to 1000.
135
+ #
136
+ # @option options [Integer] :endpoint_cache_max_threads (10)
137
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
138
+ #
139
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
140
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
141
+ # Use this option to config the time interval in seconds for making
142
+ # requests fetching endpoints information. Defaults to 60 sec.
143
+ #
144
+ # @option options [Boolean] :endpoint_discovery (false)
145
+ # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
146
+ #
126
147
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
127
148
  # The log formatter.
128
149
  #
@@ -199,7 +220,7 @@ module Aws::Budgets
199
220
  # @option params [Array<Types::NotificationWithSubscribers>] :notifications_with_subscribers
200
221
  # A notification that you want to associate with a budget. A budget can
201
222
  # have up to five notifications, and each notification can have one SNS
202
- # subscriber and up to ten email subscribers. If you include
223
+ # subscriber and up to 10 email subscribers. If you include
203
224
  # notifications and subscribers in your `CreateBudget` call, AWS creates
204
225
  # the notifications and subscribers for you.
205
226
  #
@@ -247,6 +268,7 @@ module Aws::Budgets
247
268
  # },
248
269
  # },
249
270
  # budget_type: "USAGE", # required, accepts USAGE, COST, RI_UTILIZATION, RI_COVERAGE
271
+ # last_updated_time: Time.now,
250
272
  # },
251
273
  # notifications_with_subscribers: [
252
274
  # {
@@ -255,6 +277,7 @@ module Aws::Budgets
255
277
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
256
278
  # threshold: 1.0, # required
257
279
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
280
+ # notification_state: "OK", # accepts OK, ALARM
258
281
  # },
259
282
  # subscribers: [ # required
260
283
  # {
@@ -281,7 +304,7 @@ module Aws::Budgets
281
304
  # create a notification for.
282
305
  #
283
306
  # @option params [required, String] :budget_name
284
- # The name of the budget that you want AWS to notified you about. Budget
307
+ # The name of the budget that you want AWS to notify you about. Budget
285
308
  # names must be unique within an account.
286
309
  #
287
310
  # @option params [required, Types::Notification] :notification
@@ -290,7 +313,7 @@ module Aws::Budgets
290
313
  # @option params [required, Array<Types::Subscriber>] :subscribers
291
314
  # A list of subscribers that you want to associate with the
292
315
  # notification. Each notification can have one SNS subscriber and up to
293
- # ten email subscribers.
316
+ # 10 email subscribers.
294
317
  #
295
318
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
296
319
  #
@@ -304,6 +327,7 @@ module Aws::Budgets
304
327
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
305
328
  # threshold: 1.0, # required
306
329
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
330
+ # notification_state: "OK", # accepts OK, ALARM
307
331
  # },
308
332
  # subscribers: [ # required
309
333
  # {
@@ -324,8 +348,8 @@ module Aws::Budgets
324
348
  # notification before you create the subscriber.
325
349
  #
326
350
  # @option params [required, String] :account_id
327
- # The `accountId` associated with the budget that you want to create a
328
- # subscriber for.
351
+ # The `accountId` that is associated with the budget that you want to
352
+ # create a subscriber for.
329
353
  #
330
354
  # @option params [required, String] :budget_name
331
355
  # The name of the budget that you want to subscribe to. Budget names
@@ -349,6 +373,7 @@ module Aws::Budgets
349
373
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
350
374
  # threshold: 1.0, # required
351
375
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
376
+ # notification_state: "OK", # accepts OK, ALARM
352
377
  # },
353
378
  # subscriber: { # required
354
379
  # subscription_type: "SNS", # required, accepts SNS, EMAIL
@@ -365,8 +390,8 @@ module Aws::Budgets
365
390
 
366
391
  # Deletes a budget. You can delete your budget at any time.
367
392
  #
368
- # **Deleting a budget also deletes the notifications and subscribers
369
- # associated with that budget.**
393
+ # Deleting a budget also deletes the notifications and subscribers that
394
+ # are associated with that budget.
370
395
  #
371
396
  # @option params [required, String] :account_id
372
397
  # The `accountId` that is associated with the budget that you want to
@@ -393,8 +418,8 @@ module Aws::Budgets
393
418
 
394
419
  # Deletes a notification.
395
420
  #
396
- # **Deleting a notification also deletes the subscribers associated with
397
- # the notification.**
421
+ # Deleting a notification also deletes the subscribers that are
422
+ # associated with the notification.
398
423
  #
399
424
  # @option params [required, String] :account_id
400
425
  # The `accountId` that is associated with the budget whose notification
@@ -418,6 +443,7 @@ module Aws::Budgets
418
443
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
419
444
  # threshold: 1.0, # required
420
445
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
446
+ # notification_state: "OK", # accepts OK, ALARM
421
447
  # },
422
448
  # })
423
449
  #
@@ -430,8 +456,8 @@ module Aws::Budgets
430
456
 
431
457
  # Deletes a subscriber.
432
458
  #
433
- # **Deleting the last subscriber to a notification also deletes the
434
- # notification.**
459
+ # Deleting the last subscriber to a notification also deletes the
460
+ # notification.
435
461
  #
436
462
  # @option params [required, String] :account_id
437
463
  # The `accountId` that is associated with the budget whose subscriber
@@ -458,6 +484,7 @@ module Aws::Budgets
458
484
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
459
485
  # threshold: 1.0, # required
460
486
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
487
+ # notification_state: "OK", # accepts OK, ALARM
461
488
  # },
462
489
  # subscriber: { # required
463
490
  # subscription_type: "SNS", # required, accepts SNS, EMAIL
@@ -519,6 +546,7 @@ module Aws::Budgets
519
546
  # resp.budget.calculated_spend.forecasted_spend.amount #=> String
520
547
  # resp.budget.calculated_spend.forecasted_spend.unit #=> String
521
548
  # resp.budget.budget_type #=> String, one of "USAGE", "COST", "RI_UTILIZATION", "RI_COVERAGE"
549
+ # resp.budget.last_updated_time #=> Time
522
550
  #
523
551
  # @overload describe_budget(params = {})
524
552
  # @param [Hash] params ({})
@@ -527,19 +555,93 @@ module Aws::Budgets
527
555
  req.send_request(options)
528
556
  end
529
557
 
530
- # Lists the budgets associated with an account.
558
+ # Describes the history for `DAILY`, `MONTHLY`, and `QUARTERLY` budgets.
559
+ # Budget history isn't available for `ANNUAL` budgets.
560
+ #
561
+ # @option params [required, String] :account_id
562
+ # The account ID of the user. It should be a 12-digit number.
563
+ #
564
+ # @option params [required, String] :budget_name
565
+ # A string that represents the budget name. The ":" and "\\"
566
+ # characters aren't allowed.
567
+ #
568
+ # @option params [Types::TimePeriod] :time_period
569
+ # Retrieves how often the budget went into an `ALARM` state for the
570
+ # specified time period.
571
+ #
572
+ # @option params [Integer] :max_results
573
+ # An integer that represents how many entries a paginated response
574
+ # contains. The maximum is 100.
575
+ #
576
+ # @option params [String] :next_token
577
+ # A generic string.
578
+ #
579
+ # @return [Types::DescribeBudgetPerformanceHistoryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
580
+ #
581
+ # * {Types::DescribeBudgetPerformanceHistoryResponse#budget_performance_history #budget_performance_history} => Types::BudgetPerformanceHistory
582
+ # * {Types::DescribeBudgetPerformanceHistoryResponse#next_token #next_token} => String
583
+ #
584
+ # @example Request syntax with placeholder values
585
+ #
586
+ # resp = client.describe_budget_performance_history({
587
+ # account_id: "AccountId", # required
588
+ # budget_name: "BudgetName", # required
589
+ # time_period: {
590
+ # start: Time.now,
591
+ # end: Time.now,
592
+ # },
593
+ # max_results: 1,
594
+ # next_token: "GenericString",
595
+ # })
596
+ #
597
+ # @example Response structure
598
+ #
599
+ # resp.budget_performance_history.budget_name #=> String
600
+ # resp.budget_performance_history.budget_type #=> String, one of "USAGE", "COST", "RI_UTILIZATION", "RI_COVERAGE"
601
+ # resp.budget_performance_history.cost_filters #=> Hash
602
+ # resp.budget_performance_history.cost_filters["GenericString"] #=> Array
603
+ # resp.budget_performance_history.cost_filters["GenericString"][0] #=> String
604
+ # resp.budget_performance_history.cost_types.include_tax #=> Boolean
605
+ # resp.budget_performance_history.cost_types.include_subscription #=> Boolean
606
+ # resp.budget_performance_history.cost_types.use_blended #=> Boolean
607
+ # resp.budget_performance_history.cost_types.include_refund #=> Boolean
608
+ # resp.budget_performance_history.cost_types.include_credit #=> Boolean
609
+ # resp.budget_performance_history.cost_types.include_upfront #=> Boolean
610
+ # resp.budget_performance_history.cost_types.include_recurring #=> Boolean
611
+ # resp.budget_performance_history.cost_types.include_other_subscription #=> Boolean
612
+ # resp.budget_performance_history.cost_types.include_support #=> Boolean
613
+ # resp.budget_performance_history.cost_types.include_discount #=> Boolean
614
+ # resp.budget_performance_history.cost_types.use_amortized #=> Boolean
615
+ # resp.budget_performance_history.time_unit #=> String, one of "DAILY", "MONTHLY", "QUARTERLY", "ANNUALLY"
616
+ # resp.budget_performance_history.budgeted_and_actual_amounts_list #=> Array
617
+ # resp.budget_performance_history.budgeted_and_actual_amounts_list[0].budgeted_amount.amount #=> String
618
+ # resp.budget_performance_history.budgeted_and_actual_amounts_list[0].budgeted_amount.unit #=> String
619
+ # resp.budget_performance_history.budgeted_and_actual_amounts_list[0].actual_amount.amount #=> String
620
+ # resp.budget_performance_history.budgeted_and_actual_amounts_list[0].actual_amount.unit #=> String
621
+ # resp.budget_performance_history.budgeted_and_actual_amounts_list[0].time_period.start #=> Time
622
+ # resp.budget_performance_history.budgeted_and_actual_amounts_list[0].time_period.end #=> Time
623
+ # resp.next_token #=> String
624
+ #
625
+ # @overload describe_budget_performance_history(params = {})
626
+ # @param [Hash] params ({})
627
+ def describe_budget_performance_history(params = {}, options = {})
628
+ req = build_request(:describe_budget_performance_history, params)
629
+ req.send_request(options)
630
+ end
631
+
632
+ # Lists the budgets that are associated with an account.
531
633
  #
532
634
  # @option params [required, String] :account_id
533
635
  # The `accountId` that is associated with the budgets that you want
534
636
  # descriptions of.
535
637
  #
536
638
  # @option params [Integer] :max_results
537
- # Optional integer. Specifies the maximum number of results to return in
538
- # response.
639
+ # An optional integer that represents how many entries a paginated
640
+ # response contains. The maximum is 100.
539
641
  #
540
642
  # @option params [String] :next_token
541
- # The pagination token that indicates the next set of results to
542
- # retrieve.
643
+ # The pagination token that you include in your request to indicate the
644
+ # next set of results that you want to retrieve.
543
645
  #
544
646
  # @return [Types::DescribeBudgetsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
545
647
  #
@@ -582,6 +684,7 @@ module Aws::Budgets
582
684
  # resp.budgets[0].calculated_spend.forecasted_spend.amount #=> String
583
685
  # resp.budgets[0].calculated_spend.forecasted_spend.unit #=> String
584
686
  # resp.budgets[0].budget_type #=> String, one of "USAGE", "COST", "RI_UTILIZATION", "RI_COVERAGE"
687
+ # resp.budgets[0].last_updated_time #=> Time
585
688
  # resp.next_token #=> String
586
689
  #
587
690
  # @overload describe_budgets(params = {})
@@ -591,7 +694,7 @@ module Aws::Budgets
591
694
  req.send_request(options)
592
695
  end
593
696
 
594
- # Lists the notifications associated with a budget.
697
+ # Lists the notifications that are associated with a budget.
595
698
  #
596
699
  # @option params [required, String] :account_id
597
700
  # The `accountId` that is associated with the budget whose notifications
@@ -601,12 +704,12 @@ module Aws::Budgets
601
704
  # The name of the budget whose notifications you want descriptions of.
602
705
  #
603
706
  # @option params [Integer] :max_results
604
- # Optional integer. Specifies the maximum number of results to return in
605
- # response.
707
+ # An optional integer that represents how many entries a paginated
708
+ # response contains. The maximum is 100.
606
709
  #
607
710
  # @option params [String] :next_token
608
- # The pagination token that indicates the next set of results to
609
- # retrieve.
711
+ # The pagination token that you include in your request to indicate the
712
+ # next set of results that you want to retrieve.
610
713
  #
611
714
  # @return [Types::DescribeNotificationsForBudgetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
612
715
  #
@@ -629,6 +732,7 @@ module Aws::Budgets
629
732
  # resp.notifications[0].comparison_operator #=> String, one of "GREATER_THAN", "LESS_THAN", "EQUAL_TO"
630
733
  # resp.notifications[0].threshold #=> Float
631
734
  # resp.notifications[0].threshold_type #=> String, one of "PERCENTAGE", "ABSOLUTE_VALUE"
735
+ # resp.notifications[0].notification_state #=> String, one of "OK", "ALARM"
632
736
  # resp.next_token #=> String
633
737
  #
634
738
  # @overload describe_notifications_for_budget(params = {})
@@ -638,7 +742,7 @@ module Aws::Budgets
638
742
  req.send_request(options)
639
743
  end
640
744
 
641
- # Lists the subscribers associated with a notification.
745
+ # Lists the subscribers that are associated with a notification.
642
746
  #
643
747
  # @option params [required, String] :account_id
644
748
  # The `accountId` that is associated with the budget whose subscribers
@@ -651,12 +755,12 @@ module Aws::Budgets
651
755
  # The notification whose subscribers you want to list.
652
756
  #
653
757
  # @option params [Integer] :max_results
654
- # Optional integer. Specifies the maximum number of results to return in
655
- # response.
758
+ # An optional integer that represents how many entries a paginated
759
+ # response contains. The maximum is 100.
656
760
  #
657
761
  # @option params [String] :next_token
658
- # The pagination token that indicates the next set of results to
659
- # retrieve.
762
+ # The pagination token that you include in your request to indicate the
763
+ # next set of results that you want to retrieve.
660
764
  #
661
765
  # @return [Types::DescribeSubscribersForNotificationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
662
766
  #
@@ -673,6 +777,7 @@ module Aws::Budgets
673
777
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
674
778
  # threshold: 1.0, # required
675
779
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
780
+ # notification_state: "OK", # accepts OK, ALARM
676
781
  # },
677
782
  # max_results: 1,
678
783
  # next_token: "GenericString",
@@ -693,7 +798,7 @@ module Aws::Budgets
693
798
  end
694
799
 
695
800
  # Updates a budget. You can change every part of a budget except for the
696
- # `budgetName` and the `calculatedSpend`. When a budget is modified, the
801
+ # `budgetName` and the `calculatedSpend`. When you modify a budget, the
697
802
  # `calculatedSpend` drops to zero until AWS has new usage data to use
698
803
  # for forecasting.
699
804
  #
@@ -748,6 +853,7 @@ module Aws::Budgets
748
853
  # },
749
854
  # },
750
855
  # budget_type: "USAGE", # required, accepts USAGE, COST, RI_UTILIZATION, RI_COVERAGE
856
+ # last_updated_time: Time.now,
751
857
  # },
752
858
  # })
753
859
  #
@@ -768,7 +874,7 @@ module Aws::Budgets
768
874
  # The name of the budget whose notification you want to update.
769
875
  #
770
876
  # @option params [required, Types::Notification] :old_notification
771
- # The previous notification associated with a budget.
877
+ # The previous notification that is associated with a budget.
772
878
  #
773
879
  # @option params [required, Types::Notification] :new_notification
774
880
  # The updated notification to be associated with a budget.
@@ -785,12 +891,14 @@ module Aws::Budgets
785
891
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
786
892
  # threshold: 1.0, # required
787
893
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
894
+ # notification_state: "OK", # accepts OK, ALARM
788
895
  # },
789
896
  # new_notification: { # required
790
897
  # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
791
898
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
792
899
  # threshold: 1.0, # required
793
900
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
901
+ # notification_state: "OK", # accepts OK, ALARM
794
902
  # },
795
903
  # })
796
904
  #
@@ -814,10 +922,10 @@ module Aws::Budgets
814
922
  # The notification whose subscriber you want to update.
815
923
  #
816
924
  # @option params [required, Types::Subscriber] :old_subscriber
817
- # The previous subscriber associated with a budget notification.
925
+ # The previous subscriber that is associated with a budget notification.
818
926
  #
819
927
  # @option params [required, Types::Subscriber] :new_subscriber
820
- # The updated subscriber associated with a budget notification.
928
+ # The updated subscriber that is associated with a budget notification.
821
929
  #
822
930
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
823
931
  #
@@ -831,6 +939,7 @@ module Aws::Budgets
831
939
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
832
940
  # threshold: 1.0, # required
833
941
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
942
+ # notification_state: "OK", # accepts OK, ALARM
834
943
  # },
835
944
  # old_subscriber: { # required
836
945
  # subscription_type: "SNS", # required, accepts SNS, EMAIL
@@ -862,7 +971,7 @@ module Aws::Budgets
862
971
  params: params,
863
972
  config: config)
864
973
  context[:gem_name] = 'aws-sdk-budgets'
865
- context[:gem_version] = '1.12.0'
974
+ context[:gem_version] = '1.13.0'
866
975
  Seahorse::Client::Request.new(handlers, context)
867
976
  end
868
977
 
@@ -14,7 +14,10 @@ module Aws::Budgets
14
14
  AccountId = Shapes::StringShape.new(name: 'AccountId')
15
15
  Budget = Shapes::StructureShape.new(name: 'Budget')
16
16
  BudgetName = Shapes::StringShape.new(name: 'BudgetName')
17
+ BudgetPerformanceHistory = Shapes::StructureShape.new(name: 'BudgetPerformanceHistory')
17
18
  BudgetType = Shapes::StringShape.new(name: 'BudgetType')
19
+ BudgetedAndActualAmounts = Shapes::StructureShape.new(name: 'BudgetedAndActualAmounts')
20
+ BudgetedAndActualAmountsList = Shapes::ListShape.new(name: 'BudgetedAndActualAmountsList')
18
21
  Budgets = Shapes::ListShape.new(name: 'Budgets')
19
22
  CalculatedSpend = Shapes::StructureShape.new(name: 'CalculatedSpend')
20
23
  ComparisonOperator = Shapes::StringShape.new(name: 'ComparisonOperator')
@@ -33,6 +36,8 @@ module Aws::Budgets
33
36
  DeleteNotificationResponse = Shapes::StructureShape.new(name: 'DeleteNotificationResponse')
34
37
  DeleteSubscriberRequest = Shapes::StructureShape.new(name: 'DeleteSubscriberRequest')
35
38
  DeleteSubscriberResponse = Shapes::StructureShape.new(name: 'DeleteSubscriberResponse')
39
+ DescribeBudgetPerformanceHistoryRequest = Shapes::StructureShape.new(name: 'DescribeBudgetPerformanceHistoryRequest')
40
+ DescribeBudgetPerformanceHistoryResponse = Shapes::StructureShape.new(name: 'DescribeBudgetPerformanceHistoryResponse')
36
41
  DescribeBudgetRequest = Shapes::StructureShape.new(name: 'DescribeBudgetRequest')
37
42
  DescribeBudgetResponse = Shapes::StructureShape.new(name: 'DescribeBudgetResponse')
38
43
  DescribeBudgetsRequest = Shapes::StructureShape.new(name: 'DescribeBudgetsRequest')
@@ -52,6 +57,7 @@ module Aws::Budgets
52
57
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
53
58
  NotFoundException = Shapes::StructureShape.new(name: 'NotFoundException')
54
59
  Notification = Shapes::StructureShape.new(name: 'Notification')
60
+ NotificationState = Shapes::StringShape.new(name: 'NotificationState')
55
61
  NotificationThreshold = Shapes::FloatShape.new(name: 'NotificationThreshold')
56
62
  NotificationType = Shapes::StringShape.new(name: 'NotificationType')
57
63
  NotificationWithSubscribers = Shapes::StructureShape.new(name: 'NotificationWithSubscribers')
@@ -84,8 +90,24 @@ module Aws::Budgets
84
90
  Budget.add_member(:time_period, Shapes::ShapeRef.new(shape: TimePeriod, location_name: "TimePeriod"))
85
91
  Budget.add_member(:calculated_spend, Shapes::ShapeRef.new(shape: CalculatedSpend, location_name: "CalculatedSpend"))
86
92
  Budget.add_member(:budget_type, Shapes::ShapeRef.new(shape: BudgetType, required: true, location_name: "BudgetType"))
93
+ Budget.add_member(:last_updated_time, Shapes::ShapeRef.new(shape: GenericTimestamp, location_name: "LastUpdatedTime"))
87
94
  Budget.struct_class = Types::Budget
88
95
 
96
+ BudgetPerformanceHistory.add_member(:budget_name, Shapes::ShapeRef.new(shape: BudgetName, location_name: "BudgetName"))
97
+ BudgetPerformanceHistory.add_member(:budget_type, Shapes::ShapeRef.new(shape: BudgetType, location_name: "BudgetType"))
98
+ BudgetPerformanceHistory.add_member(:cost_filters, Shapes::ShapeRef.new(shape: CostFilters, location_name: "CostFilters"))
99
+ BudgetPerformanceHistory.add_member(:cost_types, Shapes::ShapeRef.new(shape: CostTypes, location_name: "CostTypes"))
100
+ BudgetPerformanceHistory.add_member(:time_unit, Shapes::ShapeRef.new(shape: TimeUnit, location_name: "TimeUnit"))
101
+ BudgetPerformanceHistory.add_member(:budgeted_and_actual_amounts_list, Shapes::ShapeRef.new(shape: BudgetedAndActualAmountsList, location_name: "BudgetedAndActualAmountsList"))
102
+ BudgetPerformanceHistory.struct_class = Types::BudgetPerformanceHistory
103
+
104
+ BudgetedAndActualAmounts.add_member(:budgeted_amount, Shapes::ShapeRef.new(shape: Spend, location_name: "BudgetedAmount"))
105
+ BudgetedAndActualAmounts.add_member(:actual_amount, Shapes::ShapeRef.new(shape: Spend, location_name: "ActualAmount"))
106
+ BudgetedAndActualAmounts.add_member(:time_period, Shapes::ShapeRef.new(shape: TimePeriod, location_name: "TimePeriod"))
107
+ BudgetedAndActualAmounts.struct_class = Types::BudgetedAndActualAmounts
108
+
109
+ BudgetedAndActualAmountsList.member = Shapes::ShapeRef.new(shape: BudgetedAndActualAmounts)
110
+
89
111
  Budgets.member = Shapes::ShapeRef.new(shape: Budget)
90
112
 
91
113
  CalculatedSpend.add_member(:actual_spend, Shapes::ShapeRef.new(shape: Spend, required: true, location_name: "ActualSpend"))
@@ -152,6 +174,17 @@ module Aws::Budgets
152
174
 
153
175
  DeleteSubscriberResponse.struct_class = Types::DeleteSubscriberResponse
154
176
 
177
+ DescribeBudgetPerformanceHistoryRequest.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, required: true, location_name: "AccountId"))
178
+ DescribeBudgetPerformanceHistoryRequest.add_member(:budget_name, Shapes::ShapeRef.new(shape: BudgetName, required: true, location_name: "BudgetName"))
179
+ DescribeBudgetPerformanceHistoryRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: TimePeriod, location_name: "TimePeriod"))
180
+ DescribeBudgetPerformanceHistoryRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
181
+ DescribeBudgetPerformanceHistoryRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: GenericString, location_name: "NextToken"))
182
+ DescribeBudgetPerformanceHistoryRequest.struct_class = Types::DescribeBudgetPerformanceHistoryRequest
183
+
184
+ DescribeBudgetPerformanceHistoryResponse.add_member(:budget_performance_history, Shapes::ShapeRef.new(shape: BudgetPerformanceHistory, location_name: "BudgetPerformanceHistory"))
185
+ DescribeBudgetPerformanceHistoryResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: GenericString, location_name: "NextToken"))
186
+ DescribeBudgetPerformanceHistoryResponse.struct_class = Types::DescribeBudgetPerformanceHistoryResponse
187
+
155
188
  DescribeBudgetRequest.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, required: true, location_name: "AccountId"))
156
189
  DescribeBudgetRequest.add_member(:budget_name, Shapes::ShapeRef.new(shape: BudgetName, required: true, location_name: "BudgetName"))
157
190
  DescribeBudgetRequest.struct_class = Types::DescribeBudgetRequest
@@ -195,6 +228,7 @@ module Aws::Budgets
195
228
  Notification.add_member(:comparison_operator, Shapes::ShapeRef.new(shape: ComparisonOperator, required: true, location_name: "ComparisonOperator"))
196
229
  Notification.add_member(:threshold, Shapes::ShapeRef.new(shape: NotificationThreshold, required: true, location_name: "Threshold"))
197
230
  Notification.add_member(:threshold_type, Shapes::ShapeRef.new(shape: ThresholdType, location_name: "ThresholdType"))
231
+ Notification.add_member(:notification_state, Shapes::ShapeRef.new(shape: NotificationState, location_name: "NotificationState"))
198
232
  Notification.struct_class = Types::Notification
199
233
 
200
234
  NotificationWithSubscribers.add_member(:notification, Shapes::ShapeRef.new(shape: Notification, required: true, location_name: "Notification"))
@@ -343,6 +377,19 @@ module Aws::Budgets
343
377
  o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
344
378
  end)
345
379
 
380
+ api.add_operation(:describe_budget_performance_history, Seahorse::Model::Operation.new.tap do |o|
381
+ o.name = "DescribeBudgetPerformanceHistory"
382
+ o.http_method = "POST"
383
+ o.http_request_uri = "/"
384
+ o.input = Shapes::ShapeRef.new(shape: DescribeBudgetPerformanceHistoryRequest)
385
+ o.output = Shapes::ShapeRef.new(shape: DescribeBudgetPerformanceHistoryResponse)
386
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
387
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
388
+ o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
389
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
390
+ o.errors << Shapes::ShapeRef.new(shape: ExpiredNextTokenException)
391
+ end)
392
+
346
393
  api.add_operation(:describe_budgets, Seahorse::Model::Operation.new.tap do |o|
347
394
  o.name = "DescribeBudgets"
348
395
  o.http_method = "POST"
@@ -10,9 +10,10 @@ module Aws::Budgets
10
10
 
11
11
  # Represents the output of the `CreateBudget` operation. The content
12
12
  # consists of the detailed metadata and data file information, and the
13
- # current status of the `budget`.
13
+ # current status of the `budget` object.
14
+ #
15
+ # This is the ARN pattern for a budget:
14
16
  #
15
- # The ARN pattern for a budget is:
16
17
  # `arn:aws:budgetservice::AccountId:budget/budgetName`
17
18
  #
18
19
  # @note When making an API call, you may pass Budget
@@ -56,49 +57,56 @@ module Aws::Budgets
56
57
  # },
57
58
  # },
58
59
  # budget_type: "USAGE", # required, accepts USAGE, COST, RI_UTILIZATION, RI_COVERAGE
60
+ # last_updated_time: Time.now,
59
61
  # }
60
62
  #
61
63
  # @!attribute [rw] budget_name
62
- # The name of a budget. Unique within accounts. `:` and `` characters
63
- # are not allowed in the `BudgetName`.
64
+ # The name of a budget. The name must be unique within accounts. The
65
+ # `:` and `` characters aren't allowed in `BudgetName`.
64
66
  # @return [String]
65
67
  #
66
68
  # @!attribute [rw] budget_limit
67
- # The total amount of cost, usage, or RI utilization that you want to
68
- # track with your budget.
69
+ # The total amount of cost, usage, RI utilization, or RI coverage that
70
+ # you want to track with your budget.
69
71
  #
70
72
  # `BudgetLimit` is required for cost or usage budgets, but optional
71
- # for RI utilization budgets. RI utilization budgets default to the
72
- # only valid value for RI utilization budgets, which is `100`.
73
+ # for RI utilization or coverage budgets. RI utilization or coverage
74
+ # budgets default to `100`, which is the only valid value for RI
75
+ # utilization or coverage budgets.
73
76
  # @return [Types::Spend]
74
77
  #
75
78
  # @!attribute [rw] cost_filters
76
- # The cost filters applied to a budget, such as service or region.
79
+ # The cost filters, such as service or region, that are applied to a
80
+ # budget.
77
81
  # @return [Hash<String,Array<String>>]
78
82
  #
79
83
  # @!attribute [rw] cost_types
80
- # The types of costs included in this budget.
84
+ # The types of costs that are included in this `COST` budget.
85
+ #
86
+ # `USAGE`, `RI_UTILIZATION`, and `RI_COVERAGE` budgets do not have
87
+ # `CostTypes`.
81
88
  # @return [Types::CostTypes]
82
89
  #
83
90
  # @!attribute [rw] time_unit
84
91
  # The length of time until a budget resets the actual and forecasted
85
- # spend.
92
+ # spend. `DAILY` is available only for `RI_UTILIZATION` and
93
+ # `RI_COVERAGE` budgets.
86
94
  # @return [String]
87
95
  #
88
96
  # @!attribute [rw] time_period
89
- # The period of time covered by a budget. Has a start date and an end
90
- # date. The start date must come before the end date. There are no
91
- # restrictions on the end date.
92
- #
93
- # If you created your budget and didn't specify a start date, AWS
94
- # defaults to the start of your chosen time period (i.e. DAILY,
95
- # MONTHLY, QUARTERLY, ANNUALLY). For example, if you created your
96
- # budget on January 24th 2018, chose `DAILY`, and didn't set a start
97
- # date, AWS set your start date to `01/24/18 00:00 UTC`. If you chose
98
- # `MONTHLY`, AWS set your start date to `01/01/18 00:00 UTC`. If you
99
- # didn't specify an end date, AWS set your end date to `06/15/87
100
- # 00:00 UTC`. The defaults are the same for the AWS Billing and Cost
101
- # Management console and the API.
97
+ # The period of time that is covered by a budget. The period has a
98
+ # start date and an end date. The start date must come before the end
99
+ # date. The end date must come before `06/15/87 00:00 UTC`.
100
+ #
101
+ # If you create your budget and don't specify a start date, AWS
102
+ # defaults to the start of your chosen time period (DAILY, MONTHLY,
103
+ # QUARTERLY, or ANNUALLY). For example, if you created your budget on
104
+ # January 24, 2018, chose `DAILY`, and didn't set a start date, AWS
105
+ # set your start date to `01/24/18 00:00 UTC`. If you chose `MONTHLY`,
106
+ # AWS set your start date to `01/01/18 00:00 UTC`. If you didn't
107
+ # specify an end date, AWS set your end date to `06/15/87 00:00 UTC`.
108
+ # The defaults are the same for the AWS Billing and Cost Management
109
+ # console and the API.
102
110
  #
103
111
  # You can change either date with the `UpdateBudget` operation.
104
112
  #
@@ -107,13 +115,18 @@ module Aws::Budgets
107
115
  # @return [Types::TimePeriod]
108
116
  #
109
117
  # @!attribute [rw] calculated_spend
110
- # The actual and forecasted cost or usage being tracked by a budget.
118
+ # The actual and forecasted cost or usage that the budget tracks.
111
119
  # @return [Types::CalculatedSpend]
112
120
  #
113
121
  # @!attribute [rw] budget_type
114
- # Whether this budget tracks monetary costs, usage, or RI utilization.
122
+ # Whether this budget tracks monetary costs, usage, RI utilization, or
123
+ # RI coverage.
115
124
  # @return [String]
116
125
  #
126
+ # @!attribute [rw] last_updated_time
127
+ # The last time that you updated this budget.
128
+ # @return [Time]
129
+ #
117
130
  class Budget < Struct.new(
118
131
  :budget_name,
119
132
  :budget_limit,
@@ -122,14 +135,80 @@ module Aws::Budgets
122
135
  :time_unit,
123
136
  :time_period,
124
137
  :calculated_spend,
125
- :budget_type)
138
+ :budget_type,
139
+ :last_updated_time)
126
140
  include Aws::Structure
127
141
  end
128
142
 
129
- # The spend objects associated with this budget. The `actualSpend`
130
- # tracks how much you've used, cost, usage, or RI units, and the
131
- # `forecastedSpend` tracks how much you are predicted to spend if your
132
- # current usage remains steady.
143
+ # A history of the state of a budget at the end of the budget's
144
+ # specified time period.
145
+ #
146
+ # @!attribute [rw] budget_name
147
+ # A string that represents the budget name. The ":" and "\\"
148
+ # characters aren't allowed.
149
+ # @return [String]
150
+ #
151
+ # @!attribute [rw] budget_type
152
+ # The type of a budget. It must be one of the following types:
153
+ #
154
+ # `COST`, `USAGE`, `RI_UTILIZATION`, or `RI_COVERAGE`.
155
+ # @return [String]
156
+ #
157
+ # @!attribute [rw] cost_filters
158
+ # The history of the cost filters for a budget during the specified
159
+ # time period.
160
+ # @return [Hash<String,Array<String>>]
161
+ #
162
+ # @!attribute [rw] cost_types
163
+ # The history of the cost types for a budget during the specified time
164
+ # period.
165
+ # @return [Types::CostTypes]
166
+ #
167
+ # @!attribute [rw] time_unit
168
+ # The time unit of the budget, such as MONTHLY or QUARTERLY.
169
+ # @return [String]
170
+ #
171
+ # @!attribute [rw] budgeted_and_actual_amounts_list
172
+ # A list of amounts of cost or usage that you created budgets for,
173
+ # compared to your actual costs or usage.
174
+ # @return [Array<Types::BudgetedAndActualAmounts>]
175
+ #
176
+ class BudgetPerformanceHistory < Struct.new(
177
+ :budget_name,
178
+ :budget_type,
179
+ :cost_filters,
180
+ :cost_types,
181
+ :time_unit,
182
+ :budgeted_and_actual_amounts_list)
183
+ include Aws::Structure
184
+ end
185
+
186
+ # The amount of cost or usage that you created the budget for, compared
187
+ # to your actual costs or usage.
188
+ #
189
+ # @!attribute [rw] budgeted_amount
190
+ # The amount of cost or usage that you created the budget for.
191
+ # @return [Types::Spend]
192
+ #
193
+ # @!attribute [rw] actual_amount
194
+ # Your actual costs or usage for a budget period.
195
+ # @return [Types::Spend]
196
+ #
197
+ # @!attribute [rw] time_period
198
+ # The time period covered by this budget comparison.
199
+ # @return [Types::TimePeriod]
200
+ #
201
+ class BudgetedAndActualAmounts < Struct.new(
202
+ :budgeted_amount,
203
+ :actual_amount,
204
+ :time_period)
205
+ include Aws::Structure
206
+ end
207
+
208
+ # The spend objects that are associated with this budget. The
209
+ # `actualSpend` tracks how much you've used, cost, usage, or RI units,
210
+ # and the `forecastedSpend` tracks how much you are predicted to spend
211
+ # if your current usage remains steady.
133
212
  #
134
213
  # For example, if it is the 20th of the month and you have spent `50`
135
214
  # dollars on Amazon EC2, your `actualSpend` is `50 USD`, and your
@@ -164,7 +243,11 @@ module Aws::Budgets
164
243
  include Aws::Structure
165
244
  end
166
245
 
167
- # The types of cost included in a budget, such as tax and subscriptions.
246
+ # The types of cost that are included in a `COST` budget, such as tax
247
+ # and subscriptions.
248
+ #
249
+ # `USAGE`, `RI_UTILIZATION`, and `RI_COVERAGE` budgets do not have
250
+ # `CostTypes`.
168
251
  #
169
252
  # @note When making an API call, you may pass CostTypes
170
253
  # data as a hash:
@@ -196,7 +279,7 @@ module Aws::Budgets
196
279
  # @return [Boolean]
197
280
  #
198
281
  # @!attribute [rw] use_blended
199
- # Specifies whether a budget uses blended rate.
282
+ # Specifies whether a budget uses a blended rate.
200
283
  #
201
284
  # The default value is `false`.
202
285
  # @return [Boolean]
@@ -310,6 +393,7 @@ module Aws::Budgets
310
393
  # },
311
394
  # },
312
395
  # budget_type: "USAGE", # required, accepts USAGE, COST, RI_UTILIZATION, RI_COVERAGE
396
+ # last_updated_time: Time.now,
313
397
  # },
314
398
  # notifications_with_subscribers: [
315
399
  # {
@@ -318,6 +402,7 @@ module Aws::Budgets
318
402
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
319
403
  # threshold: 1.0, # required
320
404
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
405
+ # notification_state: "OK", # accepts OK, ALARM
321
406
  # },
322
407
  # subscribers: [ # required
323
408
  # {
@@ -340,7 +425,7 @@ module Aws::Budgets
340
425
  # @!attribute [rw] notifications_with_subscribers
341
426
  # A notification that you want to associate with a budget. A budget
342
427
  # can have up to five notifications, and each notification can have
343
- # one SNS subscriber and up to ten email subscribers. If you include
428
+ # one SNS subscriber and up to 10 email subscribers. If you include
344
429
  # notifications and subscribers in your `CreateBudget` call, AWS
345
430
  # creates the notifications and subscribers for you.
346
431
  # @return [Array<Types::NotificationWithSubscribers>]
@@ -369,6 +454,7 @@ module Aws::Budgets
369
454
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
370
455
  # threshold: 1.0, # required
371
456
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
457
+ # notification_state: "OK", # accepts OK, ALARM
372
458
  # },
373
459
  # subscribers: [ # required
374
460
  # {
@@ -384,8 +470,8 @@ module Aws::Budgets
384
470
  # @return [String]
385
471
  #
386
472
  # @!attribute [rw] budget_name
387
- # The name of the budget that you want AWS to notified you about.
388
- # Budget names must be unique within an account.
473
+ # The name of the budget that you want AWS to notify you about. Budget
474
+ # names must be unique within an account.
389
475
  # @return [String]
390
476
  #
391
477
  # @!attribute [rw] notification
@@ -395,7 +481,7 @@ module Aws::Budgets
395
481
  # @!attribute [rw] subscribers
396
482
  # A list of subscribers that you want to associate with the
397
483
  # notification. Each notification can have one SNS subscriber and up
398
- # to ten email subscribers.
484
+ # to 10 email subscribers.
399
485
  # @return [Array<Types::Subscriber>]
400
486
  #
401
487
  class CreateNotificationRequest < Struct.new(
@@ -423,6 +509,7 @@ module Aws::Budgets
423
509
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
424
510
  # threshold: 1.0, # required
425
511
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
512
+ # notification_state: "OK", # accepts OK, ALARM
426
513
  # },
427
514
  # subscriber: { # required
428
515
  # subscription_type: "SNS", # required, accepts SNS, EMAIL
@@ -431,8 +518,8 @@ module Aws::Budgets
431
518
  # }
432
519
  #
433
520
  # @!attribute [rw] account_id
434
- # The `accountId` associated with the budget that you want to create a
435
- # subscriber for.
521
+ # The `accountId` that is associated with the budget that you want to
522
+ # create a subscriber for.
436
523
  # @return [String]
437
524
  #
438
525
  # @!attribute [rw] budget_name
@@ -503,6 +590,7 @@ module Aws::Budgets
503
590
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
504
591
  # threshold: 1.0, # required
505
592
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
593
+ # notification_state: "OK", # accepts OK, ALARM
506
594
  # },
507
595
  # }
508
596
  #
@@ -543,6 +631,7 @@ module Aws::Budgets
543
631
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
544
632
  # threshold: 1.0, # required
545
633
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
634
+ # notification_state: "OK", # accepts OK, ALARM
546
635
  # },
547
636
  # subscriber: { # required
548
637
  # subscription_type: "SNS", # required, accepts SNS, EMAIL
@@ -579,6 +668,71 @@ module Aws::Budgets
579
668
  #
580
669
  class DeleteSubscriberResponse < Aws::EmptyStructure; end
581
670
 
671
+ # @note When making an API call, you may pass DescribeBudgetPerformanceHistoryRequest
672
+ # data as a hash:
673
+ #
674
+ # {
675
+ # account_id: "AccountId", # required
676
+ # budget_name: "BudgetName", # required
677
+ # time_period: {
678
+ # start: Time.now,
679
+ # end: Time.now,
680
+ # },
681
+ # max_results: 1,
682
+ # next_token: "GenericString",
683
+ # }
684
+ #
685
+ # @!attribute [rw] account_id
686
+ # The account ID of the user. It should be a 12-digit number.
687
+ # @return [String]
688
+ #
689
+ # @!attribute [rw] budget_name
690
+ # A string that represents the budget name. The ":" and "\\"
691
+ # characters aren't allowed.
692
+ # @return [String]
693
+ #
694
+ # @!attribute [rw] time_period
695
+ # Retrieves how often the budget went into an `ALARM` state for the
696
+ # specified time period.
697
+ # @return [Types::TimePeriod]
698
+ #
699
+ # @!attribute [rw] max_results
700
+ # An integer that represents how many entries a paginated response
701
+ # contains. The maximum is 100.
702
+ # @return [Integer]
703
+ #
704
+ # @!attribute [rw] next_token
705
+ # A generic string.
706
+ # @return [String]
707
+ #
708
+ class DescribeBudgetPerformanceHistoryRequest < Struct.new(
709
+ :account_id,
710
+ :budget_name,
711
+ :time_period,
712
+ :max_results,
713
+ :next_token)
714
+ include Aws::Structure
715
+ end
716
+
717
+ # @!attribute [rw] budget_performance_history
718
+ # The history of how often the budget has gone into an `ALARM` state.
719
+ #
720
+ # For `DAILY` budgets, the history saves the state of the budget for
721
+ # the last 60 days. For `MONTHLY` budgets, the history saves the state
722
+ # of the budget for the last 12 months. For `QUARTERLY` budgets, the
723
+ # history saves the state of the budget for the last four quarters.
724
+ # @return [Types::BudgetPerformanceHistory]
725
+ #
726
+ # @!attribute [rw] next_token
727
+ # A generic string.
728
+ # @return [String]
729
+ #
730
+ class DescribeBudgetPerformanceHistoryResponse < Struct.new(
731
+ :budget_performance_history,
732
+ :next_token)
733
+ include Aws::Structure
734
+ end
735
+
582
736
  # Request of DescribeBudget
583
737
  #
584
738
  # @note When making an API call, you may pass DescribeBudgetRequest
@@ -632,13 +786,13 @@ module Aws::Budgets
632
786
  # @return [String]
633
787
  #
634
788
  # @!attribute [rw] max_results
635
- # Optional integer. Specifies the maximum number of results to return
636
- # in response.
789
+ # An optional integer that represents how many entries a paginated
790
+ # response contains. The maximum is 100.
637
791
  # @return [Integer]
638
792
  #
639
793
  # @!attribute [rw] next_token
640
- # The pagination token that indicates the next set of results to
641
- # retrieve.
794
+ # The pagination token that you include in your request to indicate
795
+ # the next set of results that you want to retrieve.
642
796
  # @return [String]
643
797
  #
644
798
  class DescribeBudgetsRequest < Struct.new(
@@ -655,8 +809,8 @@ module Aws::Budgets
655
809
  # @return [Array<Types::Budget>]
656
810
  #
657
811
  # @!attribute [rw] next_token
658
- # The pagination token that indicates the next set of results that you
659
- # can retrieve.
812
+ # The pagination token in the service response that indicates the next
813
+ # set of results that you can retrieve.
660
814
  # @return [String]
661
815
  #
662
816
  class DescribeBudgetsResponse < Struct.new(
@@ -687,13 +841,13 @@ module Aws::Budgets
687
841
  # @return [String]
688
842
  #
689
843
  # @!attribute [rw] max_results
690
- # Optional integer. Specifies the maximum number of results to return
691
- # in response.
844
+ # An optional integer that represents how many entries a paginated
845
+ # response contains. The maximum is 100.
692
846
  # @return [Integer]
693
847
  #
694
848
  # @!attribute [rw] next_token
695
- # The pagination token that indicates the next set of results to
696
- # retrieve.
849
+ # The pagination token that you include in your request to indicate
850
+ # the next set of results that you want to retrieve.
697
851
  # @return [String]
698
852
  #
699
853
  class DescribeNotificationsForBudgetRequest < Struct.new(
@@ -707,12 +861,12 @@ module Aws::Budgets
707
861
  # Response of GetNotificationsForBudget
708
862
  #
709
863
  # @!attribute [rw] notifications
710
- # A list of notifications associated with a budget.
864
+ # A list of notifications that are associated with a budget.
711
865
  # @return [Array<Types::Notification>]
712
866
  #
713
867
  # @!attribute [rw] next_token
714
- # The pagination token that indicates the next set of results that you
715
- # can retrieve.
868
+ # The pagination token in the service response that indicates the next
869
+ # set of results that you can retrieve.
716
870
  # @return [String]
717
871
  #
718
872
  class DescribeNotificationsForBudgetResponse < Struct.new(
@@ -734,6 +888,7 @@ module Aws::Budgets
734
888
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
735
889
  # threshold: 1.0, # required
736
890
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
891
+ # notification_state: "OK", # accepts OK, ALARM
737
892
  # },
738
893
  # max_results: 1,
739
894
  # next_token: "GenericString",
@@ -753,13 +908,13 @@ module Aws::Budgets
753
908
  # @return [Types::Notification]
754
909
  #
755
910
  # @!attribute [rw] max_results
756
- # Optional integer. Specifies the maximum number of results to return
757
- # in response.
911
+ # An optional integer that represents how many entries a paginated
912
+ # response contains. The maximum is 100.
758
913
  # @return [Integer]
759
914
  #
760
915
  # @!attribute [rw] next_token
761
- # The pagination token that indicates the next set of results to
762
- # retrieve.
916
+ # The pagination token that you include in your request to indicate
917
+ # the next set of results that you want to retrieve.
763
918
  # @return [String]
764
919
  #
765
920
  class DescribeSubscribersForNotificationRequest < Struct.new(
@@ -774,12 +929,12 @@ module Aws::Budgets
774
929
  # Response of DescribeSubscribersForNotification
775
930
  #
776
931
  # @!attribute [rw] subscribers
777
- # A list of subscribers associated with a notification.
932
+ # A list of subscribers that are associated with a notification.
778
933
  # @return [Array<Types::Subscriber>]
779
934
  #
780
935
  # @!attribute [rw] next_token
781
- # The pagination token that indicates the next set of results that you
782
- # can retrieve.
936
+ # The pagination token in the service response that indicates the next
937
+ # set of results that you can retrieve.
783
938
  # @return [String]
784
939
  #
785
940
  class DescribeSubscribersForNotificationResponse < Struct.new(
@@ -788,11 +943,11 @@ module Aws::Budgets
788
943
  include Aws::Structure
789
944
  end
790
945
 
791
- # A notification associated with a budget. A budget can have up to five
792
- # notifications.
946
+ # A notification that is associated with a budget. A budget can have up
947
+ # to five notifications.
793
948
  #
794
949
  # Each notification must have at least one subscriber. A notification
795
- # can have one SNS subscriber and up to ten email subscribers, for a
950
+ # can have one SNS subscriber and up to 10 email subscribers, for a
796
951
  # total of 11 subscribers.
797
952
  #
798
953
  # For example, if you have a budget for 200 dollars and you want to be
@@ -801,9 +956,11 @@ module Aws::Budgets
801
956
  #
802
957
  # * A notificationType of `ACTUAL`
803
958
  #
804
- # * A comparisonOperator of `GREATER_THAN`
959
+ # * A `thresholdType` of `PERCENTAGE`
805
960
  #
806
- # * A notification threshold of `80`
961
+ # * A `comparisonOperator` of `GREATER_THAN`
962
+ #
963
+ # * A notification `threshold` of `80`
807
964
  #
808
965
  # @note When making an API call, you may pass Notification
809
966
  # data as a hash:
@@ -813,39 +970,50 @@ module Aws::Budgets
813
970
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
814
971
  # threshold: 1.0, # required
815
972
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
973
+ # notification_state: "OK", # accepts OK, ALARM
816
974
  # }
817
975
  #
818
976
  # @!attribute [rw] notification_type
819
977
  # Whether the notification is for how much you have spent (`ACTUAL`)
820
- # or for how much you are forecasted to spend (`FORECASTED`).
978
+ # or for how much you're forecasted to spend (`FORECASTED`).
821
979
  # @return [String]
822
980
  #
823
981
  # @!attribute [rw] comparison_operator
824
- # The comparison used for this notification.
982
+ # The comparison that is used for this notification.
825
983
  # @return [String]
826
984
  #
827
985
  # @!attribute [rw] threshold
828
- # The threshold associated with a notification. Thresholds are always
829
- # a percentage.
986
+ # The threshold that is associated with a notification. Thresholds are
987
+ # always a percentage.
830
988
  # @return [Float]
831
989
  #
832
990
  # @!attribute [rw] threshold_type
833
- # The type of threshold for a notification. For `ACTUAL` thresholds,
834
- # AWS notifies you when you go over the threshold, and for
835
- # `FORECASTED` thresholds AWS notifies you when you are forecasted to
836
- # go over the threshold.
991
+ # The type of threshold for a notification. For `ABSOLUTE_VALUE`
992
+ # thresholds, AWS notifies you when you go over or are forecasted to
993
+ # go over your total cost threshold. For `PERCENTAGE` thresholds, AWS
994
+ # notifies you when you go over or are forecasted to go over a certain
995
+ # percentage of your forecasted spend. For example, if you have a
996
+ # budget for 200 dollars and you have a `PERCENTAGE` threshold of 80%,
997
+ # AWS notifies you when you go over 160 dollars.
998
+ # @return [String]
999
+ #
1000
+ # @!attribute [rw] notification_state
1001
+ # Whether this notification is in alarm. If a budget notification is
1002
+ # in the `ALARM` state, you have passed the set threshold for the
1003
+ # budget.
837
1004
  # @return [String]
838
1005
  #
839
1006
  class Notification < Struct.new(
840
1007
  :notification_type,
841
1008
  :comparison_operator,
842
1009
  :threshold,
843
- :threshold_type)
1010
+ :threshold_type,
1011
+ :notification_state)
844
1012
  include Aws::Structure
845
1013
  end
846
1014
 
847
1015
  # A notification with subscribers. A notification can have one SNS
848
- # subscriber and up to ten email subscribers, for a total of 11
1016
+ # subscriber and up to 10 email subscribers, for a total of 11
849
1017
  # subscribers.
850
1018
  #
851
1019
  # @note When making an API call, you may pass NotificationWithSubscribers
@@ -857,6 +1025,7 @@ module Aws::Budgets
857
1025
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
858
1026
  # threshold: 1.0, # required
859
1027
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
1028
+ # notification_state: "OK", # accepts OK, ALARM
860
1029
  # },
861
1030
  # subscribers: [ # required
862
1031
  # {
@@ -867,7 +1036,7 @@ module Aws::Budgets
867
1036
  # }
868
1037
  #
869
1038
  # @!attribute [rw] notification
870
- # The notification associated with a budget.
1039
+ # The notification that is associated with a budget.
871
1040
  # @return [Types::Notification]
872
1041
  #
873
1042
  # @!attribute [rw] subscribers
@@ -880,7 +1049,7 @@ module Aws::Budgets
880
1049
  include Aws::Structure
881
1050
  end
882
1051
 
883
- # The amount of cost or usage being measured for a budget.
1052
+ # The amount of cost or usage that is measured for a budget.
884
1053
  #
885
1054
  # For example, a `Spend` for `3 GB` of S3 usage would have the following
886
1055
  # parameters:
@@ -898,13 +1067,13 @@ module Aws::Budgets
898
1067
  # }
899
1068
  #
900
1069
  # @!attribute [rw] amount
901
- # The cost or usage amount associated with a budget forecast, actual
902
- # spend, or budget threshold.
1070
+ # The cost or usage amount that is associated with a budget forecast,
1071
+ # actual spend, or budget threshold.
903
1072
  # @return [String]
904
1073
  #
905
1074
  # @!attribute [rw] unit
906
- # The unit of measurement used for the budget forecast, actual spend,
907
- # or budget threshold, such as dollars or GB.
1075
+ # The unit of measurement that is used for the budget forecast, actual
1076
+ # spend, or budget threshold, such as dollars or GB.
908
1077
  # @return [String]
909
1078
  #
910
1079
  class Spend < Struct.new(
@@ -914,8 +1083,7 @@ module Aws::Budgets
914
1083
  end
915
1084
 
916
1085
  # The subscriber to a budget notification. The subscriber consists of a
917
- # subscription type and either an Amazon Simple Notification Service
918
- # topic or an email address.
1086
+ # subscription type and either an Amazon SNS topic or an email address.
919
1087
  #
920
1088
  # For example, an email subscriber would have the following parameters:
921
1089
  #
@@ -946,9 +1114,9 @@ module Aws::Budgets
946
1114
  include Aws::Structure
947
1115
  end
948
1116
 
949
- # The period of time covered by a budget. Has a start date and an end
950
- # date. The start date must come before the end date. There are no
951
- # restrictions on the end date.
1117
+ # The period of time that is covered by a budget. The period has a start
1118
+ # date and an end date. The start date must come before the end date.
1119
+ # There are no restrictions on the end date.
952
1120
  #
953
1121
  # @note When making an API call, you may pass TimePeriod
954
1122
  # data as a hash:
@@ -961,11 +1129,11 @@ module Aws::Budgets
961
1129
  # @!attribute [rw] start
962
1130
  # The start date for a budget. If you created your budget and didn't
963
1131
  # specify a start date, AWS defaults to the start of your chosen time
964
- # period (i.e. DAILY, MONTHLY, QUARTERLY, ANNUALLY). For example, if
965
- # you created your budget on January 24th 2018, chose `DAILY`, and
966
- # didn't set a start date, AWS set your start date to `01/24/18 00:00
967
- # UTC`. If you chose `MONTHLY`, AWS set your start date to `01/01/18
968
- # 00:00 UTC`. The defaults are the same for the AWS Billing and Cost
1132
+ # period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you
1133
+ # created your budget on January 24, 2018, chose `DAILY`, and didn't
1134
+ # set a start date, AWS set your start date to `01/24/18 00:00 UTC`.
1135
+ # If you chose `MONTHLY`, AWS set your start date to `01/01/18 00:00
1136
+ # UTC`. The defaults are the same for the AWS Billing and Cost
969
1137
  # Management console and the API.
970
1138
  #
971
1139
  # You can change your start date with the `UpdateBudget` operation.
@@ -1032,6 +1200,7 @@ module Aws::Budgets
1032
1200
  # },
1033
1201
  # },
1034
1202
  # budget_type: "USAGE", # required, accepts USAGE, COST, RI_UTILIZATION, RI_COVERAGE
1203
+ # last_updated_time: Time.now,
1035
1204
  # },
1036
1205
  # }
1037
1206
  #
@@ -1067,12 +1236,14 @@ module Aws::Budgets
1067
1236
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
1068
1237
  # threshold: 1.0, # required
1069
1238
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
1239
+ # notification_state: "OK", # accepts OK, ALARM
1070
1240
  # },
1071
1241
  # new_notification: { # required
1072
1242
  # notification_type: "ACTUAL", # required, accepts ACTUAL, FORECASTED
1073
1243
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
1074
1244
  # threshold: 1.0, # required
1075
1245
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
1246
+ # notification_state: "OK", # accepts OK, ALARM
1076
1247
  # },
1077
1248
  # }
1078
1249
  #
@@ -1086,7 +1257,7 @@ module Aws::Budgets
1086
1257
  # @return [String]
1087
1258
  #
1088
1259
  # @!attribute [rw] old_notification
1089
- # The previous notification associated with a budget.
1260
+ # The previous notification that is associated with a budget.
1090
1261
  # @return [Types::Notification]
1091
1262
  #
1092
1263
  # @!attribute [rw] new_notification
@@ -1118,6 +1289,7 @@ module Aws::Budgets
1118
1289
  # comparison_operator: "GREATER_THAN", # required, accepts GREATER_THAN, LESS_THAN, EQUAL_TO
1119
1290
  # threshold: 1.0, # required
1120
1291
  # threshold_type: "PERCENTAGE", # accepts PERCENTAGE, ABSOLUTE_VALUE
1292
+ # notification_state: "OK", # accepts OK, ALARM
1121
1293
  # },
1122
1294
  # old_subscriber: { # required
1123
1295
  # subscription_type: "SNS", # required, accepts SNS, EMAIL
@@ -1143,11 +1315,13 @@ module Aws::Budgets
1143
1315
  # @return [Types::Notification]
1144
1316
  #
1145
1317
  # @!attribute [rw] old_subscriber
1146
- # The previous subscriber associated with a budget notification.
1318
+ # The previous subscriber that is associated with a budget
1319
+ # notification.
1147
1320
  # @return [Types::Subscriber]
1148
1321
  #
1149
1322
  # @!attribute [rw] new_subscriber
1150
- # The updated subscriber associated with a budget notification.
1323
+ # The updated subscriber that is associated with a budget
1324
+ # notification.
1151
1325
  # @return [Types::Subscriber]
1152
1326
  #
1153
1327
  class UpdateSubscriberRequest < Struct.new(
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-budgets
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.0
4
+ version: 1.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-24 00:00:00.000000000 Z
11
+ date: 2018-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core