Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/boto/cloudtrail/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/cloudtrail/layer1.py Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,374 +0,0 @@ -# Copyright (c) 2015 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.cloudtrail import exceptions -from boto.compat import json - - -class CloudTrailConnection(AWSQueryConnection): - """ - AWS CloudTrail - This is the CloudTrail API Reference. It provides descriptions of - actions, data types, common parameters, and common errors for - CloudTrail. - - CloudTrail is a web service that records AWS API calls for your - AWS account and delivers log files to an Amazon S3 bucket. The - recorded information includes the identity of the user, the start - time of the AWS API call, the source IP address, the request - parameters, and the response elements returned by the service. - - As an alternative to using the API, you can use one of the AWS - SDKs, which consist of libraries and sample code for various - programming languages and platforms (Java, Ruby, .NET, iOS, - Android, etc.). The SDKs provide a convenient way to create - programmatic access to AWSCloudTrail. For example, the SDKs take - care of cryptographically signing requests, managing errors, and - retrying requests automatically. For information about the AWS - SDKs, including how to download and install them, see the `Tools - for Amazon Web Services page`_. - - See the CloudTrail User Guide for information about the data that - is included with each AWS API call listed in the log files. - """ - APIVersion = "2013-11-01" - DefaultRegionName = "us-east-1" - DefaultRegionEndpoint = "cloudtrail.us-east-1.amazonaws.com" - ServiceName = "CloudTrail" - TargetPrefix = "com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101" - ResponseError = JSONResponseError - - _faults = { - "InvalidMaxResultsException": exceptions.InvalidMaxResultsException, - "InvalidSnsTopicNameException": exceptions.InvalidSnsTopicNameException, - "InvalidS3BucketNameException": exceptions.InvalidS3BucketNameException, - "TrailAlreadyExistsException": exceptions.TrailAlreadyExistsException, - "InvalidTimeRangeException": exceptions.InvalidTimeRangeException, - "InvalidLookupAttributesException": exceptions.InvalidLookupAttributesException, - "InsufficientSnsTopicPolicyException": exceptions.InsufficientSnsTopicPolicyException, - "InvalidCloudWatchLogsLogGroupArnException": exceptions.InvalidCloudWatchLogsLogGroupArnException, - "InvalidCloudWatchLogsRoleArnException": exceptions.InvalidCloudWatchLogsRoleArnException, - "InvalidTrailNameException": exceptions.InvalidTrailNameException, - "CloudWatchLogsDeliveryUnavailableException": exceptions.CloudWatchLogsDeliveryUnavailableException, - "TrailNotFoundException": exceptions.TrailNotFoundException, - "S3BucketDoesNotExistException": exceptions.S3BucketDoesNotExistException, - "InvalidNextTokenException": exceptions.InvalidNextTokenException, - "InvalidS3PrefixException": exceptions.InvalidS3PrefixException, - "MaximumNumberOfTrailsExceededException": exceptions.MaximumNumberOfTrailsExceededException, - "InsufficientS3BucketPolicyException": exceptions.InsufficientS3BucketPolicyException, - } - - - 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(CloudTrailConnection, self).__init__(**kwargs) - self.region = region - - def _required_auth_capability(self): - return ['hmac-v4'] - - def create_trail(self, name, s3_bucket_name, s3_key_prefix=None, - sns_topic_name=None, include_global_service_events=None, - cloud_watch_logs_log_group_arn=None, - cloud_watch_logs_role_arn=None): - """ - From the command line, use `create-subscription`. - - Creates a trail that specifies the settings for delivery of - log data to an Amazon S3 bucket. - - :type name: string - :param name: Specifies the name of the trail. - - :type s3_bucket_name: string - :param s3_bucket_name: Specifies the name of the Amazon S3 bucket - designated for publishing log files. - - :type s3_key_prefix: string - :param s3_key_prefix: Specifies the Amazon S3 key prefix that precedes - the name of the bucket you have designated for log file delivery. - - :type sns_topic_name: string - :param sns_topic_name: Specifies the name of the Amazon SNS topic - defined for notification of log file delivery. - - :type include_global_service_events: boolean - :param include_global_service_events: Specifies whether the trail is - publishing events from global services such as IAM to the log - files. - - :type cloud_watch_logs_log_group_arn: string - :param cloud_watch_logs_log_group_arn: Specifies a log group name using - an Amazon Resource Name (ARN), a unique identifier that represents - the log group to which CloudTrail logs will be delivered. Not - required unless you specify CloudWatchLogsRoleArn. - - :type cloud_watch_logs_role_arn: string - :param cloud_watch_logs_role_arn: Specifies the role for the CloudWatch - Logs endpoint to assume to write to a users log group. - - """ - params = {'Name': name, 'S3BucketName': s3_bucket_name, } - if s3_key_prefix is not None: - params['S3KeyPrefix'] = s3_key_prefix - if sns_topic_name is not None: - params['SnsTopicName'] = sns_topic_name - if include_global_service_events is not None: - params['IncludeGlobalServiceEvents'] = include_global_service_events - if cloud_watch_logs_log_group_arn is not None: - params['CloudWatchLogsLogGroupArn'] = cloud_watch_logs_log_group_arn - if cloud_watch_logs_role_arn is not None: - params['CloudWatchLogsRoleArn'] = cloud_watch_logs_role_arn - return self.make_request(action='CreateTrail', - body=json.dumps(params)) - - def delete_trail(self, name): - """ - Deletes a trail. - - :type name: string - :param name: The name of a trail to be deleted. - - """ - params = {'Name': name, } - return self.make_request(action='DeleteTrail', - body=json.dumps(params)) - - def describe_trails(self, trail_name_list=None): - """ - Retrieves settings for the trail associated with the current - region for your account. - - :type trail_name_list: list - :param trail_name_list: The trail returned. - - """ - params = {} - if trail_name_list is not None: - params['trailNameList'] = trail_name_list - return self.make_request(action='DescribeTrails', - body=json.dumps(params)) - - def get_trail_status(self, name): - """ - Returns a JSON-formatted list of information about the - specified trail. Fields include information on delivery - errors, Amazon SNS and Amazon S3 errors, and start and stop - logging times for each trail. - - :type name: string - :param name: The name of the trail for which you are requesting the - current status. - - """ - params = {'Name': name, } - return self.make_request(action='GetTrailStatus', - body=json.dumps(params)) - - def lookup_events(self, lookup_attributes=None, start_time=None, - end_time=None, max_results=None, next_token=None): - """ - Looks up API activity events captured by CloudTrail that - create, update, or delete resources in your account. Events - for a region can be looked up for the times in which you had - CloudTrail turned on in that region during the last seven - days. Lookup supports five different attributes: time range - (defined by a start time and end time), user name, event name, - resource type, and resource name. All attributes are optional. - The maximum number of attributes that can be specified in any - one lookup request are time range and one other attribute. The - default number of results returned is 10, with a maximum of 50 - possible. The response includes a token that you can use to - get the next page of results. - The rate of lookup requests is limited to one per second per - account. If this limit is exceeded, a throttling error occurs. - Events that occurred during the selected time range will not - be available for lookup if CloudTrail logging was not enabled - when the events occurred. - - :type lookup_attributes: list - :param lookup_attributes: Contains a list of lookup attributes. - Currently the list can contain only one item. - - :type start_time: timestamp - :param start_time: Specifies that only events that occur after or at - the specified time are returned. If the specified start time is - after the specified end time, an error is returned. - - :type end_time: timestamp - :param end_time: Specifies that only events that occur before or at the - specified time are returned. If the specified end time is before - the specified start time, an error is returned. - - :type max_results: integer - :param max_results: The number of events to return. Possible values are - 1 through 50. The default is 10. - - :type next_token: string - :param next_token: The token to use to get the next page of results - after a previous API call. This token must be passed in with the - same parameters that were specified in the the original call. For - example, if the original call specified an AttributeKey of - 'Username' with a value of 'root', the call with NextToken should - include those same parameters. - - """ - params = {} - if lookup_attributes is not None: - params['LookupAttributes'] = lookup_attributes - if start_time is not None: - params['StartTime'] = start_time - if end_time is not None: - params['EndTime'] = end_time - if max_results is not None: - params['MaxResults'] = max_results - if next_token is not None: - params['NextToken'] = next_token - return self.make_request(action='LookupEvents', - body=json.dumps(params)) - - def start_logging(self, name): - """ - Starts the recording of AWS API calls and log file delivery - for a trail. - - :type name: string - :param name: The name of the trail for which CloudTrail logs AWS API - calls. - - """ - params = {'Name': name, } - return self.make_request(action='StartLogging', - body=json.dumps(params)) - - def stop_logging(self, name): - """ - Suspends the recording of AWS API calls and log file delivery - for the specified trail. Under most circumstances, there is no - need to use this action. You can update a trail without - stopping it first. This action is the only way to stop - recording. - - :type name: string - :param name: Communicates to CloudTrail the name of the trail for which - to stop logging AWS API calls. - - """ - params = {'Name': name, } - return self.make_request(action='StopLogging', - body=json.dumps(params)) - - def update_trail(self, name, s3_bucket_name=None, s3_key_prefix=None, - sns_topic_name=None, include_global_service_events=None, - cloud_watch_logs_log_group_arn=None, - cloud_watch_logs_role_arn=None): - """ - From the command line, use `update-subscription`. - - Updates the settings that specify delivery of log files. - Changes to a trail do not require stopping the CloudTrail - service. Use this action to designate an existing bucket for - log delivery. If the existing bucket has previously been a - target for CloudTrail log files, an IAM policy exists for the - bucket. - - :type name: string - :param name: Specifies the name of the trail. - - :type s3_bucket_name: string - :param s3_bucket_name: Specifies the name of the Amazon S3 bucket - designated for publishing log files. - - :type s3_key_prefix: string - :param s3_key_prefix: Specifies the Amazon S3 key prefix that precedes - the name of the bucket you have designated for log file delivery. - - :type sns_topic_name: string - :param sns_topic_name: Specifies the name of the Amazon SNS topic - defined for notification of log file delivery. - - :type include_global_service_events: boolean - :param include_global_service_events: Specifies whether the trail is - publishing events from global services such as IAM to the log - files. - - :type cloud_watch_logs_log_group_arn: string - :param cloud_watch_logs_log_group_arn: Specifies a log group name using - an Amazon Resource Name (ARN), a unique identifier that represents - the log group to which CloudTrail logs will be delivered. Not - required unless you specify CloudWatchLogsRoleArn. - - :type cloud_watch_logs_role_arn: string - :param cloud_watch_logs_role_arn: Specifies the role for the CloudWatch - Logs endpoint to assume to write to a users log group. - - """ - params = {'Name': name, } - if s3_bucket_name is not None: - params['S3BucketName'] = s3_bucket_name - if s3_key_prefix is not None: - params['S3KeyPrefix'] = s3_key_prefix - if sns_topic_name is not None: - params['SnsTopicName'] = sns_topic_name - if include_global_service_events is not None: - params['IncludeGlobalServiceEvents'] = include_global_service_events - if cloud_watch_logs_log_group_arn is not None: - params['CloudWatchLogsLogGroupArn'] = cloud_watch_logs_log_group_arn - if cloud_watch_logs_role_arn is not None: - params['CloudWatchLogsRoleArn'] = cloud_watch_logs_role_arn - return self.make_request(action='UpdateTrail', - 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)
