import { DestinationProps } from './DestinationProps';
import { Value } from '../../../cloudformation/Value';
/**
  Specifies the inventory configuration for an Amazon S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html">GET Bucket inventory</a> in the <em>Amazon S3 API Reference</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html">the AWS Docs</a>
*/
export interface InventoryConfigurationProps {
    /** <code>Destination</code>  <a name="cfn-s3-bucket-inventoryconfiguration-destination"></a>
  Contains information about where to publish the inventory results.<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> */
    destination: DestinationProps;
    /** <code>Enabled</code>  <a name="cfn-s3-bucket-inventoryconfiguration-enabled"></a>
  Specifies whether the inventory is enabled or disabled. If set to <code>True</code>, an inventory list is generated. If set to <code>False</code>, no inventory list is generated.<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> */
    enabled: Value<boolean>;
    /** <code>Id</code>  <a name="cfn-s3-bucket-inventoryconfiguration-id"></a>
  The ID used to identify the inventory configuration.<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> */
    id: Value<string>;
    /** <code>IncludedObjectVersions</code>  <a name="cfn-s3-bucket-inventoryconfiguration-includedobjectversions"></a>
  Object versions to include in the inventory list. If set to <code>All</code>, the list includes all the object versions, which adds the version-related fields <code>VersionId</code>, <code>IsLatest</code>, and <code>DeleteMarker</code> to the list. If set to <code>Current</code>, the list does not contain these version-related fields.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>All | Current</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> */
    includedObjectVersions: Value<'All' | 'Current'>;
    /** <code>OptionalFields</code>  <a name="cfn-s3-bucket-inventoryconfiguration-optionalfields"></a>
  Contains the optional fields that are included in the inventory results.<br />
  
  Valid values: <code>Size | LastModifiedDate | StorageClass | ETag | IsMultipartUploaded | ReplicationStatus | EncryptionStatus | ObjectLockRetainUntilDate | ObjectLockMode | ObjectLockLegalHoldStatus | IntelligentTieringAccessTier | BucketKeyStatus</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> */
    optionalFields?: Value<Value<string>[]>;
    /** <code>Prefix</code>  <a name="cfn-s3-bucket-inventoryconfiguration-prefix"></a>
  Specifies the inventory filter prefix.<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> */
    prefix?: Value<string>;
    /** <code>ScheduleFrequency</code>  <a name="cfn-s3-bucket-inventoryconfiguration-schedulefrequency"></a>
  Specifies the schedule for generating inventory results.<br />
  
  Allowed values: <code>Daily</code> | <code>Weekly</code><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> */
    scheduleFrequency: Value<'Daily'>;
}
