// // Copyright 2010-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"). // You may not use this file except in compliance with the License. // A copy of the License is located at // // http://aws.amazon.com/apache2.0 // // or in the "license" file accompanying this file. This file is distributed // on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either // express or implied. See the License for the specific language governing // permissions and limitations under the License. // #import "AWSCloudWatchModel.h" #import <AWSCore/AWSCategory.h> NSString *const AWSCloudWatchErrorDomain = @"com.amazonaws.AWSCloudWatchErrorDomain"; @implementation AWSCloudWatchAlarmHistoryItem + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"alarmName" : @"AlarmName", @"historyData" : @"HistoryData", @"historyItemType" : @"HistoryItemType", @"historySummary" : @"HistorySummary", @"timestamp" : @"Timestamp", }; } + (NSValueTransformer *)historyItemTypeJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"ConfigurationUpdate"] == NSOrderedSame) { return @(AWSCloudWatchHistoryItemTypeConfigurationUpdate); } if ([value caseInsensitiveCompare:@"StateUpdate"] == NSOrderedSame) { return @(AWSCloudWatchHistoryItemTypeStateUpdate); } if ([value caseInsensitiveCompare:@"Action"] == NSOrderedSame) { return @(AWSCloudWatchHistoryItemTypeAction); } return @(AWSCloudWatchHistoryItemTypeUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchHistoryItemTypeConfigurationUpdate: return @"ConfigurationUpdate"; case AWSCloudWatchHistoryItemTypeStateUpdate: return @"StateUpdate"; case AWSCloudWatchHistoryItemTypeAction: return @"Action"; default: return nil; } }]; } + (NSValueTransformer *)timestampJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSString *str) { return [NSDate aws_dateFromString:str]; } reverseBlock:^id(NSDate *date) { return [date aws_stringValue:AWSDateISO8601DateFormat1]; }]; } @end @implementation AWSCloudWatchDashboardEntry + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"dashboardArn" : @"DashboardArn", @"dashboardName" : @"DashboardName", @"lastModified" : @"LastModified", @"size" : @"Size", }; } + (NSValueTransformer *)lastModifiedJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSString *str) { return [NSDate aws_dateFromString:str]; } reverseBlock:^id(NSDate *date) { return [date aws_stringValue:AWSDateISO8601DateFormat1]; }]; } @end @implementation AWSCloudWatchDashboardValidationMessage + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"dataPath" : @"DataPath", @"message" : @"Message", }; } @end @implementation AWSCloudWatchDatapoint + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"average" : @"Average", @"extendedStatistics" : @"ExtendedStatistics", @"maximum" : @"Maximum", @"minimum" : @"Minimum", @"sampleCount" : @"SampleCount", @"sum" : @"Sum", @"timestamp" : @"Timestamp", @"unit" : @"Unit", }; } + (NSValueTransformer *)timestampJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSString *str) { return [NSDate aws_dateFromString:str]; } reverseBlock:^id(NSDate *date) { return [date aws_stringValue:AWSDateISO8601DateFormat1]; }]; } + (NSValueTransformer *)unitJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"Seconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitSeconds); } if ([value caseInsensitiveCompare:@"Microseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMicroseconds); } if ([value caseInsensitiveCompare:@"Milliseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMilliseconds); } if ([value caseInsensitiveCompare:@"Bytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytes); } if ([value caseInsensitiveCompare:@"Kilobytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytes); } if ([value caseInsensitiveCompare:@"Megabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytes); } if ([value caseInsensitiveCompare:@"Gigabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytes); } if ([value caseInsensitiveCompare:@"Terabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytes); } if ([value caseInsensitiveCompare:@"Bits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBits); } if ([value caseInsensitiveCompare:@"Kilobits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobits); } if ([value caseInsensitiveCompare:@"Megabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabits); } if ([value caseInsensitiveCompare:@"Gigabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabits); } if ([value caseInsensitiveCompare:@"Terabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabits); } if ([value caseInsensitiveCompare:@"Percent"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitPercent); } if ([value caseInsensitiveCompare:@"Count"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCount); } if ([value caseInsensitiveCompare:@"Bytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytesSecond); } if ([value caseInsensitiveCompare:@"Kilobytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytesSecond); } if ([value caseInsensitiveCompare:@"Megabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytesSecond); } if ([value caseInsensitiveCompare:@"Gigabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytesSecond); } if ([value caseInsensitiveCompare:@"Terabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytesSecond); } if ([value caseInsensitiveCompare:@"Bits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBitsSecond); } if ([value caseInsensitiveCompare:@"Kilobits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobitsSecond); } if ([value caseInsensitiveCompare:@"Megabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabitsSecond); } if ([value caseInsensitiveCompare:@"Gigabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabitsSecond); } if ([value caseInsensitiveCompare:@"Terabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabitsSecond); } if ([value caseInsensitiveCompare:@"Count/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCountSecond); } if ([value caseInsensitiveCompare:@"None"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitNone); } return @(AWSCloudWatchStandardUnitUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStandardUnitSeconds: return @"Seconds"; case AWSCloudWatchStandardUnitMicroseconds: return @"Microseconds"; case AWSCloudWatchStandardUnitMilliseconds: return @"Milliseconds"; case AWSCloudWatchStandardUnitBytes: return @"Bytes"; case AWSCloudWatchStandardUnitKilobytes: return @"Kilobytes"; case AWSCloudWatchStandardUnitMegabytes: return @"Megabytes"; case AWSCloudWatchStandardUnitGigabytes: return @"Gigabytes"; case AWSCloudWatchStandardUnitTerabytes: return @"Terabytes"; case AWSCloudWatchStandardUnitBits: return @"Bits"; case AWSCloudWatchStandardUnitKilobits: return @"Kilobits"; case AWSCloudWatchStandardUnitMegabits: return @"Megabits"; case AWSCloudWatchStandardUnitGigabits: return @"Gigabits"; case AWSCloudWatchStandardUnitTerabits: return @"Terabits"; case AWSCloudWatchStandardUnitPercent: return @"Percent"; case AWSCloudWatchStandardUnitCount: return @"Count"; case AWSCloudWatchStandardUnitBytesSecond: return @"Bytes/Second"; case AWSCloudWatchStandardUnitKilobytesSecond: return @"Kilobytes/Second"; case AWSCloudWatchStandardUnitMegabytesSecond: return @"Megabytes/Second"; case AWSCloudWatchStandardUnitGigabytesSecond: return @"Gigabytes/Second"; case AWSCloudWatchStandardUnitTerabytesSecond: return @"Terabytes/Second"; case AWSCloudWatchStandardUnitBitsSecond: return @"Bits/Second"; case AWSCloudWatchStandardUnitKilobitsSecond: return @"Kilobits/Second"; case AWSCloudWatchStandardUnitMegabitsSecond: return @"Megabits/Second"; case AWSCloudWatchStandardUnitGigabitsSecond: return @"Gigabits/Second"; case AWSCloudWatchStandardUnitTerabitsSecond: return @"Terabits/Second"; case AWSCloudWatchStandardUnitCountSecond: return @"Count/Second"; case AWSCloudWatchStandardUnitNone: return @"None"; default: return nil; } }]; } @end @implementation AWSCloudWatchDeleteAlarmsInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"alarmNames" : @"AlarmNames", }; } @end @implementation AWSCloudWatchDeleteDashboardsInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"dashboardNames" : @"DashboardNames", }; } @end @implementation AWSCloudWatchDeleteDashboardsOutput + (BOOL)supportsSecureCoding { return YES; } @end @implementation AWSCloudWatchDescribeAlarmHistoryInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"alarmName" : @"AlarmName", @"endDate" : @"EndDate", @"historyItemType" : @"HistoryItemType", @"maxRecords" : @"MaxRecords", @"nextToken" : @"NextToken", @"startDate" : @"StartDate", }; } + (NSValueTransformer *)endDateJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSString *str) { return [NSDate aws_dateFromString:str]; } reverseBlock:^id(NSDate *date) { return [date aws_stringValue:AWSDateISO8601DateFormat1]; }]; } + (NSValueTransformer *)historyItemTypeJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"ConfigurationUpdate"] == NSOrderedSame) { return @(AWSCloudWatchHistoryItemTypeConfigurationUpdate); } if ([value caseInsensitiveCompare:@"StateUpdate"] == NSOrderedSame) { return @(AWSCloudWatchHistoryItemTypeStateUpdate); } if ([value caseInsensitiveCompare:@"Action"] == NSOrderedSame) { return @(AWSCloudWatchHistoryItemTypeAction); } return @(AWSCloudWatchHistoryItemTypeUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchHistoryItemTypeConfigurationUpdate: return @"ConfigurationUpdate"; case AWSCloudWatchHistoryItemTypeStateUpdate: return @"StateUpdate"; case AWSCloudWatchHistoryItemTypeAction: return @"Action"; default: return nil; } }]; } + (NSValueTransformer *)startDateJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSString *str) { return [NSDate aws_dateFromString:str]; } reverseBlock:^id(NSDate *date) { return [date aws_stringValue:AWSDateISO8601DateFormat1]; }]; } @end @implementation AWSCloudWatchDescribeAlarmHistoryOutput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"alarmHistoryItems" : @"AlarmHistoryItems", @"nextToken" : @"NextToken", }; } + (NSValueTransformer *)alarmHistoryItemsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchAlarmHistoryItem class]]; } @end @implementation AWSCloudWatchDescribeAlarmsForMetricInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"dimensions" : @"Dimensions", @"extendedStatistic" : @"ExtendedStatistic", @"metricName" : @"MetricName", @"namespace" : @"Namespace", @"period" : @"Period", @"statistic" : @"Statistic", @"unit" : @"Unit", }; } + (NSValueTransformer *)dimensionsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchDimension class]]; } + (NSValueTransformer *)statisticJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"SampleCount"] == NSOrderedSame) { return @(AWSCloudWatchStatisticSampleCount); } if ([value caseInsensitiveCompare:@"Average"] == NSOrderedSame) { return @(AWSCloudWatchStatisticAverage); } if ([value caseInsensitiveCompare:@"Sum"] == NSOrderedSame) { return @(AWSCloudWatchStatisticSum); } if ([value caseInsensitiveCompare:@"Minimum"] == NSOrderedSame) { return @(AWSCloudWatchStatisticMinimum); } if ([value caseInsensitiveCompare:@"Maximum"] == NSOrderedSame) { return @(AWSCloudWatchStatisticMaximum); } return @(AWSCloudWatchStatisticUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStatisticSampleCount: return @"SampleCount"; case AWSCloudWatchStatisticAverage: return @"Average"; case AWSCloudWatchStatisticSum: return @"Sum"; case AWSCloudWatchStatisticMinimum: return @"Minimum"; case AWSCloudWatchStatisticMaximum: return @"Maximum"; default: return nil; } }]; } + (NSValueTransformer *)unitJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"Seconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitSeconds); } if ([value caseInsensitiveCompare:@"Microseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMicroseconds); } if ([value caseInsensitiveCompare:@"Milliseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMilliseconds); } if ([value caseInsensitiveCompare:@"Bytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytes); } if ([value caseInsensitiveCompare:@"Kilobytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytes); } if ([value caseInsensitiveCompare:@"Megabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytes); } if ([value caseInsensitiveCompare:@"Gigabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytes); } if ([value caseInsensitiveCompare:@"Terabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytes); } if ([value caseInsensitiveCompare:@"Bits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBits); } if ([value caseInsensitiveCompare:@"Kilobits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobits); } if ([value caseInsensitiveCompare:@"Megabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabits); } if ([value caseInsensitiveCompare:@"Gigabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabits); } if ([value caseInsensitiveCompare:@"Terabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabits); } if ([value caseInsensitiveCompare:@"Percent"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitPercent); } if ([value caseInsensitiveCompare:@"Count"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCount); } if ([value caseInsensitiveCompare:@"Bytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytesSecond); } if ([value caseInsensitiveCompare:@"Kilobytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytesSecond); } if ([value caseInsensitiveCompare:@"Megabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytesSecond); } if ([value caseInsensitiveCompare:@"Gigabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytesSecond); } if ([value caseInsensitiveCompare:@"Terabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytesSecond); } if ([value caseInsensitiveCompare:@"Bits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBitsSecond); } if ([value caseInsensitiveCompare:@"Kilobits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobitsSecond); } if ([value caseInsensitiveCompare:@"Megabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabitsSecond); } if ([value caseInsensitiveCompare:@"Gigabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabitsSecond); } if ([value caseInsensitiveCompare:@"Terabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabitsSecond); } if ([value caseInsensitiveCompare:@"Count/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCountSecond); } if ([value caseInsensitiveCompare:@"None"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitNone); } return @(AWSCloudWatchStandardUnitUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStandardUnitSeconds: return @"Seconds"; case AWSCloudWatchStandardUnitMicroseconds: return @"Microseconds"; case AWSCloudWatchStandardUnitMilliseconds: return @"Milliseconds"; case AWSCloudWatchStandardUnitBytes: return @"Bytes"; case AWSCloudWatchStandardUnitKilobytes: return @"Kilobytes"; case AWSCloudWatchStandardUnitMegabytes: return @"Megabytes"; case AWSCloudWatchStandardUnitGigabytes: return @"Gigabytes"; case AWSCloudWatchStandardUnitTerabytes: return @"Terabytes"; case AWSCloudWatchStandardUnitBits: return @"Bits"; case AWSCloudWatchStandardUnitKilobits: return @"Kilobits"; case AWSCloudWatchStandardUnitMegabits: return @"Megabits"; case AWSCloudWatchStandardUnitGigabits: return @"Gigabits"; case AWSCloudWatchStandardUnitTerabits: return @"Terabits"; case AWSCloudWatchStandardUnitPercent: return @"Percent"; case AWSCloudWatchStandardUnitCount: return @"Count"; case AWSCloudWatchStandardUnitBytesSecond: return @"Bytes/Second"; case AWSCloudWatchStandardUnitKilobytesSecond: return @"Kilobytes/Second"; case AWSCloudWatchStandardUnitMegabytesSecond: return @"Megabytes/Second"; case AWSCloudWatchStandardUnitGigabytesSecond: return @"Gigabytes/Second"; case AWSCloudWatchStandardUnitTerabytesSecond: return @"Terabytes/Second"; case AWSCloudWatchStandardUnitBitsSecond: return @"Bits/Second"; case AWSCloudWatchStandardUnitKilobitsSecond: return @"Kilobits/Second"; case AWSCloudWatchStandardUnitMegabitsSecond: return @"Megabits/Second"; case AWSCloudWatchStandardUnitGigabitsSecond: return @"Gigabits/Second"; case AWSCloudWatchStandardUnitTerabitsSecond: return @"Terabits/Second"; case AWSCloudWatchStandardUnitCountSecond: return @"Count/Second"; case AWSCloudWatchStandardUnitNone: return @"None"; default: return nil; } }]; } @end @implementation AWSCloudWatchDescribeAlarmsForMetricOutput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"metricAlarms" : @"MetricAlarms", }; } + (NSValueTransformer *)metricAlarmsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchMetricAlarm class]]; } @end @implementation AWSCloudWatchDescribeAlarmsInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"actionPrefix" : @"ActionPrefix", @"alarmNamePrefix" : @"AlarmNamePrefix", @"alarmNames" : @"AlarmNames", @"maxRecords" : @"MaxRecords", @"nextToken" : @"NextToken", @"stateValue" : @"StateValue", }; } + (NSValueTransformer *)stateValueJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"OK"] == NSOrderedSame) { return @(AWSCloudWatchStateValueOK); } if ([value caseInsensitiveCompare:@"ALARM"] == NSOrderedSame) { return @(AWSCloudWatchStateValueAlarm); } if ([value caseInsensitiveCompare:@"INSUFFICIENT_DATA"] == NSOrderedSame) { return @(AWSCloudWatchStateValueInsufficientData); } return @(AWSCloudWatchStateValueUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStateValueOK: return @"OK"; case AWSCloudWatchStateValueAlarm: return @"ALARM"; case AWSCloudWatchStateValueInsufficientData: return @"INSUFFICIENT_DATA"; default: return nil; } }]; } @end @implementation AWSCloudWatchDescribeAlarmsOutput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"metricAlarms" : @"MetricAlarms", @"nextToken" : @"NextToken", }; } + (NSValueTransformer *)metricAlarmsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchMetricAlarm class]]; } @end @implementation AWSCloudWatchDimension + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"name" : @"Name", @"value" : @"Value", }; } @end @implementation AWSCloudWatchDimensionFilter + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"name" : @"Name", @"value" : @"Value", }; } @end @implementation AWSCloudWatchDisableAlarmActionsInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"alarmNames" : @"AlarmNames", }; } @end @implementation AWSCloudWatchEnableAlarmActionsInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"alarmNames" : @"AlarmNames", }; } @end @implementation AWSCloudWatchGetDashboardInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"dashboardName" : @"DashboardName", }; } @end @implementation AWSCloudWatchGetDashboardOutput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"dashboardArn" : @"DashboardArn", @"dashboardBody" : @"DashboardBody", @"dashboardName" : @"DashboardName", }; } @end @implementation AWSCloudWatchGetMetricDataInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"endTime" : @"EndTime", @"maxDatapoints" : @"MaxDatapoints", @"metricDataQueries" : @"MetricDataQueries", @"nextToken" : @"NextToken", @"scanBy" : @"ScanBy", @"startTime" : @"StartTime", }; } + (NSValueTransformer *)endTimeJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSString *str) { return [NSDate aws_dateFromString:str]; } reverseBlock:^id(NSDate *date) { return [date aws_stringValue:AWSDateISO8601DateFormat1]; }]; } + (NSValueTransformer *)metricDataQueriesJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchMetricDataQuery class]]; } + (NSValueTransformer *)scanByJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"TimestampDescending"] == NSOrderedSame) { return @(AWSCloudWatchScanByTimestampDescending); } if ([value caseInsensitiveCompare:@"TimestampAscending"] == NSOrderedSame) { return @(AWSCloudWatchScanByTimestampAscending); } return @(AWSCloudWatchScanByUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchScanByTimestampDescending: return @"TimestampDescending"; case AWSCloudWatchScanByTimestampAscending: return @"TimestampAscending"; default: return nil; } }]; } + (NSValueTransformer *)startTimeJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSString *str) { return [NSDate aws_dateFromString:str]; } reverseBlock:^id(NSDate *date) { return [date aws_stringValue:AWSDateISO8601DateFormat1]; }]; } @end @implementation AWSCloudWatchGetMetricDataOutput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"metricDataResults" : @"MetricDataResults", @"nextToken" : @"NextToken", }; } + (NSValueTransformer *)metricDataResultsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchMetricDataResult class]]; } @end @implementation AWSCloudWatchGetMetricStatisticsInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"dimensions" : @"Dimensions", @"endTime" : @"EndTime", @"extendedStatistics" : @"ExtendedStatistics", @"metricName" : @"MetricName", @"namespace" : @"Namespace", @"period" : @"Period", @"startTime" : @"StartTime", @"statistics" : @"Statistics", @"unit" : @"Unit", }; } + (NSValueTransformer *)dimensionsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchDimension class]]; } + (NSValueTransformer *)endTimeJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSString *str) { return [NSDate aws_dateFromString:str]; } reverseBlock:^id(NSDate *date) { return [date aws_stringValue:AWSDateISO8601DateFormat1]; }]; } + (NSValueTransformer *)startTimeJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSString *str) { return [NSDate aws_dateFromString:str]; } reverseBlock:^id(NSDate *date) { return [date aws_stringValue:AWSDateISO8601DateFormat1]; }]; } + (NSValueTransformer *)unitJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"Seconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitSeconds); } if ([value caseInsensitiveCompare:@"Microseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMicroseconds); } if ([value caseInsensitiveCompare:@"Milliseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMilliseconds); } if ([value caseInsensitiveCompare:@"Bytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytes); } if ([value caseInsensitiveCompare:@"Kilobytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytes); } if ([value caseInsensitiveCompare:@"Megabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytes); } if ([value caseInsensitiveCompare:@"Gigabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytes); } if ([value caseInsensitiveCompare:@"Terabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytes); } if ([value caseInsensitiveCompare:@"Bits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBits); } if ([value caseInsensitiveCompare:@"Kilobits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobits); } if ([value caseInsensitiveCompare:@"Megabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabits); } if ([value caseInsensitiveCompare:@"Gigabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabits); } if ([value caseInsensitiveCompare:@"Terabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabits); } if ([value caseInsensitiveCompare:@"Percent"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitPercent); } if ([value caseInsensitiveCompare:@"Count"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCount); } if ([value caseInsensitiveCompare:@"Bytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytesSecond); } if ([value caseInsensitiveCompare:@"Kilobytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytesSecond); } if ([value caseInsensitiveCompare:@"Megabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytesSecond); } if ([value caseInsensitiveCompare:@"Gigabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytesSecond); } if ([value caseInsensitiveCompare:@"Terabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytesSecond); } if ([value caseInsensitiveCompare:@"Bits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBitsSecond); } if ([value caseInsensitiveCompare:@"Kilobits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobitsSecond); } if ([value caseInsensitiveCompare:@"Megabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabitsSecond); } if ([value caseInsensitiveCompare:@"Gigabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabitsSecond); } if ([value caseInsensitiveCompare:@"Terabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabitsSecond); } if ([value caseInsensitiveCompare:@"Count/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCountSecond); } if ([value caseInsensitiveCompare:@"None"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitNone); } return @(AWSCloudWatchStandardUnitUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStandardUnitSeconds: return @"Seconds"; case AWSCloudWatchStandardUnitMicroseconds: return @"Microseconds"; case AWSCloudWatchStandardUnitMilliseconds: return @"Milliseconds"; case AWSCloudWatchStandardUnitBytes: return @"Bytes"; case AWSCloudWatchStandardUnitKilobytes: return @"Kilobytes"; case AWSCloudWatchStandardUnitMegabytes: return @"Megabytes"; case AWSCloudWatchStandardUnitGigabytes: return @"Gigabytes"; case AWSCloudWatchStandardUnitTerabytes: return @"Terabytes"; case AWSCloudWatchStandardUnitBits: return @"Bits"; case AWSCloudWatchStandardUnitKilobits: return @"Kilobits"; case AWSCloudWatchStandardUnitMegabits: return @"Megabits"; case AWSCloudWatchStandardUnitGigabits: return @"Gigabits"; case AWSCloudWatchStandardUnitTerabits: return @"Terabits"; case AWSCloudWatchStandardUnitPercent: return @"Percent"; case AWSCloudWatchStandardUnitCount: return @"Count"; case AWSCloudWatchStandardUnitBytesSecond: return @"Bytes/Second"; case AWSCloudWatchStandardUnitKilobytesSecond: return @"Kilobytes/Second"; case AWSCloudWatchStandardUnitMegabytesSecond: return @"Megabytes/Second"; case AWSCloudWatchStandardUnitGigabytesSecond: return @"Gigabytes/Second"; case AWSCloudWatchStandardUnitTerabytesSecond: return @"Terabytes/Second"; case AWSCloudWatchStandardUnitBitsSecond: return @"Bits/Second"; case AWSCloudWatchStandardUnitKilobitsSecond: return @"Kilobits/Second"; case AWSCloudWatchStandardUnitMegabitsSecond: return @"Megabits/Second"; case AWSCloudWatchStandardUnitGigabitsSecond: return @"Gigabits/Second"; case AWSCloudWatchStandardUnitTerabitsSecond: return @"Terabits/Second"; case AWSCloudWatchStandardUnitCountSecond: return @"Count/Second"; case AWSCloudWatchStandardUnitNone: return @"None"; default: return nil; } }]; } @end @implementation AWSCloudWatchGetMetricStatisticsOutput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"datapoints" : @"Datapoints", @"label" : @"Label", }; } + (NSValueTransformer *)datapointsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchDatapoint class]]; } @end @implementation AWSCloudWatchGetMetricWidgetImageInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"metricWidget" : @"MetricWidget", @"outputFormat" : @"OutputFormat", }; } @end @implementation AWSCloudWatchGetMetricWidgetImageOutput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"metricWidgetImage" : @"MetricWidgetImage", }; } @end @implementation AWSCloudWatchListDashboardsInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"dashboardNamePrefix" : @"DashboardNamePrefix", @"nextToken" : @"NextToken", }; } @end @implementation AWSCloudWatchListDashboardsOutput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"dashboardEntries" : @"DashboardEntries", @"nextToken" : @"NextToken", }; } + (NSValueTransformer *)dashboardEntriesJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchDashboardEntry class]]; } @end @implementation AWSCloudWatchListMetricsInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"dimensions" : @"Dimensions", @"metricName" : @"MetricName", @"namespace" : @"Namespace", @"nextToken" : @"NextToken", }; } + (NSValueTransformer *)dimensionsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchDimensionFilter class]]; } @end @implementation AWSCloudWatchListMetricsOutput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"metrics" : @"Metrics", @"nextToken" : @"NextToken", }; } + (NSValueTransformer *)metricsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchMetric class]]; } @end @implementation AWSCloudWatchMessageData + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"code" : @"Code", @"value" : @"Value", }; } @end @implementation AWSCloudWatchMetric + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"dimensions" : @"Dimensions", @"metricName" : @"MetricName", @"namespace" : @"Namespace", }; } + (NSValueTransformer *)dimensionsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchDimension class]]; } @end @implementation AWSCloudWatchMetricAlarm + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"actionsEnabled" : @"ActionsEnabled", @"alarmActions" : @"AlarmActions", @"alarmArn" : @"AlarmArn", @"alarmConfigurationUpdatedTimestamp" : @"AlarmConfigurationUpdatedTimestamp", @"alarmDescription" : @"AlarmDescription", @"alarmName" : @"AlarmName", @"comparisonOperator" : @"ComparisonOperator", @"datapointsToAlarm" : @"DatapointsToAlarm", @"dimensions" : @"Dimensions", @"evaluateLowSampleCountPercentile" : @"EvaluateLowSampleCountPercentile", @"evaluationPeriods" : @"EvaluationPeriods", @"extendedStatistic" : @"ExtendedStatistic", @"insufficientDataActions" : @"InsufficientDataActions", @"metricName" : @"MetricName", @"metrics" : @"Metrics", @"namespace" : @"Namespace", @"OKActions" : @"OKActions", @"period" : @"Period", @"stateReason" : @"StateReason", @"stateReasonData" : @"StateReasonData", @"stateUpdatedTimestamp" : @"StateUpdatedTimestamp", @"stateValue" : @"StateValue", @"statistic" : @"Statistic", @"threshold" : @"Threshold", @"treatMissingData" : @"TreatMissingData", @"unit" : @"Unit", }; } + (NSValueTransformer *)alarmConfigurationUpdatedTimestampJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSString *str) { return [NSDate aws_dateFromString:str]; } reverseBlock:^id(NSDate *date) { return [date aws_stringValue:AWSDateISO8601DateFormat1]; }]; } + (NSValueTransformer *)comparisonOperatorJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"GreaterThanOrEqualToThreshold"] == NSOrderedSame) { return @(AWSCloudWatchComparisonOperatorGreaterThanOrEqualToThreshold); } if ([value caseInsensitiveCompare:@"GreaterThanThreshold"] == NSOrderedSame) { return @(AWSCloudWatchComparisonOperatorGreaterThanThreshold); } if ([value caseInsensitiveCompare:@"LessThanThreshold"] == NSOrderedSame) { return @(AWSCloudWatchComparisonOperatorLessThanThreshold); } if ([value caseInsensitiveCompare:@"LessThanOrEqualToThreshold"] == NSOrderedSame) { return @(AWSCloudWatchComparisonOperatorLessThanOrEqualToThreshold); } return @(AWSCloudWatchComparisonOperatorUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchComparisonOperatorGreaterThanOrEqualToThreshold: return @"GreaterThanOrEqualToThreshold"; case AWSCloudWatchComparisonOperatorGreaterThanThreshold: return @"GreaterThanThreshold"; case AWSCloudWatchComparisonOperatorLessThanThreshold: return @"LessThanThreshold"; case AWSCloudWatchComparisonOperatorLessThanOrEqualToThreshold: return @"LessThanOrEqualToThreshold"; default: return nil; } }]; } + (NSValueTransformer *)dimensionsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchDimension class]]; } + (NSValueTransformer *)metricsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchMetricDataQuery class]]; } + (NSValueTransformer *)stateUpdatedTimestampJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSString *str) { return [NSDate aws_dateFromString:str]; } reverseBlock:^id(NSDate *date) { return [date aws_stringValue:AWSDateISO8601DateFormat1]; }]; } + (NSValueTransformer *)stateValueJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"OK"] == NSOrderedSame) { return @(AWSCloudWatchStateValueOK); } if ([value caseInsensitiveCompare:@"ALARM"] == NSOrderedSame) { return @(AWSCloudWatchStateValueAlarm); } if ([value caseInsensitiveCompare:@"INSUFFICIENT_DATA"] == NSOrderedSame) { return @(AWSCloudWatchStateValueInsufficientData); } return @(AWSCloudWatchStateValueUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStateValueOK: return @"OK"; case AWSCloudWatchStateValueAlarm: return @"ALARM"; case AWSCloudWatchStateValueInsufficientData: return @"INSUFFICIENT_DATA"; default: return nil; } }]; } + (NSValueTransformer *)statisticJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"SampleCount"] == NSOrderedSame) { return @(AWSCloudWatchStatisticSampleCount); } if ([value caseInsensitiveCompare:@"Average"] == NSOrderedSame) { return @(AWSCloudWatchStatisticAverage); } if ([value caseInsensitiveCompare:@"Sum"] == NSOrderedSame) { return @(AWSCloudWatchStatisticSum); } if ([value caseInsensitiveCompare:@"Minimum"] == NSOrderedSame) { return @(AWSCloudWatchStatisticMinimum); } if ([value caseInsensitiveCompare:@"Maximum"] == NSOrderedSame) { return @(AWSCloudWatchStatisticMaximum); } return @(AWSCloudWatchStatisticUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStatisticSampleCount: return @"SampleCount"; case AWSCloudWatchStatisticAverage: return @"Average"; case AWSCloudWatchStatisticSum: return @"Sum"; case AWSCloudWatchStatisticMinimum: return @"Minimum"; case AWSCloudWatchStatisticMaximum: return @"Maximum"; default: return nil; } }]; } + (NSValueTransformer *)unitJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"Seconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitSeconds); } if ([value caseInsensitiveCompare:@"Microseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMicroseconds); } if ([value caseInsensitiveCompare:@"Milliseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMilliseconds); } if ([value caseInsensitiveCompare:@"Bytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytes); } if ([value caseInsensitiveCompare:@"Kilobytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytes); } if ([value caseInsensitiveCompare:@"Megabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytes); } if ([value caseInsensitiveCompare:@"Gigabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytes); } if ([value caseInsensitiveCompare:@"Terabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytes); } if ([value caseInsensitiveCompare:@"Bits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBits); } if ([value caseInsensitiveCompare:@"Kilobits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobits); } if ([value caseInsensitiveCompare:@"Megabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabits); } if ([value caseInsensitiveCompare:@"Gigabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabits); } if ([value caseInsensitiveCompare:@"Terabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabits); } if ([value caseInsensitiveCompare:@"Percent"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitPercent); } if ([value caseInsensitiveCompare:@"Count"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCount); } if ([value caseInsensitiveCompare:@"Bytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytesSecond); } if ([value caseInsensitiveCompare:@"Kilobytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytesSecond); } if ([value caseInsensitiveCompare:@"Megabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytesSecond); } if ([value caseInsensitiveCompare:@"Gigabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytesSecond); } if ([value caseInsensitiveCompare:@"Terabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytesSecond); } if ([value caseInsensitiveCompare:@"Bits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBitsSecond); } if ([value caseInsensitiveCompare:@"Kilobits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobitsSecond); } if ([value caseInsensitiveCompare:@"Megabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabitsSecond); } if ([value caseInsensitiveCompare:@"Gigabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabitsSecond); } if ([value caseInsensitiveCompare:@"Terabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabitsSecond); } if ([value caseInsensitiveCompare:@"Count/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCountSecond); } if ([value caseInsensitiveCompare:@"None"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitNone); } return @(AWSCloudWatchStandardUnitUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStandardUnitSeconds: return @"Seconds"; case AWSCloudWatchStandardUnitMicroseconds: return @"Microseconds"; case AWSCloudWatchStandardUnitMilliseconds: return @"Milliseconds"; case AWSCloudWatchStandardUnitBytes: return @"Bytes"; case AWSCloudWatchStandardUnitKilobytes: return @"Kilobytes"; case AWSCloudWatchStandardUnitMegabytes: return @"Megabytes"; case AWSCloudWatchStandardUnitGigabytes: return @"Gigabytes"; case AWSCloudWatchStandardUnitTerabytes: return @"Terabytes"; case AWSCloudWatchStandardUnitBits: return @"Bits"; case AWSCloudWatchStandardUnitKilobits: return @"Kilobits"; case AWSCloudWatchStandardUnitMegabits: return @"Megabits"; case AWSCloudWatchStandardUnitGigabits: return @"Gigabits"; case AWSCloudWatchStandardUnitTerabits: return @"Terabits"; case AWSCloudWatchStandardUnitPercent: return @"Percent"; case AWSCloudWatchStandardUnitCount: return @"Count"; case AWSCloudWatchStandardUnitBytesSecond: return @"Bytes/Second"; case AWSCloudWatchStandardUnitKilobytesSecond: return @"Kilobytes/Second"; case AWSCloudWatchStandardUnitMegabytesSecond: return @"Megabytes/Second"; case AWSCloudWatchStandardUnitGigabytesSecond: return @"Gigabytes/Second"; case AWSCloudWatchStandardUnitTerabytesSecond: return @"Terabytes/Second"; case AWSCloudWatchStandardUnitBitsSecond: return @"Bits/Second"; case AWSCloudWatchStandardUnitKilobitsSecond: return @"Kilobits/Second"; case AWSCloudWatchStandardUnitMegabitsSecond: return @"Megabits/Second"; case AWSCloudWatchStandardUnitGigabitsSecond: return @"Gigabits/Second"; case AWSCloudWatchStandardUnitTerabitsSecond: return @"Terabits/Second"; case AWSCloudWatchStandardUnitCountSecond: return @"Count/Second"; case AWSCloudWatchStandardUnitNone: return @"None"; default: return nil; } }]; } @end @implementation AWSCloudWatchMetricDataQuery + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"expression" : @"Expression", @"identifier" : @"Id", @"label" : @"Label", @"metricStat" : @"MetricStat", @"returnData" : @"ReturnData", }; } + (NSValueTransformer *)metricStatJSONTransformer { return [NSValueTransformer awsmtl_JSONDictionaryTransformerWithModelClass:[AWSCloudWatchMetricStat class]]; } @end @implementation AWSCloudWatchMetricDataResult + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"identifier" : @"Id", @"label" : @"Label", @"messages" : @"Messages", @"statusCode" : @"StatusCode", @"timestamps" : @"Timestamps", @"values" : @"Values", }; } + (NSValueTransformer *)messagesJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchMessageData class]]; } + (NSValueTransformer *)statusCodeJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"Complete"] == NSOrderedSame) { return @(AWSCloudWatchStatusCodeComplete); } if ([value caseInsensitiveCompare:@"InternalError"] == NSOrderedSame) { return @(AWSCloudWatchStatusCodeInternalError); } if ([value caseInsensitiveCompare:@"PartialData"] == NSOrderedSame) { return @(AWSCloudWatchStatusCodePartialData); } return @(AWSCloudWatchStatusCodeUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStatusCodeComplete: return @"Complete"; case AWSCloudWatchStatusCodeInternalError: return @"InternalError"; case AWSCloudWatchStatusCodePartialData: return @"PartialData"; default: return nil; } }]; } @end @implementation AWSCloudWatchMetricDatum + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"counts" : @"Counts", @"dimensions" : @"Dimensions", @"metricName" : @"MetricName", @"statisticValues" : @"StatisticValues", @"storageResolution" : @"StorageResolution", @"timestamp" : @"Timestamp", @"unit" : @"Unit", @"value" : @"Value", @"values" : @"Values", }; } + (NSValueTransformer *)dimensionsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchDimension class]]; } + (NSValueTransformer *)statisticValuesJSONTransformer { return [NSValueTransformer awsmtl_JSONDictionaryTransformerWithModelClass:[AWSCloudWatchStatisticSet class]]; } + (NSValueTransformer *)timestampJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSString *str) { return [NSDate aws_dateFromString:str]; } reverseBlock:^id(NSDate *date) { return [date aws_stringValue:AWSDateISO8601DateFormat1]; }]; } + (NSValueTransformer *)unitJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"Seconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitSeconds); } if ([value caseInsensitiveCompare:@"Microseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMicroseconds); } if ([value caseInsensitiveCompare:@"Milliseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMilliseconds); } if ([value caseInsensitiveCompare:@"Bytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytes); } if ([value caseInsensitiveCompare:@"Kilobytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytes); } if ([value caseInsensitiveCompare:@"Megabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytes); } if ([value caseInsensitiveCompare:@"Gigabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytes); } if ([value caseInsensitiveCompare:@"Terabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytes); } if ([value caseInsensitiveCompare:@"Bits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBits); } if ([value caseInsensitiveCompare:@"Kilobits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobits); } if ([value caseInsensitiveCompare:@"Megabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabits); } if ([value caseInsensitiveCompare:@"Gigabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabits); } if ([value caseInsensitiveCompare:@"Terabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabits); } if ([value caseInsensitiveCompare:@"Percent"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitPercent); } if ([value caseInsensitiveCompare:@"Count"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCount); } if ([value caseInsensitiveCompare:@"Bytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytesSecond); } if ([value caseInsensitiveCompare:@"Kilobytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytesSecond); } if ([value caseInsensitiveCompare:@"Megabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytesSecond); } if ([value caseInsensitiveCompare:@"Gigabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytesSecond); } if ([value caseInsensitiveCompare:@"Terabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytesSecond); } if ([value caseInsensitiveCompare:@"Bits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBitsSecond); } if ([value caseInsensitiveCompare:@"Kilobits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobitsSecond); } if ([value caseInsensitiveCompare:@"Megabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabitsSecond); } if ([value caseInsensitiveCompare:@"Gigabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabitsSecond); } if ([value caseInsensitiveCompare:@"Terabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabitsSecond); } if ([value caseInsensitiveCompare:@"Count/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCountSecond); } if ([value caseInsensitiveCompare:@"None"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitNone); } return @(AWSCloudWatchStandardUnitUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStandardUnitSeconds: return @"Seconds"; case AWSCloudWatchStandardUnitMicroseconds: return @"Microseconds"; case AWSCloudWatchStandardUnitMilliseconds: return @"Milliseconds"; case AWSCloudWatchStandardUnitBytes: return @"Bytes"; case AWSCloudWatchStandardUnitKilobytes: return @"Kilobytes"; case AWSCloudWatchStandardUnitMegabytes: return @"Megabytes"; case AWSCloudWatchStandardUnitGigabytes: return @"Gigabytes"; case AWSCloudWatchStandardUnitTerabytes: return @"Terabytes"; case AWSCloudWatchStandardUnitBits: return @"Bits"; case AWSCloudWatchStandardUnitKilobits: return @"Kilobits"; case AWSCloudWatchStandardUnitMegabits: return @"Megabits"; case AWSCloudWatchStandardUnitGigabits: return @"Gigabits"; case AWSCloudWatchStandardUnitTerabits: return @"Terabits"; case AWSCloudWatchStandardUnitPercent: return @"Percent"; case AWSCloudWatchStandardUnitCount: return @"Count"; case AWSCloudWatchStandardUnitBytesSecond: return @"Bytes/Second"; case AWSCloudWatchStandardUnitKilobytesSecond: return @"Kilobytes/Second"; case AWSCloudWatchStandardUnitMegabytesSecond: return @"Megabytes/Second"; case AWSCloudWatchStandardUnitGigabytesSecond: return @"Gigabytes/Second"; case AWSCloudWatchStandardUnitTerabytesSecond: return @"Terabytes/Second"; case AWSCloudWatchStandardUnitBitsSecond: return @"Bits/Second"; case AWSCloudWatchStandardUnitKilobitsSecond: return @"Kilobits/Second"; case AWSCloudWatchStandardUnitMegabitsSecond: return @"Megabits/Second"; case AWSCloudWatchStandardUnitGigabitsSecond: return @"Gigabits/Second"; case AWSCloudWatchStandardUnitTerabitsSecond: return @"Terabits/Second"; case AWSCloudWatchStandardUnitCountSecond: return @"Count/Second"; case AWSCloudWatchStandardUnitNone: return @"None"; default: return nil; } }]; } @end @implementation AWSCloudWatchMetricStat + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"metric" : @"Metric", @"period" : @"Period", @"stat" : @"Stat", @"unit" : @"Unit", }; } + (NSValueTransformer *)metricJSONTransformer { return [NSValueTransformer awsmtl_JSONDictionaryTransformerWithModelClass:[AWSCloudWatchMetric class]]; } + (NSValueTransformer *)unitJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"Seconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitSeconds); } if ([value caseInsensitiveCompare:@"Microseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMicroseconds); } if ([value caseInsensitiveCompare:@"Milliseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMilliseconds); } if ([value caseInsensitiveCompare:@"Bytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytes); } if ([value caseInsensitiveCompare:@"Kilobytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytes); } if ([value caseInsensitiveCompare:@"Megabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytes); } if ([value caseInsensitiveCompare:@"Gigabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytes); } if ([value caseInsensitiveCompare:@"Terabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytes); } if ([value caseInsensitiveCompare:@"Bits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBits); } if ([value caseInsensitiveCompare:@"Kilobits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobits); } if ([value caseInsensitiveCompare:@"Megabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabits); } if ([value caseInsensitiveCompare:@"Gigabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabits); } if ([value caseInsensitiveCompare:@"Terabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabits); } if ([value caseInsensitiveCompare:@"Percent"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitPercent); } if ([value caseInsensitiveCompare:@"Count"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCount); } if ([value caseInsensitiveCompare:@"Bytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytesSecond); } if ([value caseInsensitiveCompare:@"Kilobytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytesSecond); } if ([value caseInsensitiveCompare:@"Megabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytesSecond); } if ([value caseInsensitiveCompare:@"Gigabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytesSecond); } if ([value caseInsensitiveCompare:@"Terabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytesSecond); } if ([value caseInsensitiveCompare:@"Bits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBitsSecond); } if ([value caseInsensitiveCompare:@"Kilobits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobitsSecond); } if ([value caseInsensitiveCompare:@"Megabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabitsSecond); } if ([value caseInsensitiveCompare:@"Gigabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabitsSecond); } if ([value caseInsensitiveCompare:@"Terabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabitsSecond); } if ([value caseInsensitiveCompare:@"Count/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCountSecond); } if ([value caseInsensitiveCompare:@"None"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitNone); } return @(AWSCloudWatchStandardUnitUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStandardUnitSeconds: return @"Seconds"; case AWSCloudWatchStandardUnitMicroseconds: return @"Microseconds"; case AWSCloudWatchStandardUnitMilliseconds: return @"Milliseconds"; case AWSCloudWatchStandardUnitBytes: return @"Bytes"; case AWSCloudWatchStandardUnitKilobytes: return @"Kilobytes"; case AWSCloudWatchStandardUnitMegabytes: return @"Megabytes"; case AWSCloudWatchStandardUnitGigabytes: return @"Gigabytes"; case AWSCloudWatchStandardUnitTerabytes: return @"Terabytes"; case AWSCloudWatchStandardUnitBits: return @"Bits"; case AWSCloudWatchStandardUnitKilobits: return @"Kilobits"; case AWSCloudWatchStandardUnitMegabits: return @"Megabits"; case AWSCloudWatchStandardUnitGigabits: return @"Gigabits"; case AWSCloudWatchStandardUnitTerabits: return @"Terabits"; case AWSCloudWatchStandardUnitPercent: return @"Percent"; case AWSCloudWatchStandardUnitCount: return @"Count"; case AWSCloudWatchStandardUnitBytesSecond: return @"Bytes/Second"; case AWSCloudWatchStandardUnitKilobytesSecond: return @"Kilobytes/Second"; case AWSCloudWatchStandardUnitMegabytesSecond: return @"Megabytes/Second"; case AWSCloudWatchStandardUnitGigabytesSecond: return @"Gigabytes/Second"; case AWSCloudWatchStandardUnitTerabytesSecond: return @"Terabytes/Second"; case AWSCloudWatchStandardUnitBitsSecond: return @"Bits/Second"; case AWSCloudWatchStandardUnitKilobitsSecond: return @"Kilobits/Second"; case AWSCloudWatchStandardUnitMegabitsSecond: return @"Megabits/Second"; case AWSCloudWatchStandardUnitGigabitsSecond: return @"Gigabits/Second"; case AWSCloudWatchStandardUnitTerabitsSecond: return @"Terabits/Second"; case AWSCloudWatchStandardUnitCountSecond: return @"Count/Second"; case AWSCloudWatchStandardUnitNone: return @"None"; default: return nil; } }]; } @end @implementation AWSCloudWatchPutDashboardInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"dashboardBody" : @"DashboardBody", @"dashboardName" : @"DashboardName", }; } @end @implementation AWSCloudWatchPutDashboardOutput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"dashboardValidationMessages" : @"DashboardValidationMessages", }; } + (NSValueTransformer *)dashboardValidationMessagesJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchDashboardValidationMessage class]]; } @end @implementation AWSCloudWatchPutMetricAlarmInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"actionsEnabled" : @"ActionsEnabled", @"alarmActions" : @"AlarmActions", @"alarmDescription" : @"AlarmDescription", @"alarmName" : @"AlarmName", @"comparisonOperator" : @"ComparisonOperator", @"datapointsToAlarm" : @"DatapointsToAlarm", @"dimensions" : @"Dimensions", @"evaluateLowSampleCountPercentile" : @"EvaluateLowSampleCountPercentile", @"evaluationPeriods" : @"EvaluationPeriods", @"extendedStatistic" : @"ExtendedStatistic", @"insufficientDataActions" : @"InsufficientDataActions", @"metricName" : @"MetricName", @"metrics" : @"Metrics", @"namespace" : @"Namespace", @"OKActions" : @"OKActions", @"period" : @"Period", @"statistic" : @"Statistic", @"threshold" : @"Threshold", @"treatMissingData" : @"TreatMissingData", @"unit" : @"Unit", }; } + (NSValueTransformer *)comparisonOperatorJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"GreaterThanOrEqualToThreshold"] == NSOrderedSame) { return @(AWSCloudWatchComparisonOperatorGreaterThanOrEqualToThreshold); } if ([value caseInsensitiveCompare:@"GreaterThanThreshold"] == NSOrderedSame) { return @(AWSCloudWatchComparisonOperatorGreaterThanThreshold); } if ([value caseInsensitiveCompare:@"LessThanThreshold"] == NSOrderedSame) { return @(AWSCloudWatchComparisonOperatorLessThanThreshold); } if ([value caseInsensitiveCompare:@"LessThanOrEqualToThreshold"] == NSOrderedSame) { return @(AWSCloudWatchComparisonOperatorLessThanOrEqualToThreshold); } return @(AWSCloudWatchComparisonOperatorUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchComparisonOperatorGreaterThanOrEqualToThreshold: return @"GreaterThanOrEqualToThreshold"; case AWSCloudWatchComparisonOperatorGreaterThanThreshold: return @"GreaterThanThreshold"; case AWSCloudWatchComparisonOperatorLessThanThreshold: return @"LessThanThreshold"; case AWSCloudWatchComparisonOperatorLessThanOrEqualToThreshold: return @"LessThanOrEqualToThreshold"; default: return nil; } }]; } + (NSValueTransformer *)dimensionsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchDimension class]]; } + (NSValueTransformer *)metricsJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchMetricDataQuery class]]; } + (NSValueTransformer *)statisticJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"SampleCount"] == NSOrderedSame) { return @(AWSCloudWatchStatisticSampleCount); } if ([value caseInsensitiveCompare:@"Average"] == NSOrderedSame) { return @(AWSCloudWatchStatisticAverage); } if ([value caseInsensitiveCompare:@"Sum"] == NSOrderedSame) { return @(AWSCloudWatchStatisticSum); } if ([value caseInsensitiveCompare:@"Minimum"] == NSOrderedSame) { return @(AWSCloudWatchStatisticMinimum); } if ([value caseInsensitiveCompare:@"Maximum"] == NSOrderedSame) { return @(AWSCloudWatchStatisticMaximum); } return @(AWSCloudWatchStatisticUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStatisticSampleCount: return @"SampleCount"; case AWSCloudWatchStatisticAverage: return @"Average"; case AWSCloudWatchStatisticSum: return @"Sum"; case AWSCloudWatchStatisticMinimum: return @"Minimum"; case AWSCloudWatchStatisticMaximum: return @"Maximum"; default: return nil; } }]; } + (NSValueTransformer *)unitJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"Seconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitSeconds); } if ([value caseInsensitiveCompare:@"Microseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMicroseconds); } if ([value caseInsensitiveCompare:@"Milliseconds"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMilliseconds); } if ([value caseInsensitiveCompare:@"Bytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytes); } if ([value caseInsensitiveCompare:@"Kilobytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytes); } if ([value caseInsensitiveCompare:@"Megabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytes); } if ([value caseInsensitiveCompare:@"Gigabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytes); } if ([value caseInsensitiveCompare:@"Terabytes"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytes); } if ([value caseInsensitiveCompare:@"Bits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBits); } if ([value caseInsensitiveCompare:@"Kilobits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobits); } if ([value caseInsensitiveCompare:@"Megabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabits); } if ([value caseInsensitiveCompare:@"Gigabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabits); } if ([value caseInsensitiveCompare:@"Terabits"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabits); } if ([value caseInsensitiveCompare:@"Percent"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitPercent); } if ([value caseInsensitiveCompare:@"Count"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCount); } if ([value caseInsensitiveCompare:@"Bytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBytesSecond); } if ([value caseInsensitiveCompare:@"Kilobytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobytesSecond); } if ([value caseInsensitiveCompare:@"Megabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabytesSecond); } if ([value caseInsensitiveCompare:@"Gigabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabytesSecond); } if ([value caseInsensitiveCompare:@"Terabytes/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabytesSecond); } if ([value caseInsensitiveCompare:@"Bits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitBitsSecond); } if ([value caseInsensitiveCompare:@"Kilobits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitKilobitsSecond); } if ([value caseInsensitiveCompare:@"Megabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitMegabitsSecond); } if ([value caseInsensitiveCompare:@"Gigabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitGigabitsSecond); } if ([value caseInsensitiveCompare:@"Terabits/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitTerabitsSecond); } if ([value caseInsensitiveCompare:@"Count/Second"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitCountSecond); } if ([value caseInsensitiveCompare:@"None"] == NSOrderedSame) { return @(AWSCloudWatchStandardUnitNone); } return @(AWSCloudWatchStandardUnitUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStandardUnitSeconds: return @"Seconds"; case AWSCloudWatchStandardUnitMicroseconds: return @"Microseconds"; case AWSCloudWatchStandardUnitMilliseconds: return @"Milliseconds"; case AWSCloudWatchStandardUnitBytes: return @"Bytes"; case AWSCloudWatchStandardUnitKilobytes: return @"Kilobytes"; case AWSCloudWatchStandardUnitMegabytes: return @"Megabytes"; case AWSCloudWatchStandardUnitGigabytes: return @"Gigabytes"; case AWSCloudWatchStandardUnitTerabytes: return @"Terabytes"; case AWSCloudWatchStandardUnitBits: return @"Bits"; case AWSCloudWatchStandardUnitKilobits: return @"Kilobits"; case AWSCloudWatchStandardUnitMegabits: return @"Megabits"; case AWSCloudWatchStandardUnitGigabits: return @"Gigabits"; case AWSCloudWatchStandardUnitTerabits: return @"Terabits"; case AWSCloudWatchStandardUnitPercent: return @"Percent"; case AWSCloudWatchStandardUnitCount: return @"Count"; case AWSCloudWatchStandardUnitBytesSecond: return @"Bytes/Second"; case AWSCloudWatchStandardUnitKilobytesSecond: return @"Kilobytes/Second"; case AWSCloudWatchStandardUnitMegabytesSecond: return @"Megabytes/Second"; case AWSCloudWatchStandardUnitGigabytesSecond: return @"Gigabytes/Second"; case AWSCloudWatchStandardUnitTerabytesSecond: return @"Terabytes/Second"; case AWSCloudWatchStandardUnitBitsSecond: return @"Bits/Second"; case AWSCloudWatchStandardUnitKilobitsSecond: return @"Kilobits/Second"; case AWSCloudWatchStandardUnitMegabitsSecond: return @"Megabits/Second"; case AWSCloudWatchStandardUnitGigabitsSecond: return @"Gigabits/Second"; case AWSCloudWatchStandardUnitTerabitsSecond: return @"Terabits/Second"; case AWSCloudWatchStandardUnitCountSecond: return @"Count/Second"; case AWSCloudWatchStandardUnitNone: return @"None"; default: return nil; } }]; } @end @implementation AWSCloudWatchPutMetricDataInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"metricData" : @"MetricData", @"namespace" : @"Namespace", }; } + (NSValueTransformer *)metricDataJSONTransformer { return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSCloudWatchMetricDatum class]]; } @end @implementation AWSCloudWatchSetAlarmStateInput + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"alarmName" : @"AlarmName", @"stateReason" : @"StateReason", @"stateReasonData" : @"StateReasonData", @"stateValue" : @"StateValue", }; } + (NSValueTransformer *)stateValueJSONTransformer { return [AWSMTLValueTransformer reversibleTransformerWithForwardBlock:^NSNumber *(NSString *value) { if ([value caseInsensitiveCompare:@"OK"] == NSOrderedSame) { return @(AWSCloudWatchStateValueOK); } if ([value caseInsensitiveCompare:@"ALARM"] == NSOrderedSame) { return @(AWSCloudWatchStateValueAlarm); } if ([value caseInsensitiveCompare:@"INSUFFICIENT_DATA"] == NSOrderedSame) { return @(AWSCloudWatchStateValueInsufficientData); } return @(AWSCloudWatchStateValueUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { case AWSCloudWatchStateValueOK: return @"OK"; case AWSCloudWatchStateValueAlarm: return @"ALARM"; case AWSCloudWatchStateValueInsufficientData: return @"INSUFFICIENT_DATA"; default: return nil; } }]; } @end @implementation AWSCloudWatchStatisticSet + (BOOL)supportsSecureCoding { return YES; } + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ @"maximum" : @"Maximum", @"minimum" : @"Minimum", @"sampleCount" : @"SampleCount", @"sum" : @"Sum", }; } @end