aws-sdk-redshift 1.40.0 → 1.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ee91c457458c30f76f268ee63ba0c4be469dd5029a830eed2ee1fd6323a90d4b
4
- data.tar.gz: 294076236d831a958a8cb7ed37d5847aaf5d4b8ec5952ab18a7ae5606130bce3
3
+ metadata.gz: e261eb2a70d920350c188d8410a44c717040e86a1448e72c333e1e3d99b459ef
4
+ data.tar.gz: ba9bc65ef2a121054863c0192fe31528387e9b7f45a7feb31a1bd0dc63c1ce8d
5
5
  SHA512:
6
- metadata.gz: 06174cdd92acb40d128a29346e292f4905906f7f62959aa574e7d7adc959dad49f78230a0125c8887e7ec08860002904f72088aeb8ef5e90598b1b6624957a55
7
- data.tar.gz: 2d1dac31c7c88a1a7512f11e15c9eafceebb4476b00e210cd3afd2ee4e4bee612a231031f8796b2f0c75abd5ea773738e5eb34986330c15a4b77577d63266078
6
+ metadata.gz: c87b3d9135e31f054318a47e5a4dcdb1ec298268a1f91134dfc240952759aa0b1a8427b97a9f9798a0c4b32dd056a0b255b45ff92e4773b53d00d2f5897ec8bf
7
+ data.tar.gz: f5ab2b4e0f6d4c23d6aac0eb03b66d44ada9aa65d59d0ea3c85012b16bfbbe477d16377d35b0b3cce6f31fa59fed98f937dc39409ef4d327f5c45875178526d1
@@ -46,6 +46,6 @@ require_relative 'aws-sdk-redshift/customizations'
46
46
  # @service
47
47
  module Aws::Redshift
48
48
 
49
- GEM_VERSION = '1.40.0'
49
+ GEM_VERSION = '1.41.0'
50
50
 
51
51
  end
@@ -2213,6 +2213,89 @@ module Aws::Redshift
2213
2213
  req.send_request(options)
2214
2214
  end
2215
2215
 
2216
+ # Creates a usage limit for a specified Amazon Redshift feature on a
2217
+ # cluster. The usage limit is identified by the returned usage limit
2218
+ # identifier.
2219
+ #
2220
+ # @option params [required, String] :cluster_identifier
2221
+ # The identifier of the cluster that you want to limit usage.
2222
+ #
2223
+ # @option params [required, String] :feature_type
2224
+ # The Amazon Redshift feature that you want to limit.
2225
+ #
2226
+ # @option params [required, String] :limit_type
2227
+ # The type of limit. Depending on the feature type, this can be based on
2228
+ # a time duration or data size. If `FeatureType` is `spectrum`, then
2229
+ # `LimitType` must be `data-scanned`. If `FeatureType` is
2230
+ # `concurrency-scaling`, then `LimitType` must be `time`.
2231
+ #
2232
+ # @option params [required, Integer] :amount
2233
+ # The limit amount. If time-based, this amount is in minutes. If
2234
+ # data-based, this amount is in terabytes (TB). The value must be a
2235
+ # positive number.
2236
+ #
2237
+ # @option params [String] :period
2238
+ # The time period that the amount applies to. A `weekly` period begins
2239
+ # on Sunday. The default is `monthly`.
2240
+ #
2241
+ # @option params [String] :breach_action
2242
+ # The action that Amazon Redshift takes when the limit is reached. The
2243
+ # default is log. For more information about this parameter, see
2244
+ # UsageLimit.
2245
+ #
2246
+ # @option params [Array<Types::Tag>] :tags
2247
+ # A list of tag instances.
2248
+ #
2249
+ # @return [Types::UsageLimit] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2250
+ #
2251
+ # * {Types::UsageLimit#usage_limit_id #usage_limit_id} => String
2252
+ # * {Types::UsageLimit#cluster_identifier #cluster_identifier} => String
2253
+ # * {Types::UsageLimit#feature_type #feature_type} => String
2254
+ # * {Types::UsageLimit#limit_type #limit_type} => String
2255
+ # * {Types::UsageLimit#amount #amount} => Integer
2256
+ # * {Types::UsageLimit#period #period} => String
2257
+ # * {Types::UsageLimit#breach_action #breach_action} => String
2258
+ # * {Types::UsageLimit#tags #tags} => Array&lt;Types::Tag&gt;
2259
+ #
2260
+ # @example Request syntax with placeholder values
2261
+ #
2262
+ # resp = client.create_usage_limit({
2263
+ # cluster_identifier: "String", # required
2264
+ # feature_type: "spectrum", # required, accepts spectrum, concurrency-scaling
2265
+ # limit_type: "time", # required, accepts time, data-scanned
2266
+ # amount: 1, # required
2267
+ # period: "daily", # accepts daily, weekly, monthly
2268
+ # breach_action: "log", # accepts log, emit-metric, disable
2269
+ # tags: [
2270
+ # {
2271
+ # key: "String",
2272
+ # value: "String",
2273
+ # },
2274
+ # ],
2275
+ # })
2276
+ #
2277
+ # @example Response structure
2278
+ #
2279
+ # resp.usage_limit_id #=> String
2280
+ # resp.cluster_identifier #=> String
2281
+ # resp.feature_type #=> String, one of "spectrum", "concurrency-scaling"
2282
+ # resp.limit_type #=> String, one of "time", "data-scanned"
2283
+ # resp.amount #=> Integer
2284
+ # resp.period #=> String, one of "daily", "weekly", "monthly"
2285
+ # resp.breach_action #=> String, one of "log", "emit-metric", "disable"
2286
+ # resp.tags #=> Array
2287
+ # resp.tags[0].key #=> String
2288
+ # resp.tags[0].value #=> String
2289
+ #
2290
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateUsageLimit AWS API Documentation
2291
+ #
2292
+ # @overload create_usage_limit(params = {})
2293
+ # @param [Hash] params ({})
2294
+ def create_usage_limit(params = {}, options = {})
2295
+ req = build_request(:create_usage_limit, params)
2296
+ req.send_request(options)
2297
+ end
2298
+
2216
2299
  # Deletes a previously provisioned cluster without its final snapshot
2217
2300
  # being created. A successful response from the web service indicates
2218
2301
  # that the request was received correctly. Use DescribeClusters to
@@ -2741,6 +2824,28 @@ module Aws::Redshift
2741
2824
  req.send_request(options)
2742
2825
  end
2743
2826
 
2827
+ # Deletes a usage limit from a cluster.
2828
+ #
2829
+ # @option params [required, String] :usage_limit_id
2830
+ # The identifier of the usage limit to delete.
2831
+ #
2832
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2833
+ #
2834
+ # @example Request syntax with placeholder values
2835
+ #
2836
+ # resp = client.delete_usage_limit({
2837
+ # usage_limit_id: "String", # required
2838
+ # })
2839
+ #
2840
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteUsageLimit AWS API Documentation
2841
+ #
2842
+ # @overload delete_usage_limit(params = {})
2843
+ # @param [Hash] params ({})
2844
+ def delete_usage_limit(params = {}, options = {})
2845
+ req = build_request(:delete_usage_limit, params)
2846
+ req.send_request(options)
2847
+ end
2848
+
2744
2849
  # Returns a list of attributes attached to an account
2745
2850
  #
2746
2851
  # @option params [Array<String>] :attribute_names
@@ -5247,6 +5352,114 @@ module Aws::Redshift
5247
5352
  req.send_request(options)
5248
5353
  end
5249
5354
 
5355
+ # Shows usage limits on a cluster. Results are filtered based on the
5356
+ # combination of input usage limit identifier, cluster identifier, and
5357
+ # feature type parameters:
5358
+ #
5359
+ # * If usage limit identifier, cluster identifier, and feature type are
5360
+ # not provided, then all usage limit objects for the current account
5361
+ # in the current region are returned.
5362
+ #
5363
+ # * If usage limit identifier is provided, then the corresponding usage
5364
+ # limit object is returned.
5365
+ #
5366
+ # * If cluster identifier is provided, then all usage limit objects for
5367
+ # the specified cluster are returned.
5368
+ #
5369
+ # * If cluster identifier and feature type are provided, then all usage
5370
+ # limit objects for the combination of cluster and feature are
5371
+ # returned.
5372
+ #
5373
+ # @option params [String] :usage_limit_id
5374
+ # The identifier of the usage limit to describe.
5375
+ #
5376
+ # @option params [String] :cluster_identifier
5377
+ # The identifier of the cluster for which you want to describe usage
5378
+ # limits.
5379
+ #
5380
+ # @option params [String] :feature_type
5381
+ # The feature type for which you want to describe usage limits.
5382
+ #
5383
+ # @option params [Integer] :max_records
5384
+ # The maximum number of response records to return in each call. If the
5385
+ # number of remaining response records exceeds the specified
5386
+ # `MaxRecords` value, a value is returned in a `marker` field of the
5387
+ # response. You can retrieve the next set of records by retrying the
5388
+ # command with the returned marker value.
5389
+ #
5390
+ # Default: `100`
5391
+ #
5392
+ # Constraints: minimum 20, maximum 100.
5393
+ #
5394
+ # @option params [String] :marker
5395
+ # An optional parameter that specifies the starting point to return a
5396
+ # set of response records. When the results of a DescribeUsageLimits
5397
+ # request exceed the value specified in `MaxRecords`, AWS returns a
5398
+ # value in the `Marker` field of the response. You can retrieve the next
5399
+ # set of response records by providing the returned marker value in the
5400
+ # `Marker` parameter and retrying the request.
5401
+ #
5402
+ # @option params [Array<String>] :tag_keys
5403
+ # A tag key or keys for which you want to return all matching usage
5404
+ # limit objects that are associated with the specified key or keys. For
5405
+ # example, suppose that you have parameter groups that are tagged with
5406
+ # keys called `owner` and `environment`. If you specify both of these
5407
+ # tag keys in the request, Amazon Redshift returns a response with the
5408
+ # usage limit objects have either or both of these tag keys associated
5409
+ # with them.
5410
+ #
5411
+ # @option params [Array<String>] :tag_values
5412
+ # A tag value or values for which you want to return all matching usage
5413
+ # limit objects that are associated with the specified tag value or
5414
+ # values. For example, suppose that you have parameter groups that are
5415
+ # tagged with values called `admin` and `test`. If you specify both of
5416
+ # these tag values in the request, Amazon Redshift returns a response
5417
+ # with the usage limit objects that have either or both of these tag
5418
+ # values associated with them.
5419
+ #
5420
+ # @return [Types::UsageLimitList] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5421
+ #
5422
+ # * {Types::UsageLimitList#usage_limits #usage_limits} => Array&lt;Types::UsageLimit&gt;
5423
+ # * {Types::UsageLimitList#marker #marker} => String
5424
+ #
5425
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
5426
+ #
5427
+ # @example Request syntax with placeholder values
5428
+ #
5429
+ # resp = client.describe_usage_limits({
5430
+ # usage_limit_id: "String",
5431
+ # cluster_identifier: "String",
5432
+ # feature_type: "spectrum", # accepts spectrum, concurrency-scaling
5433
+ # max_records: 1,
5434
+ # marker: "String",
5435
+ # tag_keys: ["String"],
5436
+ # tag_values: ["String"],
5437
+ # })
5438
+ #
5439
+ # @example Response structure
5440
+ #
5441
+ # resp.usage_limits #=> Array
5442
+ # resp.usage_limits[0].usage_limit_id #=> String
5443
+ # resp.usage_limits[0].cluster_identifier #=> String
5444
+ # resp.usage_limits[0].feature_type #=> String, one of "spectrum", "concurrency-scaling"
5445
+ # resp.usage_limits[0].limit_type #=> String, one of "time", "data-scanned"
5446
+ # resp.usage_limits[0].amount #=> Integer
5447
+ # resp.usage_limits[0].period #=> String, one of "daily", "weekly", "monthly"
5448
+ # resp.usage_limits[0].breach_action #=> String, one of "log", "emit-metric", "disable"
5449
+ # resp.usage_limits[0].tags #=> Array
5450
+ # resp.usage_limits[0].tags[0].key #=> String
5451
+ # resp.usage_limits[0].tags[0].value #=> String
5452
+ # resp.marker #=> String
5453
+ #
5454
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeUsageLimits AWS API Documentation
5455
+ #
5456
+ # @overload describe_usage_limits(params = {})
5457
+ # @param [Hash] params ({})
5458
+ def describe_usage_limits(params = {}, options = {})
5459
+ req = build_request(:describe_usage_limits, params)
5460
+ req.send_request(options)
5461
+ end
5462
+
5250
5463
  # Stops logging information, such as queries and connection attempts,
5251
5464
  # for the specified Amazon Redshift cluster.
5252
5465
  #
@@ -7325,6 +7538,61 @@ module Aws::Redshift
7325
7538
  req.send_request(options)
7326
7539
  end
7327
7540
 
7541
+ # Modifies a usage limit in a cluster. You can't modify the feature
7542
+ # type or period of a usage limit.
7543
+ #
7544
+ # @option params [required, String] :usage_limit_id
7545
+ # The identifier of the usage limit to modify.
7546
+ #
7547
+ # @option params [Integer] :amount
7548
+ # The new limit amount. For more information about this parameter, see
7549
+ # UsageLimit.
7550
+ #
7551
+ # @option params [String] :breach_action
7552
+ # The new action that Amazon Redshift takes when the limit is reached.
7553
+ # For more information about this parameter, see UsageLimit.
7554
+ #
7555
+ # @return [Types::UsageLimit] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7556
+ #
7557
+ # * {Types::UsageLimit#usage_limit_id #usage_limit_id} => String
7558
+ # * {Types::UsageLimit#cluster_identifier #cluster_identifier} => String
7559
+ # * {Types::UsageLimit#feature_type #feature_type} => String
7560
+ # * {Types::UsageLimit#limit_type #limit_type} => String
7561
+ # * {Types::UsageLimit#amount #amount} => Integer
7562
+ # * {Types::UsageLimit#period #period} => String
7563
+ # * {Types::UsageLimit#breach_action #breach_action} => String
7564
+ # * {Types::UsageLimit#tags #tags} => Array&lt;Types::Tag&gt;
7565
+ #
7566
+ # @example Request syntax with placeholder values
7567
+ #
7568
+ # resp = client.modify_usage_limit({
7569
+ # usage_limit_id: "String", # required
7570
+ # amount: 1,
7571
+ # breach_action: "log", # accepts log, emit-metric, disable
7572
+ # })
7573
+ #
7574
+ # @example Response structure
7575
+ #
7576
+ # resp.usage_limit_id #=> String
7577
+ # resp.cluster_identifier #=> String
7578
+ # resp.feature_type #=> String, one of "spectrum", "concurrency-scaling"
7579
+ # resp.limit_type #=> String, one of "time", "data-scanned"
7580
+ # resp.amount #=> Integer
7581
+ # resp.period #=> String, one of "daily", "weekly", "monthly"
7582
+ # resp.breach_action #=> String, one of "log", "emit-metric", "disable"
7583
+ # resp.tags #=> Array
7584
+ # resp.tags[0].key #=> String
7585
+ # resp.tags[0].value #=> String
7586
+ #
7587
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyUsageLimit AWS API Documentation
7588
+ #
7589
+ # @overload modify_usage_limit(params = {})
7590
+ # @param [Hash] params ({})
7591
+ def modify_usage_limit(params = {}, options = {})
7592
+ req = build_request(:modify_usage_limit, params)
7593
+ req.send_request(options)
7594
+ end
7595
+
7328
7596
  # Pauses a cluster.
7329
7597
  #
7330
7598
  # @option params [required, String] :cluster_identifier
@@ -8050,7 +8318,7 @@ module Aws::Redshift
8050
8318
  # restore into that same instance type and size. In other words, you can
8051
8319
  # only restore a dc1.large instance type into another dc1.large instance
8052
8320
  # type or dc2.large instance type. You can't restore dc1.8xlarge to
8053
- # dc2.8xlarge. First restore to a dc1.8xlareg cluster, then resize to a
8321
+ # dc2.8xlarge. First restore to a dc1.8xlarge cluster, then resize to a
8054
8322
  # dc2.8large cluster. For more information about node types, see [ About
8055
8323
  # Clusters and Nodes][1] in the *Amazon Redshift Cluster Management
8056
8324
  # Guide*.
@@ -8754,7 +9022,7 @@ module Aws::Redshift
8754
9022
  params: params,
8755
9023
  config: config)
8756
9024
  context[:gem_name] = 'aws-sdk-redshift'
8757
- context[:gem_version] = '1.40.0'
9025
+ context[:gem_version] = '1.41.0'
8758
9026
  Seahorse::Client::Request.new(handlers, context)
8759
9027
  end
8760
9028
 
@@ -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
@@ -2728,6 +2728,73 @@ module Aws::Redshift
2728
2728
  include Aws::Structure
2729
2729
  end
2730
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
+
2731
2798
  # @!attribute [rw] total_backup_size_in_mega_bytes
2732
2799
  # The total amount of storage currently used for snapshots.
2733
2800
  # @return [Float]
@@ -3166,6 +3233,24 @@ module Aws::Redshift
3166
3233
  include Aws::Structure
3167
3234
  end
3168
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
+
3169
3254
  # The request cannot be completed because a dependent service is
3170
3255
  # throttling requests made by Amazon Redshift on your behalf. Wait and
3171
3256
  # retry the request.
@@ -4908,6 +4993,86 @@ module Aws::Redshift
4908
4993
  include Aws::Structure
4909
4994
  end
4910
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
+
4911
5076
  # @note When making an API call, you may pass DisableLoggingMessage
4912
5077
  # data as a hash:
4913
5078
  #
@@ -5992,6 +6157,12 @@ module Aws::Redshift
5992
6157
  #
5993
6158
  class InvalidTagFault < Aws::EmptyStructure; end
5994
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
+
5995
6166
  # The cluster subnet group does not cover all Availability Zones.
5996
6167
  #
5997
6168
  # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/InvalidVPCNetworkStateFault AWS API Documentation
@@ -6995,6 +7166,38 @@ module Aws::Redshift
6995
7166
  include Aws::Structure
6996
7167
  end
6997
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
+
6998
7201
  # A list of node configurations.
6999
7202
  #
7000
7203
  # @!attribute [rw] node_type
@@ -8135,7 +8338,7 @@ module Aws::Redshift
8135
8338
  # size. In other words, you can only restore a dc1.large instance type
8136
8339
  # into another dc1.large instance type or dc2.large instance type. You
8137
8340
  # can't restore dc1.8xlarge to dc2.8xlarge. First restore to a
8138
- # 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
8139
8342
  # information about node types, see [ About Clusters and Nodes][1] in
8140
8343
  # the *Amazon Redshift Cluster Management Guide*.
8141
8344
  #
@@ -9640,6 +9843,98 @@ module Aws::Redshift
9640
9843
  include Aws::Structure
9641
9844
  end
9642
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
+
9643
9938
  # Describes the members of a VPC security group.
9644
9939
  #
9645
9940
  # @!attribute [rw] vpc_security_group_id
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-redshift
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.40.0
4
+ version: 1.41.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: 2020-04-09 00:00:00.000000000 Z
11
+ date: 2020-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core