import { Value } from '../../../cloudformation/Value';
import { AuthorizationConfigProps } from './AuthorizationConfigProps';
/**
  This parameter is specified when you’re using an Amazon Elastic File System file system for task storage. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html">Amazon EFS volumes</a> in the <em>Amazon Elastic Container Service Developer Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html">the AWS Docs</a>
*/
export interface EFSVolumeConfigurationProps {
    /** <code>FilesystemId</code>  <a name="cfn-ecs-taskdefinition-efsvolumeconfiguration-filesystemid"></a>
  The Amazon EFS file system ID to use.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    filesystemId: Value<string>;
    /** <code>TransitEncryption</code>  <a name="cfn-ecs-taskdefinition-efsvolumeconfiguration-transitencryption"></a>
  Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be turned on if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of <code>DISABLED</code> is used. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html">Encrypting data in transit</a> in the
  Amazon Elastic File System User Guide: br />
  
  Required: No<br />
  
  Allowed values: <code>DISABLED | ENABLED</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    transitEncryption?: Value<'DISABLED' | 'ENABLED'>;
    /** <code>AuthorizationConfig</code>  <a name="cfn-ecs-taskdefinition-efsvolumeconfiguration-authorizationconfig"></a>
  The authorization configuration details for the Amazon EFS file system.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    authorizationConfig?: AuthorizationConfigProps;
    /** <code>RootDirectory</code>  <a name="cfn-ecs-taskdefinition-efsvolumeconfiguration-rootdirectory"></a>
  The directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying <code>/</code> will have the same effect as omitting this parameter.<br />
  If an EFS access point is specified in the <code>authorizationConfig</code>, the root directory parameter must either be omitted or set to <code>/</code> which will enforce the path set on the EFS access point.
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    rootDirectory?: Value<string>;
    /** <code>TransitEncryptionPort</code>  <a name="cfn-ecs-taskdefinition-efsvolumeconfiguration-transitencryptionport"></a>
  The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html">EFS mount helper</a> in the
  Amazon Elastic File System User Guide: br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    transitEncryptionPort?: Value<number>;
}
