putLifecycleConfiguration method

Future<LifecycleConfigurationDescription> putLifecycleConfiguration({
  1. required String fileSystemId,
  2. required List<LifecyclePolicy> lifecyclePolicies,
})

Enables lifecycle management by creating a new LifecycleConfiguration object. A LifecycleConfiguration object defines when files in an Amazon EFS file system are automatically transitioned to the lower-cost EFS Infrequent Access (IA) storage class. A LifecycleConfiguration applies to all files in a file system.

Each Amazon EFS file system supports one lifecycle configuration, which applies to all files in the file system. If a LifecycleConfiguration object already exists for the specified file system, a PutLifecycleConfiguration call modifies the existing configuration. A PutLifecycleConfiguration call with an empty LifecyclePolicies array in the request body deletes any existing LifecycleConfiguration and disables lifecycle management.

In the request, specify the following:

  • The ID for the file system for which you are enabling, disabling, or modifying lifecycle management.
  • A LifecyclePolicies array of LifecyclePolicy objects that define when files are moved to the IA storage class. The array can contain only one LifecyclePolicy item.
This operation requires permissions for the elasticfilesystem:PutLifecycleConfiguration operation.

To apply a LifecycleConfiguration object to an encrypted file system, you need the same AWS Key Management Service (AWS KMS) permissions as when you created the encrypted file system.

May throw BadRequest. May throw InternalServerError. May throw FileSystemNotFound. May throw IncorrectFileSystemLifeCycleState.

Parameter fileSystemId : The ID of the file system for which you are creating the LifecycleConfiguration object (String).

Parameter lifecyclePolicies : An array of LifecyclePolicy objects that define the file system's LifecycleConfiguration object. A LifecycleConfiguration object tells lifecycle management when to transition files from the Standard storage class to the Infrequent Access storage class.

Implementation

Future<LifecycleConfigurationDescription> putLifecycleConfiguration({
  required String fileSystemId,
  required List<LifecyclePolicy> lifecyclePolicies,
}) async {
  ArgumentError.checkNotNull(fileSystemId, 'fileSystemId');
  _s.validateStringLength(
    'fileSystemId',
    fileSystemId,
    0,
    128,
    isRequired: true,
  );
  ArgumentError.checkNotNull(lifecyclePolicies, 'lifecyclePolicies');
  final $payload = <String, dynamic>{
    'LifecyclePolicies': lifecyclePolicies,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'PUT',
    requestUri:
        '/2015-02-01/file-systems/${Uri.encodeComponent(fileSystemId)}/lifecycle-configuration',
    exceptionFnMap: _exceptionFns,
  );
  return LifecycleConfigurationDescription.fromJson(response);
}