/*
* 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 Invoke operation.
/// Invokes a Lambda function. You can invoke a function synchronously (and wait for the
/// response), or asynchronously. To invoke a function asynchronously, set InvocationType
/// to Event
.
///
///
///
/// For synchronous
/// invocation, details about the function response, including errors, are included
/// in the response body and headers. For either invocation type, you can find more information
/// in the execution
/// log and trace.
///
///
///
/// When an error occurs, your function may be invoked multiple times. Retry behavior
/// varies by error type, client, event source, and invocation type. For example, if you
/// invoke a function asynchronously and it returns an error, Lambda executes the function
/// up to two more times. For more information, see Error
/// handling and automatic retries in Lambda.
///
///
///
/// For asynchronous
/// invocation, Lambda adds events to a queue before sending them to your function.
/// If your function does not have enough capacity to keep up with the queue, events may
/// be lost. Occasionally, your function may receive the same event multiple times, even
/// if no error occurs. To retain events that were not processed, configure your function
/// with a dead-letter
/// queue.
///
///
///
/// The status code in the API response doesn't reflect function errors. Error codes are
/// reserved for errors that prevent your function from executing, such as permissions
/// errors, quota
/// errors, or issues with your function's code and configuration. For example, Lambda
/// returns TooManyRequestsException
if running the function would cause
/// you to exceed a concurrency limit at either the account level (ConcurrentInvocationLimitExceeded
)
/// or function level (ReservedFunctionConcurrentInvocationLimitExceeded
).
///
///
///
/// For functions with a long timeout, your client might disconnect during synchronous
/// invocation while it waits for a response. Configure your HTTP client, SDK, firewall,
/// proxy, or operating system to allow for long connections with timeout or keep-alive
/// settings.
///
///
///
/// This operation requires permission for the lambda:InvokeFunction
/// action. For details on how to set up permissions for cross-account invocations, see
/// Granting
/// function access to other accounts.
///
///
public partial class InvokeRequest : AmazonLambdaRequest
{
private string _clientContextBase64;
private string _functionName;
private InvocationType _invocationType;
private LogType _logType;
private MemoryStream _payloadStream;
private string _qualifier;
///
/// Gets and sets the property ClientContextBase64.
///
/// Up to 3,583 bytes of base64-encoded data about the invoking client to pass to the
/// function in the context object.
///
///
public string ClientContextBase64
{
get { return this._clientContextBase64; }
set { this._clientContextBase64 = value; }
}
// Check to see if ClientContextBase64 property is set
internal bool IsSetClientContextBase64()
{
return this._clientContextBase64 != null;
}
///
/// Gets and sets the property FunctionName.
///
/// The name of the Lambda function, version, or alias.
///
/// Name formats
///
///
-
///
/// Function name –
my-function
(name-only), my-function:v1
/// (with alias).
///
/// -
///
/// Function ARN –
arn:aws:lambda:us-west-2:123456789012:function:my-function
.
///
/// -
///
/// Partial ARN –
123456789012:function:my-function
.
///
///
///
/// You can append a version number or alias to any of the formats. 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=170)]
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 InvocationType.
///
/// Choose from the following options.
///
/// -
///
///
RequestResponse
(default) – Invoke the function synchronously. Keep
/// the connection open until the function returns a response or times out. The API response
/// includes the function response and additional data.
///
/// -
///
///
Event
– Invoke the function asynchronously. Send events that fail multiple
/// times to the function's dead-letter queue (if one is configured). The API response
/// only includes a status code.
///
/// -
///
///
DryRun
– Validate parameter values and verify that the user or role
/// has permission to invoke the function.
///
///
///
public InvocationType InvocationType
{
get { return this._invocationType; }
set { this._invocationType = value; }
}
// Check to see if InvocationType property is set
internal bool IsSetInvocationType()
{
return this._invocationType != null;
}
///
/// Gets and sets the property LogType.
///
/// Set to Tail
to include the execution log in the response. Applies to
/// synchronously invoked functions only.
///
///
public LogType LogType
{
get { return this._logType; }
set { this._logType = value; }
}
// Check to see if LogType property is set
internal bool IsSetLogType()
{
return this._logType != null;
}
///
/// Gets and sets the property PayloadStream.
///
/// The JSON that you want to provide to your Lambda function as input.
///
///
///
/// You can enter the JSON directly. For example, --payload '{ "key": "value" }'
.
/// You can also specify a file path. For example, --payload file://payload.json
.
///
///
[AWSProperty(Sensitive=true)]
public MemoryStream PayloadStream
{
get { return this._payloadStream; }
set { this._payloadStream = value; }
}
// Check to see if PayloadStream property is set
internal bool IsSetPayloadStream()
{
return this._payloadStream != null;
}
///
/// Gets and sets the property Qualifier.
///
/// Specify a version or alias to invoke a published version of the function.
///
///
[AWSProperty(Min=1, Max=128)]
public string Qualifier
{
get { return this._qualifier; }
set { this._qualifier = value; }
}
// Check to see if Qualifier property is set
internal bool IsSetQualifier()
{
return this._qualifier != null;
}
}
}