diff env/lib/python3.7/site-packages/boto/logs/layer1.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/boto/logs/layer1.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,576 +0,0 @@
-# Copyright (c) 2014 Amazon.com, Inc. or its affiliates.  All Rights Reserved
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish, dis-
-# tribute, sublicense, and/or sell copies of the Software, and to permit
-# persons to whom the Software is furnished to do so, subject to the fol-
-# lowing conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
-# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
-# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-#
-
-import boto
-from boto.connection import AWSQueryConnection
-from boto.regioninfo import RegionInfo
-from boto.exception import JSONResponseError
-from boto.logs import exceptions
-from boto.compat import json
-
-
-class CloudWatchLogsConnection(AWSQueryConnection):
-    """
-    Amazon CloudWatch Logs Service API Reference
-    This is the Amazon CloudWatch Logs API Reference . Amazon
-    CloudWatch Logs is a managed service for real time monitoring and
-    archival of application logs. This guide provides detailed
-    information about Amazon CloudWatch Logs actions, data types,
-    parameters, and errors. For detailed information about Amazon
-    CloudWatch Logs features and their associated API calls, go to the
-    `Amazon CloudWatch Logs Developer Guide`_.
-
-    Use the following links to get started using the Amazon CloudWatch
-    API Reference :
-
-
-    + `Actions`_: An alphabetical list of all Amazon CloudWatch Logs
-      actions.
-    + `Data Types`_: An alphabetical list of all Amazon CloudWatch
-      Logs data types.
-    + `Common Parameters`_: Parameters that all Query actions can use.
-    + `Common Errors`_: Client and server errors that all actions can
-      return.
-    + `Regions and Endpoints`_: Itemized regions and endpoints for all
-      AWS products.
-
-
-    In addition to using the Amazon CloudWatch Logs API, you can also
-    use the following SDKs and third-party libraries to access Amazon
-    CloudWatch Logs programmatically.
-
-
-    + `AWS SDK for Java Documentation`_
-    + `AWS SDK for .NET Documentation`_
-    + `AWS SDK for PHP Documentation`_
-    + `AWS SDK for Ruby Documentation`_
-
-
-    Developers in the AWS developer community also provide their own
-    libraries, which you can find at the following AWS developer
-    centers:
-
-
-    + `AWS Java Developer Center`_
-    + `AWS PHP Developer Center`_
-    + `AWS Python Developer Center`_
-    + `AWS Ruby Developer Center`_
-    + `AWS Windows and .NET Developer Center`_
-    """
-    APIVersion = "2014-03-28"
-    DefaultRegionName = "us-east-1"
-    DefaultRegionEndpoint = "logs.us-east-1.amazonaws.com"
-    ServiceName = "CloudWatchLogs"
-    TargetPrefix = "Logs_20140328"
-    ResponseError = JSONResponseError
-
-    _faults = {
-        "LimitExceededException": exceptions.LimitExceededException,
-        "DataAlreadyAcceptedException": exceptions.DataAlreadyAcceptedException,
-        "ResourceInUseException": exceptions.ResourceInUseException,
-        "ServiceUnavailableException": exceptions.ServiceUnavailableException,
-        "InvalidParameterException": exceptions.InvalidParameterException,
-        "ResourceNotFoundException": exceptions.ResourceNotFoundException,
-        "ResourceAlreadyExistsException": exceptions.ResourceAlreadyExistsException,
-        "OperationAbortedException": exceptions.OperationAbortedException,
-        "InvalidSequenceTokenException": exceptions.InvalidSequenceTokenException,
-    }
-
-    def __init__(self, **kwargs):
-        region = kwargs.pop('region', None)
-        if not region:
-            region = RegionInfo(self, self.DefaultRegionName,
-                                self.DefaultRegionEndpoint)
-
-        if 'host' not in kwargs or kwargs['host'] is None:
-            kwargs['host'] = region.endpoint
-
-        super(CloudWatchLogsConnection, self).__init__(**kwargs)
-        self.region = region
-
-    def _required_auth_capability(self):
-        return ['hmac-v4']
-
-    def create_log_group(self, log_group_name):
-        """
-        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 100 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 az, AZ, 09, '_' (underscore), '-'
-          (hyphen), '/' (forward slash), and '.' (period).
-
-
-
-        Log groups are created with a default retention of 14 days.
-        The retention attribute allow you to configure the number of
-        days you want to retain log events in the specified log group.
-        See the `SetRetention` operation on how to modify the
-        retention of your log groups.
-
-        :type log_group_name: string
-        :param log_group_name:
-
-        """
-        params = {'logGroupName': log_group_name, }
-        return self.make_request(action='CreateLogGroup',
-                                 body=json.dumps(params))
-
-    def create_log_stream(self, log_group_name, log_stream_name):
-        """
-        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.
-
-        :type log_group_name: string
-        :param log_group_name:
-
-        :type log_stream_name: string
-        :param log_stream_name:
-
-        """
-        params = {
-            'logGroupName': log_group_name,
-            'logStreamName': log_stream_name,
-        }
-        return self.make_request(action='CreateLogStream',
-                                 body=json.dumps(params))
-
-    def delete_log_group(self, log_group_name):
-        """
-        Deletes the log group with the specified name. Amazon
-        CloudWatch Logs will delete a log group only if there are no
-        log streams and no metric filters associated with the log
-        group. If this condition is not satisfied, the request will
-        fail and the log group will not be deleted.
-
-        :type log_group_name: string
-        :param log_group_name:
-
-        """
-        params = {'logGroupName': log_group_name, }
-        return self.make_request(action='DeleteLogGroup',
-                                 body=json.dumps(params))
-
-    def delete_log_stream(self, log_group_name, log_stream_name):
-        """
-        Deletes a log stream and permanently deletes all the archived
-        log events associated with it.
-
-        :type log_group_name: string
-        :param log_group_name:
-
-        :type log_stream_name: string
-        :param log_stream_name:
-
-        """
-        params = {
-            'logGroupName': log_group_name,
-            'logStreamName': log_stream_name,
-        }
-        return self.make_request(action='DeleteLogStream',
-                                 body=json.dumps(params))
-
-    def delete_metric_filter(self, log_group_name, filter_name):
-        """
-        Deletes a metric filter associated with the specified log
-        group.
-
-        :type log_group_name: string
-        :param log_group_name:
-
-        :type filter_name: string
-        :param filter_name: The name of the metric filter.
-
-        """
-        params = {
-            'logGroupName': log_group_name,
-            'filterName': filter_name,
-        }
-        return self.make_request(action='DeleteMetricFilter',
-                                 body=json.dumps(params))
-
-    def delete_retention_policy(self, log_group_name):
-        """
-        
-
-        :type log_group_name: string
-        :param log_group_name:
-
-        """
-        params = {'logGroupName': log_group_name, }
-        return self.make_request(action='DeleteRetentionPolicy',
-                                 body=json.dumps(params))
-
-    def describe_log_groups(self, log_group_name_prefix=None,
-                            next_token=None, limit=None):
-        """
-        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.
-
-        :type log_group_name_prefix: string
-        :param log_group_name_prefix:
-
-        :type next_token: string
-        :param next_token: A string token used for pagination that points to
-            the next page of results. It must be a value obtained from the
-            response of the previous `DescribeLogGroups` request.
-
-        :type limit: integer
-        :param limit: The maximum number of items returned in the response. If
-            you don't specify a value, the request would return up to 50 items.
-
-        """
-        params = {}
-        if log_group_name_prefix is not None:
-            params['logGroupNamePrefix'] = log_group_name_prefix
-        if next_token is not None:
-            params['nextToken'] = next_token
-        if limit is not None:
-            params['limit'] = limit
-        return self.make_request(action='DescribeLogGroups',
-                                 body=json.dumps(params))
-
-    def describe_log_streams(self, log_group_name,
-                             log_stream_name_prefix=None, next_token=None,
-                             limit=None):
-        """
-        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.
-
-        :type log_group_name: string
-        :param log_group_name:
-
-        :type log_stream_name_prefix: string
-        :param log_stream_name_prefix:
-
-        :type next_token: string
-        :param next_token: A string token used for pagination that points to
-            the next page of results. It must be a value obtained from the
-            response of the previous `DescribeLogStreams` request.
-
-        :type limit: integer
-        :param limit: The maximum number of items returned in the response. If
-            you don't specify a value, the request would return up to 50 items.
-
-        """
-        params = {'logGroupName': log_group_name, }
-        if log_stream_name_prefix is not None:
-            params['logStreamNamePrefix'] = log_stream_name_prefix
-        if next_token is not None:
-            params['nextToken'] = next_token
-        if limit is not None:
-            params['limit'] = limit
-        return self.make_request(action='DescribeLogStreams',
-                                 body=json.dumps(params))
-
-    def describe_metric_filters(self, log_group_name,
-                                filter_name_prefix=None, next_token=None,
-                                limit=None):
-        """
-        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.
-
-        :type log_group_name: string
-        :param log_group_name:
-
-        :type filter_name_prefix: string
-        :param filter_name_prefix: The name of the metric filter.
-
-        :type next_token: string
-        :param next_token: A string token used for pagination that points to
-            the next page of results. It must be a value obtained from the
-            response of the previous `DescribeMetricFilters` request.
-
-        :type limit: integer
-        :param limit: The maximum number of items returned in the response. If
-            you don't specify a value, the request would return up to 50 items.
-
-        """
-        params = {'logGroupName': log_group_name, }
-        if filter_name_prefix is not None:
-            params['filterNamePrefix'] = filter_name_prefix
-        if next_token is not None:
-            params['nextToken'] = next_token
-        if limit is not None:
-            params['limit'] = limit
-        return self.make_request(action='DescribeMetricFilters',
-                                 body=json.dumps(params))
-
-    def get_log_events(self, log_group_name, log_stream_name,
-                       start_time=None, end_time=None, next_token=None,
-                       limit=None, start_from_head=None):
-        """
-        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.
-
-        :type log_group_name: string
-        :param log_group_name:
-
-        :type log_stream_name: string
-        :param log_stream_name:
-
-        :type start_time: long
-        :param start_time: A point in time expressed as the number milliseconds
-            since Jan 1, 1970 00:00:00 UTC.
-
-        :type end_time: long
-        :param end_time: A point in time expressed as the number milliseconds
-            since Jan 1, 1970 00:00:00 UTC.
-
-        :type next_token: string
-        :param next_token: A string token used for pagination that points to
-            the next page of results. It must be a value obtained from the
-            `nextForwardToken` or `nextBackwardToken` fields in the response of
-            the previous `GetLogEvents` request.
-
-        :type limit: integer
-        :param limit: The maximum number of log events returned in the
-            response. If you don't specify a value, the request would return as
-            much log events as can fit in a response size of 1MB, up to 10,000
-            log events.
-
-        :type start_from_head: boolean
-        :param start_from_head:
-
-        """
-        params = {
-            'logGroupName': log_group_name,
-            'logStreamName': log_stream_name,
-        }
-        if start_time is not None:
-            params['startTime'] = start_time
-        if end_time is not None:
-            params['endTime'] = end_time
-        if next_token is not None:
-            params['nextToken'] = next_token
-        if limit is not None:
-            params['limit'] = limit
-        if start_from_head is not None:
-            params['startFromHead'] = start_from_head
-        return self.make_request(action='GetLogEvents',
-                                 body=json.dumps(params))
-
-    def put_log_events(self, log_group_name, log_stream_name, log_events,
-                       sequence_token=None):
-        """
-        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 32,768 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 1,000.
-
-        :type log_group_name: string
-        :param log_group_name:
-
-        :type log_stream_name: string
-        :param log_stream_name:
-
-        :type log_events: list
-        :param log_events: A list of events belonging to a log stream.
-
-        :type sequence_token: string
-        :param sequence_token: A string token that must be obtained from the
-            response of the previous `PutLogEvents` request.
-
-        """
-        params = {
-            'logGroupName': log_group_name,
-            'logStreamName': log_stream_name,
-            'logEvents': log_events,
-        }
-        if sequence_token is not None:
-            params['sequenceToken'] = sequence_token
-        return self.make_request(action='PutLogEvents',
-                                 body=json.dumps(params))
-
-    def put_metric_filter(self, log_group_name, filter_name, filter_pattern,
-                          metric_transformations):
-        """
-        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.
-
-        :type log_group_name: string
-        :param log_group_name:
-
-        :type filter_name: string
-        :param filter_name: The name of the metric filter.
-
-        :type filter_pattern: string
-        :param filter_pattern:
-
-        :type metric_transformations: list
-        :param metric_transformations:
-
-        """
-        params = {
-            'logGroupName': log_group_name,
-            'filterName': filter_name,
-            'filterPattern': filter_pattern,
-            'metricTransformations': metric_transformations,
-        }
-        return self.make_request(action='PutMetricFilter',
-                                 body=json.dumps(params))
-
-    def put_retention_policy(self, log_group_name, retention_in_days):
-        """
-        
-
-        :type log_group_name: string
-        :param log_group_name:
-
-        :type retention_in_days: integer
-        :param retention_in_days: Specifies the number of days you want to
-            retain log events in the specified log group. Possible values are:
-            1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 547, 730.
-
-        """
-        params = {
-            'logGroupName': log_group_name,
-            'retentionInDays': retention_in_days,
-        }
-        return self.make_request(action='PutRetentionPolicy',
-                                 body=json.dumps(params))
-
-    def set_retention(self, log_group_name, retention_in_days):
-        """
-        Sets the retention of the specified log group. Log groups are
-        created with a default retention of 14 days. The retention
-        attribute allow you to configure the number of days you want
-        to retain log events in the specified log group.
-
-        :type log_group_name: string
-        :param log_group_name:
-
-        :type retention_in_days: integer
-        :param retention_in_days: Specifies the number of days you want to
-            retain log events in the specified log group. Possible values are:
-            1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 547, 730.
-
-        """
-        params = {
-            'logGroupName': log_group_name,
-            'retentionInDays': retention_in_days,
-        }
-        return self.make_request(action='SetRetention',
-                                 body=json.dumps(params))
-
-    def test_metric_filter(self, filter_pattern, log_event_messages):
-        """
-        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.
-
-        :type filter_pattern: string
-        :param filter_pattern:
-
-        :type log_event_messages: list
-        :param log_event_messages:
-
-        """
-        params = {
-            'filterPattern': filter_pattern,
-            'logEventMessages': log_event_messages,
-        }
-        return self.make_request(action='TestMetricFilter',
-                                 body=json.dumps(params))
-
-    def make_request(self, action, body):
-        headers = {
-            'X-Amz-Target': '%s.%s' % (self.TargetPrefix, action),
-            'Host': self.region.endpoint,
-            'Content-Type': 'application/x-amz-json-1.1',
-            'Content-Length': str(len(body)),
-        }
-        http_request = self.build_base_http_request(
-            method='POST', path='/', auth_path='/', params={},
-            headers=headers, data=body)
-        response = self._mexe(http_request, sender=None,
-                              override_num_retries=10)
-        response_body = response.read().decode('utf-8')
-        boto.log.debug(response_body)
-        if response.status == 200:
-            if response_body:
-                return json.loads(response_body)
-        else:
-            json_body = json.loads(response_body)
-            fault_name = json_body.get('__type', None)
-            exception_class = self._faults.get(fault_name, self.ResponseError)
-            raise exception_class(response.status, response.reason,
-                                  body=json_body)