import { Value } from '../../cloudformation/Value';
import { SyncConfigProps } from './functionconfiguration/SyncConfigProps';
import { AppSyncRuntimeProps } from './functionconfiguration/AppSyncRuntimeProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type FunctionConfigurationAttributes = {
    FunctionId: Attribute<string>;
    FunctionArn: Attribute<string>;
    DataSourceName: Attribute<string>;
    Name: Attribute<string>;
};
export type FunctionConfiguration = AwsResource<'AWS::AppSync::FunctionConfiguration', FunctionConfigurationProperties, FunctionConfigurationAttributes>;
/**
  The <code>AWS::AppSync::FunctionConfiguration</code> resource defines the functions in GraphQL APIs to perform certain operations. You can use pipeline resolvers to attach functions. For more information, see <a href="https://docs.aws.amazon.com/appsync/latest/devguide/pipeline-resolvers.html">Pipeline Resolvers</a> in the <em>AWS AppSync Developer Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html">the AWS Docs</a>
*/
export declare function functionConfiguration(functionConfigurationProps: FunctionConfigurationProperties): FunctionConfiguration;
/**
  The <code>AWS::AppSync::FunctionConfiguration</code> resource defines the functions in GraphQL APIs to perform certain operations. You can use pipeline resolvers to attach functions. For more information, see <a href="https://docs.aws.amazon.com/appsync/latest/devguide/pipeline-resolvers.html">Pipeline Resolvers</a> in the <em>AWS AppSync Developer Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html">the AWS Docs</a>
*/
export interface FunctionConfigurationProperties {
    /** <code>Description</code>  <a name="cfn-appsync-functionconfiguration-description"></a>
  The <code>Function</code> description.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    description?: Value<string>;
    /** <code>RequestMappingTemplate</code>  <a name="cfn-appsync-functionconfiguration-requestmappingtemplate"></a>
  The <code>Function</code> request mapping template. Functions support only the 2018-05-29 version of the request mapping template.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    requestMappingTemplate?: Value<string>;
    /** <code>ResponseMappingTemplate</code>  <a name="cfn-appsync-functionconfiguration-responsemappingtemplate"></a>
  The <code>Function</code> response mapping template.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    responseMappingTemplate?: Value<string>;
    /** <code>MaxBatchSize</code>  <a name="cfn-appsync-functionconfiguration-maxbatchsize"></a>
  The maximum number of resolver request inputs that will be sent to a single AWS Lambda function in a <code>BatchInvoke</code> operation.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    maxBatchSize?: Value<number>;
    /** <code>SyncConfig</code>  <a name="cfn-appsync-functionconfiguration-syncconfig"></a>
  Describes a Sync configuration for a resolver.<br />
  Specifies which Conflict Detection strategy and Resolution strategy to use when the resolver is invoked.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    syncConfig?: SyncConfigProps;
    /** <code>Code</code>  <a name="cfn-appsync-functionconfiguration-code"></a>
  The <code>resolver</code> code that contains the request and response functions. When code is used, the <code>runtime</code> is required. The runtime value must be <code>APPSYNC_JS</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    code?: Value<string>;
    /** <code>Name</code>  <a name="cfn-appsync-functionconfiguration-name"></a>
  The name of the function.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    name: Value<string>;
    /** <code>ResponseMappingTemplateS3Location</code>  <a name="cfn-appsync-functionconfiguration-responsemappingtemplates3location"></a>
  The location of a response mapping template in an Amazon S3 bucket. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    responseMappingTemplateS3Location?: Value<string>;
    /** <code>Runtime</code>  <a name="cfn-appsync-functionconfiguration-runtime"></a>
  Describes a runtime used by an AWS AppSync resolver or AWS AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    runtime?: AppSyncRuntimeProps;
    /** <code>CodeS3Location</code>  <a name="cfn-appsync-functionconfiguration-codes3location"></a>
  The Amazon S3 endpoint.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    codeS3Location?: Value<string>;
    /** <code>DataSourceName</code>  <a name="cfn-appsync-functionconfiguration-datasourcename"></a>
  The name of data source this function will attach.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    dataSourceName: Value<string>;
    /** <code>FunctionVersion</code>  <a name="cfn-appsync-functionconfiguration-functionversion"></a>
  The version of the request mapping template. Currently, only the 2018-05-29 version of the template is supported.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    functionVersion?: Value<string>;
    /** <code>RequestMappingTemplateS3Location</code>  <a name="cfn-appsync-functionconfiguration-requestmappingtemplates3location"></a>
  Describes a Sync configuration for a resolver.<br />
  Contains information on which Conflict Detection, as well as Resolution strategy, should be performed when the resolver is invoked.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    requestMappingTemplateS3Location?: Value<string>;
    /** <code>ApiId</code>  <a name="cfn-appsync-functionconfiguration-apiid"></a>
  The AWS AppSync GraphQL API that you want to attach using this function.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    apiId: Value<string>;
}
