aws-sdk-redshift 1.38.0 → 1.43.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -119,6 +119,7 @@ module Aws::Redshift
119
119
  CreateSnapshotCopyGrantResult = Shapes::StructureShape.new(name: 'CreateSnapshotCopyGrantResult')
120
120
  CreateSnapshotScheduleMessage = Shapes::StructureShape.new(name: 'CreateSnapshotScheduleMessage')
121
121
  CreateTagsMessage = Shapes::StructureShape.new(name: 'CreateTagsMessage')
122
+ CreateUsageLimitMessage = Shapes::StructureShape.new(name: 'CreateUsageLimitMessage')
122
123
  CustomerStorageMessage = Shapes::StructureShape.new(name: 'CustomerStorageMessage')
123
124
  DataTransferProgress = Shapes::StructureShape.new(name: 'DataTransferProgress')
124
125
  DbGroupList = Shapes::ListShape.new(name: 'DbGroupList')
@@ -140,6 +141,7 @@ module Aws::Redshift
140
141
  DeleteSnapshotCopyGrantMessage = Shapes::StructureShape.new(name: 'DeleteSnapshotCopyGrantMessage')
141
142
  DeleteSnapshotScheduleMessage = Shapes::StructureShape.new(name: 'DeleteSnapshotScheduleMessage')
142
143
  DeleteTagsMessage = Shapes::StructureShape.new(name: 'DeleteTagsMessage')
144
+ DeleteUsageLimitMessage = Shapes::StructureShape.new(name: 'DeleteUsageLimitMessage')
143
145
  DependentServiceRequestThrottlingFault = Shapes::StructureShape.new(name: 'DependentServiceRequestThrottlingFault')
144
146
  DependentServiceUnavailableFault = Shapes::StructureShape.new(name: 'DependentServiceUnavailableFault')
145
147
  DescribeAccountAttributesMessage = Shapes::StructureShape.new(name: 'DescribeAccountAttributesMessage')
@@ -171,6 +173,7 @@ module Aws::Redshift
171
173
  DescribeSnapshotSchedulesOutputMessage = Shapes::StructureShape.new(name: 'DescribeSnapshotSchedulesOutputMessage')
172
174
  DescribeTableRestoreStatusMessage = Shapes::StructureShape.new(name: 'DescribeTableRestoreStatusMessage')
173
175
  DescribeTagsMessage = Shapes::StructureShape.new(name: 'DescribeTagsMessage')
176
+ DescribeUsageLimitsMessage = Shapes::StructureShape.new(name: 'DescribeUsageLimitsMessage')
174
177
  DisableLoggingMessage = Shapes::StructureShape.new(name: 'DisableLoggingMessage')
175
178
  DisableSnapshotCopyMessage = Shapes::StructureShape.new(name: 'DisableSnapshotCopyMessage')
176
179
  DisableSnapshotCopyResult = Shapes::StructureShape.new(name: 'DisableSnapshotCopyResult')
@@ -248,6 +251,7 @@ module Aws::Redshift
248
251
  InvalidSubscriptionStateFault = Shapes::StructureShape.new(name: 'InvalidSubscriptionStateFault')
249
252
  InvalidTableRestoreArgumentFault = Shapes::StructureShape.new(name: 'InvalidTableRestoreArgumentFault')
250
253
  InvalidTagFault = Shapes::StructureShape.new(name: 'InvalidTagFault')
254
+ InvalidUsageLimitFault = Shapes::StructureShape.new(name: 'InvalidUsageLimitFault')
251
255
  InvalidVPCNetworkStateFault = Shapes::StructureShape.new(name: 'InvalidVPCNetworkStateFault')
252
256
  LimitExceededFault = Shapes::StructureShape.new(name: 'LimitExceededFault')
253
257
  LoggingStatus = Shapes::StructureShape.new(name: 'LoggingStatus')
@@ -275,6 +279,7 @@ module Aws::Redshift
275
279
  ModifySnapshotCopyRetentionPeriodMessage = Shapes::StructureShape.new(name: 'ModifySnapshotCopyRetentionPeriodMessage')
276
280
  ModifySnapshotCopyRetentionPeriodResult = Shapes::StructureShape.new(name: 'ModifySnapshotCopyRetentionPeriodResult')
277
281
  ModifySnapshotScheduleMessage = Shapes::StructureShape.new(name: 'ModifySnapshotScheduleMessage')
282
+ ModifyUsageLimitMessage = Shapes::StructureShape.new(name: 'ModifyUsageLimitMessage')
278
283
  NodeConfigurationOption = Shapes::StructureShape.new(name: 'NodeConfigurationOption')
279
284
  NodeConfigurationOptionList = Shapes::ListShape.new(name: 'NodeConfigurationOptionList')
280
285
  NodeConfigurationOptionsFilter = Shapes::StructureShape.new(name: 'NodeConfigurationOptionsFilter')
@@ -291,6 +296,8 @@ module Aws::Redshift
291
296
  ParameterApplyType = Shapes::StringShape.new(name: 'ParameterApplyType')
292
297
  ParameterGroupList = Shapes::ListShape.new(name: 'ParameterGroupList')
293
298
  ParametersList = Shapes::ListShape.new(name: 'ParametersList')
299
+ PauseClusterMessage = Shapes::StructureShape.new(name: 'PauseClusterMessage')
300
+ PauseClusterResult = Shapes::StructureShape.new(name: 'PauseClusterResult')
294
301
  PendingActionsList = Shapes::ListShape.new(name: 'PendingActionsList')
295
302
  PendingModifiedValues = Shapes::StructureShape.new(name: 'PendingModifiedValues')
296
303
  PurchaseReservedNodeOfferingMessage = Shapes::StructureShape.new(name: 'PurchaseReservedNodeOfferingMessage')
@@ -324,6 +331,8 @@ module Aws::Redshift
324
331
  RestoreStatus = Shapes::StructureShape.new(name: 'RestoreStatus')
325
332
  RestoreTableFromClusterSnapshotMessage = Shapes::StructureShape.new(name: 'RestoreTableFromClusterSnapshotMessage')
326
333
  RestoreTableFromClusterSnapshotResult = Shapes::StructureShape.new(name: 'RestoreTableFromClusterSnapshotResult')
334
+ ResumeClusterMessage = Shapes::StructureShape.new(name: 'ResumeClusterMessage')
335
+ ResumeClusterResult = Shapes::StructureShape.new(name: 'ResumeClusterResult')
327
336
  RevisionTarget = Shapes::StructureShape.new(name: 'RevisionTarget')
328
337
  RevisionTargetsList = Shapes::ListShape.new(name: 'RevisionTargetsList')
329
338
  RevokeClusterSecurityGroupIngressMessage = Shapes::StructureShape.new(name: 'RevokeClusterSecurityGroupIngressMessage')
@@ -417,6 +426,15 @@ module Aws::Redshift
417
426
  UnsupportedOperationFault = Shapes::StructureShape.new(name: 'UnsupportedOperationFault')
418
427
  UnsupportedOptionFault = Shapes::StructureShape.new(name: 'UnsupportedOptionFault')
419
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')
420
438
  ValueStringList = Shapes::ListShape.new(name: 'ValueStringList')
421
439
  VpcSecurityGroupIdList = Shapes::ListShape.new(name: 'VpcSecurityGroupIdList')
422
440
  VpcSecurityGroupMembership = Shapes::StructureShape.new(name: 'VpcSecurityGroupMembership')
@@ -862,6 +880,15 @@ module Aws::Redshift
862
880
  CreateTagsMessage.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, required: true, location_name: "Tags"))
863
881
  CreateTagsMessage.struct_class = Types::CreateTagsMessage
864
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
+
865
892
  CustomerStorageMessage.add_member(:total_backup_size_in_mega_bytes, Shapes::ShapeRef.new(shape: Double, location_name: "TotalBackupSizeInMegaBytes"))
866
893
  CustomerStorageMessage.add_member(:total_provisioned_storage_in_mega_bytes, Shapes::ShapeRef.new(shape: Double, location_name: "TotalProvisionedStorageInMegaBytes"))
867
894
  CustomerStorageMessage.struct_class = Types::CustomerStorageMessage
@@ -937,6 +964,9 @@ module Aws::Redshift
937
964
  DeleteTagsMessage.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location_name: "TagKeys"))
938
965
  DeleteTagsMessage.struct_class = Types::DeleteTagsMessage
939
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
+
940
970
  DependentServiceRequestThrottlingFault.struct_class = Types::DependentServiceRequestThrottlingFault
941
971
 
942
972
  DependentServiceUnavailableFault.struct_class = Types::DependentServiceUnavailableFault
@@ -1123,6 +1153,15 @@ module Aws::Redshift
1123
1153
  DescribeTagsMessage.add_member(:tag_values, Shapes::ShapeRef.new(shape: TagValueList, location_name: "TagValues"))
1124
1154
  DescribeTagsMessage.struct_class = Types::DescribeTagsMessage
1125
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
+
1126
1165
  DisableLoggingMessage.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ClusterIdentifier"))
1127
1166
  DisableLoggingMessage.struct_class = Types::DisableLoggingMessage
1128
1167
 
@@ -1347,6 +1386,8 @@ module Aws::Redshift
1347
1386
 
1348
1387
  InvalidTagFault.struct_class = Types::InvalidTagFault
1349
1388
 
1389
+ InvalidUsageLimitFault.struct_class = Types::InvalidUsageLimitFault
1390
+
1350
1391
  InvalidVPCNetworkStateFault.struct_class = Types::InvalidVPCNetworkStateFault
1351
1392
 
1352
1393
  LimitExceededFault.struct_class = Types::LimitExceededFault
@@ -1476,6 +1517,11 @@ module Aws::Redshift
1476
1517
  ModifySnapshotScheduleMessage.add_member(:schedule_definitions, Shapes::ShapeRef.new(shape: ScheduleDefinitionList, required: true, location_name: "ScheduleDefinitions"))
1477
1518
  ModifySnapshotScheduleMessage.struct_class = Types::ModifySnapshotScheduleMessage
1478
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
+
1479
1525
  NodeConfigurationOption.add_member(:node_type, Shapes::ShapeRef.new(shape: String, location_name: "NodeType"))
1480
1526
  NodeConfigurationOption.add_member(:number_of_nodes, Shapes::ShapeRef.new(shape: Integer, location_name: "NumberOfNodes"))
1481
1527
  NodeConfigurationOption.add_member(:estimated_disk_utilization_percent, Shapes::ShapeRef.new(shape: DoubleOptional, location_name: "EstimatedDiskUtilizationPercent"))
@@ -1526,6 +1572,12 @@ module Aws::Redshift
1526
1572
 
1527
1573
  ParametersList.member = Shapes::ShapeRef.new(shape: Parameter, location_name: "Parameter")
1528
1574
 
1575
+ PauseClusterMessage.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ClusterIdentifier"))
1576
+ PauseClusterMessage.struct_class = Types::PauseClusterMessage
1577
+
1578
+ PauseClusterResult.add_member(:cluster, Shapes::ShapeRef.new(shape: Cluster, location_name: "Cluster"))
1579
+ PauseClusterResult.struct_class = Types::PauseClusterResult
1580
+
1529
1581
  PendingActionsList.member = Shapes::ShapeRef.new(shape: String)
1530
1582
 
1531
1583
  PendingModifiedValues.add_member(:master_user_password, Shapes::ShapeRef.new(shape: String, location_name: "MasterUserPassword"))
@@ -1703,6 +1755,12 @@ module Aws::Redshift
1703
1755
  RestoreTableFromClusterSnapshotResult.add_member(:table_restore_status, Shapes::ShapeRef.new(shape: TableRestoreStatus, location_name: "TableRestoreStatus"))
1704
1756
  RestoreTableFromClusterSnapshotResult.struct_class = Types::RestoreTableFromClusterSnapshotResult
1705
1757
 
1758
+ ResumeClusterMessage.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ClusterIdentifier"))
1759
+ ResumeClusterMessage.struct_class = Types::ResumeClusterMessage
1760
+
1761
+ ResumeClusterResult.add_member(:cluster, Shapes::ShapeRef.new(shape: Cluster, location_name: "Cluster"))
1762
+ ResumeClusterResult.struct_class = Types::ResumeClusterResult
1763
+
1706
1764
  RevisionTarget.add_member(:database_revision, Shapes::ShapeRef.new(shape: String, location_name: "DatabaseRevision"))
1707
1765
  RevisionTarget.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "Description"))
1708
1766
  RevisionTarget.add_member(:database_revision_release_date, Shapes::ShapeRef.new(shape: TStamp, location_name: "DatabaseRevisionReleaseDate"))
@@ -1771,6 +1829,8 @@ module Aws::Redshift
1771
1829
  ScheduledActionTimeList.member = Shapes::ShapeRef.new(shape: TStamp, location_name: "ScheduledActionTime")
1772
1830
 
1773
1831
  ScheduledActionType.add_member(:resize_cluster, Shapes::ShapeRef.new(shape: ResizeClusterMessage, location_name: "ResizeCluster"))
1832
+ ScheduledActionType.add_member(:pause_cluster, Shapes::ShapeRef.new(shape: PauseClusterMessage, location_name: "PauseCluster"))
1833
+ ScheduledActionType.add_member(:resume_cluster, Shapes::ShapeRef.new(shape: ResumeClusterMessage, location_name: "ResumeCluster"))
1774
1834
  ScheduledActionType.struct_class = Types::ScheduledActionType
1775
1835
 
1776
1836
  ScheduledActionTypeUnsupportedFault.struct_class = Types::ScheduledActionTypeUnsupportedFault
@@ -1981,6 +2041,26 @@ module Aws::Redshift
1981
2041
  UpdateTarget.add_member(:supported_operations, Shapes::ShapeRef.new(shape: SupportedOperationList, location_name: "SupportedOperations"))
1982
2042
  UpdateTarget.struct_class = Types::UpdateTarget
1983
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
+
1984
2064
  ValueStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "item")
1985
2065
 
1986
2066
  VpcSecurityGroupIdList.member = Shapes::ShapeRef.new(shape: String, location_name: "VpcSecurityGroupId")
@@ -2273,6 +2353,21 @@ module Aws::Redshift
2273
2353
  o.errors << Shapes::ShapeRef.new(shape: InvalidTagFault)
2274
2354
  end)
2275
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
+
2276
2371
  api.add_operation(:delete_cluster, Seahorse::Model::Operation.new.tap do |o|
2277
2372
  o.name = "DeleteCluster"
2278
2373
  o.http_method = "POST"
@@ -2397,6 +2492,16 @@ module Aws::Redshift
2397
2492
  o.errors << Shapes::ShapeRef.new(shape: InvalidTagFault)
2398
2493
  end)
2399
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
+
2400
2505
  api.add_operation(:describe_account_attributes, Seahorse::Model::Operation.new.tap do |o|
2401
2506
  o.name = "DescribeAccountAttributes"
2402
2507
  o.http_method = "POST"
@@ -2765,6 +2870,22 @@ module Aws::Redshift
2765
2870
  o.errors << Shapes::ShapeRef.new(shape: InvalidTagFault)
2766
2871
  end)
2767
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
+
2768
2889
  api.add_operation(:disable_logging, Seahorse::Model::Operation.new.tap do |o|
2769
2890
  o.name = "DisableLogging"
2770
2891
  o.http_method = "POST"
@@ -2797,6 +2918,7 @@ module Aws::Redshift
2797
2918
  o.errors << Shapes::ShapeRef.new(shape: InsufficientS3BucketPolicyFault)
2798
2919
  o.errors << Shapes::ShapeRef.new(shape: InvalidS3KeyPrefixFault)
2799
2920
  o.errors << Shapes::ShapeRef.new(shape: InvalidS3BucketNameFault)
2921
+ o.errors << Shapes::ShapeRef.new(shape: InvalidClusterStateFault)
2800
2922
  end)
2801
2923
 
2802
2924
  api.add_operation(:enable_snapshot_copy, Seahorse::Model::Operation.new.tap do |o|
@@ -2897,6 +3019,7 @@ module Aws::Redshift
2897
3019
  o.input = Shapes::ShapeRef.new(shape: ModifyClusterMaintenanceMessage)
2898
3020
  o.output = Shapes::ShapeRef.new(shape: ModifyClusterMaintenanceResult)
2899
3021
  o.errors << Shapes::ShapeRef.new(shape: ClusterNotFoundFault)
3022
+ o.errors << Shapes::ShapeRef.new(shape: InvalidClusterStateFault)
2900
3023
  end)
2901
3024
 
2902
3025
  api.add_operation(:modify_cluster_parameter_group, Seahorse::Model::Operation.new.tap do |o|
@@ -2999,6 +3122,27 @@ module Aws::Redshift
2999
3122
  o.errors << Shapes::ShapeRef.new(shape: SnapshotScheduleUpdateInProgressFault)
3000
3123
  end)
3001
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
+
3136
+ api.add_operation(:pause_cluster, Seahorse::Model::Operation.new.tap do |o|
3137
+ o.name = "PauseCluster"
3138
+ o.http_method = "POST"
3139
+ o.http_request_uri = "/"
3140
+ o.input = Shapes::ShapeRef.new(shape: PauseClusterMessage)
3141
+ o.output = Shapes::ShapeRef.new(shape: PauseClusterResult)
3142
+ o.errors << Shapes::ShapeRef.new(shape: ClusterNotFoundFault)
3143
+ o.errors << Shapes::ShapeRef.new(shape: InvalidClusterStateFault)
3144
+ end)
3145
+
3002
3146
  api.add_operation(:purchase_reserved_node_offering, Seahorse::Model::Operation.new.tap do |o|
3003
3147
  o.name = "PurchaseReservedNodeOffering"
3004
3148
  o.http_method = "POST"
@@ -3096,6 +3240,16 @@ module Aws::Redshift
3096
3240
  o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationFault)
3097
3241
  end)
3098
3242
 
3243
+ api.add_operation(:resume_cluster, Seahorse::Model::Operation.new.tap do |o|
3244
+ o.name = "ResumeCluster"
3245
+ o.http_method = "POST"
3246
+ o.http_request_uri = "/"
3247
+ o.input = Shapes::ShapeRef.new(shape: ResumeClusterMessage)
3248
+ o.output = Shapes::ShapeRef.new(shape: ResumeClusterResult)
3249
+ o.errors << Shapes::ShapeRef.new(shape: ClusterNotFoundFault)
3250
+ o.errors << Shapes::ShapeRef.new(shape: InvalidClusterStateFault)
3251
+ end)
3252
+
3099
3253
  api.add_operation(:revoke_cluster_security_group_ingress, Seahorse::Model::Operation.new.tap do |o|
3100
3254
  o.name = "RevokeClusterSecurityGroupIngress"
3101
3255
  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 ({})
@@ -425,6 +425,8 @@ module Aws::Redshift
425
425
  #
426
426
  # * `modifying`
427
427
  #
428
+ # * `paused`
429
+ #
428
430
  # * `rebooting`
429
431
  #
430
432
  # * `renaming`
@@ -1640,7 +1642,8 @@ module Aws::Redshift
1640
1642
  # Redshift Cluster Management Guide*.
1641
1643
  #
1642
1644
  # Valid Values: `ds2.xlarge` \| `ds2.8xlarge` \| `dc1.large` \|
1643
- # `dc1.8xlarge` \| `dc2.large` \| `dc2.8xlarge` \| `ra3.16xlarge`
1645
+ # `dc1.8xlarge` \| `dc2.large` \| `dc2.8xlarge` \| `ra3.4xlarge` \|
1646
+ # `ra3.16xlarge`
1644
1647
  #
1645
1648
  #
1646
1649
  #
@@ -2486,6 +2489,12 @@ module Aws::Redshift
2486
2489
  # number_of_nodes: 1,
2487
2490
  # classic: false,
2488
2491
  # },
2492
+ # pause_cluster: {
2493
+ # cluster_identifier: "String", # required
2494
+ # },
2495
+ # resume_cluster: {
2496
+ # cluster_identifier: "String", # required
2497
+ # },
2489
2498
  # },
2490
2499
  # schedule: "String", # required
2491
2500
  # iam_role: "String", # required
@@ -2719,6 +2728,73 @@ module Aws::Redshift
2719
2728
  include Aws::Structure
2720
2729
  end
2721
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
+
2722
2798
  # @!attribute [rw] total_backup_size_in_mega_bytes
2723
2799
  # The total amount of storage currently used for snapshots.
2724
2800
  # @return [Float]
@@ -3157,6 +3233,24 @@ module Aws::Redshift
3157
3233
  include Aws::Structure
3158
3234
  end
3159
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
+
3160
3254
  # The request cannot be completed because a dependent service is
3161
3255
  # throttling requests made by Amazon Redshift on your behalf. Wait and
3162
3256
  # retry the request.
@@ -4524,7 +4618,7 @@ module Aws::Redshift
4524
4618
  #
4525
4619
  # {
4526
4620
  # scheduled_action_name: "String",
4527
- # target_action_type: "ResizeCluster", # accepts ResizeCluster
4621
+ # target_action_type: "ResizeCluster", # accepts ResizeCluster, PauseCluster, ResumeCluster
4528
4622
  # start_time: Time.now,
4529
4623
  # end_time: Time.now,
4530
4624
  # active: false,
@@ -4899,6 +4993,86 @@ module Aws::Redshift
4899
4993
  include Aws::Structure
4900
4994
  end
4901
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
+
4902
5076
  # @note When making an API call, you may pass DisableLoggingMessage
4903
5077
  # data as a hash:
4904
5078
  #
@@ -5983,6 +6157,12 @@ module Aws::Redshift
5983
6157
  #
5984
6158
  class InvalidTagFault < Aws::EmptyStructure; end
5985
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
+
5986
6166
  # The cluster subnet group does not cover all Availability Zones.
5987
6167
  #
5988
6168
  # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/InvalidVPCNetworkStateFault AWS API Documentation
@@ -6268,7 +6448,8 @@ module Aws::Redshift
6268
6448
  # Management Guide*.
6269
6449
  #
6270
6450
  # Valid Values: `ds2.xlarge` \| `ds2.8xlarge` \| `dc1.large` \|
6271
- # `dc1.8xlarge` \| `dc2.large` \| `dc2.8xlarge` \| `ra3.16xlarge`
6451
+ # `dc1.8xlarge` \| `dc2.large` \| `dc2.8xlarge` \| `ra3.4xlarge` \|
6452
+ # `ra3.16xlarge`
6272
6453
  #
6273
6454
  #
6274
6455
  #
@@ -6823,6 +7004,12 @@ module Aws::Redshift
6823
7004
  # number_of_nodes: 1,
6824
7005
  # classic: false,
6825
7006
  # },
7007
+ # pause_cluster: {
7008
+ # cluster_identifier: "String", # required
7009
+ # },
7010
+ # resume_cluster: {
7011
+ # cluster_identifier: "String", # required
7012
+ # },
6826
7013
  # },
6827
7014
  # schedule: "String",
6828
7015
  # iam_role: "String",
@@ -6979,6 +7166,38 @@ module Aws::Redshift
6979
7166
  include Aws::Structure
6980
7167
  end
6981
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
+
6982
7201
  # A list of node configurations.
6983
7202
  #
6984
7203
  # @!attribute [rw] node_type
@@ -7217,6 +7436,35 @@ module Aws::Redshift
7217
7436
  include Aws::Structure
7218
7437
  end
7219
7438
 
7439
+ # @note When making an API call, you may pass PauseClusterMessage
7440
+ # data as a hash:
7441
+ #
7442
+ # {
7443
+ # cluster_identifier: "String", # required
7444
+ # }
7445
+ #
7446
+ # @!attribute [rw] cluster_identifier
7447
+ # The identifier of the cluster to be paused.
7448
+ # @return [String]
7449
+ #
7450
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PauseClusterMessage AWS API Documentation
7451
+ #
7452
+ class PauseClusterMessage < Struct.new(
7453
+ :cluster_identifier)
7454
+ include Aws::Structure
7455
+ end
7456
+
7457
+ # @!attribute [rw] cluster
7458
+ # Describes a cluster.
7459
+ # @return [Types::Cluster]
7460
+ #
7461
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PauseClusterResult AWS API Documentation
7462
+ #
7463
+ class PauseClusterResult < Struct.new(
7464
+ :cluster)
7465
+ include Aws::Structure
7466
+ end
7467
+
7220
7468
  # Describes cluster attributes that are in a pending state. A change to
7221
7469
  # one or more the attributes was requested and is in progress or will be
7222
7470
  # applied.
@@ -8090,7 +8338,7 @@ module Aws::Redshift
8090
8338
  # size. In other words, you can only restore a dc1.large instance type
8091
8339
  # into another dc1.large instance type or dc2.large instance type. You
8092
8340
  # can't restore dc1.8xlarge to dc2.8xlarge. First restore to a
8093
- # 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
8094
8342
  # information about node types, see [ About Clusters and Nodes][1] in
8095
8343
  # the *Amazon Redshift Cluster Management Guide*.
8096
8344
  #
@@ -8318,6 +8566,35 @@ module Aws::Redshift
8318
8566
  include Aws::Structure
8319
8567
  end
8320
8568
 
8569
+ # @note When making an API call, you may pass ResumeClusterMessage
8570
+ # data as a hash:
8571
+ #
8572
+ # {
8573
+ # cluster_identifier: "String", # required
8574
+ # }
8575
+ #
8576
+ # @!attribute [rw] cluster_identifier
8577
+ # The identifier of the cluster to be resumed.
8578
+ # @return [String]
8579
+ #
8580
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResumeClusterMessage AWS API Documentation
8581
+ #
8582
+ class ResumeClusterMessage < Struct.new(
8583
+ :cluster_identifier)
8584
+ include Aws::Structure
8585
+ end
8586
+
8587
+ # @!attribute [rw] cluster
8588
+ # Describes a cluster.
8589
+ # @return [Types::Cluster]
8590
+ #
8591
+ # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResumeClusterResult AWS API Documentation
8592
+ #
8593
+ class ResumeClusterResult < Struct.new(
8594
+ :cluster)
8595
+ include Aws::Structure
8596
+ end
8597
+
8321
8598
  # Describes a `RevisionTarget`.
8322
8599
  #
8323
8600
  # @!attribute [rw] database_revision
@@ -8654,16 +8931,32 @@ module Aws::Redshift
8654
8931
  # number_of_nodes: 1,
8655
8932
  # classic: false,
8656
8933
  # },
8934
+ # pause_cluster: {
8935
+ # cluster_identifier: "String", # required
8936
+ # },
8937
+ # resume_cluster: {
8938
+ # cluster_identifier: "String", # required
8939
+ # },
8657
8940
  # }
8658
8941
  #
8659
8942
  # @!attribute [rw] resize_cluster
8660
8943
  # An action that runs a `ResizeCluster` API operation.
8661
8944
  # @return [Types::ResizeClusterMessage]
8662
8945
  #
8946
+ # @!attribute [rw] pause_cluster
8947
+ # An action that runs a `PauseCluster` API operation.
8948
+ # @return [Types::PauseClusterMessage]
8949
+ #
8950
+ # @!attribute [rw] resume_cluster
8951
+ # An action that runs a `ResumeCluster` API operation.
8952
+ # @return [Types::ResumeClusterMessage]
8953
+ #
8663
8954
  # @see http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ScheduledActionType AWS API Documentation
8664
8955
  #
8665
8956
  class ScheduledActionType < Struct.new(
8666
- :resize_cluster)
8957
+ :resize_cluster,
8958
+ :pause_cluster,
8959
+ :resume_cluster)
8667
8960
  include Aws::Structure
8668
8961
  end
8669
8962
 
@@ -9550,6 +9843,98 @@ module Aws::Redshift
9550
9843
  include Aws::Structure
9551
9844
  end
9552
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
+
9553
9938
  # Describes the members of a VPC security group.
9554
9939
  #
9555
9940
  # @!attribute [rw] vpc_security_group_id