aws-sdk-redshift 1.39.0 → 1.44.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -119,6 +119,7 @@ module Aws::Redshift
119
119
  CreateSnapshotCopyGrantResult = Shapes::StructureShape.new(name: 'CreateSnapshotCopyGrantResult')
120
120
  CreateSnapshotScheduleMessage = Shapes::StructureShape.new(name: 'CreateSnapshotScheduleMessage')
121
121
  CreateTagsMessage = Shapes::StructureShape.new(name: 'CreateTagsMessage')
122
+ CreateUsageLimitMessage = Shapes::StructureShape.new(name: 'CreateUsageLimitMessage')
122
123
  CustomerStorageMessage = Shapes::StructureShape.new(name: 'CustomerStorageMessage')
123
124
  DataTransferProgress = Shapes::StructureShape.new(name: 'DataTransferProgress')
124
125
  DbGroupList = Shapes::ListShape.new(name: 'DbGroupList')
@@ -140,6 +141,7 @@ module Aws::Redshift
140
141
  DeleteSnapshotCopyGrantMessage = Shapes::StructureShape.new(name: 'DeleteSnapshotCopyGrantMessage')
141
142
  DeleteSnapshotScheduleMessage = Shapes::StructureShape.new(name: 'DeleteSnapshotScheduleMessage')
142
143
  DeleteTagsMessage = Shapes::StructureShape.new(name: 'DeleteTagsMessage')
144
+ DeleteUsageLimitMessage = Shapes::StructureShape.new(name: 'DeleteUsageLimitMessage')
143
145
  DependentServiceRequestThrottlingFault = Shapes::StructureShape.new(name: 'DependentServiceRequestThrottlingFault')
144
146
  DependentServiceUnavailableFault = Shapes::StructureShape.new(name: 'DependentServiceUnavailableFault')
145
147
  DescribeAccountAttributesMessage = Shapes::StructureShape.new(name: 'DescribeAccountAttributesMessage')
@@ -171,6 +173,7 @@ module Aws::Redshift
171
173
  DescribeSnapshotSchedulesOutputMessage = Shapes::StructureShape.new(name: 'DescribeSnapshotSchedulesOutputMessage')
172
174
  DescribeTableRestoreStatusMessage = Shapes::StructureShape.new(name: 'DescribeTableRestoreStatusMessage')
173
175
  DescribeTagsMessage = Shapes::StructureShape.new(name: 'DescribeTagsMessage')
176
+ DescribeUsageLimitsMessage = Shapes::StructureShape.new(name: 'DescribeUsageLimitsMessage')
174
177
  DisableLoggingMessage = Shapes::StructureShape.new(name: 'DisableLoggingMessage')
175
178
  DisableSnapshotCopyMessage = Shapes::StructureShape.new(name: 'DisableSnapshotCopyMessage')
176
179
  DisableSnapshotCopyResult = Shapes::StructureShape.new(name: 'DisableSnapshotCopyResult')
@@ -248,6 +251,7 @@ module Aws::Redshift
248
251
  InvalidSubscriptionStateFault = Shapes::StructureShape.new(name: 'InvalidSubscriptionStateFault')
249
252
  InvalidTableRestoreArgumentFault = Shapes::StructureShape.new(name: 'InvalidTableRestoreArgumentFault')
250
253
  InvalidTagFault = Shapes::StructureShape.new(name: 'InvalidTagFault')
254
+ InvalidUsageLimitFault = Shapes::StructureShape.new(name: 'InvalidUsageLimitFault')
251
255
  InvalidVPCNetworkStateFault = Shapes::StructureShape.new(name: 'InvalidVPCNetworkStateFault')
252
256
  LimitExceededFault = Shapes::StructureShape.new(name: 'LimitExceededFault')
253
257
  LoggingStatus = Shapes::StructureShape.new(name: 'LoggingStatus')
@@ -275,6 +279,7 @@ module Aws::Redshift
275
279
  ModifySnapshotCopyRetentionPeriodMessage = Shapes::StructureShape.new(name: 'ModifySnapshotCopyRetentionPeriodMessage')
276
280
  ModifySnapshotCopyRetentionPeriodResult = Shapes::StructureShape.new(name: 'ModifySnapshotCopyRetentionPeriodResult')
277
281
  ModifySnapshotScheduleMessage = Shapes::StructureShape.new(name: 'ModifySnapshotScheduleMessage')
282
+ ModifyUsageLimitMessage = Shapes::StructureShape.new(name: 'ModifyUsageLimitMessage')
278
283
  NodeConfigurationOption = Shapes::StructureShape.new(name: 'NodeConfigurationOption')
279
284
  NodeConfigurationOptionList = Shapes::ListShape.new(name: 'NodeConfigurationOptionList')
280
285
  NodeConfigurationOptionsFilter = Shapes::StructureShape.new(name: 'NodeConfigurationOptionsFilter')
@@ -421,6 +426,15 @@ module Aws::Redshift
421
426
  UnsupportedOperationFault = Shapes::StructureShape.new(name: 'UnsupportedOperationFault')
422
427
  UnsupportedOptionFault = Shapes::StructureShape.new(name: 'UnsupportedOptionFault')
423
428
  UpdateTarget = Shapes::StructureShape.new(name: 'UpdateTarget')
429
+ UsageLimit = Shapes::StructureShape.new(name: 'UsageLimit')
430
+ UsageLimitAlreadyExistsFault = Shapes::StructureShape.new(name: 'UsageLimitAlreadyExistsFault')
431
+ UsageLimitBreachAction = Shapes::StringShape.new(name: 'UsageLimitBreachAction')
432
+ UsageLimitFeatureType = Shapes::StringShape.new(name: 'UsageLimitFeatureType')
433
+ UsageLimitLimitType = Shapes::StringShape.new(name: 'UsageLimitLimitType')
434
+ UsageLimitList = Shapes::StructureShape.new(name: 'UsageLimitList')
435
+ UsageLimitNotFoundFault = Shapes::StructureShape.new(name: 'UsageLimitNotFoundFault')
436
+ UsageLimitPeriod = Shapes::StringShape.new(name: 'UsageLimitPeriod')
437
+ UsageLimits = Shapes::ListShape.new(name: 'UsageLimits')
424
438
  ValueStringList = Shapes::ListShape.new(name: 'ValueStringList')
425
439
  VpcSecurityGroupIdList = Shapes::ListShape.new(name: 'VpcSecurityGroupIdList')
426
440
  VpcSecurityGroupMembership = Shapes::StructureShape.new(name: 'VpcSecurityGroupMembership')
@@ -866,6 +880,15 @@ module Aws::Redshift
866
880
  CreateTagsMessage.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, required: true, location_name: "Tags"))
867
881
  CreateTagsMessage.struct_class = Types::CreateTagsMessage
868
882
 
883
+ CreateUsageLimitMessage.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ClusterIdentifier"))
884
+ CreateUsageLimitMessage.add_member(:feature_type, Shapes::ShapeRef.new(shape: UsageLimitFeatureType, required: true, location_name: "FeatureType"))
885
+ CreateUsageLimitMessage.add_member(:limit_type, Shapes::ShapeRef.new(shape: UsageLimitLimitType, required: true, location_name: "LimitType"))
886
+ CreateUsageLimitMessage.add_member(:amount, Shapes::ShapeRef.new(shape: Long, required: true, location_name: "Amount"))
887
+ CreateUsageLimitMessage.add_member(:period, Shapes::ShapeRef.new(shape: UsageLimitPeriod, location_name: "Period"))
888
+ CreateUsageLimitMessage.add_member(:breach_action, Shapes::ShapeRef.new(shape: UsageLimitBreachAction, location_name: "BreachAction"))
889
+ CreateUsageLimitMessage.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
890
+ CreateUsageLimitMessage.struct_class = Types::CreateUsageLimitMessage
891
+
869
892
  CustomerStorageMessage.add_member(:total_backup_size_in_mega_bytes, Shapes::ShapeRef.new(shape: Double, location_name: "TotalBackupSizeInMegaBytes"))
870
893
  CustomerStorageMessage.add_member(:total_provisioned_storage_in_mega_bytes, Shapes::ShapeRef.new(shape: Double, location_name: "TotalProvisionedStorageInMegaBytes"))
871
894
  CustomerStorageMessage.struct_class = Types::CustomerStorageMessage
@@ -941,6 +964,9 @@ module Aws::Redshift
941
964
  DeleteTagsMessage.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location_name: "TagKeys"))
942
965
  DeleteTagsMessage.struct_class = Types::DeleteTagsMessage
943
966
 
967
+ DeleteUsageLimitMessage.add_member(:usage_limit_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "UsageLimitId"))
968
+ DeleteUsageLimitMessage.struct_class = Types::DeleteUsageLimitMessage
969
+
944
970
  DependentServiceRequestThrottlingFault.struct_class = Types::DependentServiceRequestThrottlingFault
945
971
 
946
972
  DependentServiceUnavailableFault.struct_class = Types::DependentServiceUnavailableFault
@@ -1127,6 +1153,15 @@ module Aws::Redshift
1127
1153
  DescribeTagsMessage.add_member(:tag_values, Shapes::ShapeRef.new(shape: TagValueList, location_name: "TagValues"))
1128
1154
  DescribeTagsMessage.struct_class = Types::DescribeTagsMessage
1129
1155
 
1156
+ DescribeUsageLimitsMessage.add_member(:usage_limit_id, Shapes::ShapeRef.new(shape: String, location_name: "UsageLimitId"))
1157
+ DescribeUsageLimitsMessage.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: String, location_name: "ClusterIdentifier"))
1158
+ DescribeUsageLimitsMessage.add_member(:feature_type, Shapes::ShapeRef.new(shape: UsageLimitFeatureType, location_name: "FeatureType"))
1159
+ DescribeUsageLimitsMessage.add_member(:max_records, Shapes::ShapeRef.new(shape: IntegerOptional, location_name: "MaxRecords"))
1160
+ DescribeUsageLimitsMessage.add_member(:marker, Shapes::ShapeRef.new(shape: String, location_name: "Marker"))
1161
+ DescribeUsageLimitsMessage.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, location_name: "TagKeys"))
1162
+ DescribeUsageLimitsMessage.add_member(:tag_values, Shapes::ShapeRef.new(shape: TagValueList, location_name: "TagValues"))
1163
+ DescribeUsageLimitsMessage.struct_class = Types::DescribeUsageLimitsMessage
1164
+
1130
1165
  DisableLoggingMessage.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ClusterIdentifier"))
1131
1166
  DisableLoggingMessage.struct_class = Types::DisableLoggingMessage
1132
1167
 
@@ -1351,6 +1386,8 @@ module Aws::Redshift
1351
1386
 
1352
1387
  InvalidTagFault.struct_class = Types::InvalidTagFault
1353
1388
 
1389
+ InvalidUsageLimitFault.struct_class = Types::InvalidUsageLimitFault
1390
+
1354
1391
  InvalidVPCNetworkStateFault.struct_class = Types::InvalidVPCNetworkStateFault
1355
1392
 
1356
1393
  LimitExceededFault.struct_class = Types::LimitExceededFault
@@ -1480,6 +1517,11 @@ module Aws::Redshift
1480
1517
  ModifySnapshotScheduleMessage.add_member(:schedule_definitions, Shapes::ShapeRef.new(shape: ScheduleDefinitionList, required: true, location_name: "ScheduleDefinitions"))
1481
1518
  ModifySnapshotScheduleMessage.struct_class = Types::ModifySnapshotScheduleMessage
1482
1519
 
1520
+ ModifyUsageLimitMessage.add_member(:usage_limit_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "UsageLimitId"))
1521
+ ModifyUsageLimitMessage.add_member(:amount, Shapes::ShapeRef.new(shape: LongOptional, location_name: "Amount"))
1522
+ ModifyUsageLimitMessage.add_member(:breach_action, Shapes::ShapeRef.new(shape: UsageLimitBreachAction, location_name: "BreachAction"))
1523
+ ModifyUsageLimitMessage.struct_class = Types::ModifyUsageLimitMessage
1524
+
1483
1525
  NodeConfigurationOption.add_member(:node_type, Shapes::ShapeRef.new(shape: String, location_name: "NodeType"))
1484
1526
  NodeConfigurationOption.add_member(:number_of_nodes, Shapes::ShapeRef.new(shape: Integer, location_name: "NumberOfNodes"))
1485
1527
  NodeConfigurationOption.add_member(:estimated_disk_utilization_percent, Shapes::ShapeRef.new(shape: DoubleOptional, location_name: "EstimatedDiskUtilizationPercent"))
@@ -1999,6 +2041,26 @@ module Aws::Redshift
1999
2041
  UpdateTarget.add_member(:supported_operations, Shapes::ShapeRef.new(shape: SupportedOperationList, location_name: "SupportedOperations"))
2000
2042
  UpdateTarget.struct_class = Types::UpdateTarget
2001
2043
 
2044
+ UsageLimit.add_member(:usage_limit_id, Shapes::ShapeRef.new(shape: String, location_name: "UsageLimitId"))
2045
+ UsageLimit.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: String, location_name: "ClusterIdentifier"))
2046
+ UsageLimit.add_member(:feature_type, Shapes::ShapeRef.new(shape: UsageLimitFeatureType, location_name: "FeatureType"))
2047
+ UsageLimit.add_member(:limit_type, Shapes::ShapeRef.new(shape: UsageLimitLimitType, location_name: "LimitType"))
2048
+ UsageLimit.add_member(:amount, Shapes::ShapeRef.new(shape: Long, location_name: "Amount"))
2049
+ UsageLimit.add_member(:period, Shapes::ShapeRef.new(shape: UsageLimitPeriod, location_name: "Period"))
2050
+ UsageLimit.add_member(:breach_action, Shapes::ShapeRef.new(shape: UsageLimitBreachAction, location_name: "BreachAction"))
2051
+ UsageLimit.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
2052
+ UsageLimit.struct_class = Types::UsageLimit
2053
+
2054
+ UsageLimitAlreadyExistsFault.struct_class = Types::UsageLimitAlreadyExistsFault
2055
+
2056
+ UsageLimitList.add_member(:usage_limits, Shapes::ShapeRef.new(shape: UsageLimits, location_name: "UsageLimits"))
2057
+ UsageLimitList.add_member(:marker, Shapes::ShapeRef.new(shape: String, location_name: "Marker"))
2058
+ UsageLimitList.struct_class = Types::UsageLimitList
2059
+
2060
+ UsageLimitNotFoundFault.struct_class = Types::UsageLimitNotFoundFault
2061
+
2062
+ UsageLimits.member = Shapes::ShapeRef.new(shape: UsageLimit)
2063
+
2002
2064
  ValueStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")
2003
2065
 
2004
2066
  VpcSecurityGroupIdList.member = Shapes::ShapeRef.new(shape: String, location_name: "VpcSecurityGroupId")
@@ -2291,6 +2353,21 @@ module Aws::Redshift
2291
2353
  o.errors << Shapes::ShapeRef.new(shape: InvalidTagFault)
2292
2354
  end)
2293
2355
 
2356
+ api.add_operation(:create_usage_limit, Seahorse::Model::Operation.new.tap do |o|
2357
+ o.name = "CreateUsageLimit"
2358
+ o.http_method = "POST"
2359
+ o.http_request_uri = "/"
2360
+ o.input = Shapes::ShapeRef.new(shape: CreateUsageLimitMessage)
2361
+ o.output = Shapes::ShapeRef.new(shape: UsageLimit)
2362
+ o.errors << Shapes::ShapeRef.new(shape: ClusterNotFoundFault)
2363
+ o.errors << Shapes::ShapeRef.new(shape: InvalidClusterStateFault)
2364
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededFault)
2365
+ o.errors << Shapes::ShapeRef.new(shape: UsageLimitAlreadyExistsFault)
2366
+ o.errors << Shapes::ShapeRef.new(shape: InvalidUsageLimitFault)
2367
+ o.errors << Shapes::ShapeRef.new(shape: TagLimitExceededFault)
2368
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationFault)
2369
+ end)
2370
+
2294
2371
  api.add_operation(:delete_cluster, Seahorse::Model::Operation.new.tap do |o|
2295
2372
  o.name = "DeleteCluster"
2296
2373
  o.http_method = "POST"
@@ -2415,6 +2492,16 @@ module Aws::Redshift
2415
2492
  o.errors << Shapes::ShapeRef.new(shape: InvalidTagFault)
2416
2493
  end)
2417
2494
 
2495
+ api.add_operation(:delete_usage_limit, Seahorse::Model::Operation.new.tap do |o|
2496
+ o.name = "DeleteUsageLimit"
2497
+ o.http_method = "POST"
2498
+ o.http_request_uri = "/"
2499
+ o.input = Shapes::ShapeRef.new(shape: DeleteUsageLimitMessage)
2500
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
2501
+ o.errors << Shapes::ShapeRef.new(shape: UsageLimitNotFoundFault)
2502
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationFault)
2503
+ end)
2504
+
2418
2505
  api.add_operation(:describe_account_attributes, Seahorse::Model::Operation.new.tap do |o|
2419
2506
  o.name = "DescribeAccountAttributes"
2420
2507
  o.http_method = "POST"
@@ -2783,6 +2870,22 @@ module Aws::Redshift
2783
2870
  o.errors << Shapes::ShapeRef.new(shape: InvalidTagFault)
2784
2871
  end)
2785
2872
 
2873
+ api.add_operation(:describe_usage_limits, Seahorse::Model::Operation.new.tap do |o|
2874
+ o.name = "DescribeUsageLimits"
2875
+ o.http_method = "POST"
2876
+ o.http_request_uri = "/"
2877
+ o.input = Shapes::ShapeRef.new(shape: DescribeUsageLimitsMessage)
2878
+ o.output = Shapes::ShapeRef.new(shape: UsageLimitList)
2879
+ o.errors << Shapes::ShapeRef.new(shape: ClusterNotFoundFault)
2880
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationFault)
2881
+ o[:pager] = Aws::Pager.new(
2882
+ limit_key: "max_records",
2883
+ tokens: {
2884
+ "marker" => "marker"
2885
+ }
2886
+ )
2887
+ end)
2888
+
2786
2889
  api.add_operation(:disable_logging, Seahorse::Model::Operation.new.tap do |o|
2787
2890
  o.name = "DisableLogging"
2788
2891
  o.http_method = "POST"
@@ -3019,6 +3122,17 @@ module Aws::Redshift
3019
3122
  o.errors << Shapes::ShapeRef.new(shape: SnapshotScheduleUpdateInProgressFault)
3020
3123
  end)
3021
3124
 
3125
+ api.add_operation(:modify_usage_limit, Seahorse::Model::Operation.new.tap do |o|
3126
+ o.name = "ModifyUsageLimit"
3127
+ o.http_method = "POST"
3128
+ o.http_request_uri = "/"
3129
+ o.input = Shapes::ShapeRef.new(shape: ModifyUsageLimitMessage)
3130
+ o.output = Shapes::ShapeRef.new(shape: UsageLimit)
3131
+ o.errors << Shapes::ShapeRef.new(shape: InvalidUsageLimitFault)
3132
+ o.errors << Shapes::ShapeRef.new(shape: UsageLimitNotFoundFault)
3133
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationFault)
3134
+ end)
3135
+
3022
3136
  api.add_operation(:pause_cluster, Seahorse::Model::Operation.new.tap do |o|
3023
3137
  o.name = "PauseCluster"
3024
3138
  o.http_method = "POST"
@@ -86,6 +86,7 @@ module Aws::Redshift
86
86
  # * {InvalidSubscriptionStateFault}
87
87
  # * {InvalidTableRestoreArgumentFault}
88
88
  # * {InvalidTagFault}
89
+ # * {InvalidUsageLimitFault}
89
90
  # * {InvalidVPCNetworkStateFault}
90
91
  # * {LimitExceededFault}
91
92
  # * {NumberOfNodesPerClusterLimitExceededFault}
@@ -129,6 +130,8 @@ module Aws::Redshift
129
130
  # * {UnknownSnapshotCopyRegionFault}
130
131
  # * {UnsupportedOperationFault}
131
132
  # * {UnsupportedOptionFault}
133
+ # * {UsageLimitAlreadyExistsFault}
134
+ # * {UsageLimitNotFoundFault}
132
135
  #
133
136
  # Additionally, error classes are dynamically generated for service errors based on the error code
134
137
  # if they are not defined above.
@@ -746,6 +749,16 @@ module Aws::Redshift
746
749
  end
747
750
  end
748
751
 
752
+ class InvalidUsageLimitFault < ServiceError
753
+
754
+ # @param [Seahorse::Client::RequestContext] context
755
+ # @param [String] message
756
+ # @param [Aws::Redshift::Types::InvalidUsageLimitFault] data
757
+ def initialize(context, message, data = Aws::EmptyStructure.new)
758
+ super(context, message, data)
759
+ end
760
+ end
761
+
749
762
  class InvalidVPCNetworkStateFault < ServiceError
750
763
 
751
764
  # @param [Seahorse::Client::RequestContext] context
@@ -1176,5 +1189,25 @@ module Aws::Redshift
1176
1189
  end
1177
1190
  end
1178
1191
 
1192
+ class UsageLimitAlreadyExistsFault < ServiceError
1193
+
1194
+ # @param [Seahorse::Client::RequestContext] context
1195
+ # @param [String] message
1196
+ # @param [Aws::Redshift::Types::UsageLimitAlreadyExistsFault] data
1197
+ def initialize(context, message, data = Aws::EmptyStructure.new)
1198
+ super(context, message, data)
1199
+ end
1200
+ end
1201
+
1202
+ class UsageLimitNotFoundFault < ServiceError
1203
+
1204
+ # @param [Seahorse::Client::RequestContext] context
1205
+ # @param [String] message
1206
+ # @param [Aws::Redshift::Types::UsageLimitNotFoundFault] data
1207
+ def initialize(context, message, data = Aws::EmptyStructure.new)
1208
+ super(context, message, data)
1209
+ end
1210
+ end
1211
+
1179
1212
  end
1180
1213
  end
@@ -6,13 +6,7 @@
6
6
  # WARNING ABOUT GENERATED CODE
7
7
 
8
8
  module Aws::Redshift
9
- # This class provides a resource oriented interface for Redshift.
10
- # To create a resource object:
11
- # resource = Aws::Redshift::Resource.new(region: 'us-west-2')
12
- # You can supply a client object with custom configuration that will be used for all resource operations.
13
- # If you do not pass +:client+, a default client will be constructed.
14
- # client = Aws::Redshift::Client.new(region: 'us-west-2')
15
- # resource = Aws::Redshift::Resource.new(client: client)
9
+
16
10
  class Resource
17
11
 
18
12
  # @param options ({})
@@ -1642,7 +1642,8 @@ module Aws::Redshift
1642
1642
  # Redshift Cluster Management Guide*.
1643
1643
  #
1644
1644
  # Valid Values: `ds2.xlarge` \| `ds2.8xlarge` \| `dc1.large` \|
1645
- # `dc1.8xlarge` \| `dc2.large` \| `dc2.8xlarge` \| `ra3.16xlarge`
1645
+ # `dc1.8xlarge` \| `dc2.large` \| `dc2.8xlarge` \| `ra3.4xlarge` \|
1646
+ # `ra3.16xlarge`
1646
1647
  #
1647
1648
  #
1648
1649
  #
@@ -2727,6 +2728,73 @@ module Aws::Redshift
2727
2728
  include Aws::Structure
2728
2729
  end
2729
2730
 
2731
+ # @note When making an API call, you may pass CreateUsageLimitMessage
2732
+ # data as a hash:
2733
+ #
2734
+ # {
2735
+ # cluster_identifier: "String", # required
2736
+ # feature_type: "spectrum", # required, accepts spectrum, concurrency-scaling
2737
+ # limit_type: "time", # required, accepts time, data-scanned
2738
+ # amount: 1, # required
2739
+ # period: "daily", # accepts daily, weekly, monthly
2740
+ # breach_action: "log", # accepts log, emit-metric, disable
2741
+ # tags: [
2742
+ # {
2743
+ # key: "String",
2744
+ # value: "String",
2745
+ # },
2746
+ # ],
2747
+ # }
2748
+ #
2749
+ # @!attribute [rw] cluster_identifier
2750
+ # The identifier of the cluster that you want to limit usage.
2751
+ # @return [String]
2752
+ #
2753
+ # @!attribute [rw] feature_type
2754
+ # The Amazon Redshift feature that you want to limit.
2755
+ # @return [String]
2756
+ #
2757
+ # @!attribute [rw] limit_type
2758
+ # The type of limit. Depending on the feature type, this can be based
2759
+ # on a time duration or data size. If `FeatureType` is `spectrum`,
2760
+ # then `LimitType` must be `data-scanned`. If `FeatureType` is
2761
+ # `concurrency-scaling`, then `LimitType` must be `time`.
2762
+ # @return [String]
2763
+ #
2764
+ # @!attribute [rw] amount
2765
+ # The limit amount. If time-based, this amount is in minutes. If
2766
+ # data-based, this amount is in terabytes (TB). The value must be a
2767
+ # positive number.
2768
+ # @return [Integer]
2769
+ #
2770
+ # @!attribute [rw] period
2771
+ # The time period that the amount applies to. A `weekly` period begins
2772
+ # on Sunday. The default is `monthly`.
2773
+ # @return [String]
2774
+ #
2775
+ # @!attribute [rw] breach_action
2776
+ # The action that Amazon Redshift takes when the limit is reached. The
2777
+ # default is log. For more information about this parameter, see
2778
+ # UsageLimit.
2779
+ # @return [String]
2780
+ #
2781
+ # @!attribute [rw] tags
2782
+ # A list of tag instances.
2783
+ # @return [Array<Types::Tag>]
2784
+ #
2785
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateUsageLimitMessage AWS API Documentation
2786
+ #
2787
+ class CreateUsageLimitMessage < Struct.new(
2788
+ :cluster_identifier,
2789
+ :feature_type,
2790
+ :limit_type,
2791
+ :amount,
2792
+ :period,
2793
+ :breach_action,
2794
+ :tags)
2795
+ include Aws::Structure
2796
+ end
2797
+
2730
2798
  # @!attribute [rw] total_backup_size_in_mega_bytes
2731
2799
  # The total amount of storage currently used for snapshots.
2732
2800
  # @return [Float]
@@ -3165,6 +3233,24 @@ module Aws::Redshift
3165
3233
  include Aws::Structure
3166
3234
  end
3167
3235
 
3236
+ # @note When making an API call, you may pass DeleteUsageLimitMessage
3237
+ # data as a hash:
3238
+ #
3239
+ # {
3240
+ # usage_limit_id: "String", # required
3241
+ # }
3242
+ #
3243
+ # @!attribute [rw] usage_limit_id
3244
+ # The identifier of the usage limit to delete.
3245
+ # @return [String]
3246
+ #
3247
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteUsageLimitMessage AWS API Documentation
3248
+ #
3249
+ class DeleteUsageLimitMessage < Struct.new(
3250
+ :usage_limit_id)
3251
+ include Aws::Structure
3252
+ end
3253
+
3168
3254
  # The request cannot be completed because a dependent service is
3169
3255
  # throttling requests made by Amazon Redshift on your behalf. Wait and
3170
3256
  # retry the request.
@@ -4907,6 +4993,86 @@ module Aws::Redshift
4907
4993
  include Aws::Structure
4908
4994
  end
4909
4995
 
4996
+ # @note When making an API call, you may pass DescribeUsageLimitsMessage
4997
+ # data as a hash:
4998
+ #
4999
+ # {
5000
+ # usage_limit_id: "String",
5001
+ # cluster_identifier: "String",
5002
+ # feature_type: "spectrum", # accepts spectrum, concurrency-scaling
5003
+ # max_records: 1,
5004
+ # marker: "String",
5005
+ # tag_keys: ["String"],
5006
+ # tag_values: ["String"],
5007
+ # }
5008
+ #
5009
+ # @!attribute [rw] usage_limit_id
5010
+ # The identifier of the usage limit to describe.
5011
+ # @return [String]
5012
+ #
5013
+ # @!attribute [rw] cluster_identifier
5014
+ # The identifier of the cluster for which you want to describe usage
5015
+ # limits.
5016
+ # @return [String]
5017
+ #
5018
+ # @!attribute [rw] feature_type
5019
+ # The feature type for which you want to describe usage limits.
5020
+ # @return [String]
5021
+ #
5022
+ # @!attribute [rw] max_records
5023
+ # The maximum number of response records to return in each call. If
5024
+ # the number of remaining response records exceeds the specified
5025
+ # `MaxRecords` value, a value is returned in a `marker` field of the
5026
+ # response. You can retrieve the next set of records by retrying the
5027
+ # command with the returned marker value.
5028
+ #
5029
+ # Default: `100`
5030
+ #
5031
+ # Constraints: minimum 20, maximum 100.
5032
+ # @return [Integer]
5033
+ #
5034
+ # @!attribute [rw] marker
5035
+ # An optional parameter that specifies the starting point to return a
5036
+ # set of response records. When the results of a DescribeUsageLimits
5037
+ # request exceed the value specified in `MaxRecords`, AWS returns a
5038
+ # value in the `Marker` field of the response. You can retrieve the
5039
+ # next set of response records by providing the returned marker value
5040
+ # in the `Marker` parameter and retrying the request.
5041
+ # @return [String]
5042
+ #
5043
+ # @!attribute [rw] tag_keys
5044
+ # A tag key or keys for which you want to return all matching usage
5045
+ # limit objects that are associated with the specified key or keys.
5046
+ # For example, suppose that you have parameter groups that are tagged
5047
+ # with keys called `owner` and `environment`. If you specify both of
5048
+ # these tag keys in the request, Amazon Redshift returns a response
5049
+ # with the usage limit objects have either or both of these tag keys
5050
+ # associated with them.
5051
+ # @return [Array<String>]
5052
+ #
5053
+ # @!attribute [rw] tag_values
5054
+ # A tag value or values for which you want to return all matching
5055
+ # usage limit objects that are associated with the specified tag value
5056
+ # or values. For example, suppose that you have parameter groups that
5057
+ # are tagged with values called `admin` and `test`. If you specify
5058
+ # both of these tag values in the request, Amazon Redshift returns a
5059
+ # response with the usage limit objects that have either or both of
5060
+ # these tag values associated with them.
5061
+ # @return [Array<String>]
5062
+ #
5063
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeUsageLimitsMessage AWS API Documentation
5064
+ #
5065
+ class DescribeUsageLimitsMessage < Struct.new(
5066
+ :usage_limit_id,
5067
+ :cluster_identifier,
5068
+ :feature_type,
5069
+ :max_records,
5070
+ :marker,
5071
+ :tag_keys,
5072
+ :tag_values)
5073
+ include Aws::Structure
5074
+ end
5075
+
4910
5076
  # @note When making an API call, you may pass DisableLoggingMessage
4911
5077
  # data as a hash:
4912
5078
  #
@@ -5991,6 +6157,12 @@ module Aws::Redshift
5991
6157
  #
5992
6158
  class InvalidTagFault < Aws::EmptyStructure; end
5993
6159
 
6160
+ # The usage limit is not valid.
6161
+ #
6162
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/InvalidUsageLimitFault AWS API Documentation
6163
+ #
6164
+ class InvalidUsageLimitFault < Aws::EmptyStructure; end
6165
+
5994
6166
  # The cluster subnet group does not cover all Availability Zones.
5995
6167
  #
5996
6168
  # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/InvalidVPCNetworkStateFault AWS API Documentation
@@ -6276,7 +6448,8 @@ module Aws::Redshift
6276
6448
  # Management Guide*.
6277
6449
  #
6278
6450
  # Valid Values: `ds2.xlarge` \| `ds2.8xlarge` \| `dc1.large` \|
6279
- # `dc1.8xlarge` \| `dc2.large` \| `dc2.8xlarge` \| `ra3.16xlarge`
6451
+ # `dc1.8xlarge` \| `dc2.large` \| `dc2.8xlarge` \| `ra3.4xlarge` \|
6452
+ # `ra3.16xlarge`
6280
6453
  #
6281
6454
  #
6282
6455
  #
@@ -6993,6 +7166,38 @@ module Aws::Redshift
6993
7166
  include Aws::Structure
6994
7167
  end
6995
7168
 
7169
+ # @note When making an API call, you may pass ModifyUsageLimitMessage
7170
+ # data as a hash:
7171
+ #
7172
+ # {
7173
+ # usage_limit_id: "String", # required
7174
+ # amount: 1,
7175
+ # breach_action: "log", # accepts log, emit-metric, disable
7176
+ # }
7177
+ #
7178
+ # @!attribute [rw] usage_limit_id
7179
+ # The identifier of the usage limit to modify.
7180
+ # @return [String]
7181
+ #
7182
+ # @!attribute [rw] amount
7183
+ # The new limit amount. For more information about this parameter, see
7184
+ # UsageLimit.
7185
+ # @return [Integer]
7186
+ #
7187
+ # @!attribute [rw] breach_action
7188
+ # The new action that Amazon Redshift takes when the limit is reached.
7189
+ # For more information about this parameter, see UsageLimit.
7190
+ # @return [String]
7191
+ #
7192
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyUsageLimitMessage AWS API Documentation
7193
+ #
7194
+ class ModifyUsageLimitMessage < Struct.new(
7195
+ :usage_limit_id,
7196
+ :amount,
7197
+ :breach_action)
7198
+ include Aws::Structure
7199
+ end
7200
+
6996
7201
  # A list of node configurations.
6997
7202
  #
6998
7203
  # @!attribute [rw] node_type
@@ -8133,7 +8338,7 @@ module Aws::Redshift
8133
8338
  # size. In other words, you can only restore a dc1.large instance type
8134
8339
  # into another dc1.large instance type or dc2.large instance type. You
8135
8340
  # can't restore dc1.8xlarge to dc2.8xlarge. First restore to a
8136
- # dc1.8xlareg cluster, then resize to a dc2.8large cluster. For more
8341
+ # dc1.8xlarge cluster, then resize to a dc2.8large cluster. For more
8137
8342
  # information about node types, see [ About Clusters and Nodes][1] in
8138
8343
  # the *Amazon Redshift Cluster Management Guide*.
8139
8344
  #
@@ -9638,6 +9843,98 @@ module Aws::Redshift
9638
9843
  include Aws::Structure
9639
9844
  end
9640
9845
 
9846
+ # Describes a usage limit object for a cluster.
9847
+ #
9848
+ # @!attribute [rw] usage_limit_id
9849
+ # The identifier of the usage limit.
9850
+ # @return [String]
9851
+ #
9852
+ # @!attribute [rw] cluster_identifier
9853
+ # The identifier of the cluster with a usage limit.
9854
+ # @return [String]
9855
+ #
9856
+ # @!attribute [rw] feature_type
9857
+ # The Amazon Redshift feature to which the limit applies.
9858
+ # @return [String]
9859
+ #
9860
+ # @!attribute [rw] limit_type
9861
+ # The type of limit. Depending on the feature type, this can be based
9862
+ # on a time duration or data size.
9863
+ # @return [String]
9864
+ #
9865
+ # @!attribute [rw] amount
9866
+ # The limit amount. If time-based, this amount is in minutes. If
9867
+ # data-based, this amount is in terabytes (TB).
9868
+ # @return [Integer]
9869
+ #
9870
+ # @!attribute [rw] period
9871
+ # The time period that the amount applies to. A `weekly` period begins
9872
+ # on Sunday. The default is `monthly`.
9873
+ # @return [String]
9874
+ #
9875
+ # @!attribute [rw] breach_action
9876
+ # The action that Amazon Redshift takes when the limit is reached.
9877
+ # Possible values are:
9878
+ #
9879
+ # * **log** - To log an event in a system table. The default is log.
9880
+ #
9881
+ # * **emit-metric** - To emit CloudWatch metrics.
9882
+ #
9883
+ # * **disable** - To disable the feature until the next usage period
9884
+ # begins.
9885
+ # @return [String]
9886
+ #
9887
+ # @!attribute [rw] tags
9888
+ # A list of tag instances.
9889
+ # @return [Array<Types::Tag>]
9890
+ #
9891
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/UsageLimit AWS API Documentation
9892
+ #
9893
+ class UsageLimit < Struct.new(
9894
+ :usage_limit_id,
9895
+ :cluster_identifier,
9896
+ :feature_type,
9897
+ :limit_type,
9898
+ :amount,
9899
+ :period,
9900
+ :breach_action,
9901
+ :tags)
9902
+ include Aws::Structure
9903
+ end
9904
+
9905
+ # The usage limit already exists.
9906
+ #
9907
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/UsageLimitAlreadyExistsFault AWS API Documentation
9908
+ #
9909
+ class UsageLimitAlreadyExistsFault < Aws::EmptyStructure; end
9910
+
9911
+ # @!attribute [rw] usage_limits
9912
+ # Contains the output from the DescribeUsageLimits action.
9913
+ # @return [Array<Types::UsageLimit>]
9914
+ #
9915
+ # @!attribute [rw] marker
9916
+ # A value that indicates the starting point for the next set of
9917
+ # response records in a subsequent request. If a value is returned in
9918
+ # a response, you can retrieve the next set of records by providing
9919
+ # this returned marker value in the `Marker` parameter and retrying
9920
+ # the command. If the `Marker` field is empty, all response records
9921
+ # have been retrieved for the request.
9922
+ # @return [String]
9923
+ #
9924
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/UsageLimitList AWS API Documentation
9925
+ #
9926
+ class UsageLimitList < Struct.new(
9927
+ :usage_limits,
9928
+ :marker)
9929
+ include Aws::Structure
9930
+ end
9931
+
9932
+ # The usage limit identifier can't be found.
9933
+ #
9934
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/UsageLimitNotFoundFault AWS API Documentation
9935
+ #
9936
+ class UsageLimitNotFoundFault < Aws::EmptyStructure; end
9937
+
9641
9938
  # Describes the members of a VPC security group.
9642
9939
  #
9643
9940
  # @!attribute [rw] vpc_security_group_id