diff env/lib/python3.7/site-packages/boto/awslambda/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/awslambda/layer1.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,517 +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 os
-
-from boto.compat import json
-from boto.exception import JSONResponseError
-from boto.connection import AWSAuthConnection
-from boto.regioninfo import RegionInfo
-from boto.awslambda import exceptions
-
-
-class AWSLambdaConnection(AWSAuthConnection):
-    """
-    AWS Lambda
-    **Overview**
-
-    This is the AWS Lambda API Reference. The AWS Lambda Developer
-    Guide provides additional information. For the service overview,
-    go to `What is AWS Lambda`_, and for information about how the
-    service works, go to `AWS LambdaL How it Works`_ in the AWS Lambda
-    Developer Guide.
-    """
-    APIVersion = "2014-11-11"
-    DefaultRegionName = "us-east-1"
-    DefaultRegionEndpoint = "lambda.us-east-1.amazonaws.com"
-    ResponseError = JSONResponseError
-
-    _faults = {
-        "InvalidRequestContentException": exceptions.InvalidRequestContentException,
-        "ResourceNotFoundException": exceptions.ResourceNotFoundException,
-        "InvalidParameterValueException": exceptions.InvalidParameterValueException,
-        "ServiceException": exceptions.ServiceException,
-    }
-
-
-    def __init__(self, **kwargs):
-        region = kwargs.get('region')
-        if not region:
-            region = RegionInfo(self, self.DefaultRegionName,
-                                self.DefaultRegionEndpoint)
-        else:
-            del kwargs['region']
-        kwargs['host'] = region.endpoint
-        super(AWSLambdaConnection, self).__init__(**kwargs)
-        self.region = region
-
-    def _required_auth_capability(self):
-        return ['hmac-v4']
-
-    def add_event_source(self, event_source, function_name, role,
-                         batch_size=None, parameters=None):
-        """
-        Identifies an Amazon Kinesis stream as the event source for an
-        AWS Lambda function. AWS Lambda invokes the specified function
-        when records are posted to the stream.
-
-        This is the pull model, where AWS Lambda invokes the function.
-        For more information, go to `AWS LambdaL How it Works`_ in the
-        AWS Lambda Developer Guide.
-
-        This association between an Amazon Kinesis stream and an AWS
-        Lambda function is called the event source mapping. You
-        provide the configuration information (for example, which
-        stream to read from and which AWS Lambda function to invoke)
-        for the event source mapping in the request body.
-
-        This operation requires permission for the `iam:PassRole`
-        action for the IAM role. It also requires permission for the
-        `lambda:AddEventSource` action.
-
-        :type event_source: string
-        :param event_source: The Amazon Resource Name (ARN) of the Amazon
-            Kinesis stream that is the event source. Any record added to this
-            stream causes AWS Lambda to invoke your Lambda function. AWS Lambda
-            POSTs the Amazon Kinesis event, containing records, to your Lambda
-            function as JSON.
-
-        :type function_name: string
-        :param function_name: The Lambda function to invoke when AWS Lambda
-            detects an event on the stream.
-
-        :type role: string
-        :param role: The ARN of the IAM role (invocation role) that AWS Lambda
-            can assume to read from the stream and invoke the function.
-
-        :type batch_size: integer
-        :param batch_size: The largest number of records that AWS Lambda will
-            give to your function in a single event. The default is 100
-            records.
-
-        :type parameters: map
-        :param parameters: A map (key-value pairs) defining the configuration
-            for AWS Lambda to use when reading the event source. Currently, AWS
-            Lambda supports only the `InitialPositionInStream` key. The valid
-            values are: "TRIM_HORIZON" and "LATEST". The default value is
-            "TRIM_HORIZON". For more information, go to `ShardIteratorType`_ in
-            the Amazon Kinesis Service API Reference.
-
-        """
-
-        uri = '/2014-11-13/event-source-mappings/'
-        params = {
-            'EventSource': event_source,
-            'FunctionName': function_name,
-            'Role': role,
-        }
-        headers = {}
-        query_params = {}
-        if batch_size is not None:
-            params['BatchSize'] = batch_size
-        if parameters is not None:
-            params['Parameters'] = parameters
-        return self.make_request('POST', uri, expected_status=200,
-                                 data=json.dumps(params), headers=headers,
-                                 params=query_params)
-
-    def delete_function(self, function_name):
-        """
-        Deletes the specified Lambda function code and configuration.
-
-        This operation requires permission for the
-        `lambda:DeleteFunction` action.
-
-        :type function_name: string
-        :param function_name: The Lambda function to delete.
-
-        """
-
-        uri = '/2014-11-13/functions/{0}'.format(function_name)
-        return self.make_request('DELETE', uri, expected_status=204)
-
-    def get_event_source(self, uuid):
-        """
-        Returns configuration information for the specified event
-        source mapping (see AddEventSource).
-
-        This operation requires permission for the
-        `lambda:GetEventSource` action.
-
-        :type uuid: string
-        :param uuid: The AWS Lambda assigned ID of the event source mapping.
-
-        """
-
-        uri = '/2014-11-13/event-source-mappings/{0}'.format(uuid)
-        return self.make_request('GET', uri, expected_status=200)
-
-    def get_function(self, function_name):
-        """
-        Returns the configuration information of the Lambda function
-        and a presigned URL link to the .zip file you uploaded with
-        UploadFunction so you can download the .zip file. Note that
-        the URL is valid for up to 10 minutes. The configuration
-        information is the same information you provided as parameters
-        when uploading the function.
-
-        This operation requires permission for the
-        `lambda:GetFunction` action.
-
-        :type function_name: string
-        :param function_name: The Lambda function name.
-
-        """
-
-        uri = '/2014-11-13/functions/{0}'.format(function_name)
-        return self.make_request('GET', uri, expected_status=200)
-
-    def get_function_configuration(self, function_name):
-        """
-        Returns the configuration information of the Lambda function.
-        This the same information you provided as parameters when
-        uploading the function by using UploadFunction.
-
-        This operation requires permission for the
-        `lambda:GetFunctionConfiguration` operation.
-
-        :type function_name: string
-        :param function_name: The name of the Lambda function for which you
-            want to retrieve the configuration information.
-
-        """
-
-        uri = '/2014-11-13/functions/{0}/configuration'.format(function_name)
-        return self.make_request('GET', uri, expected_status=200)
-
-    def invoke_async(self, function_name, invoke_args):
-        """
-        Submits an invocation request to AWS Lambda. Upon receiving
-        the request, Lambda executes the specified function
-        asynchronously. To see the logs generated by the Lambda
-        function execution, see the CloudWatch logs console.
-
-        This operation requires permission for the
-        `lambda:InvokeAsync` action.
-
-        :type function_name: string
-        :param function_name: The Lambda function name.
-
-        :type invoke_args: blob
-        :param invoke_args: JSON that you want to provide to your Lambda
-            function as input.
-
-        """
-        uri = '/2014-11-13/functions/{0}/invoke-async/'.format(function_name)
-        headers = {}
-        query_params = {}
-        try:
-            content_length = str(len(invoke_args))
-        except (TypeError, AttributeError):
-            # If a file like object is provided and seekable, try to retrieve
-            # the file size via fstat.
-            try:
-                invoke_args.tell()
-            except (AttributeError, OSError, IOError):
-                raise TypeError(
-                    "File-like object passed to parameter "
-                    "``invoke_args`` must be seekable."
-                )
-            content_length = str(os.fstat(invoke_args.fileno()).st_size)
-        headers['Content-Length'] = content_length
-        return self.make_request('POST', uri, expected_status=202,
-                                 data=invoke_args, headers=headers,
-                                 params=query_params)
-
-    def list_event_sources(self, event_source_arn=None, function_name=None,
-                           marker=None, max_items=None):
-        """
-        Returns a list of event source mappings. For each mapping, the
-        API returns configuration information (see AddEventSource).
-        You can optionally specify filters to retrieve specific event
-        source mappings.
-
-        This operation requires permission for the
-        `lambda:ListEventSources` action.
-
-        :type event_source_arn: string
-        :param event_source_arn: The Amazon Resource Name (ARN) of the Amazon
-            Kinesis stream.
-
-        :type function_name: string
-        :param function_name: The name of the AWS Lambda function.
-
-        :type marker: string
-        :param marker: Optional string. An opaque pagination token returned
-            from a previous `ListEventSources` operation. If present, specifies
-            to continue the list from where the returning call left off.
-
-        :type max_items: integer
-        :param max_items: Optional integer. Specifies the maximum number of
-            event sources to return in response. This value must be greater
-            than 0.
-
-        """
-
-        uri = '/2014-11-13/event-source-mappings/'
-        params = {}
-        headers = {}
-        query_params = {}
-        if event_source_arn is not None:
-            query_params['EventSource'] = event_source_arn
-        if function_name is not None:
-            query_params['FunctionName'] = function_name
-        if marker is not None:
-            query_params['Marker'] = marker
-        if max_items is not None:
-            query_params['MaxItems'] = max_items
-        return self.make_request('GET', uri, expected_status=200,
-                                 data=json.dumps(params), headers=headers,
-                                 params=query_params)
-
-    def list_functions(self, marker=None, max_items=None):
-        """
-        Returns a list of your Lambda functions. For each function,
-        the response includes the function configuration information.
-        You must use GetFunction to retrieve the code for your
-        function.
-
-        This operation requires permission for the
-        `lambda:ListFunctions` action.
-
-        :type marker: string
-        :param marker: Optional string. An opaque pagination token returned
-            from a previous `ListFunctions` operation. If present, indicates
-            where to continue the listing.
-
-        :type max_items: integer
-        :param max_items: Optional integer. Specifies the maximum number of AWS
-            Lambda functions to return in response. This parameter value must
-            be greater than 0.
-
-        """
-
-        uri = '/2014-11-13/functions/'
-        params = {}
-        headers = {}
-        query_params = {}
-        if marker is not None:
-            query_params['Marker'] = marker
-        if max_items is not None:
-            query_params['MaxItems'] = max_items
-        return self.make_request('GET', uri, expected_status=200,
-                                 data=json.dumps(params), headers=headers,
-                                 params=query_params)
-
-    def remove_event_source(self, uuid):
-        """
-        Removes an event source mapping. This means AWS Lambda will no
-        longer invoke the function for events in the associated
-        source.
-
-        This operation requires permission for the
-        `lambda:RemoveEventSource` action.
-
-        :type uuid: string
-        :param uuid: The event source mapping ID.
-
-        """
-
-        uri = '/2014-11-13/event-source-mappings/{0}'.format(uuid)
-        return self.make_request('DELETE', uri, expected_status=204)
-
-    def update_function_configuration(self, function_name, role=None,
-                                      handler=None, description=None,
-                                      timeout=None, memory_size=None):
-        """
-        Updates the configuration parameters for the specified Lambda
-        function by using the values provided in the request. You
-        provide only the parameters you want to change. This operation
-        must only be used on an existing Lambda function and cannot be
-        used to update the function's code.
-
-        This operation requires permission for the
-        `lambda:UpdateFunctionConfiguration` action.
-
-        :type function_name: string
-        :param function_name: The name of the Lambda function.
-
-        :type role: string
-        :param role: The Amazon Resource Name (ARN) of the IAM role that Lambda
-            will assume when it executes your function.
-
-        :type handler: string
-        :param handler: The function that Lambda calls to begin executing your
-            function. For Node.js, it is the module-name.export value in your
-            function.
-
-        :type description: string
-        :param description: A short user-defined function description. Lambda
-            does not use this value. Assign a meaningful description as you see
-            fit.
-
-        :type timeout: integer
-        :param timeout: The function execution time at which Lambda should
-            terminate the function. Because the execution time has cost
-            implications, we recommend you set this value based on your
-            expected execution time. The default is 3 seconds.
-
-        :type memory_size: integer
-        :param memory_size: The amount of memory, in MB, your Lambda function
-            is given. Lambda uses this memory size to infer the amount of CPU
-            allocated to your function. Your function use-case determines your
-            CPU and memory requirements. For example, a database operation
-            might need less memory compared to an image processing function.
-            The default value is 128 MB. The value must be a multiple of 64 MB.
-
-        """
-
-        uri = '/2014-11-13/functions/{0}/configuration'.format(function_name)
-        params = {}
-        headers = {}
-        query_params = {}
-        if role is not None:
-            query_params['Role'] = role
-        if handler is not None:
-            query_params['Handler'] = handler
-        if description is not None:
-            query_params['Description'] = description
-        if timeout is not None:
-            query_params['Timeout'] = timeout
-        if memory_size is not None:
-            query_params['MemorySize'] = memory_size
-        return self.make_request('PUT', uri, expected_status=200,
-                                 data=json.dumps(params), headers=headers,
-                                 params=query_params)
-
-    def upload_function(self, function_name, function_zip, runtime, role,
-                        handler, mode, description=None, timeout=None,
-                        memory_size=None):
-        """
-        Creates a new Lambda function or updates an existing function.
-        The function metadata is created from the request parameters,
-        and the code for the function is provided by a .zip file in
-        the request body. If the function name already exists, the
-        existing Lambda function is updated with the new code and
-        metadata.
-
-        This operation requires permission for the
-        `lambda:UploadFunction` action.
-
-        :type function_name: string
-        :param function_name: The name you want to assign to the function you
-            are uploading. The function names appear in the console and are
-            returned in the ListFunctions API. Function names are used to
-            specify functions to other AWS Lambda APIs, such as InvokeAsync.
-
-        :type function_zip: blob
-        :param function_zip: A .zip file containing your packaged source code.
-            For more information about creating a .zip file, go to `AWS LambdaL
-            How it Works`_ in the AWS Lambda Developer Guide.
-
-        :type runtime: string
-        :param runtime: The runtime environment for the Lambda function you are
-            uploading. Currently, Lambda supports only "nodejs" as the runtime.
-
-        :type role: string
-        :param role: The Amazon Resource Name (ARN) of the IAM role that Lambda
-            assumes when it executes your function to access any other Amazon
-            Web Services (AWS) resources.
-
-        :type handler: string
-        :param handler: The function that Lambda calls to begin execution. For
-            Node.js, it is the module-name . export value in your function.
-
-        :type mode: string
-        :param mode: How the Lambda function will be invoked. Lambda supports
-            only the "event" mode.
-
-        :type description: string
-        :param description: A short, user-defined function description. Lambda
-            does not use this value. Assign a meaningful description as you see
-            fit.
-
-        :type timeout: integer
-        :param timeout: The function execution time at which Lambda should
-            terminate the function. Because the execution time has cost
-            implications, we recommend you set this value based on your
-            expected execution time. The default is 3 seconds.
-
-        :type memory_size: integer
-        :param memory_size: The amount of memory, in MB, your Lambda function
-            is given. Lambda uses this memory size to infer the amount of CPU
-            allocated to your function. Your function use-case determines your
-            CPU and memory requirements. For example, database operation might
-            need less memory compared to image processing function. The default
-            value is 128 MB. The value must be a multiple of 64 MB.
-
-        """
-        uri = '/2014-11-13/functions/{0}'.format(function_name)
-        headers = {}
-        query_params = {}
-        if runtime is not None:
-            query_params['Runtime'] = runtime
-        if role is not None:
-            query_params['Role'] = role
-        if handler is not None:
-            query_params['Handler'] = handler
-        if mode is not None:
-            query_params['Mode'] = mode
-        if description is not None:
-            query_params['Description'] = description
-        if timeout is not None:
-            query_params['Timeout'] = timeout
-        if memory_size is not None:
-            query_params['MemorySize'] = memory_size
-
-        try:
-            content_length = str(len(function_zip))
-        except (TypeError, AttributeError):
-            # If a file like object is provided and seekable, try to retrieve
-            # the file size via fstat.
-            try:
-                function_zip.tell()
-            except (AttributeError, OSError, IOError):
-                raise TypeError(
-                    "File-like object passed to parameter "
-                    "``function_zip`` must be seekable."
-                )
-            content_length = str(os.fstat(function_zip.fileno()).st_size)
-        headers['Content-Length'] = content_length
-        return self.make_request('PUT', uri, expected_status=201,
-                                 data=function_zip, headers=headers,
-                                 params=query_params)
-
-    def make_request(self, verb, resource, headers=None, data='',
-                     expected_status=None, params=None):
-        if headers is None:
-            headers = {}
-        response = AWSAuthConnection.make_request(
-            self, verb, resource, headers=headers, data=data, params=params)
-        body = response.read().decode('utf-8')
-        if body:
-            body = json.loads(body)
-        if response.status == expected_status:
-            return body
-        else:
-            error_type = response.getheader('x-amzn-ErrorType').split(':')[0]
-            error_class = self._faults.get(error_type, self.ResponseError)
-            raise error_class(response.status, response.reason, body)