# StorageClass

Storage class to move an object to.

- Source: [`aws-s3/lib/rule.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-s3/lib/rule.ts#L201)
- Type last changed: v2.1.0 · 8 Dec 2021

## Example

```ts
const bucket = new s3.Bucket(this, 'MyBucket', {
  lifecycleRules: [
    {
      abortIncompleteMultipartUploadAfter: Duration.minutes(30),
      enabled: false,
      expiration: Duration.days(30),
      expirationDate: new Date(),
      expiredObjectDeleteMarker: false,
      id: 'id',
      noncurrentVersionExpiration: Duration.days(30),

      // the properties below are optional
      noncurrentVersionsToRetain: 123,
      noncurrentVersionTransitions: [
        {
          storageClass: s3.StorageClass.GLACIER,
          transitionAfter: Duration.days(30),

          // the properties below are optional
          noncurrentVersionsToRetain: 123,
        },
      ],
      objectSizeGreaterThan: 500,
      prefix: 'prefix',
      objectSizeLessThan: 10000,
      transitions: [
        {
          storageClass: s3.StorageClass.GLACIER,

          // exactly one of transitionAfter or transitionDate must be specified
          transitionAfter: Duration.days(30),
          // transitionDate: new Date(), // cannot specify both
        },
      ],
    },
  ],
});
```

## Initializer

```ts
new StorageClass(value: string)
```

## Properties

- `DEEP_ARCHIVE`: [StorageClass](/cdk/api/v2/docs/aws-cdk-lib.aws_s3.StorageClass.html) (static) — Use for archiving data that rarely needs to be accessed.

  Data stored in the
  DEEP_ARCHIVE storage class has a minimum storage duration period of 180
  days and a default retrieval time of 12 hours. If you delete an object
  before the 180-day minimum, you are charged for 180 days. For pricing
  information, see Amazon S3 Pricing.

- `GLACIER`: [StorageClass](/cdk/api/v2/docs/aws-cdk-lib.aws_s3.StorageClass.html) (static) — Storage class for long-term archival that can take between minutes and hours to access.

  Use for archives where portions of the data might need to be retrieved in
  minutes. Data stored in the GLACIER storage class has a minimum storage
  duration period of 90 days and can be accessed in as little as 1-5 minutes
  using expedited retrieval. If you delete an object before the 90-day
  minimum, you are charged for 90 days.

- `GLACIER_INSTANT_RETRIEVAL`: [StorageClass](/cdk/api/v2/docs/aws-cdk-lib.aws_s3.StorageClass.html) (static) — Storage class for long-term archival that can be accessed in a few milliseconds.

  It is ideal for data that is accessed once or twice per quarter, and
  that requires immediate access. Data stored in the GLACIER_IR storage class
  has a minimum storage duration period of 90 days and can be accessed in
  as milliseconds. If you delete an object before the 90-day minimum,
  you are charged for 90 days.

- `INFREQUENT_ACCESS`: [StorageClass](/cdk/api/v2/docs/aws-cdk-lib.aws_s3.StorageClass.html) (static) — Storage class for data that is accessed less frequently, but requires rapid access when needed.

  Has lower availability than Standard storage.

- `INTELLIGENT_TIERING`: [StorageClass](/cdk/api/v2/docs/aws-cdk-lib.aws_s3.StorageClass.html) (static) — The INTELLIGENT_TIERING storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead.

  INTELLIGENT_TIERING delivers automatic cost savings by moving data on a
  granular object level between two access tiers, a frequent access tier and
  a lower-cost infrequent access tier, when access patterns change. The
  INTELLIGENT_TIERING storage class is ideal if you want to optimize storage
  costs automatically for long-lived data when access patterns are unknown or
  unpredictable.

- `ONE_ZONE_INFREQUENT_ACCESS`: [StorageClass](/cdk/api/v2/docs/aws-cdk-lib.aws_s3.StorageClass.html) (static) — Infrequent Access that's only stored in one availability zone.

  Has lower availability than standard InfrequentAccess.

- `value`: string

## Methods

- `toString(): string`
