aws-sdk-redshift 1.40.0 → 1.41.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
  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