aws-sdk-redshift 1.39.0 → 1.44.1

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