aws-sdk-budgets 1.12.0 → 1.13.0

Sign up to get free protection for your applications and to get access to all the features.
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