import { Value } from '../../cloudformation/Value';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  The <code>AWS::CloudFormation::Macro</code> resource is a CloudFormation resource type that creates a CloudFormation macro to perform custom processing on CloudFormation templates. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using AWS CloudFormation macros to perform custom processing on templates</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html">the AWS Docs</a>
*/
export type Macro = AwsResource<'AWS::CloudFormation::Macro', MacroProperties>;
export declare function macro(macroProps: MacroProperties): Macro;
/**
  The <code>AWS::CloudFormation::Macro</code> resource is a CloudFormation resource type that creates a CloudFormation macro to perform custom processing on CloudFormation templates. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using AWS CloudFormation macros to perform custom processing on templates</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html">the AWS Docs</a>
*/
export interface MacroProperties {
    /** <code>Description</code>  <a name="cfn-cloudformation-macro-description"></a>
  A description of the macro.<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>FunctionName</code>  <a name="cfn-cloudformation-macro-functionname"></a>
  The Amazon Resource Name (ARN) of the underlying AWS Lambda function that you want AWS CloudFormation to invoke when the macro is run.<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> */
    functionName: Value<string>;
    /** <code>LogGroupName</code>  <a name="cfn-cloudformation-macro-loggroupname"></a>
  The CloudWatch Logs group to which AWS CloudFormation sends error logging information when invoking the macro’s underlying AWS Lambda function.<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> */
    logGroupName?: Value<string>;
    /** <code>LogRoleARN</code>  <a name="cfn-cloudformation-macro-logrolearn"></a>
  The ARN of the role AWS CloudFormation should assume when sending log entries to CloudWatch Logs.<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> */
    logRoleARN?: Value<string>;
    /** <code>Name</code>  <a name="cfn-cloudformation-macro-name"></a>
  The name of the macro. The name of the macro must be unique across all macros in the account.<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> */
    name: Value<string>;
}
