/*
* 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 kendra-2019-02-03.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.Kendra.Model
{
///
/// Provides the configuration information for invoking a Lambda function in Lambda to
/// alter document metadata and content when ingesting documents into Amazon Kendra. You
/// can configure your Lambda function using PreExtractionHookConfiguration
/// if you want to apply advanced alterations on the original or raw documents. If you
/// want to apply advanced alterations on the Amazon Kendra structured documents, you
/// must configure your Lambda function using PostExtractionHookConfiguration.
/// You can only invoke one Lambda function. However, this function can invoke other functions
/// it requires.
///
///
///
/// For more information, see Customizing
/// document metadata during the ingestion process.
///
///
public partial class HookConfiguration
{
private DocumentAttributeCondition _invocationCondition;
private string _lambdaArn;
private string _s3Bucket;
///
/// Gets and sets the property InvocationCondition.
///
/// The condition used for when a Lambda function should be invoked.
///
///
///
/// For example, you can specify a condition that if there are empty date-time values,
/// then Amazon Kendra should invoke a function that inserts the current date-time.
///
///
public DocumentAttributeCondition InvocationCondition
{
get { return this._invocationCondition; }
set { this._invocationCondition = value; }
}
// Check to see if InvocationCondition property is set
internal bool IsSetInvocationCondition()
{
return this._invocationCondition != null;
}
///
/// Gets and sets the property LambdaArn.
///
/// The Amazon Resource Name (ARN) of a role with permission to run a Lambda function
/// during ingestion. For more information, see IAM
/// roles for Amazon Kendra.
///
///
[AWSProperty(Required=true, Min=1, Max=2048)]
public string LambdaArn
{
get { return this._lambdaArn; }
set { this._lambdaArn = value; }
}
// Check to see if LambdaArn property is set
internal bool IsSetLambdaArn()
{
return this._lambdaArn != null;
}
///
/// Gets and sets the property S3Bucket.
///
/// Stores the original, raw documents or the structured, parsed documents before and
/// after altering them. For more information, see Data
/// contracts for Lambda functions.
///
///
[AWSProperty(Required=true, Min=3, Max=63)]
public string S3Bucket
{
get { return this._s3Bucket; }
set { this._s3Bucket = value; }
}
// Check to see if S3Bucket property is set
internal bool IsSetS3Bucket()
{
return this._s3Bucket != null;
}
}
}