From 4f991abbe052501a0f29c1608ddb9403c69a1128 Mon Sep 17 00:00:00 2001 From: awsmobilesdk Date: Tue, 12 Dec 2023 19:16:10 +0000 Subject: [PATCH] feat(AWSCloudWatchLogs): update models to latest --- AWSLogs/AWSLogsModel.h | 188 +++++++++++++++- AWSLogs/AWSLogsModel.m | 134 ++++++++++++ AWSLogs/AWSLogsResources.m | 207 +++++++++++++++++- AWSLogs/AWSLogsService.h | 41 +++- AWSLogs/AWSLogsService.m | 23 ++ AWSLogsUnitTests/AWSGeneralLogsTests.m | 48 ++++ AWSLogsUnitTests/AWSLogsNSSecureCodingTests.m | 35 +++ 7 files changed, 656 insertions(+), 20 deletions(-) diff --git a/AWSLogs/AWSLogsModel.h b/AWSLogs/AWSLogsModel.h index aa8b6dd5270..d2c355106a9 100644 --- a/AWSLogs/AWSLogsModel.h +++ b/AWSLogs/AWSLogsModel.h @@ -36,6 +36,8 @@ typedef NS_ENUM(NSInteger, AWSLogsErrorType) { AWSLogsErrorResourceNotFound, AWSLogsErrorServiceQuotaExceeded, AWSLogsErrorServiceUnavailable, + AWSLogsErrorSessionStreaming, + AWSLogsErrorSessionTimeout, AWSLogsErrorThrottling, AWSLogsErrorTooManyTags, AWSLogsErrorUnrecognizedClient, @@ -292,6 +294,10 @@ typedef NS_ENUM(NSInteger, AWSLogsSuppressionUnit) { @class AWSLogsListTagsForResourceResponse; @class AWSLogsListTagsLogGroupRequest; @class AWSLogsListTagsLogGroupResponse; +@class AWSLogsLiveTailSessionLogEvent; +@class AWSLogsLiveTailSessionMetadata; +@class AWSLogsLiveTailSessionStart; +@class AWSLogsLiveTailSessionUpdate; @class AWSLogsLogGroup; @class AWSLogsLogGroupField; @class AWSLogsLogStream; @@ -332,6 +338,9 @@ typedef NS_ENUM(NSInteger, AWSLogsSuppressionUnit) { @class AWSLogsResourcePolicy; @class AWSLogsResultField; @class AWSLogsSearchedLogStream; +@class AWSLogsStartLiveTailRequest; +@class AWSLogsStartLiveTailResponse; +@class AWSLogsStartLiveTailResponseStream; @class AWSLogsStartQueryRequest; @class AWSLogsStartQueryResponse; @class AWSLogsStopQueryRequest; @@ -707,7 +716,7 @@ typedef NS_ENUM(NSInteger, AWSLogsSuppressionUnit) { @property (nonatomic, strong) NSString * _Nullable kmsKeyId; /** -

An array containing the ARNs of the log groups that this anomaly detector will watch. You must specify at least one ARN.

+

An array containing the ARN of the log group that this anomaly detector will watch. You can specify only one log group ARN.

*/ @property (nonatomic, strong) NSArray * _Nullable logGroupArnList; @@ -743,7 +752,7 @@ typedef NS_ENUM(NSInteger, AWSLogsSuppressionUnit) { @property (nonatomic, strong) NSString * _Nullable kmsKeyId; /** -

Use this parameter to specify the log group class for this log group. There are two classes:

If you omit this parameter, the default of STANDARD is used.

For details about the features supported by each class, see Log classes

+

Use this parameter to specify the log group class for this log group. There are two classes:

If you omit this parameter, the default of STANDARD is used.

After a log group is created, its class can't be changed.

For details about the features supported by each class, see Log classes

*/ @property (nonatomic, assign) AWSLogsLogGroupClass logGroupClass; @@ -1044,7 +1053,7 @@ typedef NS_ENUM(NSInteger, AWSLogsSuppressionUnit) { @end /** -

This structure contains information about one delivery destination in your account. A delivery destination is an Amazon Web Services resource that represents an Amazon Web Services service that logs can be sent to. CloudWatch Logs, Amazon S3, are supported as Kinesis Data Firehose delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

+

This structure contains information about one delivery destination in your account. A delivery destination is an Amazon Web Services resource that represents an Amazon Web Services service that logs can be sent to. CloudWatch Logs, Amazon S3, are supported as Kinesis Data Firehose delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

*/ @interface AWSLogsDeliveryDestination : AWSModel @@ -1096,7 +1105,7 @@ typedef NS_ENUM(NSInteger, AWSLogsSuppressionUnit) { @end /** -

This structure contains information about one delivery source in your account. A delivery source is an Amazon Web Services resource that sends logs to an Amazon Web Services destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

+

This structure contains information about one delivery source in your account. A delivery source is an Amazon Web Services resource that sends logs to an Amazon Web Services destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

*/ @interface AWSLogsDeliverySource : AWSModel @@ -2523,6 +2532,108 @@ typedef NS_ENUM(NSInteger, AWSLogsSuppressionUnit) { @end +/** +

This object contains the information for one log event returned in a Live Tail stream.

+ */ +@interface AWSLogsLiveTailSessionLogEvent : AWSModel + + +/** +

The timestamp specifying when this log event was ingested into the log group.

+ */ +@property (nonatomic, strong) NSNumber * _Nullable ingestionTime; + +/** +

The name or ARN of the log group that ingested this log event.

+ */ +@property (nonatomic, strong) NSString * _Nullable logGroupIdentifier; + +/** +

The name of the log stream that ingested this log event.

+ */ +@property (nonatomic, strong) NSString * _Nullable logStreamName; + +/** +

The log event message text.

+ */ +@property (nonatomic, strong) NSString * _Nullable message; + +/** +

The timestamp specifying when this log event was created.

+ */ +@property (nonatomic, strong) NSNumber * _Nullable timestamp; + +@end + +/** +

This object contains the metadata for one LiveTailSessionUpdate structure. It indicates whether that update includes only a sample of 500 log events out of a larger number of ingested log events, or if it contains all of the matching log events ingested during that second of time.

+ */ +@interface AWSLogsLiveTailSessionMetadata : AWSModel + + +/** +

If this is true, then more than 500 log events matched the request for this update, and the sessionResults includes a sample of 500 of those events.

If this is false, then 500 or fewer log events matched the request for this update, so no sampling was necessary. In this case, the sessionResults array includes all log events that matched your request during this time.

+ */ +@property (nonatomic, strong) NSNumber * _Nullable sampled; + +@end + +/** +

This object contains information about this Live Tail session, including the log groups included and the log stream filters, if any.

+ */ +@interface AWSLogsLiveTailSessionStart : AWSModel + + +/** +

An optional pattern to filter the results to include only log events that match the pattern. For example, a filter pattern of error 404 displays only log events that include both error and 404.

For more information about filter pattern syntax, see Filter and Pattern Syntax.

+ */ +@property (nonatomic, strong) NSString * _Nullable logEventFilterPattern; + +/** +

An array of the names and ARNs of the log groups included in this Live Tail session.

+ */ +@property (nonatomic, strong) NSArray * _Nullable logGroupIdentifiers; + +/** +

If your StartLiveTail operation request included a logStreamNamePrefixes parameter that filtered the session to only include log streams that have names that start with certain prefixes, these prefixes are listed here.

+ */ +@property (nonatomic, strong) NSArray * _Nullable logStreamNamePrefixes; + +/** +

If your StartLiveTail operation request included a logStreamNames parameter that filtered the session to only include certain log streams, these streams are listed here.

+ */ +@property (nonatomic, strong) NSArray * _Nullable logStreamNames; + +/** +

The unique ID generated by CloudWatch Logs to identify this Live Tail session request.

+ */ +@property (nonatomic, strong) NSString * _Nullable requestId; + +/** +

The unique ID generated by CloudWatch Logs to identify this Live Tail session.

+ */ +@property (nonatomic, strong) NSString * _Nullable sessionId; + +@end + +/** +

This object contains the log events and metadata for a Live Tail session.

+ */ +@interface AWSLogsLiveTailSessionUpdate : AWSModel + + +/** +

This object contains the session metadata for a Live Tail session.

+ */ +@property (nonatomic, strong) AWSLogsLiveTailSessionMetadata * _Nullable sessionMetadata; + +/** +

An array, where each member of the array includes the information for one log event in the Live Tail session.

A sessionResults array can include as many as 500 log events. If the number of log events matching the request exceeds 500 per second, the log events are sampled down to 500 log events to be included in each sessionUpdate structure.

+ */ +@property (nonatomic, strong) NSArray * _Nullable sessionResults; + +@end + /**

Represents a log group.

*/ @@ -3479,6 +3590,75 @@ typedef NS_ENUM(NSInteger, AWSLogsSuppressionUnit) { @end +/** + + */ +@interface AWSLogsStartLiveTailRequest : AWSRequest + + +/** +

An optional pattern to use to filter the results to include only log events that match the pattern. For example, a filter pattern of error 404 causes only log events that include both error and 404 to be included in the Live Tail stream.

Regular expression filter patterns are supported.

For more information about filter pattern syntax, see Filter and Pattern Syntax.

+ */ +@property (nonatomic, strong) NSString * _Nullable logEventFilterPattern; + +/** +

An array where each item in the array is a log group to include in the Live Tail session.

Specify each log group by its ARN.

If you specify an ARN, the ARN can't end with an asterisk (*).

You can include up to 10 log groups.

+ */ +@property (nonatomic, strong) NSArray * _Nullable logGroupIdentifiers; + +/** +

If you specify this parameter, then only log events in the log streams that have names that start with the prefixes that you specify here are included in the Live Tail session.

You can specify this parameter only if you specify only one log group in logGroupIdentifiers.

+ */ +@property (nonatomic, strong) NSArray * _Nullable logStreamNamePrefixes; + +/** +

If you specify this parameter, then only log events in the log streams that you specify here are included in the Live Tail session.

You can specify this parameter only if you specify only one log group in logGroupIdentifiers.

+ */ +@property (nonatomic, strong) NSArray * _Nullable logStreamNames; + +@end + +/** + + */ +@interface AWSLogsStartLiveTailResponse : AWSModel + + +/** +

An object that includes the stream returned by your request. It can include both log events and exceptions.

+ */ +@property (nonatomic, strong) AWSLogsStartLiveTailResponseStream * _Nullable responseStream; + +@end + +/** +

This object includes the stream returned by your StartLiveTail request.

+ */ +@interface AWSLogsStartLiveTailResponseStream : AWSModel + + +/** +

This exception is returned if an unknown error occurs.

+ */ +@property (nonatomic, strong) _Nullable sessionStreamingException; + +/** +

This exception is returned in the stream when the Live Tail session times out. Live Tail sessions time out after three hours.

+ */ +@property (nonatomic, strong) _Nullable sessionTimeoutException; + +/** +

This object contains information about this Live Tail session, including the log groups included and the log stream filters, if any.

+ */ +@property (nonatomic, strong) AWSLogsLiveTailSessionStart * _Nullable sessionStart; + +/** +

This object contains the log events and session metadata.

+ */ +@property (nonatomic, strong) AWSLogsLiveTailSessionUpdate * _Nullable sessionUpdate; + +@end + /** */ diff --git a/AWSLogs/AWSLogsModel.m b/AWSLogs/AWSLogsModel.m index 84db6f92895..2038ae2eba7 100644 --- a/AWSLogs/AWSLogsModel.m +++ b/AWSLogs/AWSLogsModel.m @@ -2304,6 +2304,80 @@ + (NSDictionary *)JSONKeyPathsByPropertyKey { @end +@implementation AWSLogsLiveTailSessionLogEvent + ++ (BOOL)supportsSecureCoding { + return YES; +} + ++ (NSDictionary *)JSONKeyPathsByPropertyKey { + return @{ + @"ingestionTime" : @"ingestionTime", + @"logGroupIdentifier" : @"logGroupIdentifier", + @"logStreamName" : @"logStreamName", + @"message" : @"message", + @"timestamp" : @"timestamp", + }; +} + +@end + +@implementation AWSLogsLiveTailSessionMetadata + ++ (BOOL)supportsSecureCoding { + return YES; +} + ++ (NSDictionary *)JSONKeyPathsByPropertyKey { + return @{ + @"sampled" : @"sampled", + }; +} + +@end + +@implementation AWSLogsLiveTailSessionStart + ++ (BOOL)supportsSecureCoding { + return YES; +} + ++ (NSDictionary *)JSONKeyPathsByPropertyKey { + return @{ + @"logEventFilterPattern" : @"logEventFilterPattern", + @"logGroupIdentifiers" : @"logGroupIdentifiers", + @"logStreamNamePrefixes" : @"logStreamNamePrefixes", + @"logStreamNames" : @"logStreamNames", + @"requestId" : @"requestId", + @"sessionId" : @"sessionId", + }; +} + +@end + +@implementation AWSLogsLiveTailSessionUpdate + ++ (BOOL)supportsSecureCoding { + return YES; +} + ++ (NSDictionary *)JSONKeyPathsByPropertyKey { + return @{ + @"sessionMetadata" : @"sessionMetadata", + @"sessionResults" : @"sessionResults", + }; +} + ++ (NSValueTransformer *)sessionMetadataJSONTransformer { + return [NSValueTransformer awsmtl_JSONDictionaryTransformerWithModelClass:[AWSLogsLiveTailSessionMetadata class]]; +} + ++ (NSValueTransformer *)sessionResultsJSONTransformer { + return [NSValueTransformer awsmtl_JSONArrayTransformerWithModelClass:[AWSLogsLiveTailSessionLogEvent class]]; +} + +@end + @implementation AWSLogsLogGroup + (BOOL)supportsSecureCoding { @@ -3332,6 +3406,66 @@ + (NSDictionary *)JSONKeyPathsByPropertyKey { @end +@implementation AWSLogsStartLiveTailRequest + ++ (BOOL)supportsSecureCoding { + return YES; +} + ++ (NSDictionary *)JSONKeyPathsByPropertyKey { + return @{ + @"logEventFilterPattern" : @"logEventFilterPattern", + @"logGroupIdentifiers" : @"logGroupIdentifiers", + @"logStreamNamePrefixes" : @"logStreamNamePrefixes", + @"logStreamNames" : @"logStreamNames", + }; +} + +@end + +@implementation AWSLogsStartLiveTailResponse + ++ (BOOL)supportsSecureCoding { + return YES; +} + ++ (NSDictionary *)JSONKeyPathsByPropertyKey { + return @{ + @"responseStream" : @"responseStream", + }; +} + ++ (NSValueTransformer *)responseStreamJSONTransformer { + return [NSValueTransformer awsmtl_JSONDictionaryTransformerWithModelClass:[AWSLogsStartLiveTailResponseStream class]]; +} + +@end + +@implementation AWSLogsStartLiveTailResponseStream + ++ (BOOL)supportsSecureCoding { + return YES; +} + ++ (NSDictionary *)JSONKeyPathsByPropertyKey { + return @{ + @"sessionStreamingException" : @"SessionStreamingException", + @"sessionTimeoutException" : @"SessionTimeoutException", + @"sessionStart" : @"sessionStart", + @"sessionUpdate" : @"sessionUpdate", + }; +} + ++ (NSValueTransformer *)sessionStartJSONTransformer { + return [NSValueTransformer awsmtl_JSONDictionaryTransformerWithModelClass:[AWSLogsLiveTailSessionStart class]]; +} + ++ (NSValueTransformer *)sessionUpdateJSONTransformer { + return [NSValueTransformer awsmtl_JSONDictionaryTransformerWithModelClass:[AWSLogsLiveTailSessionUpdate class]]; +} + +@end + @implementation AWSLogsStartQueryRequest + (BOOL)supportsSecureCoding { diff --git a/AWSLogs/AWSLogsResources.m b/AWSLogs/AWSLogsResources.m index edd0d3095ba..270276f12a0 100644 --- a/AWSLogs/AWSLogsResources.m +++ b/AWSLogs/AWSLogsResources.m @@ -117,7 +117,7 @@ - (NSString *)definitionString { {\"shape\":\"ServiceQuotaExceededException\"},\ {\"shape\":\"ThrottlingException\"}\ ],\ - \"documentation\":\"

Creates a delivery. A delivery is a connection between a logical delivery source and a logical delivery destination that you have already created.

Only some Amazon Web Services services support being configured as a delivery source using this operation. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

A delivery destination can represent a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Kinesis Data Firehose.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

You can't update an existing delivery. You can only create and delete deliveries.

\"\ + \"documentation\":\"

Creates a delivery. A delivery is a connection between a logical delivery source and a logical delivery destination that you have already created.

Only some Amazon Web Services services support being configured as a delivery source using this operation. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

A delivery destination can represent a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Kinesis Data Firehose.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

You can't update an existing delivery. You can only create and delete deliveries.

\"\ },\ \"CreateExportTask\":{\ \"name\":\"CreateExportTask\",\ @@ -578,7 +578,7 @@ - (NSString *)definitionString { {\"shape\":\"InvalidParameterException\"},\ {\"shape\":\"ServiceUnavailableException\"}\ ],\ - \"documentation\":\"

This operation returns a paginated list of your saved CloudWatch Logs Insights query definitions.

You can use the queryDefinitionNamePrefix parameter to limit the results to only the query definitions that have names that start with a certain string.

\"\ + \"documentation\":\"

This operation returns a paginated list of your saved CloudWatch Logs Insights query definitions. You can retrieve query definitions from the current account or from a source account that is linked to the current account.

You can use the queryDefinitionNamePrefix parameter to limit the results to only the query definitions that have names that start with a certain string.

\"\ },\ \"DescribeResourcePolicies\":{\ \"name\":\"DescribeResourcePolicies\",\ @@ -911,7 +911,7 @@ - (NSString *)definitionString { {\"shape\":\"ThrottlingException\"},\ {\"shape\":\"ResourceNotFoundException\"}\ ],\ - \"documentation\":\"

Creates or updates a logical delivery destination. A delivery destination is an Amazon Web Services resource that represents an Amazon Web Services service that logs can be sent to. CloudWatch Logs, Amazon S3, and Kinesis Data Firehose are supported as logs delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Use PutDeliveryDestination to create a delivery destination, which is a logical object that represents the actual delivery destination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery destination, all the current delivery destination parameters are overwritten with the new parameter values that you specify.

\"\ + \"documentation\":\"

Creates or updates a logical delivery destination. A delivery destination is an Amazon Web Services resource that represents an Amazon Web Services service that logs can be sent to. CloudWatch Logs, Amazon S3, and Kinesis Data Firehose are supported as logs delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Use PutDeliveryDestination to create a delivery destination, which is a logical object that represents the actual delivery destination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery destination, all the current delivery destination parameters are overwritten with the new parameter values that you specify.

\"\ },\ \"PutDeliveryDestinationPolicy\":{\ \"name\":\"PutDeliveryDestinationPolicy\",\ @@ -945,7 +945,7 @@ - (NSString *)definitionString { {\"shape\":\"ResourceNotFoundException\"},\ {\"shape\":\"ThrottlingException\"}\ ],\ - \"documentation\":\"

Creates or updates a logical delivery source. A delivery source represents an Amazon Web Services resource that sends logs to an logs delivery destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

To configure logs delivery between a delivery destination and an Amazon Web Services service that is supported as a delivery source, you must do the following:

  • Use PutDeliverySource to create a delivery source, which is a logical object that represents the resource that is actually sending the logs.

  • Use PutDeliveryDestination to create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery source, all the current delivery source parameters are overwritten with the new parameter values that you specify.

\"\ + \"documentation\":\"

Creates or updates a logical delivery source. A delivery source represents an Amazon Web Services resource that sends logs to an logs delivery destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

To configure logs delivery between a delivery destination and an Amazon Web Services service that is supported as a delivery source, you must do the following:

  • Use PutDeliverySource to create a delivery source, which is a logical object that represents the resource that is actually sending the logs.

  • Use PutDeliveryDestination to create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery source, all the current delivery source parameters are overwritten with the new parameter values that you specify.

\"\ },\ \"PutDestination\":{\ \"name\":\"PutDestination\",\ @@ -1072,6 +1072,24 @@ - (NSString *)definitionString { ],\ \"documentation\":\"

Creates or updates a subscription filter and associates it with the specified log group. With subscription filters, you can subscribe to a real-time stream of log events ingested through PutLogEvents and have them delivered to a specific destination. When log events are sent to the receiving service, they are Base64 encoded and compressed with the GZIP format.

The following destinations are supported for subscription filters:

  • An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery.

  • A logical destination created with PutDestination that belongs to a different account, for cross-account delivery. We currently support Kinesis Data Streams and Kinesis Data Firehose as logical destinations.

  • An Amazon Kinesis Data Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery.

  • An Lambda function that belongs to the same account as the subscription filter, for same-account delivery.

Each log group can have up to two subscription filters associated with it. If you are updating an existing filter, you must specify the correct name in filterName.

To perform a PutSubscriptionFilter operation for any destination except a Lambda function, you must also have the iam:PassRole permission.

\"\ },\ + \"StartLiveTail\":{\ + \"name\":\"StartLiveTail\",\ + \"http\":{\ + \"method\":\"POST\",\ + \"requestUri\":\"/\"\ + },\ + \"input\":{\"shape\":\"StartLiveTailRequest\"},\ + \"output\":{\"shape\":\"StartLiveTailResponse\"},\ + \"errors\":[\ + {\"shape\":\"AccessDeniedException\"},\ + {\"shape\":\"InvalidParameterException\"},\ + {\"shape\":\"ResourceNotFoundException\"},\ + {\"shape\":\"LimitExceededException\"},\ + {\"shape\":\"InvalidOperationException\"}\ + ],\ + \"documentation\":\"

Starts a Live Tail streaming session for one or more log groups. A Live Tail session returns a stream of log events that have been recently ingested in the log groups. For more information, see Use Live Tail to view logs in near real time.

The response to this operation is a response stream, over which the server sends live log events and the client receives them.

The following objects are sent over the stream:

  • A single LiveTailSessionStart object is sent at the start of the session.

  • Every second, a LiveTailSessionUpdate object is sent. Each of these objects contains an array of the actual log events.

    If no new log events were ingested in the past second, the LiveTailSessionUpdate object will contain an empty array.

    The array of log events contained in a LiveTailSessionUpdate can include as many as 500 log events. If the number of log events matching the request exceeds 500 per second, the log events are sampled down to 500 log events to be included in each LiveTailSessionUpdate object.

    If your client consumes the log events slower than the server produces them, CloudWatch Logs buffers up to 10 LiveTailSessionUpdate events or 5000 log events, after which it starts dropping the oldest events.

  • A SessionStreamingException object is returned if an unknown error occurs on the server side.

  • A SessionTimeoutException object is returned when the session times out, after it has been kept open for three hours.

You can end a session before it times out by closing the session stream or by closing the client that is receiving the stream. The session also ends if the established connection between the client and the server breaks.

\",\ + \"endpoint\":{\"hostPrefix\":\"streaming-\"}\ + },\ \"StartQuery\":{\ \"name\":\"StartQuery\",\ \"http\":{\ @@ -1574,7 +1592,7 @@ - (NSString *)definitionString { \"members\":{\ \"logGroupArnList\":{\ \"shape\":\"LogGroupArnList\",\ - \"documentation\":\"

An array containing the ARNs of the log groups that this anomaly detector will watch. You must specify at least one ARN.

\"\ + \"documentation\":\"

An array containing the ARN of the log group that this anomaly detector will watch. You can specify only one log group ARN.

\"\ },\ \"detectorName\":{\ \"shape\":\"DetectorName\",\ @@ -1629,7 +1647,7 @@ - (NSString *)definitionString { },\ \"logGroupClass\":{\ \"shape\":\"LogGroupClass\",\ - \"documentation\":\"

Use this parameter to specify the log group class for this log group. There are two classes:

  • The Standard log class supports all CloudWatch Logs features.

  • The Infrequent Access log class supports a subset of CloudWatch Logs features and incurs lower costs.

If you omit this parameter, the default of STANDARD is used.

For details about the features supported by each class, see Log classes

\"\ + \"documentation\":\"

Use this parameter to specify the log group class for this log group. There are two classes:

  • The Standard log class supports all CloudWatch Logs features.

  • The Infrequent Access log class supports a subset of CloudWatch Logs features and incurs lower costs.

If you omit this parameter, the default of STANDARD is used.

After a log group is created, its class can't be changed.

For details about the features supported by each class, see Log classes

\"\ }\ }\ },\ @@ -1921,7 +1939,7 @@ - (NSString *)definitionString { \"documentation\":\"

The tags that have been assigned to this delivery destination.

\"\ }\ },\ - \"documentation\":\"

This structure contains information about one delivery destination in your account. A delivery destination is an Amazon Web Services resource that represents an Amazon Web Services service that logs can be sent to. CloudWatch Logs, Amazon S3, are supported as Kinesis Data Firehose delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Create a delivery destination, which is a logical object that represents the actual delivery destination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

\"\ + \"documentation\":\"

This structure contains information about one delivery destination in your account. A delivery destination is an Amazon Web Services resource that represents an Amazon Web Services service that logs can be sent to. CloudWatch Logs, Amazon S3, are supported as Kinesis Data Firehose delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Create a delivery destination, which is a logical object that represents the actual delivery destination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

\"\ },\ \"DeliveryDestinationConfiguration\":{\ \"type\":\"structure\",\ @@ -1991,7 +2009,7 @@ - (NSString *)definitionString { \"documentation\":\"

The tags that have been assigned to this delivery source.

\"\ }\ },\ - \"documentation\":\"

This structure contains information about one delivery source in your account. A delivery source is an Amazon Web Services resource that sends logs to an Amazon Web Services destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

\"\ + \"documentation\":\"

This structure contains information about one delivery source in your account. A delivery source is an Amazon Web Services resource that sends logs to an Amazon Web Services destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

\"\ },\ \"DeliverySourceName\":{\ \"type\":\"string\",\ @@ -3088,6 +3106,7 @@ - (NSString *)definitionString { \"documentation\":\"

The sequence token is not valid. You can get the correct sequence token in the expectedSequenceToken field in the InvalidSequenceTokenException message.

PutLogEvents actions are now always accepted and never return InvalidSequenceTokenException regardless of receiving an invalid sequence token.

\",\ \"exception\":true\ },\ + \"IsSampled\":{\"type\":\"boolean\"},\ \"KmsKeyId\":{\ \"type\":\"string\",\ \"max\":256\ @@ -3203,6 +3222,92 @@ - (NSString *)definitionString { \"deprecated\":true,\ \"deprecatedMessage\":\"Please use the generic tagging API model ListTagsForResourceRequest and ListTagsForResourceResponse\"\ },\ + \"LiveTailSessionLogEvent\":{\ + \"type\":\"structure\",\ + \"members\":{\ + \"logStreamName\":{\ + \"shape\":\"LogStreamName\",\ + \"documentation\":\"

The name of the log stream that ingested this log event.

\"\ + },\ + \"logGroupIdentifier\":{\ + \"shape\":\"LogGroupIdentifier\",\ + \"documentation\":\"

The name or ARN of the log group that ingested this log event.

\"\ + },\ + \"message\":{\ + \"shape\":\"EventMessage\",\ + \"documentation\":\"

The log event message text.

\"\ + },\ + \"timestamp\":{\ + \"shape\":\"Timestamp\",\ + \"documentation\":\"

The timestamp specifying when this log event was created.

\"\ + },\ + \"ingestionTime\":{\ + \"shape\":\"Timestamp\",\ + \"documentation\":\"

The timestamp specifying when this log event was ingested into the log group.

\"\ + }\ + },\ + \"documentation\":\"

This object contains the information for one log event returned in a Live Tail stream.

\"\ + },\ + \"LiveTailSessionMetadata\":{\ + \"type\":\"structure\",\ + \"members\":{\ + \"sampled\":{\ + \"shape\":\"IsSampled\",\ + \"documentation\":\"

If this is true, then more than 500 log events matched the request for this update, and the sessionResults includes a sample of 500 of those events.

If this is false, then 500 or fewer log events matched the request for this update, so no sampling was necessary. In this case, the sessionResults array includes all log events that matched your request during this time.

\"\ + }\ + },\ + \"documentation\":\"

This object contains the metadata for one LiveTailSessionUpdate structure. It indicates whether that update includes only a sample of 500 log events out of a larger number of ingested log events, or if it contains all of the matching log events ingested during that second of time.

\"\ + },\ + \"LiveTailSessionResults\":{\ + \"type\":\"list\",\ + \"member\":{\"shape\":\"LiveTailSessionLogEvent\"}\ + },\ + \"LiveTailSessionStart\":{\ + \"type\":\"structure\",\ + \"members\":{\ + \"requestId\":{\ + \"shape\":\"RequestId\",\ + \"documentation\":\"

The unique ID generated by CloudWatch Logs to identify this Live Tail session request.

\"\ + },\ + \"sessionId\":{\ + \"shape\":\"SessionId\",\ + \"documentation\":\"

The unique ID generated by CloudWatch Logs to identify this Live Tail session.

\"\ + },\ + \"logGroupIdentifiers\":{\ + \"shape\":\"StartLiveTailLogGroupIdentifiers\",\ + \"documentation\":\"

An array of the names and ARNs of the log groups included in this Live Tail session.

\"\ + },\ + \"logStreamNames\":{\ + \"shape\":\"InputLogStreamNames\",\ + \"documentation\":\"

If your StartLiveTail operation request included a logStreamNames parameter that filtered the session to only include certain log streams, these streams are listed here.

\"\ + },\ + \"logStreamNamePrefixes\":{\ + \"shape\":\"InputLogStreamNames\",\ + \"documentation\":\"

If your StartLiveTail operation request included a logStreamNamePrefixes parameter that filtered the session to only include log streams that have names that start with certain prefixes, these prefixes are listed here.

\"\ + },\ + \"logEventFilterPattern\":{\ + \"shape\":\"FilterPattern\",\ + \"documentation\":\"

An optional pattern to filter the results to include only log events that match the pattern. For example, a filter pattern of error 404 displays only log events that include both error and 404.

For more information about filter pattern syntax, see Filter and Pattern Syntax.

\"\ + }\ + },\ + \"documentation\":\"

This object contains information about this Live Tail session, including the log groups included and the log stream filters, if any.

\",\ + \"event\":true\ + },\ + \"LiveTailSessionUpdate\":{\ + \"type\":\"structure\",\ + \"members\":{\ + \"sessionMetadata\":{\ + \"shape\":\"LiveTailSessionMetadata\",\ + \"documentation\":\"

This object contains the session metadata for a Live Tail session.

\"\ + },\ + \"sessionResults\":{\ + \"shape\":\"LiveTailSessionResults\",\ + \"documentation\":\"

An array, where each member of the array includes the information for one log event in the Live Tail session.

A sessionResults array can include as many as 500 log events. If the number of log events matching the request exceeds 500 per second, the log events are sampled down to 500 log events to be included in each sessionUpdate structure.

\"\ + }\ + },\ + \"documentation\":\"

This object contains the log events and metadata for a Live Tail session.

\",\ + \"event\":true\ + },\ \"LogEvent\":{\ \"type\":\"string\",\ \"min\":1\ @@ -4179,6 +4284,11 @@ - (NSString *)definitionString { },\ \"documentation\":\"

Represents the rejected events.

\"\ },\ + \"RequestId\":{\ + \"type\":\"string\",\ + \"max\":256,\ + \"min\":0\ + },\ \"ResourceAlreadyExistsException\":{\ \"type\":\"structure\",\ \"members\":{\ @@ -4294,6 +4404,27 @@ - (NSString *)definitionString { \"exception\":true,\ \"fault\":true\ },\ + \"SessionId\":{\ + \"type\":\"string\",\ + \"max\":256,\ + \"min\":0\ + },\ + \"SessionStreamingException\":{\ + \"type\":\"structure\",\ + \"members\":{\ + \"message\":{\"shape\":\"Message\"}\ + },\ + \"documentation\":\"

his exception is returned if an unknown error occurs during a Live Tail session.

\",\ + \"exception\":true\ + },\ + \"SessionTimeoutException\":{\ + \"type\":\"structure\",\ + \"members\":{\ + \"message\":{\"shape\":\"Message\"}\ + },\ + \"documentation\":\"

This exception is returned in a Live Tail stream when the Live Tail session times out. Live Tail sessions time out after three hours.

\",\ + \"exception\":true\ + },\ \"StandardUnit\":{\ \"type\":\"string\",\ \"enum\":[\ @@ -4327,6 +4458,66 @@ - (NSString *)definitionString { ]\ },\ \"StartFromHead\":{\"type\":\"boolean\"},\ + \"StartLiveTailLogGroupIdentifiers\":{\ + \"type\":\"list\",\ + \"member\":{\"shape\":\"LogGroupIdentifier\"},\ + \"max\":10,\ + \"min\":1\ + },\ + \"StartLiveTailRequest\":{\ + \"type\":\"structure\",\ + \"required\":[\"logGroupIdentifiers\"],\ + \"members\":{\ + \"logGroupIdentifiers\":{\ + \"shape\":\"StartLiveTailLogGroupIdentifiers\",\ + \"documentation\":\"

An array where each item in the array is a log group to include in the Live Tail session.

Specify each log group by its ARN.

If you specify an ARN, the ARN can't end with an asterisk (*).

You can include up to 10 log groups.

\"\ + },\ + \"logStreamNames\":{\ + \"shape\":\"InputLogStreamNames\",\ + \"documentation\":\"

If you specify this parameter, then only log events in the log streams that you specify here are included in the Live Tail session.

You can specify this parameter only if you specify only one log group in logGroupIdentifiers.

\"\ + },\ + \"logStreamNamePrefixes\":{\ + \"shape\":\"InputLogStreamNames\",\ + \"documentation\":\"

If you specify this parameter, then only log events in the log streams that have names that start with the prefixes that you specify here are included in the Live Tail session.

You can specify this parameter only if you specify only one log group in logGroupIdentifiers.

\"\ + },\ + \"logEventFilterPattern\":{\ + \"shape\":\"FilterPattern\",\ + \"documentation\":\"

An optional pattern to use to filter the results to include only log events that match the pattern. For example, a filter pattern of error 404 causes only log events that include both error and 404 to be included in the Live Tail stream.

Regular expression filter patterns are supported.

For more information about filter pattern syntax, see Filter and Pattern Syntax.

\"\ + }\ + }\ + },\ + \"StartLiveTailResponse\":{\ + \"type\":\"structure\",\ + \"members\":{\ + \"responseStream\":{\ + \"shape\":\"StartLiveTailResponseStream\",\ + \"documentation\":\"

An object that includes the stream returned by your request. It can include both log events and exceptions.

\"\ + }\ + }\ + },\ + \"StartLiveTailResponseStream\":{\ + \"type\":\"structure\",\ + \"members\":{\ + \"sessionStart\":{\ + \"shape\":\"LiveTailSessionStart\",\ + \"documentation\":\"

This object contains information about this Live Tail session, including the log groups included and the log stream filters, if any.

\"\ + },\ + \"sessionUpdate\":{\ + \"shape\":\"LiveTailSessionUpdate\",\ + \"documentation\":\"

This object contains the log events and session metadata.

\"\ + },\ + \"SessionTimeoutException\":{\ + \"shape\":\"SessionTimeoutException\",\ + \"documentation\":\"

This exception is returned in the stream when the Live Tail session times out. Live Tail sessions time out after three hours.

\"\ + },\ + \"SessionStreamingException\":{\ + \"shape\":\"SessionStreamingException\",\ + \"documentation\":\"

This exception is returned if an unknown error occurs.

\"\ + }\ + },\ + \"documentation\":\"

This object includes the stream returned by your StartLiveTail request.

\",\ + \"eventstream\":true\ + },\ \"StartQueryRequest\":{\ \"type\":\"structure\",\ \"required\":[\ diff --git a/AWSLogs/AWSLogsService.h b/AWSLogs/AWSLogsService.h index 74d59b9e180..650500fd6e4 100644 --- a/AWSLogs/AWSLogsService.h +++ b/AWSLogs/AWSLogsService.h @@ -219,7 +219,7 @@ FOUNDATION_EXPORT NSString *const AWSLogsSDKVersion; - (void)cancelExportTask:(AWSLogsCancelExportTaskRequest *)request completionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler; /** -

Creates a delivery. A delivery is a connection between a logical delivery source and a logical delivery destination that you have already created.

Only some Amazon Web Services services support being configured as a delivery source using this operation. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

A delivery destination can represent a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Kinesis Data Firehose.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

You can't update an existing delivery. You can only create and delete deliveries.

+

Creates a delivery. A delivery is a connection between a logical delivery source and a logical delivery destination that you have already created.

Only some Amazon Web Services services support being configured as a delivery source using this operation. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

A delivery destination can represent a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Kinesis Data Firehose.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

You can't update an existing delivery. You can only create and delete deliveries.

@param request A container for the necessary parameters to execute the CreateDelivery service method. @@ -231,7 +231,7 @@ FOUNDATION_EXPORT NSString *const AWSLogsSDKVersion; - (AWSTask *)createDelivery:(AWSLogsCreateDeliveryRequest *)request; /** -

Creates a delivery. A delivery is a connection between a logical delivery source and a logical delivery destination that you have already created.

Only some Amazon Web Services services support being configured as a delivery source using this operation. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

A delivery destination can represent a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Kinesis Data Firehose.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

You can't update an existing delivery. You can only create and delete deliveries.

+

Creates a delivery. A delivery is a connection between a logical delivery source and a logical delivery destination that you have already created.

Only some Amazon Web Services services support being configured as a delivery source using this operation. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

A delivery destination can represent a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Kinesis Data Firehose.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

You can't update an existing delivery. You can only create and delete deliveries.

@param request A container for the necessary parameters to execute the CreateDelivery service method. @param completionHandler The completion handler to call when the load request is complete. @@ -921,7 +921,7 @@ FOUNDATION_EXPORT NSString *const AWSLogsSDKVersion; - (void)describeQueries:(AWSLogsDescribeQueriesRequest *)request completionHandler:(void (^ _Nullable)(AWSLogsDescribeQueriesResponse * _Nullable response, NSError * _Nullable error))completionHandler; /** -

This operation returns a paginated list of your saved CloudWatch Logs Insights query definitions.

You can use the queryDefinitionNamePrefix parameter to limit the results to only the query definitions that have names that start with a certain string.

+

This operation returns a paginated list of your saved CloudWatch Logs Insights query definitions. You can retrieve query definitions from the current account or from a source account that is linked to the current account.

You can use the queryDefinitionNamePrefix parameter to limit the results to only the query definitions that have names that start with a certain string.

@param request A container for the necessary parameters to execute the DescribeQueryDefinitions service method. @@ -933,7 +933,7 @@ FOUNDATION_EXPORT NSString *const AWSLogsSDKVersion; - (AWSTask *)describeQueryDefinitions:(AWSLogsDescribeQueryDefinitionsRequest *)request; /** -

This operation returns a paginated list of your saved CloudWatch Logs Insights query definitions.

You can use the queryDefinitionNamePrefix parameter to limit the results to only the query definitions that have names that start with a certain string.

+

This operation returns a paginated list of your saved CloudWatch Logs Insights query definitions. You can retrieve query definitions from the current account or from a source account that is linked to the current account.

You can use the queryDefinitionNamePrefix parameter to limit the results to only the query definitions that have names that start with a certain string.

@param request A container for the necessary parameters to execute the DescribeQueryDefinitions service method. @param completionHandler The completion handler to call when the load request is complete. @@ -1443,7 +1443,7 @@ FOUNDATION_EXPORT NSString *const AWSLogsSDKVersion; - (void)putDataProtectionPolicy:(AWSLogsPutDataProtectionPolicyRequest *)request completionHandler:(void (^ _Nullable)(AWSLogsPutDataProtectionPolicyResponse * _Nullable response, NSError * _Nullable error))completionHandler; /** -

Creates or updates a logical delivery destination. A delivery destination is an Amazon Web Services resource that represents an Amazon Web Services service that logs can be sent to. CloudWatch Logs, Amazon S3, and Kinesis Data Firehose are supported as logs delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Use PutDeliveryDestination to create a delivery destination, which is a logical object that represents the actual delivery destination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery destination, all the current delivery destination parameters are overwritten with the new parameter values that you specify.

+

Creates or updates a logical delivery destination. A delivery destination is an Amazon Web Services resource that represents an Amazon Web Services service that logs can be sent to. CloudWatch Logs, Amazon S3, and Kinesis Data Firehose are supported as logs delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Use PutDeliveryDestination to create a delivery destination, which is a logical object that represents the actual delivery destination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery destination, all the current delivery destination parameters are overwritten with the new parameter values that you specify.

@param request A container for the necessary parameters to execute the PutDeliveryDestination service method. @@ -1455,7 +1455,7 @@ FOUNDATION_EXPORT NSString *const AWSLogsSDKVersion; - (AWSTask *)putDeliveryDestination:(AWSLogsPutDeliveryDestinationRequest *)request; /** -

Creates or updates a logical delivery destination. A delivery destination is an Amazon Web Services resource that represents an Amazon Web Services service that logs can be sent to. CloudWatch Logs, Amazon S3, and Kinesis Data Firehose are supported as logs delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Use PutDeliveryDestination to create a delivery destination, which is a logical object that represents the actual delivery destination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery destination, all the current delivery destination parameters are overwritten with the new parameter values that you specify.

+

Creates or updates a logical delivery destination. A delivery destination is an Amazon Web Services resource that represents an Amazon Web Services service that logs can be sent to. CloudWatch Logs, Amazon S3, and Kinesis Data Firehose are supported as logs delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

  • Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.

  • Use PutDeliveryDestination to create a delivery destination, which is a logical object that represents the actual delivery destination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery destination, all the current delivery destination parameters are overwritten with the new parameter values that you specify.

@param request A container for the necessary parameters to execute the PutDeliveryDestination service method. @param completionHandler The completion handler to call when the load request is complete. @@ -1493,7 +1493,7 @@ FOUNDATION_EXPORT NSString *const AWSLogsSDKVersion; - (void)putDeliveryDestinationPolicy:(AWSLogsPutDeliveryDestinationPolicyRequest *)request completionHandler:(void (^ _Nullable)(AWSLogsPutDeliveryDestinationPolicyResponse * _Nullable response, NSError * _Nullable error))completionHandler; /** -

Creates or updates a logical delivery source. A delivery source represents an Amazon Web Services resource that sends logs to an logs delivery destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

To configure logs delivery between a delivery destination and an Amazon Web Services service that is supported as a delivery source, you must do the following:

  • Use PutDeliverySource to create a delivery source, which is a logical object that represents the resource that is actually sending the logs.

  • Use PutDeliveryDestination to create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery source, all the current delivery source parameters are overwritten with the new parameter values that you specify.

+

Creates or updates a logical delivery source. A delivery source represents an Amazon Web Services resource that sends logs to an logs delivery destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

To configure logs delivery between a delivery destination and an Amazon Web Services service that is supported as a delivery source, you must do the following:

  • Use PutDeliverySource to create a delivery source, which is a logical object that represents the resource that is actually sending the logs.

  • Use PutDeliveryDestination to create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery source, all the current delivery source parameters are overwritten with the new parameter values that you specify.

@param request A container for the necessary parameters to execute the PutDeliverySource service method. @@ -1505,7 +1505,7 @@ FOUNDATION_EXPORT NSString *const AWSLogsSDKVersion; - (AWSTask *)putDeliverySource:(AWSLogsPutDeliverySourceRequest *)request; /** -

Creates or updates a logical delivery source. A delivery source represents an Amazon Web Services resource that sends logs to an logs delivery destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

To configure logs delivery between a delivery destination and an Amazon Web Services service that is supported as a delivery source, you must do the following:

  • Use PutDeliverySource to create a delivery source, which is a logical object that represents the resource that is actually sending the logs.

  • Use PutDeliveryDestination to create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery source, all the current delivery source parameters are overwritten with the new parameter values that you specify.

+

Creates or updates a logical delivery source. A delivery source represents an Amazon Web Services resource that sends logs to an logs delivery destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

To configure logs delivery between a delivery destination and an Amazon Web Services service that is supported as a delivery source, you must do the following:

  • Use PutDeliverySource to create a delivery source, which is a logical object that represents the resource that is actually sending the logs.

  • Use PutDeliveryDestination to create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.

  • If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.

  • Use CreateDelivery to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery source, all the current delivery source parameters are overwritten with the new parameter values that you specify.

@param request A container for the necessary parameters to execute the PutDeliverySource service method. @param completionHandler The completion handler to call when the load request is complete. @@ -1705,6 +1705,31 @@ FOUNDATION_EXPORT NSString *const AWSLogsSDKVersion; */ - (void)putSubscriptionFilter:(AWSLogsPutSubscriptionFilterRequest *)request completionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler; +/** +

Starts a Live Tail streaming session for one or more log groups. A Live Tail session returns a stream of log events that have been recently ingested in the log groups. For more information, see Use Live Tail to view logs in near real time.

The response to this operation is a response stream, over which the server sends live log events and the client receives them.

The following objects are sent over the stream:

  • A single LiveTailSessionStart object is sent at the start of the session.

  • Every second, a LiveTailSessionUpdate object is sent. Each of these objects contains an array of the actual log events.

    If no new log events were ingested in the past second, the LiveTailSessionUpdate object will contain an empty array.

    The array of log events contained in a LiveTailSessionUpdate can include as many as 500 log events. If the number of log events matching the request exceeds 500 per second, the log events are sampled down to 500 log events to be included in each LiveTailSessionUpdate object.

    If your client consumes the log events slower than the server produces them, CloudWatch Logs buffers up to 10 LiveTailSessionUpdate events or 5000 log events, after which it starts dropping the oldest events.

  • A SessionStreamingException object is returned if an unknown error occurs on the server side.

  • A SessionTimeoutException object is returned when the session times out, after it has been kept open for three hours.

You can end a session before it times out by closing the session stream or by closing the client that is receiving the stream. The session also ends if the established connection between the client and the server breaks.

+ + @param request A container for the necessary parameters to execute the StartLiveTail service method. + + @return An instance of `AWSTask`. On successful execution, `task.result` will contain an instance of `AWSLogsStartLiveTailResponse`. On failed execution, `task.error` may contain an `NSError` with `AWSLogsErrorDomain` domain and the following error code: `AWSLogsErrorAccessDenied`, `AWSLogsErrorInvalidParameter`, `AWSLogsErrorResourceNotFound`, `AWSLogsErrorLimitExceeded`, `AWSLogsErrorInvalidOperation`. + + @see AWSLogsStartLiveTailRequest + @see AWSLogsStartLiveTailResponse + */ +- (AWSTask *)startLiveTail:(AWSLogsStartLiveTailRequest *)request; + +/** +

Starts a Live Tail streaming session for one or more log groups. A Live Tail session returns a stream of log events that have been recently ingested in the log groups. For more information, see Use Live Tail to view logs in near real time.

The response to this operation is a response stream, over which the server sends live log events and the client receives them.

The following objects are sent over the stream:

  • A single LiveTailSessionStart object is sent at the start of the session.

  • Every second, a LiveTailSessionUpdate object is sent. Each of these objects contains an array of the actual log events.

    If no new log events were ingested in the past second, the LiveTailSessionUpdate object will contain an empty array.

    The array of log events contained in a LiveTailSessionUpdate can include as many as 500 log events. If the number of log events matching the request exceeds 500 per second, the log events are sampled down to 500 log events to be included in each LiveTailSessionUpdate object.

    If your client consumes the log events slower than the server produces them, CloudWatch Logs buffers up to 10 LiveTailSessionUpdate events or 5000 log events, after which it starts dropping the oldest events.

  • A SessionStreamingException object is returned if an unknown error occurs on the server side.

  • A SessionTimeoutException object is returned when the session times out, after it has been kept open for three hours.

You can end a session before it times out by closing the session stream or by closing the client that is receiving the stream. The session also ends if the established connection between the client and the server breaks.

+ + @param request A container for the necessary parameters to execute the StartLiveTail service method. + @param completionHandler The completion handler to call when the load request is complete. + `response` - A response object, or `nil` if the request failed. + `error` - An error object that indicates why the request failed, or `nil` if the request was successful. On failed execution, `error` may contain an `NSError` with `AWSLogsErrorDomain` domain and the following error code: `AWSLogsErrorAccessDenied`, `AWSLogsErrorInvalidParameter`, `AWSLogsErrorResourceNotFound`, `AWSLogsErrorLimitExceeded`, `AWSLogsErrorInvalidOperation`. + + @see AWSLogsStartLiveTailRequest + @see AWSLogsStartLiveTailResponse + */ +- (void)startLiveTail:(AWSLogsStartLiveTailRequest *)request completionHandler:(void (^ _Nullable)(AWSLogsStartLiveTailResponse * _Nullable response, NSError * _Nullable error))completionHandler; + /**

Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group and time range to query and the query string to use.

For more information, see CloudWatch Logs Insights Query Syntax.

After you run a query using StartQuery, the query results are stored by CloudWatch Logs. You can use GetQueryResults to retrieve the results of a query, using the queryId that StartQuery returns.

If you have associated a KMS key with the query results in this account, then StartQuery uses that key to encrypt the results when it stores them. If no key is associated with query results, the query results are encrypted with the default CloudWatch Logs encryption method.

Queries time out after 60 minutes of runtime. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account to start a query in a linked source account. For more information, see CloudWatch cross-account observability. For a cross-account StartQuery operation, the query definition must be defined in the monitoring account.

You can have up to 30 concurrent CloudWatch Logs insights queries, including queries that have been added to dashboards.

diff --git a/AWSLogs/AWSLogsService.m b/AWSLogs/AWSLogsService.m index 31e96fdcce1..394bc601b53 100644 --- a/AWSLogs/AWSLogsService.m +++ b/AWSLogs/AWSLogsService.m @@ -1739,6 +1739,29 @@ - (void)putSubscriptionFilter:(AWSLogsPutSubscriptionFilterRequest *)request }]; } +- (AWSTask *)startLiveTail:(AWSLogsStartLiveTailRequest *)request { + return [self invokeRequest:request + HTTPMethod:AWSHTTPMethodPOST + URLString:@"" + targetPrefix:@"Logs_20140328" + operationName:@"StartLiveTail" + outputClass:[AWSLogsStartLiveTailResponse class]]; +} + +- (void)startLiveTail:(AWSLogsStartLiveTailRequest *)request + completionHandler:(void (^)(AWSLogsStartLiveTailResponse *response, NSError *error))completionHandler { + [[self startLiveTail:request] continueWithBlock:^id _Nullable(AWSTask * _Nonnull task) { + AWSLogsStartLiveTailResponse *result = task.result; + NSError *error = task.error; + + if (completionHandler) { + completionHandler(result, error); + } + + return nil; + }]; +} + - (AWSTask *)startQuery:(AWSLogsStartQueryRequest *)request { return [self invokeRequest:request HTTPMethod:AWSHTTPMethodPOST diff --git a/AWSLogsUnitTests/AWSGeneralLogsTests.m b/AWSLogsUnitTests/AWSGeneralLogsTests.m index 243d73a10d3..00830177390 100644 --- a/AWSLogsUnitTests/AWSGeneralLogsTests.m +++ b/AWSLogsUnitTests/AWSGeneralLogsTests.m @@ -3106,6 +3106,54 @@ - (void)testPutSubscriptionFilterCompletionHandler { [AWSLogs removeLogsForKey:key]; } +- (void)testStartLiveTail { + NSString *key = @"testStartLiveTail"; + AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:nil]; + [AWSLogs registerLogsWithConfiguration:configuration forKey:key]; + + AWSLogs *awsClient = [AWSLogs LogsForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); + [awsClient setValue:mockNetworking forKey:@"networking"]; + [[[[AWSLogs LogsForKey:key] startLiveTail:[AWSLogsStartLiveTailRequest new]] continueWithBlock:^id(AWSTask *task) { + XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); + XCTAssertNil(task.result); + return nil; + }] waitUntilFinished]; + + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + + [AWSLogs removeLogsForKey:key]; +} + +- (void)testStartLiveTailCompletionHandler { + NSString *key = @"testStartLiveTail"; + AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:nil]; + [AWSLogs registerLogsWithConfiguration:configuration forKey:key]; + + AWSLogs *awsClient = [AWSLogs LogsForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); + [awsClient setValue:mockNetworking forKey:@"networking"]; + + dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); + + [[AWSLogs LogsForKey:key] startLiveTail:[AWSLogsStartLiveTailRequest new] completionHandler:^(AWSLogsStartLiveTailResponse* _Nullable response, NSError * _Nullable error) { + XCTAssertNotNil(error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", error.domain); + XCTAssertEqual(8848, error.code); + XCTAssertNil(response); + dispatch_semaphore_signal(semaphore); + }]; + + dispatch_semaphore_wait(semaphore, dispatch_time(DISPATCH_TIME_NOW, (int)(2.0 * NSEC_PER_SEC))); + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + + [AWSLogs removeLogsForKey:key]; +} + - (void)testStartQuery { NSString *key = @"testStartQuery"; AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:nil]; diff --git a/AWSLogsUnitTests/AWSLogsNSSecureCodingTests.m b/AWSLogsUnitTests/AWSLogsNSSecureCodingTests.m index 906f16c8920..f753005da60 100644 --- a/AWSLogsUnitTests/AWSLogsNSSecureCodingTests.m +++ b/AWSLogsUnitTests/AWSLogsNSSecureCodingTests.m @@ -115,6 +115,10 @@ - (void) test_AWSLogsListTagsForResourceRequest API_AVAILABLE(ios(11)); - (void) test_AWSLogsListTagsForResourceResponse API_AVAILABLE(ios(11)); - (void) test_AWSLogsListTagsLogGroupRequest API_AVAILABLE(ios(11)); - (void) test_AWSLogsListTagsLogGroupResponse API_AVAILABLE(ios(11)); +- (void) test_AWSLogsLiveTailSessionLogEvent API_AVAILABLE(ios(11)); +- (void) test_AWSLogsLiveTailSessionMetadata API_AVAILABLE(ios(11)); +- (void) test_AWSLogsLiveTailSessionStart API_AVAILABLE(ios(11)); +- (void) test_AWSLogsLiveTailSessionUpdate API_AVAILABLE(ios(11)); - (void) test_AWSLogsLogGroup API_AVAILABLE(ios(11)); - (void) test_AWSLogsLogGroupField API_AVAILABLE(ios(11)); - (void) test_AWSLogsLogStream API_AVAILABLE(ios(11)); @@ -155,6 +159,9 @@ - (void) test_AWSLogsRejectedLogEventsInfo API_AVAILABLE(ios(11)); - (void) test_AWSLogsResourcePolicy API_AVAILABLE(ios(11)); - (void) test_AWSLogsResultField API_AVAILABLE(ios(11)); - (void) test_AWSLogsSearchedLogStream API_AVAILABLE(ios(11)); +- (void) test_AWSLogsStartLiveTailRequest API_AVAILABLE(ios(11)); +- (void) test_AWSLogsStartLiveTailResponse API_AVAILABLE(ios(11)); +- (void) test_AWSLogsStartLiveTailResponseStream API_AVAILABLE(ios(11)); - (void) test_AWSLogsStartQueryRequest API_AVAILABLE(ios(11)); - (void) test_AWSLogsStartQueryResponse API_AVAILABLE(ios(11)); - (void) test_AWSLogsStopQueryRequest API_AVAILABLE(ios(11)); @@ -558,6 +565,22 @@ - (void) test_AWSLogsListTagsLogGroupResponse { [self validateSecureCodingForClass:[AWSLogsListTagsLogGroupResponse class]]; } +- (void) test_AWSLogsLiveTailSessionLogEvent { + [self validateSecureCodingForClass:[AWSLogsLiveTailSessionLogEvent class]]; +} + +- (void) test_AWSLogsLiveTailSessionMetadata { + [self validateSecureCodingForClass:[AWSLogsLiveTailSessionMetadata class]]; +} + +- (void) test_AWSLogsLiveTailSessionStart { + [self validateSecureCodingForClass:[AWSLogsLiveTailSessionStart class]]; +} + +- (void) test_AWSLogsLiveTailSessionUpdate { + [self validateSecureCodingForClass:[AWSLogsLiveTailSessionUpdate class]]; +} + - (void) test_AWSLogsLogGroup { [self validateSecureCodingForClass:[AWSLogsLogGroup class]]; } @@ -718,6 +741,18 @@ - (void) test_AWSLogsSearchedLogStream { [self validateSecureCodingForClass:[AWSLogsSearchedLogStream class]]; } +- (void) test_AWSLogsStartLiveTailRequest { + [self validateSecureCodingForClass:[AWSLogsStartLiveTailRequest class]]; +} + +- (void) test_AWSLogsStartLiveTailResponse { + [self validateSecureCodingForClass:[AWSLogsStartLiveTailResponse class]]; +} + +- (void) test_AWSLogsStartLiveTailResponseStream { + [self validateSecureCodingForClass:[AWSLogsStartLiveTailResponseStream class]]; +} + - (void) test_AWSLogsStartQueryRequest { [self validateSecureCodingForClass:[AWSLogsStartQueryRequest class]]; }