aws-sdk-redshift 1.40.0 → 1.45.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: 767255f2e5ec699b0943ff2d0fd9685f8cda9497ff5c4e91a9bc99906c4d9f00
4
+ data.tar.gz: 708149b3d092187dcc015947779fd06313926853986cd0e2cd05b54f58b8ae09
5
5
  SHA512:
6
- metadata.gz: 06174cdd92acb40d128a29346e292f4905906f7f62959aa574e7d7adc959dad49f78230a0125c8887e7ec08860002904f72088aeb8ef5e90598b1b6624957a55
7
- data.tar.gz: 2d1dac31c7c88a1a7512f11e15c9eafceebb4476b00e210cd3afd2ee4e4bee612a231031f8796b2f0c75abd5ea773738e5eb34986330c15a4b77577d63266078
6
+ metadata.gz: d0293fa4ddd5f69a3db4848b6800cd702b3fa6a52bfe47ddcd33cf968978af3b8acda72c35933bbd85b0baba27987bac74e5e22cb1b4dbb67d06b389f3a0a5c7
7
+ data.tar.gz: 12785d89805589c8a447407f987603b986093daed55909e9e96e97c85717d0279762a0d204f5bf91c051766cf02775d5b6478398e16a64e30d6eaebfa7ffc891
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -46,6 +48,6 @@ require_relative 'aws-sdk-redshift/customizations'
46
48
  # @service
47
49
  module Aws::Redshift
48
50
 
49
- GEM_VERSION = '1.40.0'
51
+ GEM_VERSION = '1.45.0'
50
52
 
51
53
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -24,6 +26,7 @@ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
24
26
  require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
25
27
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
26
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
+ require 'aws-sdk-core/plugins/http_checksum.rb'
27
30
  require 'aws-sdk-core/plugins/signature_v4.rb'
28
31
  require 'aws-sdk-core/plugins/protocols/query.rb'
29
32
 
@@ -69,6 +72,7 @@ module Aws::Redshift
69
72
  add_plugin(Aws::Plugins::ClientMetricsPlugin)
70
73
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
71
74
  add_plugin(Aws::Plugins::TransferEncoding)
75
+ add_plugin(Aws::Plugins::HttpChecksum)
72
76
  add_plugin(Aws::Plugins::SignatureV4)
73
77
  add_plugin(Aws::Plugins::Protocols::Query)
74
78
 
@@ -105,7 +109,7 @@ module Aws::Redshift
105
109
  # @option options [required, String] :region
106
110
  # The AWS region to connect to. The configured `:region` is
107
111
  # used to determine the service `:endpoint`. When not passed,
108
- # a default `:region` is search for in the following locations:
112
+ # a default `:region` is searched for in the following locations:
109
113
  #
110
114
  # * `Aws.config[:region]`
111
115
  # * `ENV['AWS_REGION']`
@@ -161,7 +165,7 @@ module Aws::Redshift
161
165
  # @option options [String] :endpoint
162
166
  # The client endpoint is normally constructed from the `:region`
163
167
  # option. You should only configure an `:endpoint` when connecting
164
- # to test endpoints. This should be avalid HTTP(S) URI.
168
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
165
169
  #
166
170
  # @option options [Integer] :endpoint_cache_max_entries (1000)
167
171
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -176,7 +180,7 @@ module Aws::Redshift
176
180
  # requests fetching endpoints information. Defaults to 60 sec.
177
181
  #
178
182
  # @option options [Boolean] :endpoint_discovery (false)
179
- # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
183
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
180
184
  #
181
185
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
182
186
  # The log formatter.
@@ -2213,6 +2217,89 @@ module Aws::Redshift
2213
2217
  req.send_request(options)
2214
2218
  end
2215
2219
 
2220
+ # Creates a usage limit for a specified Amazon Redshift feature on a
2221
+ # cluster. The usage limit is identified by the returned usage limit
2222
+ # identifier.
2223
+ #
2224
+ # @option params [required, String] :cluster_identifier
2225
+ # The identifier of the cluster that you want to limit usage.
2226
+ #
2227
+ # @option params [required, String] :feature_type
2228
+ # The Amazon Redshift feature that you want to limit.
2229
+ #
2230
+ # @option params [required, String] :limit_type
2231
+ # The type of limit. Depending on the feature type, this can be based on
2232
+ # a time duration or data size. If `FeatureType` is `spectrum`, then
2233
+ # `LimitType` must be `data-scanned`. If `FeatureType` is
2234
+ # `concurrency-scaling`, then `LimitType` must be `time`.
2235
+ #
2236
+ # @option params [required, Integer] :amount
2237
+ # The limit amount. If time-based, this amount is in minutes. If
2238
+ # data-based, this amount is in terabytes (TB). The value must be a
2239
+ # positive number.
2240
+ #
2241
+ # @option params [String] :period
2242
+ # The time period that the amount applies to. A `weekly` period begins
2243
+ # on Sunday. The default is `monthly`.
2244
+ #
2245
+ # @option params [String] :breach_action
2246
+ # The action that Amazon Redshift takes when the limit is reached. The
2247
+ # default is log. For more information about this parameter, see
2248
+ # UsageLimit.
2249
+ #
2250
+ # @option params [Array<Types::Tag>] :tags
2251
+ # A list of tag instances.
2252
+ #
2253
+ # @return [Types::UsageLimit] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2254
+ #
2255
+ # * {Types::UsageLimit#usage_limit_id #usage_limit_id} => String
2256
+ # * {Types::UsageLimit#cluster_identifier #cluster_identifier} => String
2257
+ # * {Types::UsageLimit#feature_type #feature_type} => String
2258
+ # * {Types::UsageLimit#limit_type #limit_type} => String
2259
+ # * {Types::UsageLimit#amount #amount} => Integer
2260
+ # * {Types::UsageLimit#period #period} => String
2261
+ # * {Types::UsageLimit#breach_action #breach_action} => String
2262
+ # * {Types::UsageLimit#tags #tags} => Array&lt;Types::Tag&gt;
2263
+ #
2264
+ # @example Request syntax with placeholder values
2265
+ #
2266
+ # resp = client.create_usage_limit({
2267
+ # cluster_identifier: "String", # required
2268
+ # feature_type: "spectrum", # required, accepts spectrum, concurrency-scaling
2269
+ # limit_type: "time", # required, accepts time, data-scanned
2270
+ # amount: 1, # required
2271
+ # period: "daily", # accepts daily, weekly, monthly
2272
+ # breach_action: "log", # accepts log, emit-metric, disable
2273
+ # tags: [
2274
+ # {
2275
+ # key: "String",
2276
+ # value: "String",
2277
+ # },
2278
+ # ],
2279
+ # })
2280
+ #
2281
+ # @example Response structure
2282
+ #
2283
+ # resp.usage_limit_id #=> String
2284
+ # resp.cluster_identifier #=> String
2285
+ # resp.feature_type #=> String, one of "spectrum", "concurrency-scaling"
2286
+ # resp.limit_type #=> String, one of "time", "data-scanned"
2287
+ # resp.amount #=> Integer
2288
+ # resp.period #=> String, one of "daily", "weekly", "monthly"
2289
+ # resp.breach_action #=> String, one of "log", "emit-metric", "disable"
2290
+ # resp.tags #=> Array
2291
+ # resp.tags[0].key #=> String
2292
+ # resp.tags[0].value #=> String
2293
+ #
2294
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateUsageLimit AWS API Documentation
2295
+ #
2296
+ # @overload create_usage_limit(params = {})
2297
+ # @param [Hash] params ({})
2298
+ def create_usage_limit(params = {}, options = {})
2299
+ req = build_request(:create_usage_limit, params)
2300
+ req.send_request(options)
2301
+ end
2302
+
2216
2303
  # Deletes a previously provisioned cluster without its final snapshot
2217
2304
  # being created. A successful response from the web service indicates
2218
2305
  # that the request was received correctly. Use DescribeClusters to
@@ -2741,6 +2828,28 @@ module Aws::Redshift
2741
2828
  req.send_request(options)
2742
2829
  end
2743
2830
 
2831
+ # Deletes a usage limit from a cluster.
2832
+ #
2833
+ # @option params [required, String] :usage_limit_id
2834
+ # The identifier of the usage limit to delete.
2835
+ #
2836
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2837
+ #
2838
+ # @example Request syntax with placeholder values
2839
+ #
2840
+ # resp = client.delete_usage_limit({
2841
+ # usage_limit_id: "String", # required
2842
+ # })
2843
+ #
2844
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteUsageLimit AWS API Documentation
2845
+ #
2846
+ # @overload delete_usage_limit(params = {})
2847
+ # @param [Hash] params ({})
2848
+ def delete_usage_limit(params = {}, options = {})
2849
+ req = build_request(:delete_usage_limit, params)
2850
+ req.send_request(options)
2851
+ end
2852
+
2744
2853
  # Returns a list of attributes attached to an account
2745
2854
  #
2746
2855
  # @option params [Array<String>] :attribute_names
@@ -5247,6 +5356,114 @@ module Aws::Redshift
5247
5356
  req.send_request(options)
5248
5357
  end
5249
5358
 
5359
+ # Shows usage limits on a cluster. Results are filtered based on the
5360
+ # combination of input usage limit identifier, cluster identifier, and
5361
+ # feature type parameters:
5362
+ #
5363
+ # * If usage limit identifier, cluster identifier, and feature type are
5364
+ # not provided, then all usage limit objects for the current account
5365
+ # in the current region are returned.
5366
+ #
5367
+ # * If usage limit identifier is provided, then the corresponding usage
5368
+ # limit object is returned.
5369
+ #
5370
+ # * If cluster identifier is provided, then all usage limit objects for
5371
+ # the specified cluster are returned.
5372
+ #
5373
+ # * If cluster identifier and feature type are provided, then all usage
5374
+ # limit objects for the combination of cluster and feature are
5375
+ # returned.
5376
+ #
5377
+ # @option params [String] :usage_limit_id
5378
+ # The identifier of the usage limit to describe.
5379
+ #
5380
+ # @option params [String] :cluster_identifier
5381
+ # The identifier of the cluster for which you want to describe usage
5382
+ # limits.
5383
+ #
5384
+ # @option params [String] :feature_type
5385
+ # The feature type for which you want to describe usage limits.
5386
+ #
5387
+ # @option params [Integer] :max_records
5388
+ # The maximum number of response records to return in each call. If the
5389
+ # number of remaining response records exceeds the specified
5390
+ # `MaxRecords` value, a value is returned in a `marker` field of the
5391
+ # response. You can retrieve the next set of records by retrying the
5392
+ # command with the returned marker value.
5393
+ #
5394
+ # Default: `100`
5395
+ #
5396
+ # Constraints: minimum 20, maximum 100.
5397
+ #
5398
+ # @option params [String] :marker
5399
+ # An optional parameter that specifies the starting point to return a
5400
+ # set of response records. When the results of a DescribeUsageLimits
5401
+ # request exceed the value specified in `MaxRecords`, AWS returns a
5402
+ # value in the `Marker` field of the response. You can retrieve the next
5403
+ # set of response records by providing the returned marker value in the
5404
+ # `Marker` parameter and retrying the request.
5405
+ #
5406
+ # @option params [Array<String>] :tag_keys
5407
+ # A tag key or keys for which you want to return all matching usage
5408
+ # limit objects that are associated with the specified key or keys. For
5409
+ # example, suppose that you have parameter groups that are tagged with
5410
+ # keys called `owner` and `environment`. If you specify both of these
5411
+ # tag keys in the request, Amazon Redshift returns a response with the
5412
+ # usage limit objects have either or both of these tag keys associated
5413
+ # with them.
5414
+ #
5415
+ # @option params [Array<String>] :tag_values
5416
+ # A tag value or values for which you want to return all matching usage
5417
+ # limit objects that are associated with the specified tag value or
5418
+ # values. For example, suppose that you have parameter groups that are
5419
+ # tagged with values called `admin` and `test`. If you specify both of
5420
+ # these tag values in the request, Amazon Redshift returns a response
5421
+ # with the usage limit objects that have either or both of these tag
5422
+ # values associated with them.
5423
+ #
5424
+ # @return [Types::UsageLimitList] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5425
+ #
5426
+ # * {Types::UsageLimitList#usage_limits #usage_limits} => Array&lt;Types::UsageLimit&gt;
5427
+ # * {Types::UsageLimitList#marker #marker} => String
5428
+ #
5429
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
5430
+ #
5431
+ # @example Request syntax with placeholder values
5432
+ #
5433
+ # resp = client.describe_usage_limits({
5434
+ # usage_limit_id: "String",
5435
+ # cluster_identifier: "String",
5436
+ # feature_type: "spectrum", # accepts spectrum, concurrency-scaling
5437
+ # max_records: 1,
5438
+ # marker: "String",
5439
+ # tag_keys: ["String"],
5440
+ # tag_values: ["String"],
5441
+ # })
5442
+ #
5443
+ # @example Response structure
5444
+ #
5445
+ # resp.usage_limits #=> Array
5446
+ # resp.usage_limits[0].usage_limit_id #=> String
5447
+ # resp.usage_limits[0].cluster_identifier #=> String
5448
+ # resp.usage_limits[0].feature_type #=> String, one of "spectrum", "concurrency-scaling"
5449
+ # resp.usage_limits[0].limit_type #=> String, one of "time", "data-scanned"
5450
+ # resp.usage_limits[0].amount #=> Integer
5451
+ # resp.usage_limits[0].period #=> String, one of "daily", "weekly", "monthly"
5452
+ # resp.usage_limits[0].breach_action #=> String, one of "log", "emit-metric", "disable"
5453
+ # resp.usage_limits[0].tags #=> Array
5454
+ # resp.usage_limits[0].tags[0].key #=> String
5455
+ # resp.usage_limits[0].tags[0].value #=> String
5456
+ # resp.marker #=> String
5457
+ #
5458
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeUsageLimits AWS API Documentation
5459
+ #
5460
+ # @overload describe_usage_limits(params = {})
5461
+ # @param [Hash] params ({})
5462
+ def describe_usage_limits(params = {}, options = {})
5463
+ req = build_request(:describe_usage_limits, params)
5464
+ req.send_request(options)
5465
+ end
5466
+
5250
5467
  # Stops logging information, such as queries and connection attempts,
5251
5468
  # for the specified Amazon Redshift cluster.
5252
5469
  #
@@ -7325,6 +7542,61 @@ module Aws::Redshift
7325
7542
  req.send_request(options)
7326
7543
  end
7327
7544
 
7545
+ # Modifies a usage limit in a cluster. You can't modify the feature
7546
+ # type or period of a usage limit.
7547
+ #
7548
+ # @option params [required, String] :usage_limit_id
7549
+ # The identifier of the usage limit to modify.
7550
+ #
7551
+ # @option params [Integer] :amount
7552
+ # The new limit amount. For more information about this parameter, see
7553
+ # UsageLimit.
7554
+ #
7555
+ # @option params [String] :breach_action
7556
+ # The new action that Amazon Redshift takes when the limit is reached.
7557
+ # For more information about this parameter, see UsageLimit.
7558
+ #
7559
+ # @return [Types::UsageLimit] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7560
+ #
7561
+ # * {Types::UsageLimit#usage_limit_id #usage_limit_id} => String
7562
+ # * {Types::UsageLimit#cluster_identifier #cluster_identifier} => String
7563
+ # * {Types::UsageLimit#feature_type #feature_type} => String
7564
+ # * {Types::UsageLimit#limit_type #limit_type} => String
7565
+ # * {Types::UsageLimit#amount #amount} => Integer
7566
+ # * {Types::UsageLimit#period #period} => String
7567
+ # * {Types::UsageLimit#breach_action #breach_action} => String
7568
+ # * {Types::UsageLimit#tags #tags} => Array&lt;Types::Tag&gt;
7569
+ #
7570
+ # @example Request syntax with placeholder values
7571
+ #
7572
+ # resp = client.modify_usage_limit({
7573
+ # usage_limit_id: "String", # required
7574
+ # amount: 1,
7575
+ # breach_action: "log", # accepts log, emit-metric, disable
7576
+ # })
7577
+ #
7578
+ # @example Response structure
7579
+ #
7580
+ # resp.usage_limit_id #=> String
7581
+ # resp.cluster_identifier #=> String
7582
+ # resp.feature_type #=> String, one of "spectrum", "concurrency-scaling"
7583
+ # resp.limit_type #=> String, one of "time", "data-scanned"
7584
+ # resp.amount #=> Integer
7585
+ # resp.period #=> String, one of "daily", "weekly", "monthly"
7586
+ # resp.breach_action #=> String, one of "log", "emit-metric", "disable"
7587
+ # resp.tags #=> Array
7588
+ # resp.tags[0].key #=> String
7589
+ # resp.tags[0].value #=> String
7590
+ #
7591
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyUsageLimit AWS API Documentation
7592
+ #
7593
+ # @overload modify_usage_limit(params = {})
7594
+ # @param [Hash] params ({})
7595
+ def modify_usage_limit(params = {}, options = {})
7596
+ req = build_request(:modify_usage_limit, params)
7597
+ req.send_request(options)
7598
+ end
7599
+
7328
7600
  # Pauses a cluster.
7329
7601
  #
7330
7602
  # @option params [required, String] :cluster_identifier
@@ -8050,7 +8322,7 @@ module Aws::Redshift
8050
8322
  # restore into that same instance type and size. In other words, you can
8051
8323
  # only restore a dc1.large instance type into another dc1.large instance
8052
8324
  # 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
8325
+ # dc2.8xlarge. First restore to a dc1.8xlarge cluster, then resize to a
8054
8326
  # dc2.8large cluster. For more information about node types, see [ About
8055
8327
  # Clusters and Nodes][1] in the *Amazon Redshift Cluster Management
8056
8328
  # Guide*.
@@ -8754,7 +9026,7 @@ module Aws::Redshift
8754
9026
  params: params,
8755
9027
  config: config)
8756
9028
  context[:gem_name] = 'aws-sdk-redshift'
8757
- context[:gem_version] = '1.40.0'
9029
+ context[:gem_version] = '1.45.0'
8758
9030
  Seahorse::Client::Request.new(handlers, context)
8759
9031
  end
8760
9032
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -119,6 +121,7 @@ module Aws::Redshift
119
121
  CreateSnapshotCopyGrantResult = Shapes::StructureShape.new(name: 'CreateSnapshotCopyGrantResult')
120
122
  CreateSnapshotScheduleMessage = Shapes::StructureShape.new(name: 'CreateSnapshotScheduleMessage')
121
123
  CreateTagsMessage = Shapes::StructureShape.new(name: 'CreateTagsMessage')
124
+ CreateUsageLimitMessage = Shapes::StructureShape.new(name: 'CreateUsageLimitMessage')
122
125
  CustomerStorageMessage = Shapes::StructureShape.new(name: 'CustomerStorageMessage')
123
126
  DataTransferProgress = Shapes::StructureShape.new(name: 'DataTransferProgress')
124
127
  DbGroupList = Shapes::ListShape.new(name: 'DbGroupList')
@@ -140,6 +143,7 @@ module Aws::Redshift
140
143
  DeleteSnapshotCopyGrantMessage = Shapes::StructureShape.new(name: 'DeleteSnapshotCopyGrantMessage')
141
144
  DeleteSnapshotScheduleMessage = Shapes::StructureShape.new(name: 'DeleteSnapshotScheduleMessage')
142
145
  DeleteTagsMessage = Shapes::StructureShape.new(name: 'DeleteTagsMessage')
146
+ DeleteUsageLimitMessage = Shapes::StructureShape.new(name: 'DeleteUsageLimitMessage')
143
147
  DependentServiceRequestThrottlingFault = Shapes::StructureShape.new(name: 'DependentServiceRequestThrottlingFault')
144
148
  DependentServiceUnavailableFault = Shapes::StructureShape.new(name: 'DependentServiceUnavailableFault')
145
149
  DescribeAccountAttributesMessage = Shapes::StructureShape.new(name: 'DescribeAccountAttributesMessage')
@@ -171,6 +175,7 @@ module Aws::Redshift
171
175
  DescribeSnapshotSchedulesOutputMessage = Shapes::StructureShape.new(name: 'DescribeSnapshotSchedulesOutputMessage')
172
176
  DescribeTableRestoreStatusMessage = Shapes::StructureShape.new(name: 'DescribeTableRestoreStatusMessage')
173
177
  DescribeTagsMessage = Shapes::StructureShape.new(name: 'DescribeTagsMessage')
178
+ DescribeUsageLimitsMessage = Shapes::StructureShape.new(name: 'DescribeUsageLimitsMessage')
174
179
  DisableLoggingMessage = Shapes::StructureShape.new(name: 'DisableLoggingMessage')
175
180
  DisableSnapshotCopyMessage = Shapes::StructureShape.new(name: 'DisableSnapshotCopyMessage')
176
181
  DisableSnapshotCopyResult = Shapes::StructureShape.new(name: 'DisableSnapshotCopyResult')
@@ -248,6 +253,7 @@ module Aws::Redshift
248
253
  InvalidSubscriptionStateFault = Shapes::StructureShape.new(name: 'InvalidSubscriptionStateFault')
249
254
  InvalidTableRestoreArgumentFault = Shapes::StructureShape.new(name: 'InvalidTableRestoreArgumentFault')
250
255
  InvalidTagFault = Shapes::StructureShape.new(name: 'InvalidTagFault')
256
+ InvalidUsageLimitFault = Shapes::StructureShape.new(name: 'InvalidUsageLimitFault')
251
257
  InvalidVPCNetworkStateFault = Shapes::StructureShape.new(name: 'InvalidVPCNetworkStateFault')
252
258
  LimitExceededFault = Shapes::StructureShape.new(name: 'LimitExceededFault')
253
259
  LoggingStatus = Shapes::StructureShape.new(name: 'LoggingStatus')
@@ -275,6 +281,7 @@ module Aws::Redshift
275
281
  ModifySnapshotCopyRetentionPeriodMessage = Shapes::StructureShape.new(name: 'ModifySnapshotCopyRetentionPeriodMessage')
276
282
  ModifySnapshotCopyRetentionPeriodResult = Shapes::StructureShape.new(name: 'ModifySnapshotCopyRetentionPeriodResult')
277
283
  ModifySnapshotScheduleMessage = Shapes::StructureShape.new(name: 'ModifySnapshotScheduleMessage')
284
+ ModifyUsageLimitMessage = Shapes::StructureShape.new(name: 'ModifyUsageLimitMessage')
278
285
  NodeConfigurationOption = Shapes::StructureShape.new(name: 'NodeConfigurationOption')
279
286
  NodeConfigurationOptionList = Shapes::ListShape.new(name: 'NodeConfigurationOptionList')
280
287
  NodeConfigurationOptionsFilter = Shapes::StructureShape.new(name: 'NodeConfigurationOptionsFilter')
@@ -421,6 +428,15 @@ module Aws::Redshift
421
428
  UnsupportedOperationFault = Shapes::StructureShape.new(name: 'UnsupportedOperationFault')
422
429
  UnsupportedOptionFault = Shapes::StructureShape.new(name: 'UnsupportedOptionFault')
423
430
  UpdateTarget = Shapes::StructureShape.new(name: 'UpdateTarget')
431
+ UsageLimit = Shapes::StructureShape.new(name: 'UsageLimit')
432
+ UsageLimitAlreadyExistsFault = Shapes::StructureShape.new(name: 'UsageLimitAlreadyExistsFault')
433
+ UsageLimitBreachAction = Shapes::StringShape.new(name: 'UsageLimitBreachAction')
434
+ UsageLimitFeatureType = Shapes::StringShape.new(name: 'UsageLimitFeatureType')
435
+ UsageLimitLimitType = Shapes::StringShape.new(name: 'UsageLimitLimitType')
436
+ UsageLimitList = Shapes::StructureShape.new(name: 'UsageLimitList')
437
+ UsageLimitNotFoundFault = Shapes::StructureShape.new(name: 'UsageLimitNotFoundFault')
438
+ UsageLimitPeriod = Shapes::StringShape.new(name: 'UsageLimitPeriod')
439
+ UsageLimits = Shapes::ListShape.new(name: 'UsageLimits')
424
440
  ValueStringList = Shapes::ListShape.new(name: 'ValueStringList')
425
441
  VpcSecurityGroupIdList = Shapes::ListShape.new(name: 'VpcSecurityGroupIdList')
426
442
  VpcSecurityGroupMembership = Shapes::StructureShape.new(name: 'VpcSecurityGroupMembership')
@@ -866,6 +882,15 @@ module Aws::Redshift
866
882
  CreateTagsMessage.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, required: true, location_name: "Tags"))
867
883
  CreateTagsMessage.struct_class = Types::CreateTagsMessage
868
884
 
885
+ CreateUsageLimitMessage.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ClusterIdentifier"))
886
+ CreateUsageLimitMessage.add_member(:feature_type, Shapes::ShapeRef.new(shape: UsageLimitFeatureType, required: true, location_name: "FeatureType"))
887
+ CreateUsageLimitMessage.add_member(:limit_type, Shapes::ShapeRef.new(shape: UsageLimitLimitType, required: true, location_name: "LimitType"))
888
+ CreateUsageLimitMessage.add_member(:amount, Shapes::ShapeRef.new(shape: Long, required: true, location_name: "Amount"))
889
+ CreateUsageLimitMessage.add_member(:period, Shapes::ShapeRef.new(shape: UsageLimitPeriod, location_name: "Period"))
890
+ CreateUsageLimitMessage.add_member(:breach_action, Shapes::ShapeRef.new(shape: UsageLimitBreachAction, location_name: "BreachAction"))
891
+ CreateUsageLimitMessage.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
892
+ CreateUsageLimitMessage.struct_class = Types::CreateUsageLimitMessage
893
+
869
894
  CustomerStorageMessage.add_member(:total_backup_size_in_mega_bytes, Shapes::ShapeRef.new(shape: Double, location_name: "TotalBackupSizeInMegaBytes"))
870
895
  CustomerStorageMessage.add_member(:total_provisioned_storage_in_mega_bytes, Shapes::ShapeRef.new(shape: Double, location_name: "TotalProvisionedStorageInMegaBytes"))
871
896
  CustomerStorageMessage.struct_class = Types::CustomerStorageMessage
@@ -941,6 +966,9 @@ module Aws::Redshift
941
966
  DeleteTagsMessage.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location_name: "TagKeys"))
942
967
  DeleteTagsMessage.struct_class = Types::DeleteTagsMessage
943
968
 
969
+ DeleteUsageLimitMessage.add_member(:usage_limit_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "UsageLimitId"))
970
+ DeleteUsageLimitMessage.struct_class = Types::DeleteUsageLimitMessage
971
+
944
972
  DependentServiceRequestThrottlingFault.struct_class = Types::DependentServiceRequestThrottlingFault
945
973
 
946
974
  DependentServiceUnavailableFault.struct_class = Types::DependentServiceUnavailableFault
@@ -1127,6 +1155,15 @@ module Aws::Redshift
1127
1155
  DescribeTagsMessage.add_member(:tag_values, Shapes::ShapeRef.new(shape: TagValueList, location_name: "TagValues"))
1128
1156
  DescribeTagsMessage.struct_class = Types::DescribeTagsMessage
1129
1157
 
1158
+ DescribeUsageLimitsMessage.add_member(:usage_limit_id, Shapes::ShapeRef.new(shape: String, location_name: "UsageLimitId"))
1159
+ DescribeUsageLimitsMessage.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: String, location_name: "ClusterIdentifier"))
1160
+ DescribeUsageLimitsMessage.add_member(:feature_type, Shapes::ShapeRef.new(shape: UsageLimitFeatureType, location_name: "FeatureType"))
1161
+ DescribeUsageLimitsMessage.add_member(:max_records, Shapes::ShapeRef.new(shape: IntegerOptional, location_name: "MaxRecords"))
1162
+ DescribeUsageLimitsMessage.add_member(:marker, Shapes::ShapeRef.new(shape: String, location_name: "Marker"))
1163
+ DescribeUsageLimitsMessage.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, location_name: "TagKeys"))
1164
+ DescribeUsageLimitsMessage.add_member(:tag_values, Shapes::ShapeRef.new(shape: TagValueList, location_name: "TagValues"))
1165
+ DescribeUsageLimitsMessage.struct_class = Types::DescribeUsageLimitsMessage
1166
+
1130
1167
  DisableLoggingMessage.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ClusterIdentifier"))
1131
1168
  DisableLoggingMessage.struct_class = Types::DisableLoggingMessage
1132
1169
 
@@ -1351,6 +1388,8 @@ module Aws::Redshift
1351
1388
 
1352
1389
  InvalidTagFault.struct_class = Types::InvalidTagFault
1353
1390
 
1391
+ InvalidUsageLimitFault.struct_class = Types::InvalidUsageLimitFault
1392
+
1354
1393
  InvalidVPCNetworkStateFault.struct_class = Types::InvalidVPCNetworkStateFault
1355
1394
 
1356
1395
  LimitExceededFault.struct_class = Types::LimitExceededFault
@@ -1480,6 +1519,11 @@ module Aws::Redshift
1480
1519
  ModifySnapshotScheduleMessage.add_member(:schedule_definitions, Shapes::ShapeRef.new(shape: ScheduleDefinitionList, required: true, location_name: "ScheduleDefinitions"))
1481
1520
  ModifySnapshotScheduleMessage.struct_class = Types::ModifySnapshotScheduleMessage
1482
1521
 
1522
+ ModifyUsageLimitMessage.add_member(:usage_limit_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "UsageLimitId"))
1523
+ ModifyUsageLimitMessage.add_member(:amount, Shapes::ShapeRef.new(shape: LongOptional, location_name: "Amount"))
1524
+ ModifyUsageLimitMessage.add_member(:breach_action, Shapes::ShapeRef.new(shape: UsageLimitBreachAction, location_name: "BreachAction"))
1525
+ ModifyUsageLimitMessage.struct_class = Types::ModifyUsageLimitMessage
1526
+
1483
1527
  NodeConfigurationOption.add_member(:node_type, Shapes::ShapeRef.new(shape: String, location_name: "NodeType"))
1484
1528
  NodeConfigurationOption.add_member(:number_of_nodes, Shapes::ShapeRef.new(shape: Integer, location_name: "NumberOfNodes"))
1485
1529
  NodeConfigurationOption.add_member(:estimated_disk_utilization_percent, Shapes::ShapeRef.new(shape: DoubleOptional, location_name: "EstimatedDiskUtilizationPercent"))
@@ -1999,6 +2043,26 @@ module Aws::Redshift
1999
2043
  UpdateTarget.add_member(:supported_operations, Shapes::ShapeRef.new(shape: SupportedOperationList, location_name: "SupportedOperations"))
2000
2044
  UpdateTarget.struct_class = Types::UpdateTarget
2001
2045
 
2046
+ UsageLimit.add_member(:usage_limit_id, Shapes::ShapeRef.new(shape: String, location_name: "UsageLimitId"))
2047
+ UsageLimit.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: String, location_name: "ClusterIdentifier"))
2048
+ UsageLimit.add_member(:feature_type, Shapes::ShapeRef.new(shape: UsageLimitFeatureType, location_name: "FeatureType"))
2049
+ UsageLimit.add_member(:limit_type, Shapes::ShapeRef.new(shape: UsageLimitLimitType, location_name: "LimitType"))
2050
+ UsageLimit.add_member(:amount, Shapes::ShapeRef.new(shape: Long, location_name: "Amount"))
2051
+ UsageLimit.add_member(:period, Shapes::ShapeRef.new(shape: UsageLimitPeriod, location_name: "Period"))
2052
+ UsageLimit.add_member(:breach_action, Shapes::ShapeRef.new(shape: UsageLimitBreachAction, location_name: "BreachAction"))
2053
+ UsageLimit.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
2054
+ UsageLimit.struct_class = Types::UsageLimit
2055
+
2056
+ UsageLimitAlreadyExistsFault.struct_class = Types::UsageLimitAlreadyExistsFault
2057
+
2058
+ UsageLimitList.add_member(:usage_limits, Shapes::ShapeRef.new(shape: UsageLimits, location_name: "UsageLimits"))
2059
+ UsageLimitList.add_member(:marker, Shapes::ShapeRef.new(shape: String, location_name: "Marker"))
2060
+ UsageLimitList.struct_class = Types::UsageLimitList
2061
+
2062
+ UsageLimitNotFoundFault.struct_class = Types::UsageLimitNotFoundFault
2063
+
2064
+ UsageLimits.member = Shapes::ShapeRef.new(shape: UsageLimit)
2065
+
2002
2066
  ValueStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")
2003
2067
 
2004
2068
  VpcSecurityGroupIdList.member = Shapes::ShapeRef.new(shape: String, location_name: "VpcSecurityGroupId")
@@ -2291,6 +2355,21 @@ module Aws::Redshift
2291
2355
  o.errors << Shapes::ShapeRef.new(shape: InvalidTagFault)
2292
2356
  end)
2293
2357
 
2358
+ api.add_operation(:create_usage_limit, Seahorse::Model::Operation.new.tap do |o|
2359
+ o.name = "CreateUsageLimit"
2360
+ o.http_method = "POST"
2361
+ o.http_request_uri = "/"
2362
+ o.input = Shapes::ShapeRef.new(shape: CreateUsageLimitMessage)
2363
+ o.output = Shapes::ShapeRef.new(shape: UsageLimit)
2364
+ o.errors << Shapes::ShapeRef.new(shape: ClusterNotFoundFault)
2365
+ o.errors << Shapes::ShapeRef.new(shape: InvalidClusterStateFault)
2366
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededFault)
2367
+ o.errors << Shapes::ShapeRef.new(shape: UsageLimitAlreadyExistsFault)
2368
+ o.errors << Shapes::ShapeRef.new(shape: InvalidUsageLimitFault)
2369
+ o.errors << Shapes::ShapeRef.new(shape: TagLimitExceededFault)
2370
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationFault)
2371
+ end)
2372
+
2294
2373
  api.add_operation(:delete_cluster, Seahorse::Model::Operation.new.tap do |o|
2295
2374
  o.name = "DeleteCluster"
2296
2375
  o.http_method = "POST"
@@ -2415,6 +2494,16 @@ module Aws::Redshift
2415
2494
  o.errors << Shapes::ShapeRef.new(shape: InvalidTagFault)
2416
2495
  end)
2417
2496
 
2497
+ api.add_operation(:delete_usage_limit, Seahorse::Model::Operation.new.tap do |o|
2498
+ o.name = "DeleteUsageLimit"
2499
+ o.http_method = "POST"
2500
+ o.http_request_uri = "/"
2501
+ o.input = Shapes::ShapeRef.new(shape: DeleteUsageLimitMessage)
2502
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
2503
+ o.errors << Shapes::ShapeRef.new(shape: UsageLimitNotFoundFault)
2504
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationFault)
2505
+ end)
2506
+
2418
2507
  api.add_operation(:describe_account_attributes, Seahorse::Model::Operation.new.tap do |o|
2419
2508
  o.name = "DescribeAccountAttributes"
2420
2509
  o.http_method = "POST"
@@ -2783,6 +2872,22 @@ module Aws::Redshift
2783
2872
  o.errors << Shapes::ShapeRef.new(shape: InvalidTagFault)
2784
2873
  end)
2785
2874
 
2875
+ api.add_operation(:describe_usage_limits, Seahorse::Model::Operation.new.tap do |o|
2876
+ o.name = "DescribeUsageLimits"
2877
+ o.http_method = "POST"
2878
+ o.http_request_uri = "/"
2879
+ o.input = Shapes::ShapeRef.new(shape: DescribeUsageLimitsMessage)
2880
+ o.output = Shapes::ShapeRef.new(shape: UsageLimitList)
2881
+ o.errors << Shapes::ShapeRef.new(shape: ClusterNotFoundFault)
2882
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationFault)
2883
+ o[:pager] = Aws::Pager.new(
2884
+ limit_key: "max_records",
2885
+ tokens: {
2886
+ "marker" => "marker"
2887
+ }
2888
+ )
2889
+ end)
2890
+
2786
2891
  api.add_operation(:disable_logging, Seahorse::Model::Operation.new.tap do |o|
2787
2892
  o.name = "DisableLogging"
2788
2893
  o.http_method = "POST"
@@ -3019,6 +3124,17 @@ module Aws::Redshift
3019
3124
  o.errors << Shapes::ShapeRef.new(shape: SnapshotScheduleUpdateInProgressFault)
3020
3125
  end)
3021
3126
 
3127
+ api.add_operation(:modify_usage_limit, Seahorse::Model::Operation.new.tap do |o|
3128
+ o.name = "ModifyUsageLimit"
3129
+ o.http_method = "POST"
3130
+ o.http_request_uri = "/"
3131
+ o.input = Shapes::ShapeRef.new(shape: ModifyUsageLimitMessage)
3132
+ o.output = Shapes::ShapeRef.new(shape: UsageLimit)
3133
+ o.errors << Shapes::ShapeRef.new(shape: InvalidUsageLimitFault)
3134
+ o.errors << Shapes::ShapeRef.new(shape: UsageLimitNotFoundFault)
3135
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationFault)
3136
+ end)
3137
+
3022
3138
  api.add_operation(:pause_cluster, Seahorse::Model::Operation.new.tap do |o|
3023
3139
  o.name = "PauseCluster"
3024
3140
  o.http_method = "POST"