All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.logs.AWSLogsClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon CloudWatch Logs module holds the client classes that are used for communicating with Amazon CloudWatch Logs Service

There is a newer version: 1.12.780
Show newest version
/*
 * Copyright 2010-2016 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.
 */
package com.amazonaws.services.logs;

import org.w3c.dom.*;

import java.net.*;
import java.util.*;
import java.util.Map.Entry;

import org.apache.commons.logging.*;

import com.amazonaws.*;
import com.amazonaws.auth.*;
import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
import com.amazonaws.metrics.*;
import com.amazonaws.regions.*;
import com.amazonaws.transform.*;
import com.amazonaws.util.*;
import com.amazonaws.protocol.json.*;
import com.amazonaws.util.AWSRequestMetrics.Field;
import com.amazonaws.annotation.ThreadSafe;

import com.amazonaws.services.logs.model.*;
import com.amazonaws.services.logs.model.transform.*;

/**
 * Client for accessing Amazon CloudWatch Logs. All service calls made using
 * this client are blocking, and will not return until the service call
 * completes.
 * 

* Amazon CloudWatch Logs API Reference *

* You can use Amazon CloudWatch Logs to monitor, store, and access your log * files from Amazon Elastic Compute Cloud (Amazon EC2) instances, Amazon * CloudTrail, or other sources. You can then retrieve the associated log data * from CloudWatch Logs using the Amazon CloudWatch console, the CloudWatch Logs * commands in the AWS CLI, the CloudWatch Logs API, or the CloudWatch Logs SDK. *

*

* You can use CloudWatch Logs to: *

*
    *
  • *

    * Monitor Logs from Amazon EC2 Instances in Real-time: You can use * CloudWatch Logs to monitor applications and systems using log data. For * example, CloudWatch Logs can track the number of errors that occur in your * application logs and send you a notification whenever the rate of errors * exceeds a threshold you specify. CloudWatch Logs uses your log data for * monitoring; so, no code changes are required. For example, you can monitor * application logs for specific literal terms (such as * "NullReferenceException") or count the number of occurrences of a literal * term at a particular position in log data (such as "404" status codes in an * Apache access log). When the term you are searching for is found, CloudWatch * Logs reports the data to a Amazon CloudWatch metric that you specify. *

    *
  • *
  • *

    * Monitor Amazon CloudTrail Logged Events: You can create alarms in * Amazon CloudWatch and receive notifications of particular API activity as * captured by CloudTrail and use the notification to perform troubleshooting. *

    *
  • *
  • *

    * Archive Log Data: You can use CloudWatch Logs to store your log data * in highly durable storage. You can change the log retention setting so that * any log events older than this setting are automatically deleted. The * CloudWatch Logs agent makes it easy to quickly send both rotated and * non-rotated log data off of a host and into the log service. You can then * access the raw log data when you need it. *

    *
  • *
*/ @ThreadSafe public class AWSLogsClient extends AmazonWebServiceClient implements AWSLogs { /** Provider for AWS credentials. */ private AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AWSLogs.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "logs"; /** * Client configuration factory providing ClientConfigurations tailored to * this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final SdkJsonProtocolFactory protocolFactory = new SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode( "ResourceAlreadyExistsException") .withModeledClass( com.amazonaws.services.logs.model.ResourceAlreadyExistsException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("LimitExceededException") .withModeledClass( com.amazonaws.services.logs.model.LimitExceededException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode( "ServiceUnavailableException") .withModeledClass( com.amazonaws.services.logs.model.ServiceUnavailableException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode( "InvalidSequenceTokenException") .withModeledClass( com.amazonaws.services.logs.model.InvalidSequenceTokenException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("InvalidOperationException") .withModeledClass( com.amazonaws.services.logs.model.InvalidOperationException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("InvalidParameterException") .withModeledClass( com.amazonaws.services.logs.model.InvalidParameterException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("OperationAbortedException") .withModeledClass( com.amazonaws.services.logs.model.OperationAbortedException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode( "DataAlreadyAcceptedException") .withModeledClass( com.amazonaws.services.logs.model.DataAlreadyAcceptedException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("ResourceNotFoundException") .withModeledClass( com.amazonaws.services.logs.model.ResourceNotFoundException.class))); /** * Constructs a new client to invoke service methods on Amazon CloudWatch * Logs. A credentials provider chain will be used that searches for * credentials in this order: *
    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
* *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @see DefaultAWSCredentialsProviderChain */ public AWSLogsClient() { this(new DefaultAWSCredentialsProviderChain(), configFactory .getConfig()); } /** * Constructs a new client to invoke service methods on Amazon CloudWatch * Logs. A credentials provider chain will be used that searches for * credentials in this order: *

    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
* *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon CloudWatch Logs (ex: proxy settings, retry * counts, etc.). * * @see DefaultAWSCredentialsProviderChain */ public AWSLogsClient(ClientConfiguration clientConfiguration) { this(new DefaultAWSCredentialsProviderChain(), clientConfiguration); } /** * Constructs a new client to invoke service methods on Amazon CloudWatch * Logs using the specified AWS account credentials. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. */ public AWSLogsClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon CloudWatch * Logs using the specified AWS account credentials and client configuration * options. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon CloudWatch Logs (ex: proxy settings, retry * counts, etc.). */ public AWSLogsClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider( awsCredentials); init(); } /** * Constructs a new client to invoke service methods on Amazon CloudWatch * Logs using the specified AWS account credentials provider. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. */ public AWSLogsClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon CloudWatch * Logs using the specified AWS account credentials provider and client * configuration options. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon CloudWatch Logs (ex: proxy settings, retry * counts, etc.). */ public AWSLogsClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on Amazon CloudWatch * Logs using the specified AWS account credentials provider, client * configuration options, and request metric collector. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon CloudWatch Logs (ex: proxy settings, retry * counts, etc.). * @param requestMetricCollector * optional request metric collector */ public AWSLogsClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("https://logs.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s .addAll(chainFactory .newRequestHandlerChain("/com/amazonaws/services/logs/request.handlers")); requestHandler2s .addAll(chainFactory .newRequestHandler2Chain("/com/amazonaws/services/logs/request.handler2s")); } /** *

* Cancels an export task if it is in PENDING or * RUNNING state. *

* * @param cancelExportTaskRequest * @return Result of the CancelExportTask operation returned by the service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws InvalidOperationException * Returned if the operation is not valid on the specified resource * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.CancelExportTask */ @Override public CancelExportTaskResult cancelExportTask( CancelExportTaskRequest cancelExportTaskRequest) { ExecutionContext executionContext = createExecutionContext(cancelExportTaskRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CancelExportTaskRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(cancelExportTaskRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CancelExportTaskResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an ExportTask which allows you to efficiently export * data from a Log Group to your Amazon S3 bucket. *

*

* This is an asynchronous call. If all the required information is * provided, this API will initiate an export task and respond with the task * Id. Once started, DescribeExportTasks can be used to get the * status of an export task. You can only have one active ( * RUNNING or PENDING) export task at a time, per * account. *

*

* You can export logs from multiple log groups or multiple time ranges to * the same Amazon S3 bucket. To separate out log data for each export task, * you can specify a prefix that will be used as the Amazon S3 key prefix * for all exported objects. *

* * @param createExportTaskRequest * @return Result of the CreateExportTask operation returned by the service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws LimitExceededException * Returned if you have reached the maximum number of resources that * can be created. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws ResourceAlreadyExistsException * Returned if the specified resource already exists. * @sample AWSLogs.CreateExportTask */ @Override public CreateExportTaskResult createExportTask( CreateExportTaskRequest createExportTaskRequest) { ExecutionContext executionContext = createExecutionContext(createExportTaskRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateExportTaskRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(createExportTaskRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CreateExportTaskResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new log group with the specified name. The name of the log * group must be unique within a region for an AWS account. You can create * up to 500 log groups per account. *

*

* You must use the following guidelines when naming a log group: *

    *
  • Log group names can be between 1 and 512 characters long.
  • *
  • Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), * '/' (forward slash), and '.' (period).
  • *
*

* * @param createLogGroupRequest * @return Result of the CreateLogGroup operation returned by the service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceAlreadyExistsException * Returned if the specified resource already exists. * @throws LimitExceededException * Returned if you have reached the maximum number of resources that * can be created. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.CreateLogGroup */ @Override public CreateLogGroupResult createLogGroup( CreateLogGroupRequest createLogGroupRequest) { ExecutionContext executionContext = createExecutionContext(createLogGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateLogGroupRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(createLogGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CreateLogGroupResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new log stream in the specified log group. The name of the log * stream must be unique within the log group. There is no limit on the * number of log streams that can exist in a log group. *

*

* You must use the following guidelines when naming a log stream: *

    *
  • Log stream names can be between 1 and 512 characters long.
  • *
  • The ':' colon character is not allowed.
  • *
*

* * @param createLogStreamRequest * @return Result of the CreateLogStream operation returned by the service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceAlreadyExistsException * Returned if the specified resource already exists. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.CreateLogStream */ @Override public CreateLogStreamResult createLogStream( CreateLogStreamRequest createLogStreamRequest) { ExecutionContext executionContext = createExecutionContext(createLogStreamRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateLogStreamRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(createLogStreamRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CreateLogStreamResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the destination with the specified name and eventually disables * all the subscription filters that publish to it. This will not delete the * physical resource encapsulated by the destination. *

* * @param deleteDestinationRequest * @return Result of the DeleteDestination operation returned by the * service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.DeleteDestination */ @Override public DeleteDestinationResult deleteDestination( DeleteDestinationRequest deleteDestinationRequest) { ExecutionContext executionContext = createExecutionContext(deleteDestinationRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteDestinationRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(deleteDestinationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteDestinationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the log group with the specified name and permanently deletes all * the archived log events associated with it. *

* * @param deleteLogGroupRequest * @return Result of the DeleteLogGroup operation returned by the service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.DeleteLogGroup */ @Override public DeleteLogGroupResult deleteLogGroup( DeleteLogGroupRequest deleteLogGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteLogGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteLogGroupRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(deleteLogGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteLogGroupResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a log stream and permanently deletes all the archived log events * associated with it. *

* * @param deleteLogStreamRequest * @return Result of the DeleteLogStream operation returned by the service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.DeleteLogStream */ @Override public DeleteLogStreamResult deleteLogStream( DeleteLogStreamRequest deleteLogStreamRequest) { ExecutionContext executionContext = createExecutionContext(deleteLogStreamRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteLogStreamRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(deleteLogStreamRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteLogStreamResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a metric filter associated with the specified log group. *

* * @param deleteMetricFilterRequest * @return Result of the DeleteMetricFilter operation returned by the * service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.DeleteMetricFilter */ @Override public DeleteMetricFilterResult deleteMetricFilter( DeleteMetricFilterRequest deleteMetricFilterRequest) { ExecutionContext executionContext = createExecutionContext(deleteMetricFilterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteMetricFilterRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(deleteMetricFilterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteMetricFilterResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the retention policy of the specified log group. Log events would * not expire if they belong to log groups without a retention policy. *

* * @param deleteRetentionPolicyRequest * @return Result of the DeleteRetentionPolicy operation returned by the * service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.DeleteRetentionPolicy */ @Override public DeleteRetentionPolicyResult deleteRetentionPolicy( DeleteRetentionPolicyRequest deleteRetentionPolicyRequest) { ExecutionContext executionContext = createExecutionContext(deleteRetentionPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteRetentionPolicyRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(deleteRetentionPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteRetentionPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a subscription filter associated with the specified log group. *

* * @param deleteSubscriptionFilterRequest * @return Result of the DeleteSubscriptionFilter operation returned by the * service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.DeleteSubscriptionFilter */ @Override public DeleteSubscriptionFilterResult deleteSubscriptionFilter( DeleteSubscriptionFilterRequest deleteSubscriptionFilterRequest) { ExecutionContext executionContext = createExecutionContext(deleteSubscriptionFilterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteSubscriptionFilterRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(deleteSubscriptionFilterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteSubscriptionFilterResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns all the destinations that are associated with the AWS account * making the request. The list returned in the response is ASCII-sorted by * destination name. *

*

* By default, this operation returns up to 50 destinations. If there are * more destinations to list, the response would contain a * nextToken value in the response body. You can * also limit the number of destinations returned in the response by * specifying the limit parameter in the request. *

* * @param describeDestinationsRequest * @return Result of the DescribeDestinations operation returned by the * service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.DescribeDestinations */ @Override public DescribeDestinationsResult describeDestinations( DescribeDestinationsRequest describeDestinationsRequest) { ExecutionContext executionContext = createExecutionContext(describeDestinationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDestinationsRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeDestinationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeDestinationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeDestinationsResult describeDestinations() { return describeDestinations(new DescribeDestinationsRequest()); } /** *

* Returns all the export tasks that are associated with the AWS account * making the request. The export tasks can be filtered based on * TaskId or TaskStatus. *

*

* By default, this operation returns up to 50 export tasks that satisfy the * specified filters. If there are more export tasks to list, the response * would contain a nextToken value in the response * body. You can also limit the number of export tasks returned in the * response by specifying the limit parameter in * the request. *

* * @param describeExportTasksRequest * @return Result of the DescribeExportTasks operation returned by the * service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.DescribeExportTasks */ @Override public DescribeExportTasksResult describeExportTasks( DescribeExportTasksRequest describeExportTasksRequest) { ExecutionContext executionContext = createExecutionContext(describeExportTasksRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeExportTasksRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeExportTasksRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeExportTasksResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns all the log groups that are associated with the AWS account * making the request. The list returned in the response is ASCII-sorted by * log group name. *

*

* By default, this operation returns up to 50 log groups. If there are more * log groups to list, the response would contain a * nextToken value in the response body. You can * also limit the number of log groups returned in the response by * specifying the limit parameter in the request. *

* * @param describeLogGroupsRequest * @return Result of the DescribeLogGroups operation returned by the * service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.DescribeLogGroups */ @Override public DescribeLogGroupsResult describeLogGroups( DescribeLogGroupsRequest describeLogGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeLogGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeLogGroupsRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeLogGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeLogGroupsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeLogGroupsResult describeLogGroups() { return describeLogGroups(new DescribeLogGroupsRequest()); } /** *

* Returns all the log streams that are associated with the specified log * group. The list returned in the response is ASCII-sorted by log stream * name. *

*

* By default, this operation returns up to 50 log streams. If there are * more log streams to list, the response would contain a * nextToken value in the response body. You can * also limit the number of log streams returned in the response by * specifying the limit parameter in the request. * This operation has a limit of five transactions per second, after which * transactions are throttled. *

* * @param describeLogStreamsRequest * @return Result of the DescribeLogStreams operation returned by the * service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.DescribeLogStreams */ @Override public DescribeLogStreamsResult describeLogStreams( DescribeLogStreamsRequest describeLogStreamsRequest) { ExecutionContext executionContext = createExecutionContext(describeLogStreamsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeLogStreamsRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeLogStreamsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeLogStreamsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns all the metrics filters associated with the specified log group. * The list returned in the response is ASCII-sorted by filter name. *

*

* By default, this operation returns up to 50 metric filters. If there are * more metric filters to list, the response would contain a * nextToken value in the response body. You can * also limit the number of metric filters returned in the response by * specifying the limit parameter in the request. *

* * @param describeMetricFiltersRequest * @return Result of the DescribeMetricFilters operation returned by the * service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.DescribeMetricFilters */ @Override public DescribeMetricFiltersResult describeMetricFilters( DescribeMetricFiltersRequest describeMetricFiltersRequest) { ExecutionContext executionContext = createExecutionContext(describeMetricFiltersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeMetricFiltersRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeMetricFiltersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeMetricFiltersResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns all the subscription filters associated with the specified log * group. The list returned in the response is ASCII-sorted by filter name. *

*

* By default, this operation returns up to 50 subscription filters. If * there are more subscription filters to list, the response would contain a * nextToken value in the response body. You can * also limit the number of subscription filters returned in the response by * specifying the limit parameter in the request. *

* * @param describeSubscriptionFiltersRequest * @return Result of the DescribeSubscriptionFilters operation returned by * the service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.DescribeSubscriptionFilters */ @Override public DescribeSubscriptionFiltersResult describeSubscriptionFilters( DescribeSubscriptionFiltersRequest describeSubscriptionFiltersRequest) { ExecutionContext executionContext = createExecutionContext(describeSubscriptionFiltersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeSubscriptionFiltersRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeSubscriptionFiltersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeSubscriptionFiltersResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves log events, optionally filtered by a filter pattern from the * specified log group. You can provide an optional time range to filter the * results on the event timestamp. You can limit * the streams searched to an explicit list of * logStreamNames. *

*

* By default, this operation returns as much matching log events as can fit * in a response size of 1MB, up to 10,000 log events, or all the events * found within a time-bounded scan window. If the response includes a * nextToken, then there is more data to search, * and the search can be resumed with a new request providing the nextToken. * The response will contain a list of * searchedLogStreams that contains information * about which streams were searched in the request and whether they have * been searched completely or require further pagination. The * limit parameter in the request. can be used to * specify the maximum number of events to return in a page. *

* * @param filterLogEventsRequest * @return Result of the FilterLogEvents operation returned by the service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.FilterLogEvents */ @Override public FilterLogEventsResult filterLogEvents( FilterLogEventsRequest filterLogEventsRequest) { ExecutionContext executionContext = createExecutionContext(filterLogEventsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new FilterLogEventsRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(filterLogEventsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new FilterLogEventsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves log events from the specified log stream. You can provide an * optional time range to filter the results on the event * timestamp. *

*

* By default, this operation returns as much log events as can fit in a * response size of 1MB, up to 10,000 log events. The response will always * include a nextForwardToken and a * nextBackwardToken in the response body. You can * use any of these tokens in subsequent * GetLogEvents requests to paginate through * events in either forward or backward direction. You can also limit the * number of log events returned in the response by specifying the * limit parameter in the request. *

* * @param getLogEventsRequest * @return Result of the GetLogEvents operation returned by the service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.GetLogEvents */ @Override public GetLogEventsResult getLogEvents( GetLogEventsRequest getLogEventsRequest) { ExecutionContext executionContext = createExecutionContext(getLogEventsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetLogEventsRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(getLogEventsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new GetLogEventsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates or updates a Destination. A destination encapsulates * a physical resource (such as a Kinesis stream) and allows you to * subscribe to a real-time stream of log events of a different account, * ingested through PutLogEvents requests. * Currently, the only supported physical resource is a Amazon Kinesis * stream belonging to the same account as the destination. *

*

* A destination controls what is written to its Amazon Kinesis stream * through an access policy. By default, PutDestination does not set any * access policy with the destination, which means a cross-account user will * not be able to call PutSubscriptionFilter against this * destination. To enable that, the destination owner must call * PutDestinationPolicy after PutDestination. *

* * @param putDestinationRequest * @return Result of the PutDestination operation returned by the service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.PutDestination */ @Override public PutDestinationResult putDestination( PutDestinationRequest putDestinationRequest) { ExecutionContext executionContext = createExecutionContext(putDestinationRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutDestinationRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(putDestinationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new PutDestinationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates or updates an access policy associated with an existing * Destination. An access policy is an IAM policy document that is used to authorize claims to register a * subscription filter against a given destination. *

* * @param putDestinationPolicyRequest * @return Result of the PutDestinationPolicy operation returned by the * service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.PutDestinationPolicy */ @Override public PutDestinationPolicyResult putDestinationPolicy( PutDestinationPolicyRequest putDestinationPolicyRequest) { ExecutionContext executionContext = createExecutionContext(putDestinationPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutDestinationPolicyRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(putDestinationPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new PutDestinationPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Uploads a batch of log events to the specified log stream. *

*

* Every PutLogEvents request must include the * sequenceToken obtained from the response of the * previous request. An upload in a newly created log stream does not * require a sequenceToken. *

*

* The batch of events must satisfy the following constraints: *

    *
  • The maximum batch size is 1,048,576 bytes, and this size is * calculated as the sum of all event messages in UTF-8, plus 26 bytes for * each log event.
  • *
  • None of the log events in the batch can be more than 2 hours in the * future.
  • *
  • None of the log events in the batch can be older than 14 days or the * retention period of the log group.
  • *
  • The log events in the batch must be in chronological ordered by their * timestamp.
  • *
  • The maximum number of log events in a batch is 10,000.
  • *
  • A batch of log events in a single PutLogEvents request cannot span * more than 24 hours. Otherwise, the PutLogEvents operation will fail.
  • *
*

* * @param putLogEventsRequest * @return Result of the PutLogEvents operation returned by the service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws InvalidSequenceTokenException * @throws DataAlreadyAcceptedException * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.PutLogEvents */ @Override public PutLogEventsResult putLogEvents( PutLogEventsRequest putLogEventsRequest) { ExecutionContext executionContext = createExecutionContext(putLogEventsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutLogEventsRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(putLogEventsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new PutLogEventsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates or updates a metric filter and associates it with the specified * log group. Metric filters allow you to configure rules to extract metric * data from log events ingested through * PutLogEvents requests. *

*

* The maximum number of metric filters that can be associated with a log * group is 100. *

* * @param putMetricFilterRequest * @return Result of the PutMetricFilter operation returned by the service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws LimitExceededException * Returned if you have reached the maximum number of resources that * can be created. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.PutMetricFilter */ @Override public PutMetricFilterResult putMetricFilter( PutMetricFilterRequest putMetricFilterRequest) { ExecutionContext executionContext = createExecutionContext(putMetricFilterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutMetricFilterRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(putMetricFilterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new PutMetricFilterResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Sets the retention of the specified log group. A retention policy allows * you to configure the number of days you want to retain log events in the * specified log group. *

* * @param putRetentionPolicyRequest * @return Result of the PutRetentionPolicy operation returned by the * service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.PutRetentionPolicy */ @Override public PutRetentionPolicyResult putRetentionPolicy( PutRetentionPolicyRequest putRetentionPolicyRequest) { ExecutionContext executionContext = createExecutionContext(putRetentionPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutRetentionPolicyRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(putRetentionPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new PutRetentionPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates or updates a subscription filter and associates it with the * specified log group. Subscription filters allow you to subscribe to a * real-time stream of log events ingested through * PutLogEvents requests and have them delivered * to a specific destination. Currently, the supported destinations are: *

    *
  • An Amazon Kinesis stream belonging to the same account as the * subscription filter, for same-account delivery.
  • *
  • A logical destination (used via an ARN of Destination) * belonging to a different account, for cross-account delivery.
  • *
  • An Amazon Kinesis Firehose stream belonging to the same account as * the subscription filter, for same-account delivery.
  • *
  • An AWS Lambda function belonging to the same account as the * subscription filter, for same-account delivery.
  • *
*

*

* Currently there can only be one subscription filter associated with a log * group. *

* * @param putSubscriptionFilterRequest * @return Result of the PutSubscriptionFilter operation returned by the * service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ResourceNotFoundException * Returned if the specified resource does not exist. * @throws OperationAbortedException * Returned if multiple requests to update the same resource were in * conflict. * @throws LimitExceededException * Returned if you have reached the maximum number of resources that * can be created. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.PutSubscriptionFilter */ @Override public PutSubscriptionFilterResult putSubscriptionFilter( PutSubscriptionFilterRequest putSubscriptionFilterRequest) { ExecutionContext executionContext = createExecutionContext(putSubscriptionFilterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutSubscriptionFilterRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(putSubscriptionFilterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new PutSubscriptionFilterResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Tests the filter pattern of a metric filter against a sample of log event * messages. You can use this operation to validate the correctness of a * metric filter pattern. *

* * @param testMetricFilterRequest * @return Result of the TestMetricFilter operation returned by the service. * @throws InvalidParameterException * Returned if a parameter of the request is incorrectly specified. * @throws ServiceUnavailableException * Returned if the service cannot complete the request. * @sample AWSLogs.TestMetricFilter */ @Override public TestMetricFilterResult testMetricFilter( TestMetricFilterRequest testMetricFilterRequest) { ExecutionContext executionContext = createExecutionContext(testMetricFilterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new TestMetricFilterRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(testMetricFilterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new TestMetricFilterResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * Returns additional metadata for a previously executed successful, * request, typically used for debugging issues where a service isn't acting * as expected. This data isn't considered part of the result data returned * by an operation, so it's available through this separate, diagnostic * interface. *

* Response metadata is only cached for a limited period of time, so if you * need to access this extra diagnostic information for an executed request, * you should use this method to retrieve it as soon as possible after * executing the request. * * @param request * The originally executed request * * @return The response metadata for the specified request, or null if none * is available. */ public ResponseMetadata getCachedResponseMetadata( AmazonWebServiceRequest request) { return client.getResponseMetadataForRequest(request); } /** * Normal invoke with authentication. Credentials are required and may be * overriden at the request level. **/ private Response invoke( Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { executionContext.setCredentialsProvider(CredentialUtils .getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext); } /** * Invoke with no authentication. Credentials are not required and any * credentials set on the client or request will be ignored for this * operation. **/ private Response anonymousInvoke( Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return doInvoke(request, responseHandler, executionContext); } /** * Invoke the request using the http client. Assumes credentials (or lack * thereof) have been configured in the ExecutionContext beforehand. **/ private Response doInvoke( Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { request.setEndpoint(endpoint); request.setTimeOffset(timeOffset); HttpResponseHandler errorResponseHandler = protocolFactory .createErrorResponseHandler(new JsonErrorResponseMetadata()); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy