import { LifecycleRuleStatusEnum } from './LifecycleRuleStatusEnum';
import { StorageLifecycleRuleAbortIncompleteMultipartUpload } from '../StorageLifecycleRuleAbortIncompleteMultipartUpload';
import { StorageLifecycleRuleExpiration } from '../StorageLifecycleRuleExpiration';
import { StorageLifecycleRuleFilter } from '../StorageLifecycleRuleFilter';
import { StorageLifecycleRuleNoncurrentVersionExpiration } from '../StorageLifecycleRuleNoncurrentVersionExpiration';
import { StorageLifecycleRuleNoncurrentVersionTransition } from '../StorageLifecycleRuleNoncurrentVersionTransition';
import { StorageLifecycleRuleTransition } from '../StorageLifecycleRuleTransition';
/** Object Storage lifecycle configuration rule */
export interface LifecycleRule {
    /** Abort incomplete multipart upload configuration */
    abortIncompleteMultipartUpload?: StorageLifecycleRuleAbortIncompleteMultipartUpload;
    /** Lifecycle rule expiration configuration */
    expiration?: StorageLifecycleRuleExpiration;
    /** Rule filters */
    filter?: StorageLifecycleRuleFilter;
    /** Rule ID */
    id: string;
    /** Specifies when noncurrent object versions expire */
    noncurrentVersionExpiration?: StorageLifecycleRuleNoncurrentVersionExpiration;
    /** Specifies the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class */
    noncurrentVersionTransitions?: StorageLifecycleRuleNoncurrentVersionTransition[];
    /** Rule status */
    status: LifecycleRuleStatusEnum;
    /** Rule destination configuration */
    transitions?: StorageLifecycleRuleTransition[];
}
//# sourceMappingURL=LifecycleRule.d.ts.map