import { Value } from '../../../cloudformation/Value';
import { ExclusionByResourceTypesProps } from './ExclusionByResourceTypesProps';
import { RecordingStrategyProps } from './RecordingStrategyProps';
/**
  Specifies which resource types AWS Config records for configuration changes. By default, AWS Config records configuration changes for all current and future supported resource types in the AWS Region where you have enabled AWS Config (excluding the globally recorded IAM resource types: IAM users, groups, roles, and customer managed policies).
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html">the AWS Docs</a>
*/
export interface RecordingGroupProps {
    /** <code>AllSupported</code>  <a name="cfn-config-configurationrecorder-recordinggroup-allsupported"></a>
  Specifies whether AWS Config records configuration changes for all supported regionally recorded resource types.<br />
  If you set this field to <code>true</code>, when AWS Config adds support for a new regionally recorded resource type, AWS Config starts recording resources of that type automatically.<br />
  If you set this field to <code>true</code>, you cannot enumerate specific resource types to record in the <code>resourceTypes</code> field of <a href="https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html">RecordingGroup</a>, or to exclude in the <code>resourceTypes</code> field of <a href="https://docs.aws.amazon.com/config/latest/APIReference/API_ExclusionByResourceTypes.html">ExclusionByResourceTypes</a>.<br />
  <strong>Region Availability</strong><br />
  Check <a href="https://docs.aws.amazon.com/config/latest/developerguide/what-is-resource-config-coverage.html">Resource Coverage by Region Availability</a> to see if a resource type is supported in the AWS Region where you set up AWS Config.
  
  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> */
    allSupported?: Value<boolean>;
    /** <code>ExclusionByResourceTypes</code>  <a name="cfn-config-configurationrecorder-recordinggroup-exclusionbyresourcetypes"></a>
  An object that specifies how AWS Config excludes resource types from being recorded by the configuration recorder.<br />
  To use this option, you must set the <code>useOnly</code> field of <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordingstrategy.html">AWS::Config::ConfigurationRecorder RecordingStrategy</a> to <code>EXCLUSION_BY_RESOURCE_TYPES</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> */
    exclusionByResourceTypes?: ExclusionByResourceTypesProps;
    /** <p> */
    includeGlobalResourceTypes?: Value<boolean>;
    /** <p> */
    recordingStrategy?: RecordingStrategyProps;
    /** <code>ResourceTypes</code>  <a name="cfn-config-configurationrecorder-recordinggroup-resourcetypes"></a>
  A comma-separated list that specifies which resource types AWS Config records.<br />
  Optionally, you can set the <code>useOnly</code> field of <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordingstrategy.html">AWS::Config::ConfigurationRecorder RecordingStrategy</a> to <code>INCLUSION_BY_RESOURCE_TYPES</code>.<br />
  To record all configuration changes, set the <code>allSupported</code> field of <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html">AWS::Config::ConfigurationRecorder RecordingGroup</a> to <code>true</code>, and either omit this field or don’t specify any resource types in this field. If you set the <code>allSupported</code> field to <code>false</code> and specify values for <code>resourceTypes</code>, when AWS Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group.<br />
  For a list of valid <code>resourceTypes</code> values, see the <strong>Resource Type Value</strong> column in <a href="https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources">Supported AWS resource Types</a> in the
  AWS Config developer guide: br />
  <strong>Region Availability</strong><br />
  Before specifying a resource type for AWS Config to track, check <a href="https://docs.aws.amazon.com/config/latest/developerguide/what-is-resource-config-coverage.html">Resource Coverage by Region Availability</a> to see if the resource type is supported in the AWS Region where you set up AWS Config. If a resource type is supported by AWS Config in at least one Region, you can enable the recording of that resource type in all Regions supported by AWS Config, even if the specified resource type is not supported in the AWS Region where you set up AWS Config.
  
  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> */
    resourceTypes?: Value<Value<string>[]>;
}
