Resources:

  ElasticFileSystemForLambda:
    Type: AWS::EFS::FileSystem
    Properties:
      Encrypted: True
      PerformanceMode: generalPurpose
      LifecyclePolicies:
        - TransitionToIA: AFTER_14_DAYS
      ThroughputMode: bursting
      BackupPolicy:
        Status: DISABLED
      FileSystemTags:
        - Key: Name
          Value: lambda-efs-${{self:provider.stage}}

  EFSMountTargetResource1:
    Type: AWS::EFS::MountTarget
    Properties:
      FileSystemId: !Ref ElasticFileSystemForLambda
      SubnetId: subnet-0677ce2c9e657a753
      SecurityGroups:
        - sg-076956d5477d3ffe6

  EFSMountTargetResource2:
    Type: AWS::EFS::MountTarget
    Properties:
      FileSystemId: !Ref ElasticFileSystemForLambda
      SubnetId: subnet-0f6924341618be842
      SecurityGroups:
        - sg-076956d5477d3ffe6

  EFSMountTargetResource3:
    Type: AWS::EFS::MountTarget
    Properties:
      FileSystemId: !Ref ElasticFileSystemForLambda
      SubnetId: subnet-09e418f466748e694
      SecurityGroups:
        - sg-076956d5477d3ffe6

  EFSAccessPoint:
    Type: AWS::EFS::AccessPoint
    Properties:
      FileSystemId: !Ref ElasticFileSystemForLambda
      PosixUser:
        Uid: "1000"
        Gid: "1000"
      RootDirectory:
        CreationInfo:
          OwnerGid: "1000"
          OwnerUid: "1000"
          Permissions: "0777"
        Path: "/efs"
      AccessPointTags:
        - Key: Name
          Value: lambda-efs-ap-${{self:provider.stage}}
