internal PutRetentionPolicyResponse PutRetentionPolicy(PutRetentionPolicyRequest request) { var marshaller = new PutRetentionPolicyRequestMarshaller(); var unmarshaller = PutRetentionPolicyResponseUnmarshaller.Instance; return(Invoke <PutRetentionPolicyRequest, PutRetentionPolicyResponse>(request, marshaller, unmarshaller)); }
/// <summary> /// Creates the log group. /// </summary> /// <exception cref="Serilog.Sinks.AwsCloudWatch.AwsCloudWatchSinkException"></exception> private async Task CreateLogGroupAsync() { if (options.CreateLogGroup) { // see if the log group already exists var describeRequest = new DescribeLogGroupsRequest { LogGroupNamePrefix = options.LogGroupName }; var logGroups = await cloudWatchClient .DescribeLogGroupsAsync(describeRequest); var logGroup = logGroups .LogGroups .FirstOrDefault(lg => string.Equals(lg.LogGroupName, options.LogGroupName, StringComparison.Ordinal)); // create log group if it doesn't exist if (logGroup == null) { var createRequest = new CreateLogGroupRequest(options.LogGroupName); var createResponse = await cloudWatchClient.CreateLogGroupAsync(createRequest); // update the retention policy if a specific period is defined if (options.LogGroupRetentionPolicy != LogGroupRetentionPolicy.Indefinitely) { var putRetentionRequest = new PutRetentionPolicyRequest(options.LogGroupName, (int)options.LogGroupRetentionPolicy); await cloudWatchClient.PutRetentionPolicyAsync(putRetentionRequest); } } } }
/// <summary> /// Initiates the asynchronous execution of the PutRetentionPolicy operation. /// <seealso cref="Amazon.CloudWatchLogs.IAmazonCloudWatchLogs"/> /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the PutRetentionPolicy operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task <PutRetentionPolicyResponse> PutRetentionPolicyAsync(PutRetentionPolicyRequest request, CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new PutRetentionPolicyRequestMarshaller(); var unmarshaller = PutRetentionPolicyResponseUnmarshaller.Instance; return(Invoke <IRequest, PutRetentionPolicyRequest, PutRetentionPolicyResponse>(request, marshaller, unmarshaller, signer, cancellationToken)); }
internal PutRetentionPolicyResponse PutRetentionPolicy(PutRetentionPolicyRequest request) { var task = PutRetentionPolicyAsync(request); try { return(task.Result); } catch (AggregateException e) { ExceptionDispatchInfo.Capture(e.InnerException).Throw(); return(null); } }
private static void CreateLogGroup(IAmazonCloudWatchLogs client, string logGroupName, int retentionDays) { var createLogGroupRequest = new CreateLogGroupRequest { LogGroupName = logGroupName }; (client.CreateLogGroupAsync(createLogGroupRequest)).GetAwaiter() .GetResult(); Thread.Sleep(1000); var putRetentionPolicyRequest = new PutRetentionPolicyRequest { LogGroupName = logGroupName, RetentionInDays = retentionDays }; (client.PutRetentionPolicyAsync(putRetentionPolicyRequest)) .GetAwaiter().GetResult(); }