/*
* Copyright 2010-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the lambda-2015-03-31.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Lambda.Model
{
///
/// Container for the parameters to the CreateFunction operation.
/// Creates a Lambda function. To create a function, you need a deployment
/// package and an execution
/// role. The deployment package contains your function code. The execution role grants
/// the function permission to use AWS services, such as Amazon CloudWatch Logs for log
/// streaming and AWS X-Ray for request tracing.
///
///
///
/// When you create a function, Lambda provisions an instance of the function and its
/// supporting resources. If your function connects to a VPC, this process can take a
/// minute or so. During this time, you can't invoke or modify the function. The State
,
/// StateReason
, and StateReasonCode
fields in the response
/// from GetFunctionConfiguration indicate when the function is ready to invoke.
/// For more information, see Function
/// States.
///
///
///
/// A function has an unpublished version, and can have published versions and aliases.
/// The unpublished version changes when you update your function's code and configuration.
/// A published version is a snapshot of your function code and configuration that can't
/// be changed. An alias is a named resource that maps to a version, and can be changed
/// to map to a different version. Use the Publish
parameter to create version
/// 1
of your function from its initial configuration.
///
///
///
/// The other parameters let you configure version-specific and function-level settings.
/// You can modify version-specific settings later with UpdateFunctionConfiguration.
/// Function-level settings apply to both the unpublished and published versions of the
/// function, and include tags (TagResource) and per-function concurrency limits
/// (PutFunctionConcurrency).
///
///
///
/// If another account or an AWS service invokes your function, use AddPermission
/// to grant permission by creating a resource-based IAM policy. You can grant permissions
/// at the function level, on a version, or on an alias.
///
///
///
/// To invoke your function directly, use Invoke. To invoke your function in response
/// to events in other AWS services, create an event source mapping (CreateEventSourceMapping),
/// or configure a function trigger in the other service. For more information, see Invoking
/// Functions.
///
///
public partial class CreateFunctionRequest : AmazonLambdaRequest
{
private FunctionCode _code;
private DeadLetterConfig _deadLetterConfig;
private string _description;
private Environment _environment;
private string _functionName;
private string _handler;
private string _kmsKeyArn;
private List _layers = new List();
private int? _memorySize;
private bool? _publish;
private string _role;
private Runtime _runtime;
private Dictionary _tags = new Dictionary();
private int? _timeout;
private TracingConfig _tracingConfig;
private VpcConfig _vpcConfig;
///
/// Gets and sets the property Code.
///
/// The code for the function.
///
///
[AWSProperty(Required=true)]
public FunctionCode Code
{
get { return this._code; }
set { this._code = value; }
}
// Check to see if Code property is set
internal bool IsSetCode()
{
return this._code != null;
}
///
/// Gets and sets the property DeadLetterConfig.
///
/// A dead letter queue configuration that specifies the queue or topic where Lambda sends
/// asynchronous events when they fail processing. For more information, see Dead
/// Letter Queues.
///
///
public DeadLetterConfig DeadLetterConfig
{
get { return this._deadLetterConfig; }
set { this._deadLetterConfig = value; }
}
// Check to see if DeadLetterConfig property is set
internal bool IsSetDeadLetterConfig()
{
return this._deadLetterConfig != null;
}
///
/// Gets and sets the property Description.
///
/// A description of the function.
///
///
[AWSProperty(Min=0, Max=256)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property Environment.
///
/// Environment variables that are accessible from function code during execution.
///
///
public Environment Environment
{
get { return this._environment; }
set { this._environment = value; }
}
// Check to see if Environment property is set
internal bool IsSetEnvironment()
{
return this._environment != null;
}
///
/// Gets and sets the property FunctionName.
///
/// The name of the Lambda function.
///
/// Name formats
///
///
-
///
/// Function name -
my-function
.
///
/// -
///
/// Function ARN -
arn:aws:lambda:us-west-2:123456789012:function:my-function
.
///
/// -
///
/// Partial ARN -
123456789012:function:my-function
.
///
///
///
/// The length constraint applies only to the full ARN. If you specify only the function
/// name, it is limited to 64 characters in length.
///
///
[AWSProperty(Required=true, Min=1, Max=140)]
public string FunctionName
{
get { return this._functionName; }
set { this._functionName = value; }
}
// Check to see if FunctionName property is set
internal bool IsSetFunctionName()
{
return this._functionName != null;
}
///
/// Gets and sets the property Handler.
///
/// The name of the method within your code that Lambda calls to execute your function.
/// The format includes the file name. It can also include namespaces and other qualifiers,
/// depending on the runtime. For more information, see Programming
/// Model.
///
///
[AWSProperty(Required=true, Max=128)]
public string Handler
{
get { return this._handler; }
set { this._handler = value; }
}
// Check to see if Handler property is set
internal bool IsSetHandler()
{
return this._handler != null;
}
///
/// Gets and sets the property KMSKeyArn.
///
/// The ARN of the AWS Key Management Service (AWS KMS) key that's used to encrypt your
/// function's environment variables. If it's not provided, AWS Lambda uses a default
/// service key.
///
///
public string KMSKeyArn
{
get { return this._kmsKeyArn; }
set { this._kmsKeyArn = value; }
}
// Check to see if KMSKeyArn property is set
internal bool IsSetKMSKeyArn()
{
return this._kmsKeyArn != null;
}
///
/// Gets and sets the property Layers.
///
/// A list of function
/// layers to add to the function's execution environment. Specify each layer by its
/// ARN, including the version.
///
///
public List Layers
{
get { return this._layers; }
set { this._layers = value; }
}
// Check to see if Layers property is set
internal bool IsSetLayers()
{
return this._layers != null && this._layers.Count > 0;
}
///
/// Gets and sets the property MemorySize.
///
/// The amount of memory that your function has access to. Increasing the function's memory
/// also increases its CPU allocation. The default value is 128 MB. The value must be
/// a multiple of 64 MB.
///
///
[AWSProperty(Min=128, Max=3008)]
public int MemorySize
{
get { return this._memorySize.GetValueOrDefault(); }
set { this._memorySize = value; }
}
// Check to see if MemorySize property is set
internal bool IsSetMemorySize()
{
return this._memorySize.HasValue;
}
///
/// Gets and sets the property Publish.
///
/// Set to true to publish the first version of the function during creation.
///
///
public bool Publish
{
get { return this._publish.GetValueOrDefault(); }
set { this._publish = value; }
}
// Check to see if Publish property is set
internal bool IsSetPublish()
{
return this._publish.HasValue;
}
///
/// Gets and sets the property Role.
///
/// The Amazon Resource Name (ARN) of the function's execution role.
///
///
[AWSProperty(Required=true)]
public string Role
{
get { return this._role; }
set { this._role = value; }
}
// Check to see if Role property is set
internal bool IsSetRole()
{
return this._role != null;
}
///
/// Gets and sets the property Runtime.
///
/// The identifier of the function's runtime.
///
///
[AWSProperty(Required=true)]
public Runtime Runtime
{
get { return this._runtime; }
set { this._runtime = value; }
}
// Check to see if Runtime property is set
internal bool IsSetRuntime()
{
return this._runtime != null;
}
///
/// Gets and sets the property Tags.
///
/// A list of tags
/// to apply to the function.
///
///
public Dictionary Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property Timeout.
///
/// The amount of time that Lambda allows a function to run before stopping it. The default
/// is 3 seconds. The maximum allowed value is 900 seconds.
///
///
[AWSProperty(Min=1)]
public int Timeout
{
get { return this._timeout.GetValueOrDefault(); }
set { this._timeout = value; }
}
// Check to see if Timeout property is set
internal bool IsSetTimeout()
{
return this._timeout.HasValue;
}
///
/// Gets and sets the property TracingConfig.
///
/// Set Mode
to Active
to sample and trace a subset of incoming
/// requests with AWS X-Ray.
///
///
public TracingConfig TracingConfig
{
get { return this._tracingConfig; }
set { this._tracingConfig = value; }
}
// Check to see if TracingConfig property is set
internal bool IsSetTracingConfig()
{
return this._tracingConfig != null;
}
///
/// Gets and sets the property VpcConfig.
///
/// For network connectivity to AWS resources in a VPC, specify a list of security groups
/// and subnets in the VPC. When you connect a function to a VPC, it can only access resources
/// and the internet through that VPC. For more information, see VPC
/// Settings.
///
///
public VpcConfig VpcConfig
{
get { return this._vpcConfig; }
set { this._vpcConfig = value; }
}
// Check to see if VpcConfig property is set
internal bool IsSetVpcConfig()
{
return this._vpcConfig != null;
}
}
}