/* * Copyright 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 System.Net; 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 is a .zip file archive or container image that contains /// your function code. The execution role grants the function permission to use Amazon /// Web Services, such as Amazon CloudWatch Logs for log streaming and X-Ray for request /// tracing. /// /// /// /// If the deployment package is a container /// image, then you set the package type to Image. For a container image, /// the code property must include the URI of a container image in the Amazon ECR registry. /// You do not need to specify the handler and runtime properties. /// /// /// /// If the deployment package is a .zip /// file archive, then you set the package type to Zip. For a .zip file /// archive, the code property specifies the location of the .zip file. You must also /// specify the handler and runtime properties. The code in the deployment package must /// be compatible with the target instruction set architecture of the function (x86-64 /// or arm64). If you do not specify the architecture, then the default value /// is x86-64. /// /// /// /// 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 Lambda /// 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). /// /// /// /// You can use code signing if your deployment package is a .zip file archive. To enable /// code signing for this function, specify the ARN of a code-signing configuration. When /// a user attempts to deploy a code package with UpdateFunctionCode, Lambda checks /// that the code package has a valid signature from a trusted publisher. The code-signing /// configuration includes set of signing profiles, which define the trusted publishers /// for this function. /// /// /// /// If another Amazon Web Services account or an Amazon Web Service invokes your function, /// use AddPermission to grant permission by creating a resource-based Identity /// and Access Management (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 Amazon Web Services, create an event source mapping (CreateEventSourceMapping), /// or configure a function trigger in the other service. For more information, see Invoking /// Lambda functions. /// /// public partial class CreateFunctionRequest : AmazonLambdaRequest { private List _architectures = new List(); private FunctionCode _code; private string _codeSigningConfigArn; private DeadLetterConfig _deadLetterConfig; private string _description; private Environment _environment; private EphemeralStorage _ephemeralStorage; private List _fileSystemConfigs = new List(); private string _functionName; private string _handler; private ImageConfig _imageConfig; private string _kmsKeyArn; private List _layers = new List(); private int? _memorySize; private PackageType _packageType; private bool? _publish; private string _role; private Runtime _runtime; private SnapStart _snapStart; private Dictionary _tags = new Dictionary(); private int? _timeout; private TracingConfig _tracingConfig; private VpcConfig _vpcConfig; /// /// Gets and sets the property Architectures. /// /// The instruction set architecture that the function supports. Enter a string array /// with one of the valid values (arm64 or x86_64). The default value is x86_64. /// /// [AWSProperty(Min=1, Max=1)] public List Architectures { get { return this._architectures; } set { this._architectures = value; } } // Check to see if Architectures property is set internal bool IsSetArchitectures() { return this._architectures != null && this._architectures.Count > 0; } /// /// 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 CodeSigningConfigArn. /// /// To enable code signing for this function, specify the ARN of a code-signing configuration. /// A code-signing configuration includes a set of signing profiles, which define the /// trusted publishers for this function. /// /// [AWSProperty(Max=200)] public string CodeSigningConfigArn { get { return this._codeSigningConfigArn; } set { this._codeSigningConfigArn = value; } } // Check to see if CodeSigningConfigArn property is set internal bool IsSetCodeSigningConfigArn() { return this._codeSigningConfigArn != 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 EphemeralStorage. /// /// The size of the function's /tmp directory in MB. The default value is /// 512, but can be any whole number between 512 and 10,240 MB. /// /// public EphemeralStorage EphemeralStorage { get { return this._ephemeralStorage; } set { this._ephemeralStorage = value; } } // Check to see if EphemeralStorage property is set internal bool IsSetEphemeralStorage() { return this._ephemeralStorage != null; } /// /// Gets and sets the property FileSystemConfigs. /// /// Connection settings for an Amazon EFS file system. /// /// [AWSProperty(Max=1)] public List FileSystemConfigs { get { return this._fileSystemConfigs; } set { this._fileSystemConfigs = value; } } // Check to see if FileSystemConfigs property is set internal bool IsSetFileSystemConfigs() { return this._fileSystemConfigs != null && this._fileSystemConfigs.Count > 0; } /// /// Gets and sets the property FunctionName. /// /// The name of the Lambda function. /// ///

Name formats /// ///

  • /// /// Function namemy-function. /// ///
  • /// /// Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function. /// ///
  • /// /// Partial ARN123456789012: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 run your function. Handler /// is required if the deployment package is a .zip file archive. The format includes /// the file name. It can also include namespaces and other qualifiers, depending on the /// runtime. For more information, see Lambda /// programming model. /// /// [AWSProperty(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 ImageConfig. /// /// Container image configuration /// values that override the values in the container image Dockerfile. /// /// public ImageConfig ImageConfig { get { return this._imageConfig; } set { this._imageConfig = value; } } // Check to see if ImageConfig property is set internal bool IsSetImageConfig() { return this._imageConfig != null; } /// /// Gets and sets the property KMSKeyArn. /// /// The ARN of the Key Management Service (KMS) customer managed key that's used to encrypt /// your function's environment /// variables. When Lambda /// SnapStart is activated, Lambda also uses this key is to encrypt your function's /// snapshot. If you deploy your function using a container image, Lambda also uses this /// key to encrypt your function when it's deployed. Note that this is not the same key /// that's used to protect your container image in the Amazon Elastic Container Registry /// (Amazon ECR). If you don't provide a customer managed key, 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 /// available to the function at runtime. Increasing the function memory also increases /// its CPU allocation. The default value is 128 MB. The value can be any multiple of /// 1 MB. /// /// [AWSProperty(Min=128, Max=10240)] 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 PackageType. /// /// The type of deployment package. Set to Image for container image and /// set to Zip for .zip file archive. /// /// public PackageType PackageType { get { return this._packageType; } set { this._packageType = value; } } // Check to see if PackageType property is set internal bool IsSetPackageType() { return this._packageType != null; } /// /// 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. /// Runtime is required if the deployment package is a .zip file archive. /// /// /// /// The following list includes deprecated runtimes. For more information, see Runtime /// deprecation policy. /// /// 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 SnapStart. /// /// The function's SnapStart /// setting. /// /// public SnapStart SnapStart { get { return this._snapStart; } set { this._snapStart = value; } } // Check to see if SnapStart property is set internal bool IsSetSnapStart() { return this._snapStart != 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 (in seconds) that Lambda allows a function to run before stopping /// it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, /// see Lambda /// execution environment. /// /// [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 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 Amazon Web Services 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 access resources and the internet only through that VPC. For more information, /// see Configuring /// a Lambda function to access resources in a VPC. /// /// 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; } } }