# WARNING ABOUT GENERATED CODE # # This file is generated. See the contributing guide for more information: # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md # # WARNING ABOUT GENERATED CODE require 'seahorse/client/plugins/content_length.rb' require 'aws-sdk-core/plugins/credentials_configuration.rb' require 'aws-sdk-core/plugins/logging.rb' require 'aws-sdk-core/plugins/param_converter.rb' require 'aws-sdk-core/plugins/param_validator.rb' require 'aws-sdk-core/plugins/user_agent.rb' require 'aws-sdk-core/plugins/helpful_socket_errors.rb' require 'aws-sdk-core/plugins/retry_errors.rb' require 'aws-sdk-core/plugins/global_configuration.rb' require 'aws-sdk-core/plugins/regional_endpoint.rb' require 'aws-sdk-core/plugins/response_paging.rb' require 'aws-sdk-core/plugins/stub_responses.rb' require 'aws-sdk-core/plugins/idempotency_token.rb' require 'aws-sdk-core/plugins/jsonvalue_converter.rb' require 'aws-sdk-core/plugins/signature_v4.rb' require 'aws-sdk-core/plugins/protocols/rest_json.rb' Aws::Plugins::GlobalConfiguration.add_identifier(:lambda) module Aws::Lambda class Client < Seahorse::Client::Base include Aws::ClientStubs @identifier = :lambda set_api(ClientApi::API) add_plugin(Seahorse::Client::Plugins::ContentLength) add_plugin(Aws::Plugins::CredentialsConfiguration) add_plugin(Aws::Plugins::Logging) add_plugin(Aws::Plugins::ParamConverter) add_plugin(Aws::Plugins::ParamValidator) add_plugin(Aws::Plugins::UserAgent) add_plugin(Aws::Plugins::HelpfulSocketErrors) add_plugin(Aws::Plugins::RetryErrors) add_plugin(Aws::Plugins::GlobalConfiguration) add_plugin(Aws::Plugins::RegionalEndpoint) add_plugin(Aws::Plugins::ResponsePaging) add_plugin(Aws::Plugins::StubResponses) add_plugin(Aws::Plugins::IdempotencyToken) add_plugin(Aws::Plugins::JsonvalueConverter) add_plugin(Aws::Plugins::SignatureV4) add_plugin(Aws::Plugins::Protocols::RestJson) # @option options [required, Aws::CredentialProvider] :credentials # Your AWS credentials. This can be an instance of any one of the # following classes: # # * `Aws::Credentials` - Used for configuring static, non-refreshing # credentials. # # * `Aws::InstanceProfileCredentials` - Used for loading credentials # from an EC2 IMDS on an EC2 instance. # # * `Aws::SharedCredentials` - Used for loading credentials from a # shared file, such as `~/.aws/config`. # # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role. # # When `:credentials` are not configured directly, the following # locations will be searched for credentials: # # * `Aws.config[:credentials]` # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options. # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'] # * `~/.aws/credentials` # * `~/.aws/config` # * EC2 IMDS instance profile - When used by default, the timeouts are # very aggressive. Construct and pass an instance of # `Aws::InstanceProfileCredentails` to enable retries and extended # timeouts. # # @option options [required, String] :region # The AWS region to connect to. The configured `:region` is # used to determine the service `:endpoint`. When not passed, # a default `:region` is search for in the following locations: # # * `Aws.config[:region]` # * `ENV['AWS_REGION']` # * `ENV['AMAZON_REGION']` # * `ENV['AWS_DEFAULT_REGION']` # * `~/.aws/credentials` # * `~/.aws/config` # # @option options [String] :access_key_id # # @option options [Boolean] :convert_params (true) # When `true`, an attempt is made to coerce request parameters into # the required types. # # @option options [String] :endpoint # The client endpoint is normally constructed from the `:region` # option. You should only configure an `:endpoint` when connecting # to test endpoints. This should be avalid HTTP(S) URI. # # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default) # The log formatter. # # @option options [Symbol] :log_level (:info) # The log level to send messages to the `:logger` at. # # @option options [Logger] :logger # The Logger instance to send log messages to. If this option # is not set, logging will be disabled. # # @option options [String] :profile ("default") # Used when loading credentials from the shared credentials file # at HOME/.aws/credentials. When not specified, 'default' is used. # # @option options [Integer] :retry_limit (3) # The maximum number of times to retry failed requests. Only # ~ 500 level server errors and certain ~ 400 level client errors # are retried. Generally, these are throttling errors, data # checksum errors, networking errors, timeout errors and auth # errors from expired credentials. # # @option options [String] :secret_access_key # # @option options [String] :session_token # # @option options [Boolean] :stub_responses (false) # Causes the client to return stubbed responses. By default # fake responses are generated and returned. You can specify # the response data to return or errors to raise by calling # {ClientStubs#stub_responses}. See {ClientStubs} for more information. # # ** Please note ** When response stubbing is enabled, no HTTP # requests are made, and retries are disabled. # # @option options [Boolean] :validate_params (true) # When `true`, request parameters are validated before # sending the request. # def initialize(*args) super end # @!group API Operations # Adds a permission to the resource policy associated with the specified # AWS Lambda function. You use resource policies to grant permissions to # event sources that use *push* model. In a *push* model, event sources # (such as Amazon S3 and custom applications) invoke your Lambda # function. Each permission you add to the resource policy allows an # event source, permission to invoke the Lambda function. # # For information about the push model, see [AWS Lambda: How it # Works][1]. # # If you are using versioning, the permissions you add are specific to # the Lambda function version or alias you specify in the # `AddPermission` request via the `Qualifier` parameter. For more # information about versioning, see [AWS Lambda Function Versioning and # Aliases][2]. # # This operation requires permission for the `lambda:AddPermission` # action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html # [2]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :function_name # Name of the Lambda function whose resource policy you are updating by # adding a new permission. # # You can specify a function name (for example, `Thumbnail`) or you can # specify Amazon Resource Name (ARN) of the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). AWS Lambda # also allows you to specify partial ARN (for example, # `account-id:Thumbnail`). Note that the length constraint applies only # to the ARN. If you specify only the function name, it is limited to 64 # characters in length. # # @option params [required, String] :statement_id # A unique statement identifier. # # @option params [required, String] :action # The AWS Lambda action you want to allow in this statement. Each Lambda # action is a string starting with `lambda:` followed by the API name . # For example, `lambda:CreateFunction`. You can use wildcard # (`lambda:*`) to grant permission for all AWS Lambda actions. # # @option params [required, String] :principal # The principal who is getting this permission. It can be Amazon S3 # service Principal (`s3.amazonaws.com`) if you want Amazon S3 to invoke # the function, an AWS account ID if you are granting cross-account # permission, or any valid AWS service principal such as # `sns.amazonaws.com`. For example, you might want to allow a custom # application in another AWS account to push events to AWS Lambda by # invoking your function. # # @option params [String] :source_arn # This is optional; however, when granting permission to invoke your # function, you should specify this field with the Amazon Resource Name # (ARN) as its value. This ensures that only events generated from the # specified source can invoke the function. # # If you add a permission without providing the source ARN, any AWS # account that creates a mapping to your function ARN can send events to # invoke your Lambda function. # # @option params [String] :source_account # This parameter is used for S3 and SES. The AWS account ID (without a # hyphen) of the source owner. For example, if the `SourceArn` # identifies a bucket, then this is the bucket owner's account ID. You # can use this additional condition to ensure the bucket you specify is # owned by a specific account (it is possible the bucket owner deleted # the bucket and some other AWS account created the bucket). You can # also use this condition to specify all sources (that is, you don't # specify the `SourceArn`) owned by a specific account. # # @option params [String] :event_source_token # A unique token that must be supplied by the principal invoking the # function. This is currently only used for Alexa Smart Home functions. # # @option params [String] :qualifier # You can use this optional query parameter to describe a qualified ARN # using a function version or an alias name. The permission will then # apply to the specific qualified ARN. For example, if you specify # function version 2 as the qualifier, then permission applies only when # request is made using qualified function ARN: # # `arn:aws:lambda:aws-region:acct-id:function:function-name:2` # # If you specify an alias name, for example `PROD`, then the permission # is valid only for requests made using the alias ARN: # # `arn:aws:lambda:aws-region:acct-id:function:function-name:PROD` # # If the qualifier is not specified, the permission is valid only when # requests is made using unqualified function ARN. # # `arn:aws:lambda:aws-region:acct-id:function:function-name` # # @return [Types::AddPermissionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::AddPermissionResponse#statement #statement} => String # # # @example Example: add-permission # # # This example adds a permission for an S3 bucket to invoke a Lambda function. # # resp = client.add_permission({ # action: "lambda:InvokeFunction", # function_name: "MyFunction", # principal: "s3.amazonaws.com", # source_account: "123456789012", # source_arn: "arn:aws:s3:::examplebucket/*", # statement_id: "ID-1", # }) # # resp.to_h outputs the following: # { # statement: "ID-1", # } # # @example Request syntax with placeholder values # # resp = client.add_permission({ # function_name: "FunctionName", # required # statement_id: "StatementId", # required # action: "Action", # required # principal: "Principal", # required # source_arn: "Arn", # source_account: "SourceOwner", # event_source_token: "EventSourceToken", # qualifier: "Qualifier", # }) # # @example Response structure # # resp.statement #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/AddPermission AWS API Documentation # # @overload add_permission(params = {}) # @param [Hash] params ({}) def add_permission(params = {}, options = {}) req = build_request(:add_permission, params) req.send_request(options) end # Creates an alias that points to the specified Lambda function version. # For more information, see [Introduction to AWS Lambda Aliases][1]. # # Alias names are unique for a given function. This requires permission # for the lambda:CreateAlias action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/aliases-intro.html # # @option params [required, String] :function_name # Name of the Lambda function for which you want to create an alias. # Note that the length constraint applies only to the ARN. If you # specify only the function name, it is limited to 64 characters in # length. # # @option params [required, String] :name # Name for the alias you are creating. # # @option params [required, String] :function_version # Lambda function version for which you are creating the alias. # # @option params [String] :description # Description of the alias. # # @return [Types::AliasConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::AliasConfiguration#alias_arn #alias_arn} => String # * {Types::AliasConfiguration#name #name} => String # * {Types::AliasConfiguration#function_version #function_version} => String # * {Types::AliasConfiguration#description #description} => String # # @example Request syntax with placeholder values # # resp = client.create_alias({ # function_name: "FunctionName", # required # name: "Alias", # required # function_version: "Version", # required # description: "Description", # }) # # @example Response structure # # resp.alias_arn #=> String # resp.name #=> String # resp.function_version #=> String # resp.description #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateAlias AWS API Documentation # # @overload create_alias(params = {}) # @param [Hash] params ({}) def create_alias(params = {}, options = {}) req = build_request(:create_alias, params) req.send_request(options) end # Identifies a stream as an event source for a Lambda function. It can # be either an Amazon Kinesis stream or an Amazon DynamoDB stream. AWS # Lambda invokes the specified function when records are posted to the # stream. # # This association between a stream source and a Lambda function is # called the event source mapping. # # This event source mapping is relevant only in the AWS Lambda pull # model, where AWS Lambda invokes the function. For more information, # see [AWS Lambda: How it Works][1] in the *AWS Lambda Developer Guide*. # # You provide mapping information (for example, which stream to read # from and which Lambda function to invoke) in the request body. # # Each event source, such as an Amazon Kinesis or a DynamoDB stream, can # be associated with multiple AWS Lambda function. A given Lambda # function can be associated with multiple AWS event sources. # # If you are using versioning, you can specify a specific function # version or an alias via the function name parameter. For more # information about versioning, see [AWS Lambda Function Versioning and # Aliases][2]. # # This operation requires permission for the # `lambda:CreateEventSourceMapping` action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html # [2]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :event_source_arn # The Amazon Resource Name (ARN) of the Amazon Kinesis or the Amazon # DynamoDB stream that is the event source. Any record added to this # stream could cause AWS Lambda to invoke your Lambda function, it # depends on the `BatchSize`. AWS Lambda POSTs the Amazon Kinesis event, # containing records, to your Lambda function as JSON. # # @option params [required, String] :function_name # The Lambda function to invoke when AWS Lambda detects an event on the # stream. # # You can specify the function name (for example, `Thumbnail`) or you # can specify Amazon Resource Name (ARN) of the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). # # If you are using versioning, you can also provide a qualified function # ARN (ARN that is qualified with function version or alias name as # suffix). For more information about versioning, see [AWS Lambda # Function Versioning and Aliases][1] # # AWS Lambda also allows you to specify only the function name with the # account ID qualifier (for example, `account-id:Thumbnail`). # # Note that the length constraint applies only to the ARN. If you # specify only the function name, it is limited to 64 characters in # length. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [Boolean] :enabled # Indicates whether AWS Lambda should begin polling the event source. By # default, `Enabled` is true. # # @option params [Integer] :batch_size # The largest number of records that AWS Lambda will retrieve from your # event source at the time of invoking your function. Your function # receives an event with all the retrieved records. The default is 100 # records. # # @option params [required, String] :starting_position # The position in the stream where AWS Lambda should start reading. # Valid only for Kinesis streams. For more information, see # [ShardIteratorType][1] in the *Amazon Kinesis API Reference*. # # # # [1]: http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#Kinesis-GetShardIterator-request-ShardIteratorType # # @option params [Time,DateTime,Date,Integer,String] :starting_position_timestamp # The timestamp of the data record from which to start reading. Used # with [shard iterator type][1] AT\_TIMESTAMP. If a record with this # exact timestamp does not exist, the iterator returned is for the next # (later) record. If the timestamp is older than the current trim # horizon, the iterator returned is for the oldest untrimmed data record # (TRIM\_HORIZON). Valid only for Kinesis streams. # # # # [1]: http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#Kinesis-GetShardIterator-request-ShardIteratorType # # @return [Types::EventSourceMappingConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::EventSourceMappingConfiguration#uuid #uuid} => String # * {Types::EventSourceMappingConfiguration#batch_size #batch_size} => Integer # * {Types::EventSourceMappingConfiguration#event_source_arn #event_source_arn} => String # * {Types::EventSourceMappingConfiguration#function_arn #function_arn} => String # * {Types::EventSourceMappingConfiguration#last_modified #last_modified} => Time # * {Types::EventSourceMappingConfiguration#last_processing_result #last_processing_result} => String # * {Types::EventSourceMappingConfiguration#state #state} => String # * {Types::EventSourceMappingConfiguration#state_transition_reason #state_transition_reason} => String # # @example Request syntax with placeholder values # # resp = client.create_event_source_mapping({ # event_source_arn: "Arn", # required # function_name: "FunctionName", # required # enabled: false, # batch_size: 1, # starting_position: "TRIM_HORIZON", # required, accepts TRIM_HORIZON, LATEST, AT_TIMESTAMP # starting_position_timestamp: Time.now, # }) # # @example Response structure # # resp.uuid #=> String # resp.batch_size #=> Integer # resp.event_source_arn #=> String # resp.function_arn #=> String # resp.last_modified #=> Time # resp.last_processing_result #=> String # resp.state #=> String # resp.state_transition_reason #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateEventSourceMapping AWS API Documentation # # @overload create_event_source_mapping(params = {}) # @param [Hash] params ({}) def create_event_source_mapping(params = {}, options = {}) req = build_request(:create_event_source_mapping, params) req.send_request(options) end # Creates a new Lambda 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 operation will fail. Note that the function name is # case-sensitive. # # If you are using versioning, you can also publish a version of the # Lambda function you are creating using the `Publish` parameter. For # more information about versioning, see [AWS Lambda Function Versioning # and Aliases][1]. # # This operation requires permission for the `lambda:CreateFunction` # action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :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 API operations, such as Invoke. Note that the length # constraint applies only to the ARN. If you specify only the function # name, it is limited to 64 characters in length. # # @option params [required, String] :runtime # The runtime environment for the Lambda function you are uploading. # # To use the Python runtime v3.6, set the value to "python3.6". To use # the Python runtime v2.7, set the value to "python2.7". To use the # Node.js runtime v6.10, set the value to "nodejs6.10". To use the # Node.js runtime v4.3, set the value to "nodejs4.3". # # Node v0.10.42 is currently marked as deprecated. You must migrate # existing functions to the newer Node.js runtime versions available on # AWS Lambda (nodejs4.3 or nodejs6.10) as soon as possible. You can # request a one-time extension until June 30, 2017 by going to the # Lambda console and following the instructions provided. Failure to do # so will result in an invalid parmaeter error being returned. Note that # you will have to follow this procedure for each region that contains # functions written in the Node v0.10.42 runtime. # # # # @option params [required, String] :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. For more information, see [AWS Lambda: How it # Works][1]. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html # # @option params [required, String] :handler # The function within your code that Lambda calls to begin execution. # For Node.js, it is the *module-name*.*export* value in your function. # For Java, it can be `package.class-name::handler` or # `package.class-name`. For more information, see [Lambda Function # Handler (Java)][1]. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html # # @option params [required, Types::FunctionCode] :code # The code for the Lambda function. # # @option params [String] :description # A short, user-defined function description. Lambda does not use this # value. Assign a meaningful description as you see fit. # # @option params [Integer] :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. # # @option params [Integer] :memory_size # The amount of memory, in MB, your Lambda function is given. Lambda # uses this memory size to infer the amount of CPU and memory 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. # # @option params [Boolean] :publish # This boolean parameter can be used to request AWS Lambda to create the # Lambda function and publish a version as an atomic operation. # # @option params [Types::VpcConfig] :vpc_config # If your Lambda function accesses resources in a VPC, you provide this # parameter identifying the list of security group IDs and subnet IDs. # These must belong to the same VPC. You must provide at least one # security group and one subnet ID. # # @option params [Types::DeadLetterConfig] :dead_letter_config # The parent object that contains the target ARN (Amazon Resource Name) # of an Amazon SQS queue or Amazon SNS topic. # # @option params [Types::Environment] :environment # The parent object that contains your environment's configuration # settings. # # @option params [String] :kms_key_arn # The Amazon Resource Name (ARN) of the KMS key used to encrypt your # function's environment variables. If not provided, AWS Lambda will # use a default service key. # # @option params [Types::TracingConfig] :tracing_config # The parent object that contains your function's tracing settings. # # @option params [Hash] :tags # The list of tags (key-value pairs) assigned to the new function. # # @return [Types::FunctionConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::FunctionConfiguration#function_name #function_name} => String # * {Types::FunctionConfiguration#function_arn #function_arn} => String # * {Types::FunctionConfiguration#runtime #runtime} => String # * {Types::FunctionConfiguration#role #role} => String # * {Types::FunctionConfiguration#handler #handler} => String # * {Types::FunctionConfiguration#code_size #code_size} => Integer # * {Types::FunctionConfiguration#description #description} => String # * {Types::FunctionConfiguration#timeout #timeout} => Integer # * {Types::FunctionConfiguration#memory_size #memory_size} => Integer # * {Types::FunctionConfiguration#last_modified #last_modified} => Time # * {Types::FunctionConfiguration#code_sha_256 #code_sha_256} => String # * {Types::FunctionConfiguration#version #version} => String # * {Types::FunctionConfiguration#vpc_config #vpc_config} => Types::VpcConfigResponse # * {Types::FunctionConfiguration#dead_letter_config #dead_letter_config} => Types::DeadLetterConfig # * {Types::FunctionConfiguration#environment #environment} => Types::EnvironmentResponse # * {Types::FunctionConfiguration#kms_key_arn #kms_key_arn} => String # * {Types::FunctionConfiguration#tracing_config #tracing_config} => Types::TracingConfigResponse # * {Types::FunctionConfiguration#master_arn #master_arn} => String # # # @example Example: create-function # # # This example creates a Lambda function. # # resp = client.create_function({ # code: { # }, # description: "", # function_name: "MyFunction", # handler: "souce_file.handler_name", # is of the form of the name of your source file and then name of your function handler # memory_size: 128, # publish: true, # role: "arn:aws:iam::123456789012:role/service-role/role-name", # replace with the actual arn of the execution role you created # runtime: "nodejs4.3", # timeout: 15, # vpc_config: { # }, # }) # # resp.to_h outputs the following: # { # code_sha_256: "", # code_size: 123, # description: "", # function_arn: "arn:aws:lambda:us-west-2:123456789012:function:MyFunction", # function_name: "MyFunction", # handler: "source_file.handler_name", # last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), # memory_size: 128, # role: "arn:aws:iam::123456789012:role/service-role/role-name", # runtime: "nodejs4.3", # timeout: 123, # version: "1", # vpc_config: { # }, # } # # @example Request syntax with placeholder values # # resp = client.create_function({ # function_name: "FunctionName", # required # runtime: "nodejs", # required, accepts nodejs, nodejs4.3, nodejs6.10, java8, python2.7, python3.6, dotnetcore1.0, nodejs4.3-edge # role: "RoleArn", # required # handler: "Handler", # required # code: { # required # zip_file: "data", # s3_bucket: "S3Bucket", # s3_key: "S3Key", # s3_object_version: "S3ObjectVersion", # }, # description: "Description", # timeout: 1, # memory_size: 1, # publish: false, # vpc_config: { # subnet_ids: ["SubnetId"], # security_group_ids: ["SecurityGroupId"], # }, # dead_letter_config: { # target_arn: "ResourceArn", # }, # environment: { # variables: { # "EnvironmentVariableName" => "EnvironmentVariableValue", # }, # }, # kms_key_arn: "KMSKeyArn", # tracing_config: { # mode: "Active", # accepts Active, PassThrough # }, # tags: { # "TagKey" => "TagValue", # }, # }) # # @example Response structure # # resp.function_name #=> String # resp.function_arn #=> String # resp.runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "java8", "python2.7", "python3.6", "dotnetcore1.0", "nodejs4.3-edge" # resp.role #=> String # resp.handler #=> String # resp.code_size #=> Integer # resp.description #=> String # resp.timeout #=> Integer # resp.memory_size #=> Integer # resp.last_modified #=> Time # resp.code_sha_256 #=> String # resp.version #=> String # resp.vpc_config.subnet_ids #=> Array # resp.vpc_config.subnet_ids[0] #=> String # resp.vpc_config.security_group_ids #=> Array # resp.vpc_config.security_group_ids[0] #=> String # resp.vpc_config.vpc_id #=> String # resp.dead_letter_config.target_arn #=> String # resp.environment.variables #=> Hash # resp.environment.variables["EnvironmentVariableName"] #=> String # resp.environment.error.error_code #=> String # resp.environment.error.message #=> String # resp.kms_key_arn #=> String # resp.tracing_config.mode #=> String, one of "Active", "PassThrough" # resp.master_arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateFunction AWS API Documentation # # @overload create_function(params = {}) # @param [Hash] params ({}) def create_function(params = {}, options = {}) req = build_request(:create_function, params) req.send_request(options) end # Deletes the specified Lambda function alias. For more information, see # [Introduction to AWS Lambda Aliases][1]. # # This requires permission for the lambda:DeleteAlias action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/aliases-intro.html # # @option params [required, String] :function_name # The Lambda function name for which the alias is created. Deleting an # alias does not delete the function version to which it is pointing. # Note that the length constraint applies only to the ARN. If you # specify only the function name, it is limited to 64 characters in # length. # # @option params [required, String] :name # Name of the alias to delete. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # # @example Example: To delete a Lambda function alias # # # This operation deletes a Lambda function alias # # resp = client.delete_alias({ # function_name: "myFunction", # name: "alias", # }) # # @example Request syntax with placeholder values # # resp = client.delete_alias({ # function_name: "FunctionName", # required # name: "Alias", # required # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteAlias AWS API Documentation # # @overload delete_alias(params = {}) # @param [Hash] params ({}) def delete_alias(params = {}, options = {}) req = build_request(:delete_alias, params) req.send_request(options) end # 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:DeleteEventSourceMapping` action. # # @option params [required, String] :uuid # The event source mapping ID. # # @return [Types::EventSourceMappingConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::EventSourceMappingConfiguration#uuid #uuid} => String # * {Types::EventSourceMappingConfiguration#batch_size #batch_size} => Integer # * {Types::EventSourceMappingConfiguration#event_source_arn #event_source_arn} => String # * {Types::EventSourceMappingConfiguration#function_arn #function_arn} => String # * {Types::EventSourceMappingConfiguration#last_modified #last_modified} => Time # * {Types::EventSourceMappingConfiguration#last_processing_result #last_processing_result} => String # * {Types::EventSourceMappingConfiguration#state #state} => String # * {Types::EventSourceMappingConfiguration#state_transition_reason #state_transition_reason} => String # # # @example Example: To delete a Lambda function event source mapping # # # This operation deletes a Lambda function event source mapping # # resp = client.delete_event_source_mapping({ # uuid: "12345kxodurf3443", # }) # # resp.to_h outputs the following: # { # batch_size: 123, # event_source_arn: "arn:aws:s3:::examplebucket/*", # function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", # last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), # last_processing_result: "", # state: "", # state_transition_reason: "", # uuid: "12345kxodurf3443", # } # # @example Request syntax with placeholder values # # resp = client.delete_event_source_mapping({ # uuid: "String", # required # }) # # @example Response structure # # resp.uuid #=> String # resp.batch_size #=> Integer # resp.event_source_arn #=> String # resp.function_arn #=> String # resp.last_modified #=> Time # resp.last_processing_result #=> String # resp.state #=> String # resp.state_transition_reason #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteEventSourceMapping AWS API Documentation # # @overload delete_event_source_mapping(params = {}) # @param [Hash] params ({}) def delete_event_source_mapping(params = {}, options = {}) req = build_request(:delete_event_source_mapping, params) req.send_request(options) end # Deletes the specified Lambda function code and configuration. # # If you are using the versioning feature and you don't specify a # function version in your `DeleteFunction` request, AWS Lambda will # delete the function, including all its versions, and any aliases # pointing to the function versions. To delete a specific function # version, you must provide the function version via the `Qualifier` # parameter. For information about function versioning, see [AWS Lambda # Function Versioning and Aliases][1]. # # When you delete a function the associated resource policy is also # deleted. You will need to delete the event source mappings explicitly. # # This operation requires permission for the `lambda:DeleteFunction` # action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :function_name # The Lambda function to delete. # # You can specify the function name (for example, `Thumbnail`) or you # can specify Amazon Resource Name (ARN) of the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). If you are # using versioning, you can also provide a qualified function ARN (ARN # that is qualified with function version or alias name as suffix). AWS # Lambda also allows you to specify only the function name with the # account ID qualifier (for example, `account-id:Thumbnail`). Note that # the length constraint applies only to the ARN. If you specify only the # function name, it is limited to 64 characters in length. # # @option params [String] :qualifier # Using this optional parameter you can specify a function version (but # not the `$LATEST` version) to direct AWS Lambda to delete a specific # function version. If the function version has one or more aliases # pointing to it, you will get an error because you cannot have aliases # pointing to it. You can delete any function version but not the # `$LATEST`, that is, you cannot specify `$LATEST` as the value of this # parameter. The `$LATEST` version can be deleted only when you want to # delete all the function versions and aliases. # # You can only specify a function version, not an alias name, using this # parameter. You cannot delete a function version using its alias. # # If you don't specify this parameter, AWS Lambda will delete the # function, including all of its versions and aliases. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # # @example Example: To delete a Lambda function # # # This operation deletes a Lambda function # # resp = client.delete_function({ # function_name: "myFunction", # qualifier: "1", # }) # # @example Request syntax with placeholder values # # resp = client.delete_function({ # function_name: "FunctionName", # required # qualifier: "Qualifier", # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunction AWS API Documentation # # @overload delete_function(params = {}) # @param [Hash] params ({}) def delete_function(params = {}, options = {}) req = build_request(:delete_function, params) req.send_request(options) end # Returns a customer's account settings. # # You can use this operation to retrieve Lambda limits information, such # as code size and concurrency limits. For more information about # limits, see [AWS Lambda Limits][1]. You can also retrieve resource # usage statistics, such as code storage usage and function count. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/limits.html # # @return [Types::GetAccountSettingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::GetAccountSettingsResponse#account_limit #account_limit} => Types::AccountLimit # * {Types::GetAccountSettingsResponse#account_usage #account_usage} => Types::AccountUsage # # # @example Example: To retrieves a Lambda customer's account settings # # # This operation retrieves a Lambda customer's account settings # # resp = client.get_account_settings({ # }) # # resp.to_h outputs the following: # { # account_limit: { # }, # account_usage: { # }, # } # # @example Response structure # # resp.account_limit.total_code_size #=> Integer # resp.account_limit.code_size_unzipped #=> Integer # resp.account_limit.code_size_zipped #=> Integer # resp.account_limit.concurrent_executions #=> Integer # resp.account_usage.total_code_size #=> Integer # resp.account_usage.function_count #=> Integer # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetAccountSettings AWS API Documentation # # @overload get_account_settings(params = {}) # @param [Hash] params ({}) def get_account_settings(params = {}, options = {}) req = build_request(:get_account_settings, params) req.send_request(options) end # Returns the specified alias information such as the alias ARN, # description, and function version it is pointing to. For more # information, see [Introduction to AWS Lambda Aliases][1]. # # This requires permission for the `lambda:GetAlias` action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/aliases-intro.html # # @option params [required, String] :function_name # Function name for which the alias is created. An alias is a # subresource that exists only in the context of an existing Lambda # function so you must specify the function name. Note that the length # constraint applies only to the ARN. If you specify only the function # name, it is limited to 64 characters in length. # # @option params [required, String] :name # Name of the alias for which you want to retrieve information. # # @return [Types::AliasConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::AliasConfiguration#alias_arn #alias_arn} => String # * {Types::AliasConfiguration#name #name} => String # * {Types::AliasConfiguration#function_version #function_version} => String # * {Types::AliasConfiguration#description #description} => String # # # @example Example: To retrieve a Lambda function alias # # # This operation retrieves a Lambda function alias # # resp = client.get_alias({ # function_name: "myFunction", # name: "myFunctionAlias", # }) # # resp.to_h outputs the following: # { # alias_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunctionAlias", # description: "", # function_version: "1", # name: "myFunctionAlias", # } # # @example Request syntax with placeholder values # # resp = client.get_alias({ # function_name: "FunctionName", # required # name: "Alias", # required # }) # # @example Response structure # # resp.alias_arn #=> String # resp.name #=> String # resp.function_version #=> String # resp.description #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetAlias AWS API Documentation # # @overload get_alias(params = {}) # @param [Hash] params ({}) def get_alias(params = {}, options = {}) req = build_request(:get_alias, params) req.send_request(options) end # Returns configuration information for the specified event source # mapping (see CreateEventSourceMapping). # # This operation requires permission for the # `lambda:GetEventSourceMapping` action. # # @option params [required, String] :uuid # The AWS Lambda assigned ID of the event source mapping. # # @return [Types::EventSourceMappingConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::EventSourceMappingConfiguration#uuid #uuid} => String # * {Types::EventSourceMappingConfiguration#batch_size #batch_size} => Integer # * {Types::EventSourceMappingConfiguration#event_source_arn #event_source_arn} => String # * {Types::EventSourceMappingConfiguration#function_arn #function_arn} => String # * {Types::EventSourceMappingConfiguration#last_modified #last_modified} => Time # * {Types::EventSourceMappingConfiguration#last_processing_result #last_processing_result} => String # * {Types::EventSourceMappingConfiguration#state #state} => String # * {Types::EventSourceMappingConfiguration#state_transition_reason #state_transition_reason} => String # # # @example Example: To retrieve a Lambda function's event source mapping # # # This operation retrieves a Lambda function's event source mapping # # resp = client.get_event_source_mapping({ # uuid: "123489-xxxxx-kdla8d89d7", # }) # # resp.to_h outputs the following: # { # batch_size: 123, # event_source_arn: "arn:aws:iam::123456789012:eventsource", # function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", # last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), # last_processing_result: "", # state: "", # state_transition_reason: "", # uuid: "123489-xxxxx-kdla8d89d7", # } # # @example Request syntax with placeholder values # # resp = client.get_event_source_mapping({ # uuid: "String", # required # }) # # @example Response structure # # resp.uuid #=> String # resp.batch_size #=> Integer # resp.event_source_arn #=> String # resp.function_arn #=> String # resp.last_modified #=> Time # resp.last_processing_result #=> String # resp.state #=> String # resp.state_transition_reason #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetEventSourceMapping AWS API Documentation # # @overload get_event_source_mapping(params = {}) # @param [Hash] params ({}) def get_event_source_mapping(params = {}, options = {}) req = build_request(:get_event_source_mapping, params) req.send_request(options) end # Returns the configuration information of the Lambda function and a # presigned URL link to the .zip file you uploaded with CreateFunction # 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. # # Using the optional `Qualifier` parameter, you can specify a specific # function version for which you want this information. If you don't # specify this parameter, the API uses unqualified function ARN which # return information about the `$LATEST` version of the Lambda function. # For more information, see [AWS Lambda Function Versioning and # Aliases][1]. # # This operation requires permission for the `lambda:GetFunction` # action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :function_name # The Lambda function name. # # You can specify a function name (for example, `Thumbnail`) or you can # specify Amazon Resource Name (ARN) of the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). AWS Lambda # also allows you to specify a partial ARN (for example, # `account-id:Thumbnail`). Note that the length constraint applies only # to the ARN. If you specify only the function name, it is limited to 64 # characters in length. # # @option params [String] :qualifier # Using this optional parameter to specify a function version or an # alias name. If you specify function version, the API uses qualified # function ARN for the request and returns information about the # specific Lambda function version. If you specify an alias name, the # API uses the alias ARN and returns information about the function # version to which the alias points. If you don't provide this # parameter, the API uses unqualified function ARN and returns # information about the `$LATEST` version of the Lambda function. # # @return [Types::GetFunctionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::GetFunctionResponse#configuration #configuration} => Types::FunctionConfiguration # * {Types::GetFunctionResponse#code #code} => Types::FunctionCodeLocation # * {Types::GetFunctionResponse#tags #tags} => Hash<String,String> # # # @example Example: To retrieve a Lambda function's event source mapping # # # This operation retrieves a Lambda function's event source mapping # # resp = client.get_function({ # function_name: "myFunction", # qualifier: "1", # }) # # resp.to_h outputs the following: # { # code: { # location: "somelocation", # repository_type: "S3", # }, # configuration: { # code_sha_256: "LQT+0DHxxxxcfwLyQjzoEFKZtdqQjHXanlSdfXBlEW0VA=", # code_size: 262, # description: "A starter AWS Lambda function.", # environment: { # variables: { # "S3_BUCKET" => "test", # }, # }, # function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", # function_name: "myFunction", # handler: "index.handler", # last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), # memory_size: 128, # role: "arn:aws:iam::123456789012:role/lambda_basic_execution", # runtime: "nodejs4.3", # timeout: 3, # version: "$LATEST", # vpc_config: { # security_group_ids: [ # ], # subnet_ids: [ # ], # }, # }, # } # # @example Request syntax with placeholder values # # resp = client.get_function({ # function_name: "NamespacedFunctionName", # required # qualifier: "Qualifier", # }) # # @example Response structure # # resp.configuration.function_name #=> String # resp.configuration.function_arn #=> String # resp.configuration.runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "java8", "python2.7", "python3.6", "dotnetcore1.0", "nodejs4.3-edge" # resp.configuration.role #=> String # resp.configuration.handler #=> String # resp.configuration.code_size #=> Integer # resp.configuration.description #=> String # resp.configuration.timeout #=> Integer # resp.configuration.memory_size #=> Integer # resp.configuration.last_modified #=> Time # resp.configuration.code_sha_256 #=> String # resp.configuration.version #=> String # resp.configuration.vpc_config.subnet_ids #=> Array # resp.configuration.vpc_config.subnet_ids[0] #=> String # resp.configuration.vpc_config.security_group_ids #=> Array # resp.configuration.vpc_config.security_group_ids[0] #=> String # resp.configuration.vpc_config.vpc_id #=> String # resp.configuration.dead_letter_config.target_arn #=> String # resp.configuration.environment.variables #=> Hash # resp.configuration.environment.variables["EnvironmentVariableName"] #=> String # resp.configuration.environment.error.error_code #=> String # resp.configuration.environment.error.message #=> String # resp.configuration.kms_key_arn #=> String # resp.configuration.tracing_config.mode #=> String, one of "Active", "PassThrough" # resp.configuration.master_arn #=> String # resp.code.repository_type #=> String # resp.code.location #=> String # resp.tags #=> Hash # resp.tags["TagKey"] #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunction AWS API Documentation # # @overload get_function(params = {}) # @param [Hash] params ({}) def get_function(params = {}, options = {}) req = build_request(:get_function, params) req.send_request(options) end # Returns the configuration information of the Lambda function. This the # same information you provided as parameters when uploading the # function by using CreateFunction. # # If you are using the versioning feature, you can retrieve this # information for a specific function version by using the optional # `Qualifier` parameter and specifying the function version or alias # that points to it. If you don't provide it, the API returns # information about the $LATEST version of the function. For more # information about versioning, see [AWS Lambda Function Versioning and # Aliases][1]. # # This operation requires permission for the # `lambda:GetFunctionConfiguration` operation. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :function_name # The name of the Lambda function for which you want to retrieve the # configuration information. # # You can specify a function name (for example, `Thumbnail`) or you can # specify Amazon Resource Name (ARN) of the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). AWS Lambda # also allows you to specify a partial ARN (for example, # `account-id:Thumbnail`). Note that the length constraint applies only # to the ARN. If you specify only the function name, it is limited to 64 # characters in length. # # @option params [String] :qualifier # Using this optional parameter you can specify a function version or an # alias name. If you specify function version, the API uses qualified # function ARN and returns information about the specific function # version. If you specify an alias name, the API uses the alias ARN and # returns information about the function version to which the alias # points. # # If you don't specify this parameter, the API uses unqualified # function ARN, and returns information about the `$LATEST` function # version. # # @return [Types::FunctionConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::FunctionConfiguration#function_name #function_name} => String # * {Types::FunctionConfiguration#function_arn #function_arn} => String # * {Types::FunctionConfiguration#runtime #runtime} => String # * {Types::FunctionConfiguration#role #role} => String # * {Types::FunctionConfiguration#handler #handler} => String # * {Types::FunctionConfiguration#code_size #code_size} => Integer # * {Types::FunctionConfiguration#description #description} => String # * {Types::FunctionConfiguration#timeout #timeout} => Integer # * {Types::FunctionConfiguration#memory_size #memory_size} => Integer # * {Types::FunctionConfiguration#last_modified #last_modified} => Time # * {Types::FunctionConfiguration#code_sha_256 #code_sha_256} => String # * {Types::FunctionConfiguration#version #version} => String # * {Types::FunctionConfiguration#vpc_config #vpc_config} => Types::VpcConfigResponse # * {Types::FunctionConfiguration#dead_letter_config #dead_letter_config} => Types::DeadLetterConfig # * {Types::FunctionConfiguration#environment #environment} => Types::EnvironmentResponse # * {Types::FunctionConfiguration#kms_key_arn #kms_key_arn} => String # * {Types::FunctionConfiguration#tracing_config #tracing_config} => Types::TracingConfigResponse # * {Types::FunctionConfiguration#master_arn #master_arn} => String # # # @example Example: To retrieve a Lambda function's event source mapping # # # This operation retrieves a Lambda function's event source mapping # # resp = client.get_function_configuration({ # function_name: "myFunction", # qualifier: "1", # }) # # resp.to_h outputs the following: # { # code_sha_256: "LQT+0DHxxxxcfwLyQjzoEFKZtdqQjHXanlSdfXBlEW0VA=", # code_size: 123, # dead_letter_config: { # }, # description: "", # environment: { # }, # function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", # function_name: "myFunction", # handler: "index.handler", # kms_key_arn: "", # last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), # memory_size: 128, # role: "arn:aws:iam::123456789012:role/lambda_basic_execution", # runtime: "python2.7", # timeout: 123, # version: "1", # vpc_config: { # }, # } # # @example Request syntax with placeholder values # # resp = client.get_function_configuration({ # function_name: "NamespacedFunctionName", # required # qualifier: "Qualifier", # }) # # @example Response structure # # resp.function_name #=> String # resp.function_arn #=> String # resp.runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "java8", "python2.7", "python3.6", "dotnetcore1.0", "nodejs4.3-edge" # resp.role #=> String # resp.handler #=> String # resp.code_size #=> Integer # resp.description #=> String # resp.timeout #=> Integer # resp.memory_size #=> Integer # resp.last_modified #=> Time # resp.code_sha_256 #=> String # resp.version #=> String # resp.vpc_config.subnet_ids #=> Array # resp.vpc_config.subnet_ids[0] #=> String # resp.vpc_config.security_group_ids #=> Array # resp.vpc_config.security_group_ids[0] #=> String # resp.vpc_config.vpc_id #=> String # resp.dead_letter_config.target_arn #=> String # resp.environment.variables #=> Hash # resp.environment.variables["EnvironmentVariableName"] #=> String # resp.environment.error.error_code #=> String # resp.environment.error.message #=> String # resp.kms_key_arn #=> String # resp.tracing_config.mode #=> String, one of "Active", "PassThrough" # resp.master_arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionConfiguration AWS API Documentation # # @overload get_function_configuration(params = {}) # @param [Hash] params ({}) def get_function_configuration(params = {}, options = {}) req = build_request(:get_function_configuration, params) req.send_request(options) end # Returns the resource policy associated with the specified Lambda # function. # # If you are using the versioning feature, you can get the resource # policy associated with the specific Lambda function version or alias # by specifying the version or alias name using the `Qualifier` # parameter. For more information about versioning, see [AWS Lambda # Function Versioning and Aliases][1]. # # You need permission for the `lambda:GetPolicy action.` # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :function_name # Function name whose resource policy you want to retrieve. # # You can specify the function name (for example, `Thumbnail`) or you # can specify Amazon Resource Name (ARN) of the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). If you are # using versioning, you can also provide a qualified function ARN (ARN # that is qualified with function version or alias name as suffix). AWS # Lambda also allows you to specify only the function name with the # account ID qualifier (for example, `account-id:Thumbnail`). Note that # the length constraint applies only to the ARN. If you specify only the # function name, it is limited to 64 characters in length. # # @option params [String] :qualifier # You can specify this optional query parameter to specify a function # version or an alias name in which case this API will return all # permissions associated with the specific qualified ARN. If you don't # provide this parameter, the API will return permissions that apply to # the unqualified function ARN. # # @return [Types::GetPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::GetPolicyResponse#policy #policy} => String # # # @example Example: To retrieve a Lambda function policy # # # This operation retrieves a Lambda function policy # # resp = client.get_policy({ # function_name: "myFunction", # qualifier: "1", # }) # # resp.to_h outputs the following: # { # policy: "", # } # # @example Request syntax with placeholder values # # resp = client.get_policy({ # function_name: "NamespacedFunctionName", # required # qualifier: "Qualifier", # }) # # @example Response structure # # resp.policy #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetPolicy AWS API Documentation # # @overload get_policy(params = {}) # @param [Hash] params ({}) def get_policy(params = {}, options = {}) req = build_request(:get_policy, params) req.send_request(options) end # Invokes a specific Lambda function. For an example, see [Create the # Lambda Function and Test It Manually][1]. # # If you are using the versioning feature, you can invoke the specific # function version by providing function version or alias name that is # pointing to the function version using the `Qualifier` parameter in # the request. If you don't provide the `Qualifier` parameter, the # `$LATEST` version of the Lambda function is invoked. Invocations occur # at least once in response to an event and functions must be idempotent # to handle this. For information about the versioning feature, see [AWS # Lambda Function Versioning and Aliases][2]. # # This operation requires permission for the `lambda:InvokeFunction` # action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/with-dynamodb-create-function.html#with-dbb-invoke-manually # [2]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :function_name # The Lambda function name. # # You can specify a function name (for example, `Thumbnail`) or you can # specify Amazon Resource Name (ARN) of the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). AWS Lambda # also allows you to specify a partial ARN (for example, # `account-id:Thumbnail`). Note that the length constraint applies only # to the ARN. If you specify only the function name, it is limited to 64 # characters in length. # # @option params [String] :invocation_type # By default, the `Invoke` API assumes `RequestResponse` invocation # type. You can optionally request asynchronous execution by specifying # `Event` as the `InvocationType`. You can also use this parameter to # request AWS Lambda to not execute the function but do some # verification, such as if the caller is authorized to invoke the # function and if the inputs are valid. You request this by specifying # `DryRun` as the `InvocationType`. This is useful in a cross-account # scenario when you want to verify access to a function without running # it. # # @option params [String] :log_type # You can set this optional parameter to `Tail` in the request only if # you specify the `InvocationType` parameter with value # `RequestResponse`. In this case, AWS Lambda returns the base64-encoded # last 4 KB of log data produced by your Lambda function in the # `x-amz-log-result` header. # # @option params [String] :client_context # Using the `ClientContext` you can pass client-specific information to # the Lambda function you are invoking. You can then process the client # information in your Lambda function as you choose through the context # variable. For an example of a `ClientContext` JSON, see [PutEvents][1] # in the *Amazon Mobile Analytics API Reference and User Guide*. # # The ClientContext JSON must be base64-encoded. # # # # [1]: http://docs.aws.amazon.com/mobileanalytics/latest/ug/PutEvents.html # # @option params [String, IO] :payload # JSON that you want to provide to your Lambda function as input. # # @option params [String] :qualifier # You can use this optional parameter to specify a Lambda function # version or alias name. If you specify a function version, the API uses # the qualified function ARN to invoke a specific Lambda function. If # you specify an alias name, the API uses the alias ARN to invoke the # Lambda function version to which the alias points. # # If you don't provide this parameter, then the API uses unqualified # function ARN which results in invocation of the `$LATEST` version. # # @return [Types::InvocationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::InvocationResponse#status_code #status_code} => Integer # * {Types::InvocationResponse#function_error #function_error} => String # * {Types::InvocationResponse#log_result #log_result} => String # * {Types::InvocationResponse#payload #payload} => String # # # @example Example: To invoke a Lambda function # # # This operation invokes a Lambda function # # resp = client.invoke({ # client_context: "MyApp", # function_name: "MyFunction", # invocation_type: "Event", # log_type: "Tail", # payload: "fileb://file-path/input.json", # qualifier: "1", # }) # # resp.to_h outputs the following: # { # function_error: "", # log_result: "", # payload: "?", # status_code: 123, # } # # @example Request syntax with placeholder values # # resp = client.invoke({ # function_name: "NamespacedFunctionName", # required # invocation_type: "Event", # accepts Event, RequestResponse, DryRun # log_type: "None", # accepts None, Tail # client_context: "String", # payload: "data", # qualifier: "Qualifier", # }) # # @example Response structure # # resp.status_code #=> Integer # resp.function_error #=> String # resp.log_result #=> String # resp.payload #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/Invoke AWS API Documentation # # @overload invoke(params = {}) # @param [Hash] params ({}) def invoke(params = {}, options = {}) req = build_request(:invoke, params) req.send_request(options) end # This API is deprecated. We recommend you use `Invoke` API (see # Invoke). # # 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:InvokeFunction` # action. # # @option params [required, String] :function_name # The Lambda function name. Note that the length constraint applies only # to the ARN. If you specify only the function name, it is limited to 64 # characters in length. # # @option params [required, String, IO] :invoke_args # JSON that you want to provide to your Lambda function as input. # # @return [Types::InvokeAsyncResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::InvokeAsyncResponse#status #status} => Integer # # # @example Example: To invoke a Lambda function asynchronously # # # This operation invokes a Lambda function asynchronously # # resp = client.invoke_async({ # function_name: "myFunction", # invoke_args: "fileb://file-path/input.json", # }) # # resp.to_h outputs the following: # { # status: 123, # } # # @example Request syntax with placeholder values # # resp = client.invoke_async({ # function_name: "NamespacedFunctionName", # required # invoke_args: "data", # required # }) # # @example Response structure # # resp.status #=> Integer # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/InvokeAsync AWS API Documentation # # @overload invoke_async(params = {}) # @param [Hash] params ({}) def invoke_async(params = {}, options = {}) req = build_request(:invoke_async, params) req.send_request(options) end # Returns list of aliases created for a Lambda function. For each alias, # the response includes information such as the alias ARN, description, # alias name, and the function version to which it points. For more # information, see [Introduction to AWS Lambda Aliases][1]. # # This requires permission for the lambda:ListAliases action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/aliases-intro.html # # @option params [required, String] :function_name # Lambda function name for which the alias is created. Note that the # length constraint applies only to the ARN. If you specify only the # function name, it is limited to 64 characters in length. # # @option params [String] :function_version # If you specify this optional parameter, the API returns only the # aliases that are pointing to the specific Lambda function version, # otherwise the API returns all of the aliases created for the Lambda # function. # # @option params [String] :marker # Optional string. An opaque pagination token returned from a previous # `ListAliases` operation. If present, indicates where to continue the # listing. # # @option params [Integer] :max_items # Optional integer. Specifies the maximum number of aliases to return in # response. This parameter value must be greater than 0. # # @return [Types::ListAliasesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ListAliasesResponse#next_marker #next_marker} => String # * {Types::ListAliasesResponse#aliases #aliases} => Array<Types::AliasConfiguration> # # # @example Example: To retrieve a Lambda function aliases # # # This operation retrieves a Lambda function's aliases # # resp = client.list_aliases({ # function_name: "myFunction", # function_version: "1", # marker: "", # max_items: 123, # }) # # resp.to_h outputs the following: # { # aliases: [ # ], # next_marker: "", # } # # @example Request syntax with placeholder values # # resp = client.list_aliases({ # function_name: "FunctionName", # required # function_version: "Version", # marker: "String", # max_items: 1, # }) # # @example Response structure # # resp.next_marker #=> String # resp.aliases #=> Array # resp.aliases[0].alias_arn #=> String # resp.aliases[0].name #=> String # resp.aliases[0].function_version #=> String # resp.aliases[0].description #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListAliases AWS API Documentation # # @overload list_aliases(params = {}) # @param [Hash] params ({}) def list_aliases(params = {}, options = {}) req = build_request(:list_aliases, params) req.send_request(options) end # Returns a list of event source mappings you created using the # `CreateEventSourceMapping` (see CreateEventSourceMapping). # # For each mapping, the API returns configuration information. You can # optionally specify filters to retrieve specific event source mappings. # # If you are using the versioning feature, you can get list of event # source mappings for a specific Lambda function version or an alias as # described in the `FunctionName` parameter. For information about the # versioning feature, see [AWS Lambda Function Versioning and # Aliases][1]. # # This operation requires permission for the # `lambda:ListEventSourceMappings` action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [String] :event_source_arn # The Amazon Resource Name (ARN) of the Amazon Kinesis stream. (This # parameter is optional.) # # @option params [String] :function_name # The name of the Lambda function. # # You can specify the function name (for example, `Thumbnail`) or you # can specify Amazon Resource Name (ARN) of the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). If you are # using versioning, you can also provide a qualified function ARN (ARN # that is qualified with function version or alias name as suffix). AWS # Lambda also allows you to specify only the function name with the # account ID qualifier (for example, `account-id:Thumbnail`). Note that # the length constraint applies only to the ARN. If you specify only the # function name, it is limited to 64 characters in length. # # @option params [String] :marker # Optional string. An opaque pagination token returned from a previous # `ListEventSourceMappings` operation. If present, specifies to continue # the list from where the returning call left off. # # @option params [Integer] :max_items # Optional integer. Specifies the maximum number of event sources to # return in response. This value must be greater than 0. # # @return [Types::ListEventSourceMappingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ListEventSourceMappingsResponse#next_marker #next_marker} => String # * {Types::ListEventSourceMappingsResponse#event_source_mappings #event_source_mappings} => Array<Types::EventSourceMappingConfiguration> # # @example Request syntax with placeholder values # # resp = client.list_event_source_mappings({ # event_source_arn: "Arn", # function_name: "FunctionName", # marker: "String", # max_items: 1, # }) # # @example Response structure # # resp.next_marker #=> String # resp.event_source_mappings #=> Array # resp.event_source_mappings[0].uuid #=> String # resp.event_source_mappings[0].batch_size #=> Integer # resp.event_source_mappings[0].event_source_arn #=> String # resp.event_source_mappings[0].function_arn #=> String # resp.event_source_mappings[0].last_modified #=> Time # resp.event_source_mappings[0].last_processing_result #=> String # resp.event_source_mappings[0].state #=> String # resp.event_source_mappings[0].state_transition_reason #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListEventSourceMappings AWS API Documentation # # @overload list_event_source_mappings(params = {}) # @param [Hash] params ({}) def list_event_source_mappings(params = {}, options = {}) req = build_request(:list_event_source_mappings, params) req.send_request(options) end # 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. # # If you are using the versioning feature, you can list all of your # functions or only `$LATEST` versions. For information about the # versioning feature, see [AWS Lambda Function Versioning and # Aliases][1]. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [String] :master_region # Optional string. If not specified, will return only regular function # versions (i.e., non-replicated versions). # # Valid values are: # # The region from which the functions are replicated. For example, if # you specify `us-east-1`, only functions replicated from that region # will be returned. # # `ALL` \_ Will return all functions from any region. If specified, you # also must specify a valid FunctionVersion parameter. # # @option params [String] :function_version # Optional string. If not specified, only the unqualified functions ARNs # (Amazon Resource Names) will be returned. # # Valid value: # # `ALL` \_ Will return all versions, including `$LATEST` which will have # fully qualified ARNs (Amazon Resource Names). # # @option params [String] :marker # Optional string. An opaque pagination token returned from a previous # `ListFunctions` operation. If present, indicates where to continue the # listing. # # @option params [Integer] :max_items # Optional integer. Specifies the maximum number of AWS Lambda functions # to return in response. This parameter value must be greater than 0. # # @return [Types::ListFunctionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ListFunctionsResponse#next_marker #next_marker} => String # * {Types::ListFunctionsResponse#functions #functions} => Array<Types::FunctionConfiguration> # # # @example Example: To retrieve a list of Lambda functions # # # This operation retrieves a Lambda functions # # resp = client.list_functions({ # marker: "", # max_items: 123, # }) # # resp.to_h outputs the following: # { # functions: [ # ], # next_marker: "", # } # # @example Request syntax with placeholder values # # resp = client.list_functions({ # master_region: "MasterRegion", # function_version: "ALL", # accepts ALL # marker: "String", # max_items: 1, # }) # # @example Response structure # # resp.next_marker #=> String # resp.functions #=> Array # resp.functions[0].function_name #=> String # resp.functions[0].function_arn #=> String # resp.functions[0].runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "java8", "python2.7", "python3.6", "dotnetcore1.0", "nodejs4.3-edge" # resp.functions[0].role #=> String # resp.functions[0].handler #=> String # resp.functions[0].code_size #=> Integer # resp.functions[0].description #=> String # resp.functions[0].timeout #=> Integer # resp.functions[0].memory_size #=> Integer # resp.functions[0].last_modified #=> Time # resp.functions[0].code_sha_256 #=> String # resp.functions[0].version #=> String # resp.functions[0].vpc_config.subnet_ids #=> Array # resp.functions[0].vpc_config.subnet_ids[0] #=> String # resp.functions[0].vpc_config.security_group_ids #=> Array # resp.functions[0].vpc_config.security_group_ids[0] #=> String # resp.functions[0].vpc_config.vpc_id #=> String # resp.functions[0].dead_letter_config.target_arn #=> String # resp.functions[0].environment.variables #=> Hash # resp.functions[0].environment.variables["EnvironmentVariableName"] #=> String # resp.functions[0].environment.error.error_code #=> String # resp.functions[0].environment.error.message #=> String # resp.functions[0].kms_key_arn #=> String # resp.functions[0].tracing_config.mode #=> String, one of "Active", "PassThrough" # resp.functions[0].master_arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListFunctions AWS API Documentation # # @overload list_functions(params = {}) # @param [Hash] params ({}) def list_functions(params = {}, options = {}) req = build_request(:list_functions, params) req.send_request(options) end # Returns a list of tags assigned to a function when supplied the # function ARN (Amazon Resource Name). # # @option params [required, String] :resource # The ARN (Amazon Resource Name) of the function. # # @return [Types::ListTagsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ListTagsResponse#tags #tags} => Hash<String,String> # # @example Request syntax with placeholder values # # resp = client.list_tags({ # resource: "FunctionArn", # required # }) # # @example Response structure # # resp.tags #=> Hash # resp.tags["TagKey"] #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListTags AWS API Documentation # # @overload list_tags(params = {}) # @param [Hash] params ({}) def list_tags(params = {}, options = {}) req = build_request(:list_tags, params) req.send_request(options) end # List all versions of a function. For information about the versioning # feature, see [AWS Lambda Function Versioning and Aliases][1]. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :function_name # Function name whose versions to list. You can specify a function name # (for example, `Thumbnail`) or you can specify Amazon Resource Name # (ARN) of the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). AWS Lambda # also allows you to specify a partial ARN (for example, # `account-id:Thumbnail`). Note that the length constraint applies only # to the ARN. If you specify only the function name, it is limited to 64 # characters in length. # # @option params [String] :marker # Optional string. An opaque pagination token returned from a previous # `ListVersionsByFunction` operation. If present, indicates where to # continue the listing. # # @option params [Integer] :max_items # Optional integer. Specifies the maximum number of AWS Lambda function # versions to return in response. This parameter value must be greater # than 0. # # @return [Types::ListVersionsByFunctionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ListVersionsByFunctionResponse#next_marker #next_marker} => String # * {Types::ListVersionsByFunctionResponse#versions #versions} => Array<Types::FunctionConfiguration> # # # @example Example: To retrieve a list of Lambda function versions # # # This operation retrieves a Lambda function versions # # resp = client.list_versions_by_function({ # function_name: "myFunction", # marker: "", # max_items: 123, # }) # # resp.to_h outputs the following: # { # next_marker: "", # versions: [ # ], # } # # @example Request syntax with placeholder values # # resp = client.list_versions_by_function({ # function_name: "NamespacedFunctionName", # required # marker: "String", # max_items: 1, # }) # # @example Response structure # # resp.next_marker #=> String # resp.versions #=> Array # resp.versions[0].function_name #=> String # resp.versions[0].function_arn #=> String # resp.versions[0].runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "java8", "python2.7", "python3.6", "dotnetcore1.0", "nodejs4.3-edge" # resp.versions[0].role #=> String # resp.versions[0].handler #=> String # resp.versions[0].code_size #=> Integer # resp.versions[0].description #=> String # resp.versions[0].timeout #=> Integer # resp.versions[0].memory_size #=> Integer # resp.versions[0].last_modified #=> Time # resp.versions[0].code_sha_256 #=> String # resp.versions[0].version #=> String # resp.versions[0].vpc_config.subnet_ids #=> Array # resp.versions[0].vpc_config.subnet_ids[0] #=> String # resp.versions[0].vpc_config.security_group_ids #=> Array # resp.versions[0].vpc_config.security_group_ids[0] #=> String # resp.versions[0].vpc_config.vpc_id #=> String # resp.versions[0].dead_letter_config.target_arn #=> String # resp.versions[0].environment.variables #=> Hash # resp.versions[0].environment.variables["EnvironmentVariableName"] #=> String # resp.versions[0].environment.error.error_code #=> String # resp.versions[0].environment.error.message #=> String # resp.versions[0].kms_key_arn #=> String # resp.versions[0].tracing_config.mode #=> String, one of "Active", "PassThrough" # resp.versions[0].master_arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListVersionsByFunction AWS API Documentation # # @overload list_versions_by_function(params = {}) # @param [Hash] params ({}) def list_versions_by_function(params = {}, options = {}) req = build_request(:list_versions_by_function, params) req.send_request(options) end # Publishes a version of your function from the current snapshot of # $LATEST. That is, AWS Lambda takes a snapshot of the function code and # configuration information from $LATEST and publishes a new version. # The code and configuration cannot be modified after publication. For # information about the versioning feature, see [AWS Lambda Function # Versioning and Aliases][1]. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :function_name # The Lambda function name. You can specify a function name (for # example, `Thumbnail`) or you can specify Amazon Resource Name (ARN) of # the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). AWS Lambda # also allows you to specify a partial ARN (for example, # `account-id:Thumbnail`). Note that the length constraint applies only # to the ARN. If you specify only the function name, it is limited to 64 # characters in length. # # @option params [String] :code_sha_256 # The SHA256 hash of the deployment package you want to publish. This # provides validation on the code you are publishing. If you provide # this parameter value must match the SHA256 of the $LATEST version for # the publication to succeed. # # @option params [String] :description # The description for the version you are publishing. If not provided, # AWS Lambda copies the description from the $LATEST version. # # @return [Types::FunctionConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::FunctionConfiguration#function_name #function_name} => String # * {Types::FunctionConfiguration#function_arn #function_arn} => String # * {Types::FunctionConfiguration#runtime #runtime} => String # * {Types::FunctionConfiguration#role #role} => String # * {Types::FunctionConfiguration#handler #handler} => String # * {Types::FunctionConfiguration#code_size #code_size} => Integer # * {Types::FunctionConfiguration#description #description} => String # * {Types::FunctionConfiguration#timeout #timeout} => Integer # * {Types::FunctionConfiguration#memory_size #memory_size} => Integer # * {Types::FunctionConfiguration#last_modified #last_modified} => Time # * {Types::FunctionConfiguration#code_sha_256 #code_sha_256} => String # * {Types::FunctionConfiguration#version #version} => String # * {Types::FunctionConfiguration#vpc_config #vpc_config} => Types::VpcConfigResponse # * {Types::FunctionConfiguration#dead_letter_config #dead_letter_config} => Types::DeadLetterConfig # * {Types::FunctionConfiguration#environment #environment} => Types::EnvironmentResponse # * {Types::FunctionConfiguration#kms_key_arn #kms_key_arn} => String # * {Types::FunctionConfiguration#tracing_config #tracing_config} => Types::TracingConfigResponse # * {Types::FunctionConfiguration#master_arn #master_arn} => String # # # @example Example: To publish a version of a Lambda function # # # This operation publishes a version of a Lambda function # # resp = client.publish_version({ # code_sha_256: "", # description: "", # function_name: "myFunction", # }) # # resp.to_h outputs the following: # { # code_sha_256: "", # code_size: 123, # description: "", # function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", # function_name: "myFunction", # handler: "index.handler", # last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), # memory_size: 128, # role: "arn:aws:iam::123456789012:role/lambda_basic_execution", # runtime: "python2.7", # timeout: 123, # version: "1", # vpc_config: { # }, # } # # @example Request syntax with placeholder values # # resp = client.publish_version({ # function_name: "FunctionName", # required # code_sha_256: "String", # description: "Description", # }) # # @example Response structure # # resp.function_name #=> String # resp.function_arn #=> String # resp.runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "java8", "python2.7", "python3.6", "dotnetcore1.0", "nodejs4.3-edge" # resp.role #=> String # resp.handler #=> String # resp.code_size #=> Integer # resp.description #=> String # resp.timeout #=> Integer # resp.memory_size #=> Integer # resp.last_modified #=> Time # resp.code_sha_256 #=> String # resp.version #=> String # resp.vpc_config.subnet_ids #=> Array # resp.vpc_config.subnet_ids[0] #=> String # resp.vpc_config.security_group_ids #=> Array # resp.vpc_config.security_group_ids[0] #=> String # resp.vpc_config.vpc_id #=> String # resp.dead_letter_config.target_arn #=> String # resp.environment.variables #=> Hash # resp.environment.variables["EnvironmentVariableName"] #=> String # resp.environment.error.error_code #=> String # resp.environment.error.message #=> String # resp.kms_key_arn #=> String # resp.tracing_config.mode #=> String, one of "Active", "PassThrough" # resp.master_arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PublishVersion AWS API Documentation # # @overload publish_version(params = {}) # @param [Hash] params ({}) def publish_version(params = {}, options = {}) req = build_request(:publish_version, params) req.send_request(options) end # You can remove individual permissions from an resource policy # associated with a Lambda function by providing a statement ID that you # provided when you added the permission. # # If you are using versioning, the permissions you remove are specific # to the Lambda function version or alias you specify in the # `AddPermission` request via the `Qualifier` parameter. For more # information about versioning, see [AWS Lambda Function Versioning and # Aliases][1]. # # Note that removal of a permission will cause an active event source to # lose permission to the function. # # You need permission for the `lambda:RemovePermission` action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :function_name # Lambda function whose resource policy you want to remove a permission # from. # # You can specify a function name (for example, `Thumbnail`) or you can # specify Amazon Resource Name (ARN) of the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). AWS Lambda # also allows you to specify a partial ARN (for example, # `account-id:Thumbnail`). Note that the length constraint applies only # to the ARN. If you specify only the function name, it is limited to 64 # characters in length. # # @option params [required, String] :statement_id # Statement ID of the permission to remove. # # @option params [String] :qualifier # You can specify this optional parameter to remove permission # associated with a specific function version or function alias. If you # don't specify this parameter, the API removes permission associated # with the unqualified function ARN. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # # @example Example: To remove a Lambda function's permissions # # # This operation removes a Lambda function's permissions # # resp = client.remove_permission({ # function_name: "myFunction", # qualifier: "1", # statement_id: "role-statement-id", # }) # # @example Request syntax with placeholder values # # resp = client.remove_permission({ # function_name: "FunctionName", # required # statement_id: "NamespacedStatementId", # required # qualifier: "Qualifier", # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/RemovePermission AWS API Documentation # # @overload remove_permission(params = {}) # @param [Hash] params ({}) def remove_permission(params = {}, options = {}) req = build_request(:remove_permission, params) req.send_request(options) end # Creates a list of tags (key-value pairs) on the Lambda function. # Requires the Lambda function ARN (Amazon Resource Name). If a key is # specified without a value, Lambda creates a tag with the specified key # and a value of null. # # @option params [required, String] :resource # The ARN (Amazon Resource Name) of the Lambda function. # # @option params [required, Hash] :tags # The list of tags (key-value pairs) you are assigning to the Lambda # function. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.tag_resource({ # resource: "FunctionArn", # required # tags: { # required # "TagKey" => "TagValue", # }, # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/TagResource AWS API Documentation # # @overload tag_resource(params = {}) # @param [Hash] params ({}) def tag_resource(params = {}, options = {}) req = build_request(:tag_resource, params) req.send_request(options) end # Removes tags from a Lambda function. Requires the function ARN (Amazon # Resource Name). # # @option params [required, String] :resource # The ARN (Amazon Resource Name) of the function. # # @option params [required, Array] :tag_keys # The list of tag keys to be deleted from the function. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.untag_resource({ # resource: "FunctionArn", # required # tag_keys: ["TagKey"], # required # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UntagResource AWS API Documentation # # @overload untag_resource(params = {}) # @param [Hash] params ({}) def untag_resource(params = {}, options = {}) req = build_request(:untag_resource, params) req.send_request(options) end # Using this API you can update the function version to which the alias # points and the alias description. For more information, see # [Introduction to AWS Lambda Aliases][1]. # # This requires permission for the lambda:UpdateAlias action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/aliases-intro.html # # @option params [required, String] :function_name # The function name for which the alias is created. Note that the length # constraint applies only to the ARN. If you specify only the function # name, it is limited to 64 characters in length. # # @option params [required, String] :name # The alias name. # # @option params [String] :function_version # Using this parameter you can change the Lambda function version to # which the alias points. # # @option params [String] :description # You can change the description of the alias using this parameter. # # @return [Types::AliasConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::AliasConfiguration#alias_arn #alias_arn} => String # * {Types::AliasConfiguration#name #name} => String # * {Types::AliasConfiguration#function_version #function_version} => String # * {Types::AliasConfiguration#description #description} => String # # # @example Example: To update a Lambda function alias # # # This operation updates a Lambda function alias # # resp = client.update_alias({ # description: "", # function_name: "myFunction", # function_version: "1", # name: "functionAlias", # }) # # resp.to_h outputs the following: # { # alias_arn: "arn:aws:lambda:us-west-2:123456789012:function:functionAlias", # description: "", # function_version: "1", # name: "functionAlias", # } # # @example Request syntax with placeholder values # # resp = client.update_alias({ # function_name: "FunctionName", # required # name: "Alias", # required # function_version: "Version", # description: "Description", # }) # # @example Response structure # # resp.alias_arn #=> String # resp.name #=> String # resp.function_version #=> String # resp.description #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateAlias AWS API Documentation # # @overload update_alias(params = {}) # @param [Hash] params ({}) def update_alias(params = {}, options = {}) req = build_request(:update_alias, params) req.send_request(options) end # You can update an event source mapping. This is useful if you want to # change the parameters of the existing mapping without losing your # position in the stream. You can change which function will receive the # stream records, but to change the stream itself, you must create a new # mapping. # # If you are using the versioning feature, you can update the event # source mapping to map to a specific Lambda function version or alias # as described in the `FunctionName` parameter. For information about # the versioning feature, see [AWS Lambda Function Versioning and # Aliases][1]. # # If you disable the event source mapping, AWS Lambda stops polling. If # you enable again, it will resume polling from the time it had stopped # polling, so you don't lose processing of any records. However, if you # delete event source mapping and create it again, it will reset. # # This operation requires permission for the # `lambda:UpdateEventSourceMapping` action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :uuid # The event source mapping identifier. # # @option params [String] :function_name # The Lambda function to which you want the stream records sent. # # You can specify a function name (for example, `Thumbnail`) or you can # specify Amazon Resource Name (ARN) of the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). AWS Lambda # also allows you to specify a partial ARN (for example, # `account-id:Thumbnail`). Note that the length constraint applies only # to the ARN. If you specify only the function name, it is limited to 64 # characters in length. # # If you are using versioning, you can also provide a qualified function # ARN (ARN that is qualified with function version or alias name as # suffix). For more information about versioning, see [AWS Lambda # Function Versioning and Aliases][1] # # Note that the length constraint applies only to the ARN. If you # specify only the function name, it is limited to 64 character in # length. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [Boolean] :enabled # Specifies whether AWS Lambda should actively poll the stream or not. # If disabled, AWS Lambda will not poll the stream. # # @option params [Integer] :batch_size # The maximum number of stream records that can be sent to your Lambda # function for a single invocation. # # @return [Types::EventSourceMappingConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::EventSourceMappingConfiguration#uuid #uuid} => String # * {Types::EventSourceMappingConfiguration#batch_size #batch_size} => Integer # * {Types::EventSourceMappingConfiguration#event_source_arn #event_source_arn} => String # * {Types::EventSourceMappingConfiguration#function_arn #function_arn} => String # * {Types::EventSourceMappingConfiguration#last_modified #last_modified} => Time # * {Types::EventSourceMappingConfiguration#last_processing_result #last_processing_result} => String # * {Types::EventSourceMappingConfiguration#state #state} => String # * {Types::EventSourceMappingConfiguration#state_transition_reason #state_transition_reason} => String # # # @example Example: To update a Lambda function event source mapping # # # This operation updates a Lambda function event source mapping # # resp = client.update_event_source_mapping({ # batch_size: 123, # enabled: true, # function_name: "myFunction", # uuid: "1234xCy789012", # }) # # resp.to_h outputs the following: # { # batch_size: 123, # event_source_arn: "arn:aws:s3:::examplebucket/*", # function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", # last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), # last_processing_result: "", # state: "", # state_transition_reason: "", # uuid: "1234xCy789012", # } # # @example Request syntax with placeholder values # # resp = client.update_event_source_mapping({ # uuid: "String", # required # function_name: "FunctionName", # enabled: false, # batch_size: 1, # }) # # @example Response structure # # resp.uuid #=> String # resp.batch_size #=> Integer # resp.event_source_arn #=> String # resp.function_arn #=> String # resp.last_modified #=> Time # resp.last_processing_result #=> String # resp.state #=> String # resp.state_transition_reason #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateEventSourceMapping AWS API Documentation # # @overload update_event_source_mapping(params = {}) # @param [Hash] params ({}) def update_event_source_mapping(params = {}, options = {}) req = build_request(:update_event_source_mapping, params) req.send_request(options) end # Updates the code for the specified Lambda function. This operation # must only be used on an existing Lambda function and cannot be used to # update the function configuration. # # If you are using the versioning feature, note this API will always # update the $LATEST version of your Lambda function. For information # about the versioning feature, see [AWS Lambda Function Versioning and # Aliases][1]. # # This operation requires permission for the `lambda:UpdateFunctionCode` # action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :function_name # The existing Lambda function name whose code you want to replace. # # You can specify a function name (for example, `Thumbnail`) or you can # specify Amazon Resource Name (ARN) of the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). AWS Lambda # also allows you to specify a partial ARN (for example, # `account-id:Thumbnail`). Note that the length constraint applies only # to the ARN. If you specify only the function name, it is limited to 64 # characters in length. # # @option params [String, IO] :zip_file # The contents of your zip file containing your deployment package. If # you are using the web API directly, the contents of the zip file must # be base64-encoded. If you are using the AWS SDKs or the AWS CLI, the # SDKs or CLI will do the encoding for you. For more information about # creating a .zip file, see [Execution Permissions][1] in the *AWS # Lambda Developer Guide*. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role.html # # @option params [String] :s3_bucket # Amazon S3 bucket name where the .zip file containing your deployment # package is stored. This bucket must reside in the same AWS Region # where you are creating the Lambda function. # # @option params [String] :s3_key # The Amazon S3 object (the deployment package) key name you want to # upload. # # @option params [String] :s3_object_version # The Amazon S3 object (the deployment package) version you want to # upload. # # @option params [Boolean] :publish # This boolean parameter can be used to request AWS Lambda to update the # Lambda function and publish a version as an atomic operation. # # @option params [Boolean] :dry_run # This boolean parameter can be used to test your request to AWS Lambda # to update the Lambda function and publish a version as an atomic # operation. It will do all necessary computation and validation of your # code but will not upload it or a publish a version. Each time this # operation is invoked, the `CodeSha256` hash value the provided code # will also be computed and returned in the response. # # @return [Types::FunctionConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::FunctionConfiguration#function_name #function_name} => String # * {Types::FunctionConfiguration#function_arn #function_arn} => String # * {Types::FunctionConfiguration#runtime #runtime} => String # * {Types::FunctionConfiguration#role #role} => String # * {Types::FunctionConfiguration#handler #handler} => String # * {Types::FunctionConfiguration#code_size #code_size} => Integer # * {Types::FunctionConfiguration#description #description} => String # * {Types::FunctionConfiguration#timeout #timeout} => Integer # * {Types::FunctionConfiguration#memory_size #memory_size} => Integer # * {Types::FunctionConfiguration#last_modified #last_modified} => Time # * {Types::FunctionConfiguration#code_sha_256 #code_sha_256} => String # * {Types::FunctionConfiguration#version #version} => String # * {Types::FunctionConfiguration#vpc_config #vpc_config} => Types::VpcConfigResponse # * {Types::FunctionConfiguration#dead_letter_config #dead_letter_config} => Types::DeadLetterConfig # * {Types::FunctionConfiguration#environment #environment} => Types::EnvironmentResponse # * {Types::FunctionConfiguration#kms_key_arn #kms_key_arn} => String # * {Types::FunctionConfiguration#tracing_config #tracing_config} => Types::TracingConfigResponse # * {Types::FunctionConfiguration#master_arn #master_arn} => String # # # @example Example: To update a Lambda function's code # # # This operation updates a Lambda function's code # # resp = client.update_function_code({ # function_name: "myFunction", # publish: true, # s3_bucket: "myBucket", # s3_key: "myKey", # s3_object_version: "1", # zip_file: "fileb://file-path/file.zip", # }) # # resp.to_h outputs the following: # { # code_sha_256: "LQT+0DHxxxxcfwLyQjzoEFKZtdqQjHXanlSdfXBlEW0VA=", # code_size: 123, # description: "", # function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", # function_name: "myFunction", # handler: "index.handler", # last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), # memory_size: 128, # role: "arn:aws:iam::123456789012:role/lambda_basic_execution", # runtime: "python2.7", # timeout: 123, # version: "1", # vpc_config: { # }, # } # # @example Request syntax with placeholder values # # resp = client.update_function_code({ # function_name: "FunctionName", # required # zip_file: "data", # s3_bucket: "S3Bucket", # s3_key: "S3Key", # s3_object_version: "S3ObjectVersion", # publish: false, # dry_run: false, # }) # # @example Response structure # # resp.function_name #=> String # resp.function_arn #=> String # resp.runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "java8", "python2.7", "python3.6", "dotnetcore1.0", "nodejs4.3-edge" # resp.role #=> String # resp.handler #=> String # resp.code_size #=> Integer # resp.description #=> String # resp.timeout #=> Integer # resp.memory_size #=> Integer # resp.last_modified #=> Time # resp.code_sha_256 #=> String # resp.version #=> String # resp.vpc_config.subnet_ids #=> Array # resp.vpc_config.subnet_ids[0] #=> String # resp.vpc_config.security_group_ids #=> Array # resp.vpc_config.security_group_ids[0] #=> String # resp.vpc_config.vpc_id #=> String # resp.dead_letter_config.target_arn #=> String # resp.environment.variables #=> Hash # resp.environment.variables["EnvironmentVariableName"] #=> String # resp.environment.error.error_code #=> String # resp.environment.error.message #=> String # resp.kms_key_arn #=> String # resp.tracing_config.mode #=> String, one of "Active", "PassThrough" # resp.master_arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionCode AWS API Documentation # # @overload update_function_code(params = {}) # @param [Hash] params ({}) def update_function_code(params = {}, options = {}) req = build_request(:update_function_code, params) req.send_request(options) end # 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. # # If you are using the versioning feature, note this API will always # update the $LATEST version of your Lambda function. For information # about the versioning feature, see [AWS Lambda Function Versioning and # Aliases][1]. # # This operation requires permission for the # `lambda:UpdateFunctionConfiguration` action. # # # # [1]: http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html # # @option params [required, String] :function_name # The name of the Lambda function. # # You can specify a function name (for example, `Thumbnail`) or you can # specify Amazon Resource Name (ARN) of the function (for example, # `arn:aws:lambda:us-west-2:account-id:function:ThumbNail`). AWS Lambda # also allows you to specify a partial ARN (for example, # `account-id:Thumbnail`). Note that the length constraint applies only # to the ARN. If you specify only the function name, it is limited to 64 # character in length. # # @option params [String] :role # The Amazon Resource Name (ARN) of the IAM role that Lambda will assume # when it executes your function. # # @option params [String] :handler # The function that Lambda calls to begin executing your function. For # Node.js, it is the `module-name.export` value in your function. # # @option params [String] :description # A short user-defined function description. AWS Lambda does not use # this value. Assign a meaningful description as you see fit. # # @option params [Integer] :timeout # The function execution time at which AWS 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. # # @option params [Integer] :memory_size # The amount of memory, in MB, your Lambda function is given. AWS 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. # # @option params [Types::VpcConfig] :vpc_config # If your Lambda function accesses resources in a VPC, you provide this # parameter identifying the list of security group IDs and subnet IDs. # These must belong to the same VPC. You must provide at least one # security group and one subnet ID. # # @option params [Types::Environment] :environment # The parent object that contains your environment's configuration # settings. # # @option params [String] :runtime # The runtime environment for the Lambda function. # # To use the Python runtime v3.6, set the value to "python3.6". To use # the Python runtime v2.7, set the value to "python2.7". To use the # Node.js runtime v6.10, set the value to "nodejs6.10". To use the # Node.js runtime v4.3, set the value to "nodejs4.3". To use the # Python runtime v3.6, set the value to "python3.6". # # Node v0.10.42 is currently marked as deprecated. You must migrate # existing functions to the newer Node.js runtime versions available on # AWS Lambda (nodejs4.3 or nodejs6.10) as soon as possible. You can # request a one-time extension until June 30, 2017 by going to the # Lambda console and following the instructions provided. Failure to do # so will result in an invalid parameter error being returned. Note that # you will have to follow this procedure for each region that contains # functions written in the Node v0.10.42 runtime. # # # # @option params [Types::DeadLetterConfig] :dead_letter_config # The parent object that contains the target ARN (Amazon Resource Name) # of an Amazon SQS queue or Amazon SNS topic. # # @option params [String] :kms_key_arn # The Amazon Resource Name (ARN) of the KMS key used to encrypt your # function's environment variables. If you elect to use the AWS Lambda # default service key, pass in an empty string ("") for this # parameter. # # @option params [Types::TracingConfig] :tracing_config # The parent object that contains your function's tracing settings. # # @return [Types::FunctionConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::FunctionConfiguration#function_name #function_name} => String # * {Types::FunctionConfiguration#function_arn #function_arn} => String # * {Types::FunctionConfiguration#runtime #runtime} => String # * {Types::FunctionConfiguration#role #role} => String # * {Types::FunctionConfiguration#handler #handler} => String # * {Types::FunctionConfiguration#code_size #code_size} => Integer # * {Types::FunctionConfiguration#description #description} => String # * {Types::FunctionConfiguration#timeout #timeout} => Integer # * {Types::FunctionConfiguration#memory_size #memory_size} => Integer # * {Types::FunctionConfiguration#last_modified #last_modified} => Time # * {Types::FunctionConfiguration#code_sha_256 #code_sha_256} => String # * {Types::FunctionConfiguration#version #version} => String # * {Types::FunctionConfiguration#vpc_config #vpc_config} => Types::VpcConfigResponse # * {Types::FunctionConfiguration#dead_letter_config #dead_letter_config} => Types::DeadLetterConfig # * {Types::FunctionConfiguration#environment #environment} => Types::EnvironmentResponse # * {Types::FunctionConfiguration#kms_key_arn #kms_key_arn} => String # * {Types::FunctionConfiguration#tracing_config #tracing_config} => Types::TracingConfigResponse # * {Types::FunctionConfiguration#master_arn #master_arn} => String # # # @example Example: To update a Lambda function's configuration # # # This operation updates a Lambda function's configuration # # resp = client.update_function_configuration({ # description: "", # function_name: "myFunction", # handler: "index.handler", # memory_size: 128, # role: "arn:aws:iam::123456789012:role/lambda_basic_execution", # runtime: "python2.7", # timeout: 123, # vpc_config: { # }, # }) # # resp.to_h outputs the following: # { # code_sha_256: "LQT+0DHxxxxcfwLyQjzoEFKZtdqQjHXanlSdfXBlEW0VA=", # code_size: 123, # description: "", # function_arn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", # function_name: "myFunction", # handler: "index.handler", # last_modified: Time.parse("2016-11-21T19:49:20.006+0000"), # memory_size: 128, # role: "arn:aws:iam::123456789012:role/lambda_basic_execution", # runtime: "python2.7", # timeout: 123, # version: "1", # vpc_config: { # }, # } # # @example Request syntax with placeholder values # # resp = client.update_function_configuration({ # function_name: "FunctionName", # required # role: "RoleArn", # handler: "Handler", # description: "Description", # timeout: 1, # memory_size: 1, # vpc_config: { # subnet_ids: ["SubnetId"], # security_group_ids: ["SecurityGroupId"], # }, # environment: { # variables: { # "EnvironmentVariableName" => "EnvironmentVariableValue", # }, # }, # runtime: "nodejs", # accepts nodejs, nodejs4.3, nodejs6.10, java8, python2.7, python3.6, dotnetcore1.0, nodejs4.3-edge # dead_letter_config: { # target_arn: "ResourceArn", # }, # kms_key_arn: "KMSKeyArn", # tracing_config: { # mode: "Active", # accepts Active, PassThrough # }, # }) # # @example Response structure # # resp.function_name #=> String # resp.function_arn #=> String # resp.runtime #=> String, one of "nodejs", "nodejs4.3", "nodejs6.10", "java8", "python2.7", "python3.6", "dotnetcore1.0", "nodejs4.3-edge" # resp.role #=> String # resp.handler #=> String # resp.code_size #=> Integer # resp.description #=> String # resp.timeout #=> Integer # resp.memory_size #=> Integer # resp.last_modified #=> Time # resp.code_sha_256 #=> String # resp.version #=> String # resp.vpc_config.subnet_ids #=> Array # resp.vpc_config.subnet_ids[0] #=> String # resp.vpc_config.security_group_ids #=> Array # resp.vpc_config.security_group_ids[0] #=> String # resp.vpc_config.vpc_id #=> String # resp.dead_letter_config.target_arn #=> String # resp.environment.variables #=> Hash # resp.environment.variables["EnvironmentVariableName"] #=> String # resp.environment.error.error_code #=> String # resp.environment.error.message #=> String # resp.kms_key_arn #=> String # resp.tracing_config.mode #=> String, one of "Active", "PassThrough" # resp.master_arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionConfiguration AWS API Documentation # # @overload update_function_configuration(params = {}) # @param [Hash] params ({}) def update_function_configuration(params = {}, options = {}) req = build_request(:update_function_configuration, params) req.send_request(options) end # @!endgroup # @param params ({}) # @api private def build_request(operation_name, params = {}) handlers = @handlers.for(operation_name) context = Seahorse::Client::RequestContext.new( operation_name: operation_name, operation: config.api.operation(operation_name), client: self, params: params, config: config) context[:gem_name] = 'aws-sdk-lambda' context[:gem_version] = '1.0.0' Seahorse::Client::Request.new(handlers, context) end # @api private # @deprecated def waiter_names [] end class << self # @api private attr_reader :identifier # @api private def errors_module Errors end end end end