import { Value } from '../../../cloudformation/Value';
import { CustomPolicyDetailsProps } from './CustomPolicyDetailsProps';
import { SourceDetailProps } from './SourceDetailProps';
/**
  Provides the CustomPolicyDetails, the rule owner (<code>AWS</code> for managed rules, <code>CUSTOM_POLICY</code> for Custom Policy rules, and <code>CUSTOM_LAMBDA</code> for Custom Lambda rules), the rule identifier, and the events that cause the evaluation of your AWS resources.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html">the AWS Docs</a>
*/
export interface SourceProps {
    /** <code>Owner</code>  <a name="cfn-config-configrule-source-owner"></a>
  Indicates whether AWS or the customer owns and manages the AWS Config rule.<br />
  AWS Config Managed Rules are predefined rules owned by AWS. For more information, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html">AWS Config Managed Rules</a> in the * AWS Config developer guide*.<br />
  AWS Config Custom Rules are rules that you can develop either with Guard (<code>CUSTOM_POLICY</code>) or AWS Lambda (<code>CUSTOM_LAMBDA</code>). For more information, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html">AWS Config Custom Rules </a> in the * AWS Config developer guide*.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>AWS | CUSTOM_LAMBDA | CUSTOM_POLICY</code><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> */
    owner: Value<'AWS' | 'CUSTOM_LAMBDA' | 'CUSTOM_POLICY'>;
    /** <code>CustomPolicyDetails</code>  <a name="cfn-config-configrule-source-custompolicydetails"></a>
  Provides the runtime system, policy definition, and whether debug logging is enabled. Required when owner is set to <code>CUSTOM_POLICY</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> */
    customPolicyDetails?: CustomPolicyDetailsProps;
    /** <code>SourceIdentifier</code>  <a name="cfn-config-configrule-source-sourceidentifier"></a>
  For AWS Config Managed rules, a predefined identifier from a list. For example, <code>IAM_PASSWORD_POLICY</code> is a managed rule. To reference a managed rule, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html">List of AWS Config Managed Rules</a>.<br />
  For AWS Config Custom Lambda rules, the identifier is the Amazon Resource Name (ARN) of the rule’s AWS Lambda function, such as <code>arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name</code>.<br />
  For AWS Config Custom Policy rules, this field will be ignored.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>256</code><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> */
    sourceIdentifier?: Value<string>;
    /** <code>SourceDetails</code>  <a name="cfn-config-configrule-source-sourcedetails"></a>
  Provides the source and the message types that cause AWS Config to evaluate your AWS resources against a rule. It also provides the frequency with which you want AWS Config to run evaluations for the rule if the trigger type is periodic.<br />
  If the owner is set to <code>CUSTOM_POLICY</code>, the only acceptable values for the AWS Config rule trigger message type are <code>ConfigurationItemChangeNotification</code> and <code>OversizedConfigurationItemChangeNotification</code>.<br />
  
  Required: No<br />
  
  Maximum: <code>25</code><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> */
    sourceDetails?: SourceDetailProps[];
}
