{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.ECS.Types.FSxWindowsFileServerVolumeConfiguration -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) module Amazonka.ECS.Types.FSxWindowsFileServerVolumeConfiguration where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.ECS.Types.FSxWindowsFileServerAuthorizationConfig import qualified Amazonka.Prelude as Prelude -- | This parameter is specified when you\'re using -- -- file system for task storage. -- -- For more information and the input format, see -- -- in the /Amazon Elastic Container Service Developer Guide/. -- -- /See:/ 'newFSxWindowsFileServerVolumeConfiguration' smart constructor. data FSxWindowsFileServerVolumeConfiguration = FSxWindowsFileServerVolumeConfiguration' { -- | The Amazon FSx for Windows File Server file system ID to use. fileSystemId :: Prelude.Text, -- | The directory within the Amazon FSx for Windows File Server file system -- to mount as the root directory inside the host. rootDirectory :: Prelude.Text, -- | The authorization configuration details for the Amazon FSx for Windows -- File Server file system. authorizationConfig :: FSxWindowsFileServerAuthorizationConfig } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'FSxWindowsFileServerVolumeConfiguration' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'fileSystemId', 'fSxWindowsFileServerVolumeConfiguration_fileSystemId' - The Amazon FSx for Windows File Server file system ID to use. -- -- 'rootDirectory', 'fSxWindowsFileServerVolumeConfiguration_rootDirectory' - The directory within the Amazon FSx for Windows File Server file system -- to mount as the root directory inside the host. -- -- 'authorizationConfig', 'fSxWindowsFileServerVolumeConfiguration_authorizationConfig' - The authorization configuration details for the Amazon FSx for Windows -- File Server file system. newFSxWindowsFileServerVolumeConfiguration :: -- | 'fileSystemId' Prelude.Text -> -- | 'rootDirectory' Prelude.Text -> -- | 'authorizationConfig' FSxWindowsFileServerAuthorizationConfig -> FSxWindowsFileServerVolumeConfiguration newFSxWindowsFileServerVolumeConfiguration pFileSystemId_ pRootDirectory_ pAuthorizationConfig_ = FSxWindowsFileServerVolumeConfiguration' { fileSystemId = pFileSystemId_, rootDirectory = pRootDirectory_, authorizationConfig = pAuthorizationConfig_ } -- | The Amazon FSx for Windows File Server file system ID to use. fSxWindowsFileServerVolumeConfiguration_fileSystemId :: Lens.Lens' FSxWindowsFileServerVolumeConfiguration Prelude.Text fSxWindowsFileServerVolumeConfiguration_fileSystemId = Lens.lens (\FSxWindowsFileServerVolumeConfiguration' {fileSystemId} -> fileSystemId) (\s@FSxWindowsFileServerVolumeConfiguration' {} a -> s {fileSystemId = a} :: FSxWindowsFileServerVolumeConfiguration) -- | The directory within the Amazon FSx for Windows File Server file system -- to mount as the root directory inside the host. fSxWindowsFileServerVolumeConfiguration_rootDirectory :: Lens.Lens' FSxWindowsFileServerVolumeConfiguration Prelude.Text fSxWindowsFileServerVolumeConfiguration_rootDirectory = Lens.lens (\FSxWindowsFileServerVolumeConfiguration' {rootDirectory} -> rootDirectory) (\s@FSxWindowsFileServerVolumeConfiguration' {} a -> s {rootDirectory = a} :: FSxWindowsFileServerVolumeConfiguration) -- | The authorization configuration details for the Amazon FSx for Windows -- File Server file system. fSxWindowsFileServerVolumeConfiguration_authorizationConfig :: Lens.Lens' FSxWindowsFileServerVolumeConfiguration FSxWindowsFileServerAuthorizationConfig fSxWindowsFileServerVolumeConfiguration_authorizationConfig = Lens.lens (\FSxWindowsFileServerVolumeConfiguration' {authorizationConfig} -> authorizationConfig) (\s@FSxWindowsFileServerVolumeConfiguration' {} a -> s {authorizationConfig = a} :: FSxWindowsFileServerVolumeConfiguration) instance Data.FromJSON FSxWindowsFileServerVolumeConfiguration where parseJSON = Data.withObject "FSxWindowsFileServerVolumeConfiguration" ( \x -> FSxWindowsFileServerVolumeConfiguration' Prelude.<$> (x Data..: "fileSystemId") Prelude.<*> (x Data..: "rootDirectory") Prelude.<*> (x Data..: "authorizationConfig") ) instance Prelude.Hashable FSxWindowsFileServerVolumeConfiguration where hashWithSalt _salt FSxWindowsFileServerVolumeConfiguration' {..} = _salt `Prelude.hashWithSalt` fileSystemId `Prelude.hashWithSalt` rootDirectory `Prelude.hashWithSalt` authorizationConfig instance Prelude.NFData FSxWindowsFileServerVolumeConfiguration where rnf FSxWindowsFileServerVolumeConfiguration' {..} = Prelude.rnf fileSystemId `Prelude.seq` Prelude.rnf rootDirectory `Prelude.seq` Prelude.rnf authorizationConfig instance Data.ToJSON FSxWindowsFileServerVolumeConfiguration where toJSON FSxWindowsFileServerVolumeConfiguration' {..} = Data.object ( Prelude.catMaybes [ Prelude.Just ("fileSystemId" Data..= fileSystemId), Prelude.Just ("rootDirectory" Data..= rootDirectory), Prelude.Just ("authorizationConfig" Data..= authorizationConfig) ] )