{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.StorageGateway.UpdateSMBFileShare
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates a Server Message Block (SMB) file share. This operation is only
-- supported for S3 File Gateways.
--
-- To leave a file share field unchanged, set the corresponding input field
-- to null.
--
-- File gateways require Security Token Service (Amazon Web Services STS)
-- to be activated to enable you to create a file share. Make sure that
-- Amazon Web Services STS is activated in the Amazon Web Services Region
-- you are creating your file gateway in. If Amazon Web Services STS is not
-- activated in this Amazon Web Services Region, activate it. For
-- information about how to activate Amazon Web Services STS, see
-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html Activating and deactivating Amazon Web Services STS in an Amazon Web Services Region>
-- in the /Identity and Access Management User Guide/.
--
-- File gateways don\'t support creating hard or symbolic links on a file
-- share.
module Amazonka.StorageGateway.UpdateSMBFileShare
  ( -- * Creating a Request
    UpdateSMBFileShare (..),
    newUpdateSMBFileShare,

    -- * Request Lenses
    updateSMBFileShare_accessBasedEnumeration,
    updateSMBFileShare_adminUserList,
    updateSMBFileShare_auditDestinationARN,
    updateSMBFileShare_invalidUserList,
    updateSMBFileShare_kmsKey,
    updateSMBFileShare_validUserList,
    updateSMBFileShare_cacheAttributes,
    updateSMBFileShare_objectACL,
    updateSMBFileShare_kmsEncrypted,
    updateSMBFileShare_defaultStorageClass,
    updateSMBFileShare_fileShareName,
    updateSMBFileShare_sMBACLEnabled,
    updateSMBFileShare_oplocksEnabled,
    updateSMBFileShare_notificationPolicy,
    updateSMBFileShare_requesterPays,
    updateSMBFileShare_guessMIMETypeEnabled,
    updateSMBFileShare_readOnly,
    updateSMBFileShare_caseSensitivity,
    updateSMBFileShare_fileShareARN,

    -- * Destructuring the Response
    UpdateSMBFileShareResponse (..),
    newUpdateSMBFileShareResponse,

    -- * Response Lenses
    updateSMBFileShareResponse_fileShareARN,
    updateSMBFileShareResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.StorageGateway.Types

-- | UpdateSMBFileShareInput
--
-- /See:/ 'newUpdateSMBFileShare' smart constructor.
data UpdateSMBFileShare = UpdateSMBFileShare'
  { -- | The files and folders on this share will only be visible to users with
    -- read access.
    UpdateSMBFileShare -> Maybe Bool
accessBasedEnumeration :: Prelude.Maybe Prelude.Bool,
    -- | A list of users or groups in the Active Directory that have
    -- administrator rights to the file share. A group must be prefixed with
    -- the \@ character. Acceptable formats include: @DOMAIN\\User1@, @user1@,
    -- @\@group1@, and @\@DOMAIN\\group1@. Can only be set if Authentication is
    -- set to @ActiveDirectory@.
    UpdateSMBFileShare -> Maybe [Text]
adminUserList :: Prelude.Maybe [Prelude.Text],
    -- | The Amazon Resource Name (ARN) of the storage used for audit logs.
    UpdateSMBFileShare -> Maybe Text
auditDestinationARN :: Prelude.Maybe Prelude.Text,
    -- | A list of users or groups in the Active Directory that are not allowed
    -- to access the file share. A group must be prefixed with the \@
    -- character. Acceptable formats include: @DOMAIN\\User1@, @user1@,
    -- @\@group1@, and @\@DOMAIN\\group1@. Can only be set if Authentication is
    -- set to @ActiveDirectory@.
    UpdateSMBFileShare -> Maybe [Text]
invalidUserList :: Prelude.Maybe [Prelude.Text],
    -- | The Amazon Resource Name (ARN) of a symmetric customer master key (CMK)
    -- used for Amazon S3 server-side encryption. Storage Gateway does not
    -- support asymmetric CMKs. This value can only be set when @KMSEncrypted@
    -- is @true@. Optional.
    UpdateSMBFileShare -> Maybe Text
kmsKey :: Prelude.Maybe Prelude.Text,
    -- | A list of users or groups in the Active Directory that are allowed to
    -- access the file share. A group must be prefixed with the \@ character.
    -- Acceptable formats include: @DOMAIN\\User1@, @user1@, @\@group1@, and
    -- @\@DOMAIN\\group1@. Can only be set if Authentication is set to
    -- @ActiveDirectory@.
    UpdateSMBFileShare -> Maybe [Text]
validUserList :: Prelude.Maybe [Prelude.Text],
    -- | Specifies refresh cache information for the file share.
    UpdateSMBFileShare -> Maybe CacheAttributes
cacheAttributes :: Prelude.Maybe CacheAttributes,
    -- | A value that sets the access control list (ACL) permission for objects
    -- in the S3 bucket that a S3 File Gateway puts objects into. The default
    -- value is @private@.
    UpdateSMBFileShare -> Maybe ObjectACL
objectACL :: Prelude.Maybe ObjectACL,
    -- | Set to @true@ to use Amazon S3 server-side encryption with your own KMS
    -- key, or @false@ to use a key managed by Amazon S3. Optional.
    --
    -- Valid Values: @true@ | @false@
    UpdateSMBFileShare -> Maybe Bool
kmsEncrypted :: Prelude.Maybe Prelude.Bool,
    -- | The default storage class for objects put into an Amazon S3 bucket by
    -- the S3 File Gateway. The default value is @S3_INTELLIGENT_TIERING@.
    -- Optional.
    --
    -- Valid Values: @S3_STANDARD@ | @S3_INTELLIGENT_TIERING@ |
    -- @S3_STANDARD_IA@ | @S3_ONEZONE_IA@
    UpdateSMBFileShare -> Maybe Text
defaultStorageClass :: Prelude.Maybe Prelude.Text,
    -- | The name of the file share. Optional.
    --
    -- @FileShareName@ must be set if an S3 prefix name is set in
    -- @LocationARN@, or if an access point or access point alias is used.
    UpdateSMBFileShare -> Maybe Text
fileShareName :: Prelude.Maybe Prelude.Text,
    -- | Set this value to @true@ to enable access control list (ACL) on the SMB
    -- file share. Set it to @false@ to map file and directory permissions to
    -- the POSIX permissions.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html Using Microsoft Windows ACLs to control access to an SMB file share>
    -- in the /Storage Gateway User Guide/.
    --
    -- Valid Values: @true@ | @false@
    UpdateSMBFileShare -> Maybe Bool
sMBACLEnabled :: Prelude.Maybe Prelude.Bool,
    -- | Specifies whether opportunistic locking is enabled for the SMB file
    -- share.
    --
    -- Enabling opportunistic locking on case-sensitive shares is not
    -- recommended for workloads that involve access to files with the same
    -- name in different case.
    --
    -- Valid Values: @true@ | @false@
    UpdateSMBFileShare -> Maybe Bool
oplocksEnabled :: Prelude.Maybe Prelude.Bool,
    -- | The notification policy of the file share. @SettlingTimeInSeconds@
    -- controls the number of seconds to wait after the last point in time a
    -- client wrote to a file before generating an @ObjectUploaded@
    -- notification. Because clients can make many small writes to files, it\'s
    -- best to set this parameter for as long as possible to avoid generating
    -- multiple notifications for the same file in a small time period.
    --
    -- @SettlingTimeInSeconds@ has no effect on the timing of the object
    -- uploading to Amazon S3, only the timing of the notification.
    --
    -- The following example sets @NotificationPolicy@ on with
    -- @SettlingTimeInSeconds@ set to 60.
    --
    -- @{\\\"Upload\\\": {\\\"SettlingTimeInSeconds\\\": 60}}@
    --
    -- The following example sets @NotificationPolicy@ off.
    --
    -- @{}@
    UpdateSMBFileShare -> Maybe Text
notificationPolicy :: Prelude.Maybe Prelude.Text,
    -- | A value that sets who pays the cost of the request and the cost
    -- associated with data download from the S3 bucket. If this value is set
    -- to @true@, the requester pays the costs; otherwise, the S3 bucket owner
    -- pays. However, the S3 bucket owner always pays the cost of storing data.
    --
    -- @RequesterPays@ is a configuration for the S3 bucket that backs the file
    -- share, so make sure that the configuration on the file share is the same
    -- as the S3 bucket configuration.
    --
    -- Valid Values: @true@ | @false@
    UpdateSMBFileShare -> Maybe Bool
requesterPays :: Prelude.Maybe Prelude.Bool,
    -- | A value that enables guessing of the MIME type for uploaded objects
    -- based on file extensions. Set this value to @true@ to enable MIME type
    -- guessing, otherwise set to @false@. The default value is @true@.
    --
    -- Valid Values: @true@ | @false@
    UpdateSMBFileShare -> Maybe Bool
guessMIMETypeEnabled :: Prelude.Maybe Prelude.Bool,
    -- | A value that sets the write status of a file share. Set this value to
    -- @true@ to set write status to read-only, otherwise set to @false@.
    --
    -- Valid Values: @true@ | @false@
    UpdateSMBFileShare -> Maybe Bool
readOnly :: Prelude.Maybe Prelude.Bool,
    -- | The case of an object name in an Amazon S3 bucket. For
    -- @ClientSpecified@, the client determines the case sensitivity. For
    -- @CaseSensitive@, the gateway determines the case sensitivity. The
    -- default value is @ClientSpecified@.
    UpdateSMBFileShare -> Maybe CaseSensitivity
caseSensitivity :: Prelude.Maybe CaseSensitivity,
    -- | The Amazon Resource Name (ARN) of the SMB file share that you want to
    -- update.
    UpdateSMBFileShare -> Text
fileShareARN :: Prelude.Text
  }
  deriving (UpdateSMBFileShare -> UpdateSMBFileShare -> Bool
(UpdateSMBFileShare -> UpdateSMBFileShare -> Bool)
-> (UpdateSMBFileShare -> UpdateSMBFileShare -> Bool)
-> Eq UpdateSMBFileShare
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateSMBFileShare -> UpdateSMBFileShare -> Bool
$c/= :: UpdateSMBFileShare -> UpdateSMBFileShare -> Bool
== :: UpdateSMBFileShare -> UpdateSMBFileShare -> Bool
$c== :: UpdateSMBFileShare -> UpdateSMBFileShare -> Bool
Prelude.Eq, ReadPrec [UpdateSMBFileShare]
ReadPrec UpdateSMBFileShare
Int -> ReadS UpdateSMBFileShare
ReadS [UpdateSMBFileShare]
(Int -> ReadS UpdateSMBFileShare)
-> ReadS [UpdateSMBFileShare]
-> ReadPrec UpdateSMBFileShare
-> ReadPrec [UpdateSMBFileShare]
-> Read UpdateSMBFileShare
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateSMBFileShare]
$creadListPrec :: ReadPrec [UpdateSMBFileShare]
readPrec :: ReadPrec UpdateSMBFileShare
$creadPrec :: ReadPrec UpdateSMBFileShare
readList :: ReadS [UpdateSMBFileShare]
$creadList :: ReadS [UpdateSMBFileShare]
readsPrec :: Int -> ReadS UpdateSMBFileShare
$creadsPrec :: Int -> ReadS UpdateSMBFileShare
Prelude.Read, Int -> UpdateSMBFileShare -> ShowS
[UpdateSMBFileShare] -> ShowS
UpdateSMBFileShare -> String
(Int -> UpdateSMBFileShare -> ShowS)
-> (UpdateSMBFileShare -> String)
-> ([UpdateSMBFileShare] -> ShowS)
-> Show UpdateSMBFileShare
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateSMBFileShare] -> ShowS
$cshowList :: [UpdateSMBFileShare] -> ShowS
show :: UpdateSMBFileShare -> String
$cshow :: UpdateSMBFileShare -> String
showsPrec :: Int -> UpdateSMBFileShare -> ShowS
$cshowsPrec :: Int -> UpdateSMBFileShare -> ShowS
Prelude.Show, (forall x. UpdateSMBFileShare -> Rep UpdateSMBFileShare x)
-> (forall x. Rep UpdateSMBFileShare x -> UpdateSMBFileShare)
-> Generic UpdateSMBFileShare
forall x. Rep UpdateSMBFileShare x -> UpdateSMBFileShare
forall x. UpdateSMBFileShare -> Rep UpdateSMBFileShare x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateSMBFileShare x -> UpdateSMBFileShare
$cfrom :: forall x. UpdateSMBFileShare -> Rep UpdateSMBFileShare x
Prelude.Generic)

-- |
-- Create a value of 'UpdateSMBFileShare' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'accessBasedEnumeration', 'updateSMBFileShare_accessBasedEnumeration' - The files and folders on this share will only be visible to users with
-- read access.
--
-- 'adminUserList', 'updateSMBFileShare_adminUserList' - A list of users or groups in the Active Directory that have
-- administrator rights to the file share. A group must be prefixed with
-- the \@ character. Acceptable formats include: @DOMAIN\\User1@, @user1@,
-- @\@group1@, and @\@DOMAIN\\group1@. Can only be set if Authentication is
-- set to @ActiveDirectory@.
--
-- 'auditDestinationARN', 'updateSMBFileShare_auditDestinationARN' - The Amazon Resource Name (ARN) of the storage used for audit logs.
--
-- 'invalidUserList', 'updateSMBFileShare_invalidUserList' - A list of users or groups in the Active Directory that are not allowed
-- to access the file share. A group must be prefixed with the \@
-- character. Acceptable formats include: @DOMAIN\\User1@, @user1@,
-- @\@group1@, and @\@DOMAIN\\group1@. Can only be set if Authentication is
-- set to @ActiveDirectory@.
--
-- 'kmsKey', 'updateSMBFileShare_kmsKey' - The Amazon Resource Name (ARN) of a symmetric customer master key (CMK)
-- used for Amazon S3 server-side encryption. Storage Gateway does not
-- support asymmetric CMKs. This value can only be set when @KMSEncrypted@
-- is @true@. Optional.
--
-- 'validUserList', 'updateSMBFileShare_validUserList' - A list of users or groups in the Active Directory that are allowed to
-- access the file share. A group must be prefixed with the \@ character.
-- Acceptable formats include: @DOMAIN\\User1@, @user1@, @\@group1@, and
-- @\@DOMAIN\\group1@. Can only be set if Authentication is set to
-- @ActiveDirectory@.
--
-- 'cacheAttributes', 'updateSMBFileShare_cacheAttributes' - Specifies refresh cache information for the file share.
--
-- 'objectACL', 'updateSMBFileShare_objectACL' - A value that sets the access control list (ACL) permission for objects
-- in the S3 bucket that a S3 File Gateway puts objects into. The default
-- value is @private@.
--
-- 'kmsEncrypted', 'updateSMBFileShare_kmsEncrypted' - Set to @true@ to use Amazon S3 server-side encryption with your own KMS
-- key, or @false@ to use a key managed by Amazon S3. Optional.
--
-- Valid Values: @true@ | @false@
--
-- 'defaultStorageClass', 'updateSMBFileShare_defaultStorageClass' - The default storage class for objects put into an Amazon S3 bucket by
-- the S3 File Gateway. The default value is @S3_INTELLIGENT_TIERING@.
-- Optional.
--
-- Valid Values: @S3_STANDARD@ | @S3_INTELLIGENT_TIERING@ |
-- @S3_STANDARD_IA@ | @S3_ONEZONE_IA@
--
-- 'fileShareName', 'updateSMBFileShare_fileShareName' - The name of the file share. Optional.
--
-- @FileShareName@ must be set if an S3 prefix name is set in
-- @LocationARN@, or if an access point or access point alias is used.
--
-- 'sMBACLEnabled', 'updateSMBFileShare_sMBACLEnabled' - Set this value to @true@ to enable access control list (ACL) on the SMB
-- file share. Set it to @false@ to map file and directory permissions to
-- the POSIX permissions.
--
-- For more information, see
-- <https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html Using Microsoft Windows ACLs to control access to an SMB file share>
-- in the /Storage Gateway User Guide/.
--
-- Valid Values: @true@ | @false@
--
-- 'oplocksEnabled', 'updateSMBFileShare_oplocksEnabled' - Specifies whether opportunistic locking is enabled for the SMB file
-- share.
--
-- Enabling opportunistic locking on case-sensitive shares is not
-- recommended for workloads that involve access to files with the same
-- name in different case.
--
-- Valid Values: @true@ | @false@
--
-- 'notificationPolicy', 'updateSMBFileShare_notificationPolicy' - The notification policy of the file share. @SettlingTimeInSeconds@
-- controls the number of seconds to wait after the last point in time a
-- client wrote to a file before generating an @ObjectUploaded@
-- notification. Because clients can make many small writes to files, it\'s
-- best to set this parameter for as long as possible to avoid generating
-- multiple notifications for the same file in a small time period.
--
-- @SettlingTimeInSeconds@ has no effect on the timing of the object
-- uploading to Amazon S3, only the timing of the notification.
--
-- The following example sets @NotificationPolicy@ on with
-- @SettlingTimeInSeconds@ set to 60.
--
-- @{\\\"Upload\\\": {\\\"SettlingTimeInSeconds\\\": 60}}@
--
-- The following example sets @NotificationPolicy@ off.
--
-- @{}@
--
-- 'requesterPays', 'updateSMBFileShare_requesterPays' - A value that sets who pays the cost of the request and the cost
-- associated with data download from the S3 bucket. If this value is set
-- to @true@, the requester pays the costs; otherwise, the S3 bucket owner
-- pays. However, the S3 bucket owner always pays the cost of storing data.
--
-- @RequesterPays@ is a configuration for the S3 bucket that backs the file
-- share, so make sure that the configuration on the file share is the same
-- as the S3 bucket configuration.
--
-- Valid Values: @true@ | @false@
--
-- 'guessMIMETypeEnabled', 'updateSMBFileShare_guessMIMETypeEnabled' - A value that enables guessing of the MIME type for uploaded objects
-- based on file extensions. Set this value to @true@ to enable MIME type
-- guessing, otherwise set to @false@. The default value is @true@.
--
-- Valid Values: @true@ | @false@
--
-- 'readOnly', 'updateSMBFileShare_readOnly' - A value that sets the write status of a file share. Set this value to
-- @true@ to set write status to read-only, otherwise set to @false@.
--
-- Valid Values: @true@ | @false@
--
-- 'caseSensitivity', 'updateSMBFileShare_caseSensitivity' - The case of an object name in an Amazon S3 bucket. For
-- @ClientSpecified@, the client determines the case sensitivity. For
-- @CaseSensitive@, the gateway determines the case sensitivity. The
-- default value is @ClientSpecified@.
--
-- 'fileShareARN', 'updateSMBFileShare_fileShareARN' - The Amazon Resource Name (ARN) of the SMB file share that you want to
-- update.
newUpdateSMBFileShare ::
  -- | 'fileShareARN'
  Prelude.Text ->
  UpdateSMBFileShare
newUpdateSMBFileShare :: Text -> UpdateSMBFileShare
newUpdateSMBFileShare Text
pFileShareARN_ =
  UpdateSMBFileShare' :: Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe [Text]
-> Maybe CacheAttributes
-> Maybe ObjectACL
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe CaseSensitivity
-> Text
-> UpdateSMBFileShare
UpdateSMBFileShare'
    { $sel:accessBasedEnumeration:UpdateSMBFileShare' :: Maybe Bool
accessBasedEnumeration =
        Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:adminUserList:UpdateSMBFileShare' :: Maybe [Text]
adminUserList = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:auditDestinationARN:UpdateSMBFileShare' :: Maybe Text
auditDestinationARN = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:invalidUserList:UpdateSMBFileShare' :: Maybe [Text]
invalidUserList = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:kmsKey:UpdateSMBFileShare' :: Maybe Text
kmsKey = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:validUserList:UpdateSMBFileShare' :: Maybe [Text]
validUserList = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:cacheAttributes:UpdateSMBFileShare' :: Maybe CacheAttributes
cacheAttributes = Maybe CacheAttributes
forall a. Maybe a
Prelude.Nothing,
      $sel:objectACL:UpdateSMBFileShare' :: Maybe ObjectACL
objectACL = Maybe ObjectACL
forall a. Maybe a
Prelude.Nothing,
      $sel:kmsEncrypted:UpdateSMBFileShare' :: Maybe Bool
kmsEncrypted = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:defaultStorageClass:UpdateSMBFileShare' :: Maybe Text
defaultStorageClass = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:fileShareName:UpdateSMBFileShare' :: Maybe Text
fileShareName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:sMBACLEnabled:UpdateSMBFileShare' :: Maybe Bool
sMBACLEnabled = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:oplocksEnabled:UpdateSMBFileShare' :: Maybe Bool
oplocksEnabled = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:notificationPolicy:UpdateSMBFileShare' :: Maybe Text
notificationPolicy = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:requesterPays:UpdateSMBFileShare' :: Maybe Bool
requesterPays = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:guessMIMETypeEnabled:UpdateSMBFileShare' :: Maybe Bool
guessMIMETypeEnabled = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:readOnly:UpdateSMBFileShare' :: Maybe Bool
readOnly = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:caseSensitivity:UpdateSMBFileShare' :: Maybe CaseSensitivity
caseSensitivity = Maybe CaseSensitivity
forall a. Maybe a
Prelude.Nothing,
      $sel:fileShareARN:UpdateSMBFileShare' :: Text
fileShareARN = Text
pFileShareARN_
    }

-- | The files and folders on this share will only be visible to users with
-- read access.
updateSMBFileShare_accessBasedEnumeration :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe Prelude.Bool)
updateSMBFileShare_accessBasedEnumeration :: (Maybe Bool -> f (Maybe Bool))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_accessBasedEnumeration = (UpdateSMBFileShare -> Maybe Bool)
-> (UpdateSMBFileShare -> Maybe Bool -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe Bool
accessBasedEnumeration :: Maybe Bool
$sel:accessBasedEnumeration:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
accessBasedEnumeration} -> Maybe Bool
accessBasedEnumeration) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe Bool
a -> UpdateSMBFileShare
s {$sel:accessBasedEnumeration:UpdateSMBFileShare' :: Maybe Bool
accessBasedEnumeration = Maybe Bool
a} :: UpdateSMBFileShare)

-- | A list of users or groups in the Active Directory that have
-- administrator rights to the file share. A group must be prefixed with
-- the \@ character. Acceptable formats include: @DOMAIN\\User1@, @user1@,
-- @\@group1@, and @\@DOMAIN\\group1@. Can only be set if Authentication is
-- set to @ActiveDirectory@.
updateSMBFileShare_adminUserList :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe [Prelude.Text])
updateSMBFileShare_adminUserList :: (Maybe [Text] -> f (Maybe [Text]))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_adminUserList = (UpdateSMBFileShare -> Maybe [Text])
-> (UpdateSMBFileShare -> Maybe [Text] -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe [Text]
adminUserList :: Maybe [Text]
$sel:adminUserList:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe [Text]
adminUserList} -> Maybe [Text]
adminUserList) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe [Text]
a -> UpdateSMBFileShare
s {$sel:adminUserList:UpdateSMBFileShare' :: Maybe [Text]
adminUserList = Maybe [Text]
a} :: UpdateSMBFileShare) ((Maybe [Text] -> f (Maybe [Text]))
 -> UpdateSMBFileShare -> f UpdateSMBFileShare)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> UpdateSMBFileShare
-> f UpdateSMBFileShare
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The Amazon Resource Name (ARN) of the storage used for audit logs.
updateSMBFileShare_auditDestinationARN :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe Prelude.Text)
updateSMBFileShare_auditDestinationARN :: (Maybe Text -> f (Maybe Text))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_auditDestinationARN = (UpdateSMBFileShare -> Maybe Text)
-> (UpdateSMBFileShare -> Maybe Text -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe Text
auditDestinationARN :: Maybe Text
$sel:auditDestinationARN:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Text
auditDestinationARN} -> Maybe Text
auditDestinationARN) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe Text
a -> UpdateSMBFileShare
s {$sel:auditDestinationARN:UpdateSMBFileShare' :: Maybe Text
auditDestinationARN = Maybe Text
a} :: UpdateSMBFileShare)

-- | A list of users or groups in the Active Directory that are not allowed
-- to access the file share. A group must be prefixed with the \@
-- character. Acceptable formats include: @DOMAIN\\User1@, @user1@,
-- @\@group1@, and @\@DOMAIN\\group1@. Can only be set if Authentication is
-- set to @ActiveDirectory@.
updateSMBFileShare_invalidUserList :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe [Prelude.Text])
updateSMBFileShare_invalidUserList :: (Maybe [Text] -> f (Maybe [Text]))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_invalidUserList = (UpdateSMBFileShare -> Maybe [Text])
-> (UpdateSMBFileShare -> Maybe [Text] -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe [Text]
invalidUserList :: Maybe [Text]
$sel:invalidUserList:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe [Text]
invalidUserList} -> Maybe [Text]
invalidUserList) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe [Text]
a -> UpdateSMBFileShare
s {$sel:invalidUserList:UpdateSMBFileShare' :: Maybe [Text]
invalidUserList = Maybe [Text]
a} :: UpdateSMBFileShare) ((Maybe [Text] -> f (Maybe [Text]))
 -> UpdateSMBFileShare -> f UpdateSMBFileShare)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> UpdateSMBFileShare
-> f UpdateSMBFileShare
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The Amazon Resource Name (ARN) of a symmetric customer master key (CMK)
-- used for Amazon S3 server-side encryption. Storage Gateway does not
-- support asymmetric CMKs. This value can only be set when @KMSEncrypted@
-- is @true@. Optional.
updateSMBFileShare_kmsKey :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe Prelude.Text)
updateSMBFileShare_kmsKey :: (Maybe Text -> f (Maybe Text))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_kmsKey = (UpdateSMBFileShare -> Maybe Text)
-> (UpdateSMBFileShare -> Maybe Text -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe Text
kmsKey :: Maybe Text
$sel:kmsKey:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Text
kmsKey} -> Maybe Text
kmsKey) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe Text
a -> UpdateSMBFileShare
s {$sel:kmsKey:UpdateSMBFileShare' :: Maybe Text
kmsKey = Maybe Text
a} :: UpdateSMBFileShare)

-- | A list of users or groups in the Active Directory that are allowed to
-- access the file share. A group must be prefixed with the \@ character.
-- Acceptable formats include: @DOMAIN\\User1@, @user1@, @\@group1@, and
-- @\@DOMAIN\\group1@. Can only be set if Authentication is set to
-- @ActiveDirectory@.
updateSMBFileShare_validUserList :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe [Prelude.Text])
updateSMBFileShare_validUserList :: (Maybe [Text] -> f (Maybe [Text]))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_validUserList = (UpdateSMBFileShare -> Maybe [Text])
-> (UpdateSMBFileShare -> Maybe [Text] -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe [Text]
validUserList :: Maybe [Text]
$sel:validUserList:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe [Text]
validUserList} -> Maybe [Text]
validUserList) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe [Text]
a -> UpdateSMBFileShare
s {$sel:validUserList:UpdateSMBFileShare' :: Maybe [Text]
validUserList = Maybe [Text]
a} :: UpdateSMBFileShare) ((Maybe [Text] -> f (Maybe [Text]))
 -> UpdateSMBFileShare -> f UpdateSMBFileShare)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> UpdateSMBFileShare
-> f UpdateSMBFileShare
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Specifies refresh cache information for the file share.
updateSMBFileShare_cacheAttributes :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe CacheAttributes)
updateSMBFileShare_cacheAttributes :: (Maybe CacheAttributes -> f (Maybe CacheAttributes))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_cacheAttributes = (UpdateSMBFileShare -> Maybe CacheAttributes)
-> (UpdateSMBFileShare
    -> Maybe CacheAttributes -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare
     UpdateSMBFileShare
     (Maybe CacheAttributes)
     (Maybe CacheAttributes)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe CacheAttributes
cacheAttributes :: Maybe CacheAttributes
$sel:cacheAttributes:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe CacheAttributes
cacheAttributes} -> Maybe CacheAttributes
cacheAttributes) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe CacheAttributes
a -> UpdateSMBFileShare
s {$sel:cacheAttributes:UpdateSMBFileShare' :: Maybe CacheAttributes
cacheAttributes = Maybe CacheAttributes
a} :: UpdateSMBFileShare)

-- | A value that sets the access control list (ACL) permission for objects
-- in the S3 bucket that a S3 File Gateway puts objects into. The default
-- value is @private@.
updateSMBFileShare_objectACL :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe ObjectACL)
updateSMBFileShare_objectACL :: (Maybe ObjectACL -> f (Maybe ObjectACL))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_objectACL = (UpdateSMBFileShare -> Maybe ObjectACL)
-> (UpdateSMBFileShare -> Maybe ObjectACL -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare
     UpdateSMBFileShare
     (Maybe ObjectACL)
     (Maybe ObjectACL)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe ObjectACL
objectACL :: Maybe ObjectACL
$sel:objectACL:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe ObjectACL
objectACL} -> Maybe ObjectACL
objectACL) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe ObjectACL
a -> UpdateSMBFileShare
s {$sel:objectACL:UpdateSMBFileShare' :: Maybe ObjectACL
objectACL = Maybe ObjectACL
a} :: UpdateSMBFileShare)

-- | Set to @true@ to use Amazon S3 server-side encryption with your own KMS
-- key, or @false@ to use a key managed by Amazon S3. Optional.
--
-- Valid Values: @true@ | @false@
updateSMBFileShare_kmsEncrypted :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe Prelude.Bool)
updateSMBFileShare_kmsEncrypted :: (Maybe Bool -> f (Maybe Bool))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_kmsEncrypted = (UpdateSMBFileShare -> Maybe Bool)
-> (UpdateSMBFileShare -> Maybe Bool -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe Bool
kmsEncrypted :: Maybe Bool
$sel:kmsEncrypted:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
kmsEncrypted} -> Maybe Bool
kmsEncrypted) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe Bool
a -> UpdateSMBFileShare
s {$sel:kmsEncrypted:UpdateSMBFileShare' :: Maybe Bool
kmsEncrypted = Maybe Bool
a} :: UpdateSMBFileShare)

-- | The default storage class for objects put into an Amazon S3 bucket by
-- the S3 File Gateway. The default value is @S3_INTELLIGENT_TIERING@.
-- Optional.
--
-- Valid Values: @S3_STANDARD@ | @S3_INTELLIGENT_TIERING@ |
-- @S3_STANDARD_IA@ | @S3_ONEZONE_IA@
updateSMBFileShare_defaultStorageClass :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe Prelude.Text)
updateSMBFileShare_defaultStorageClass :: (Maybe Text -> f (Maybe Text))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_defaultStorageClass = (UpdateSMBFileShare -> Maybe Text)
-> (UpdateSMBFileShare -> Maybe Text -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe Text
defaultStorageClass :: Maybe Text
$sel:defaultStorageClass:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Text
defaultStorageClass} -> Maybe Text
defaultStorageClass) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe Text
a -> UpdateSMBFileShare
s {$sel:defaultStorageClass:UpdateSMBFileShare' :: Maybe Text
defaultStorageClass = Maybe Text
a} :: UpdateSMBFileShare)

-- | The name of the file share. Optional.
--
-- @FileShareName@ must be set if an S3 prefix name is set in
-- @LocationARN@, or if an access point or access point alias is used.
updateSMBFileShare_fileShareName :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe Prelude.Text)
updateSMBFileShare_fileShareName :: (Maybe Text -> f (Maybe Text))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_fileShareName = (UpdateSMBFileShare -> Maybe Text)
-> (UpdateSMBFileShare -> Maybe Text -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe Text
fileShareName :: Maybe Text
$sel:fileShareName:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Text
fileShareName} -> Maybe Text
fileShareName) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe Text
a -> UpdateSMBFileShare
s {$sel:fileShareName:UpdateSMBFileShare' :: Maybe Text
fileShareName = Maybe Text
a} :: UpdateSMBFileShare)

-- | Set this value to @true@ to enable access control list (ACL) on the SMB
-- file share. Set it to @false@ to map file and directory permissions to
-- the POSIX permissions.
--
-- For more information, see
-- <https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html Using Microsoft Windows ACLs to control access to an SMB file share>
-- in the /Storage Gateway User Guide/.
--
-- Valid Values: @true@ | @false@
updateSMBFileShare_sMBACLEnabled :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe Prelude.Bool)
updateSMBFileShare_sMBACLEnabled :: (Maybe Bool -> f (Maybe Bool))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_sMBACLEnabled = (UpdateSMBFileShare -> Maybe Bool)
-> (UpdateSMBFileShare -> Maybe Bool -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe Bool
sMBACLEnabled :: Maybe Bool
$sel:sMBACLEnabled:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
sMBACLEnabled} -> Maybe Bool
sMBACLEnabled) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe Bool
a -> UpdateSMBFileShare
s {$sel:sMBACLEnabled:UpdateSMBFileShare' :: Maybe Bool
sMBACLEnabled = Maybe Bool
a} :: UpdateSMBFileShare)

-- | Specifies whether opportunistic locking is enabled for the SMB file
-- share.
--
-- Enabling opportunistic locking on case-sensitive shares is not
-- recommended for workloads that involve access to files with the same
-- name in different case.
--
-- Valid Values: @true@ | @false@
updateSMBFileShare_oplocksEnabled :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe Prelude.Bool)
updateSMBFileShare_oplocksEnabled :: (Maybe Bool -> f (Maybe Bool))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_oplocksEnabled = (UpdateSMBFileShare -> Maybe Bool)
-> (UpdateSMBFileShare -> Maybe Bool -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe Bool
oplocksEnabled :: Maybe Bool
$sel:oplocksEnabled:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
oplocksEnabled} -> Maybe Bool
oplocksEnabled) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe Bool
a -> UpdateSMBFileShare
s {$sel:oplocksEnabled:UpdateSMBFileShare' :: Maybe Bool
oplocksEnabled = Maybe Bool
a} :: UpdateSMBFileShare)

-- | The notification policy of the file share. @SettlingTimeInSeconds@
-- controls the number of seconds to wait after the last point in time a
-- client wrote to a file before generating an @ObjectUploaded@
-- notification. Because clients can make many small writes to files, it\'s
-- best to set this parameter for as long as possible to avoid generating
-- multiple notifications for the same file in a small time period.
--
-- @SettlingTimeInSeconds@ has no effect on the timing of the object
-- uploading to Amazon S3, only the timing of the notification.
--
-- The following example sets @NotificationPolicy@ on with
-- @SettlingTimeInSeconds@ set to 60.
--
-- @{\\\"Upload\\\": {\\\"SettlingTimeInSeconds\\\": 60}}@
--
-- The following example sets @NotificationPolicy@ off.
--
-- @{}@
updateSMBFileShare_notificationPolicy :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe Prelude.Text)
updateSMBFileShare_notificationPolicy :: (Maybe Text -> f (Maybe Text))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_notificationPolicy = (UpdateSMBFileShare -> Maybe Text)
-> (UpdateSMBFileShare -> Maybe Text -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe Text
notificationPolicy :: Maybe Text
$sel:notificationPolicy:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Text
notificationPolicy} -> Maybe Text
notificationPolicy) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe Text
a -> UpdateSMBFileShare
s {$sel:notificationPolicy:UpdateSMBFileShare' :: Maybe Text
notificationPolicy = Maybe Text
a} :: UpdateSMBFileShare)

-- | A value that sets who pays the cost of the request and the cost
-- associated with data download from the S3 bucket. If this value is set
-- to @true@, the requester pays the costs; otherwise, the S3 bucket owner
-- pays. However, the S3 bucket owner always pays the cost of storing data.
--
-- @RequesterPays@ is a configuration for the S3 bucket that backs the file
-- share, so make sure that the configuration on the file share is the same
-- as the S3 bucket configuration.
--
-- Valid Values: @true@ | @false@
updateSMBFileShare_requesterPays :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe Prelude.Bool)
updateSMBFileShare_requesterPays :: (Maybe Bool -> f (Maybe Bool))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_requesterPays = (UpdateSMBFileShare -> Maybe Bool)
-> (UpdateSMBFileShare -> Maybe Bool -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe Bool
requesterPays :: Maybe Bool
$sel:requesterPays:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
requesterPays} -> Maybe Bool
requesterPays) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe Bool
a -> UpdateSMBFileShare
s {$sel:requesterPays:UpdateSMBFileShare' :: Maybe Bool
requesterPays = Maybe Bool
a} :: UpdateSMBFileShare)

-- | A value that enables guessing of the MIME type for uploaded objects
-- based on file extensions. Set this value to @true@ to enable MIME type
-- guessing, otherwise set to @false@. The default value is @true@.
--
-- Valid Values: @true@ | @false@
updateSMBFileShare_guessMIMETypeEnabled :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe Prelude.Bool)
updateSMBFileShare_guessMIMETypeEnabled :: (Maybe Bool -> f (Maybe Bool))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_guessMIMETypeEnabled = (UpdateSMBFileShare -> Maybe Bool)
-> (UpdateSMBFileShare -> Maybe Bool -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe Bool
guessMIMETypeEnabled :: Maybe Bool
$sel:guessMIMETypeEnabled:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
guessMIMETypeEnabled} -> Maybe Bool
guessMIMETypeEnabled) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe Bool
a -> UpdateSMBFileShare
s {$sel:guessMIMETypeEnabled:UpdateSMBFileShare' :: Maybe Bool
guessMIMETypeEnabled = Maybe Bool
a} :: UpdateSMBFileShare)

-- | A value that sets the write status of a file share. Set this value to
-- @true@ to set write status to read-only, otherwise set to @false@.
--
-- Valid Values: @true@ | @false@
updateSMBFileShare_readOnly :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe Prelude.Bool)
updateSMBFileShare_readOnly :: (Maybe Bool -> f (Maybe Bool))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_readOnly = (UpdateSMBFileShare -> Maybe Bool)
-> (UpdateSMBFileShare -> Maybe Bool -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare UpdateSMBFileShare (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe Bool
readOnly :: Maybe Bool
$sel:readOnly:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
readOnly} -> Maybe Bool
readOnly) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe Bool
a -> UpdateSMBFileShare
s {$sel:readOnly:UpdateSMBFileShare' :: Maybe Bool
readOnly = Maybe Bool
a} :: UpdateSMBFileShare)

-- | The case of an object name in an Amazon S3 bucket. For
-- @ClientSpecified@, the client determines the case sensitivity. For
-- @CaseSensitive@, the gateway determines the case sensitivity. The
-- default value is @ClientSpecified@.
updateSMBFileShare_caseSensitivity :: Lens.Lens' UpdateSMBFileShare (Prelude.Maybe CaseSensitivity)
updateSMBFileShare_caseSensitivity :: (Maybe CaseSensitivity -> f (Maybe CaseSensitivity))
-> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_caseSensitivity = (UpdateSMBFileShare -> Maybe CaseSensitivity)
-> (UpdateSMBFileShare
    -> Maybe CaseSensitivity -> UpdateSMBFileShare)
-> Lens
     UpdateSMBFileShare
     UpdateSMBFileShare
     (Maybe CaseSensitivity)
     (Maybe CaseSensitivity)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Maybe CaseSensitivity
caseSensitivity :: Maybe CaseSensitivity
$sel:caseSensitivity:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe CaseSensitivity
caseSensitivity} -> Maybe CaseSensitivity
caseSensitivity) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Maybe CaseSensitivity
a -> UpdateSMBFileShare
s {$sel:caseSensitivity:UpdateSMBFileShare' :: Maybe CaseSensitivity
caseSensitivity = Maybe CaseSensitivity
a} :: UpdateSMBFileShare)

-- | The Amazon Resource Name (ARN) of the SMB file share that you want to
-- update.
updateSMBFileShare_fileShareARN :: Lens.Lens' UpdateSMBFileShare Prelude.Text
updateSMBFileShare_fileShareARN :: (Text -> f Text) -> UpdateSMBFileShare -> f UpdateSMBFileShare
updateSMBFileShare_fileShareARN = (UpdateSMBFileShare -> Text)
-> (UpdateSMBFileShare -> Text -> UpdateSMBFileShare)
-> Lens UpdateSMBFileShare UpdateSMBFileShare Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShare' {Text
fileShareARN :: Text
$sel:fileShareARN:UpdateSMBFileShare' :: UpdateSMBFileShare -> Text
fileShareARN} -> Text
fileShareARN) (\s :: UpdateSMBFileShare
s@UpdateSMBFileShare' {} Text
a -> UpdateSMBFileShare
s {$sel:fileShareARN:UpdateSMBFileShare' :: Text
fileShareARN = Text
a} :: UpdateSMBFileShare)

instance Core.AWSRequest UpdateSMBFileShare where
  type
    AWSResponse UpdateSMBFileShare =
      UpdateSMBFileShareResponse
  request :: UpdateSMBFileShare -> Request UpdateSMBFileShare
request = Service -> UpdateSMBFileShare -> Request UpdateSMBFileShare
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy UpdateSMBFileShare
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateSMBFileShare)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse UpdateSMBFileShare))
-> Logger
-> Service
-> Proxy UpdateSMBFileShare
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateSMBFileShare)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text -> Int -> UpdateSMBFileShareResponse
UpdateSMBFileShareResponse'
            (Maybe Text -> Int -> UpdateSMBFileShareResponse)
-> Either String (Maybe Text)
-> Either String (Int -> UpdateSMBFileShareResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"FileShareARN")
            Either String (Int -> UpdateSMBFileShareResponse)
-> Either String Int -> Either String UpdateSMBFileShareResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable UpdateSMBFileShare

instance Prelude.NFData UpdateSMBFileShare

instance Core.ToHeaders UpdateSMBFileShare where
  toHeaders :: UpdateSMBFileShare -> ResponseHeaders
toHeaders =
    ResponseHeaders -> UpdateSMBFileShare -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"StorageGateway_20130630.UpdateSMBFileShare" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Core.ToJSON UpdateSMBFileShare where
  toJSON :: UpdateSMBFileShare -> Value
toJSON UpdateSMBFileShare' {Maybe Bool
Maybe [Text]
Maybe Text
Maybe CacheAttributes
Maybe CaseSensitivity
Maybe ObjectACL
Text
fileShareARN :: Text
caseSensitivity :: Maybe CaseSensitivity
readOnly :: Maybe Bool
guessMIMETypeEnabled :: Maybe Bool
requesterPays :: Maybe Bool
notificationPolicy :: Maybe Text
oplocksEnabled :: Maybe Bool
sMBACLEnabled :: Maybe Bool
fileShareName :: Maybe Text
defaultStorageClass :: Maybe Text
kmsEncrypted :: Maybe Bool
objectACL :: Maybe ObjectACL
cacheAttributes :: Maybe CacheAttributes
validUserList :: Maybe [Text]
kmsKey :: Maybe Text
invalidUserList :: Maybe [Text]
auditDestinationARN :: Maybe Text
adminUserList :: Maybe [Text]
accessBasedEnumeration :: Maybe Bool
$sel:fileShareARN:UpdateSMBFileShare' :: UpdateSMBFileShare -> Text
$sel:caseSensitivity:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe CaseSensitivity
$sel:readOnly:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
$sel:guessMIMETypeEnabled:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
$sel:requesterPays:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
$sel:notificationPolicy:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Text
$sel:oplocksEnabled:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
$sel:sMBACLEnabled:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
$sel:fileShareName:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Text
$sel:defaultStorageClass:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Text
$sel:kmsEncrypted:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
$sel:objectACL:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe ObjectACL
$sel:cacheAttributes:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe CacheAttributes
$sel:validUserList:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe [Text]
$sel:kmsKey:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Text
$sel:invalidUserList:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe [Text]
$sel:auditDestinationARN:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Text
$sel:adminUserList:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe [Text]
$sel:accessBasedEnumeration:UpdateSMBFileShare' :: UpdateSMBFileShare -> Maybe Bool
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"AccessBasedEnumeration" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
accessBasedEnumeration,
            (Text
"AdminUserList" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
adminUserList,
            (Text
"AuditDestinationARN" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
auditDestinationARN,
            (Text
"InvalidUserList" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
invalidUserList,
            (Text
"KMSKey" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
kmsKey,
            (Text
"ValidUserList" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
validUserList,
            (Text
"CacheAttributes" Text -> CacheAttributes -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (CacheAttributes -> Pair) -> Maybe CacheAttributes -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CacheAttributes
cacheAttributes,
            (Text
"ObjectACL" Text -> ObjectACL -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (ObjectACL -> Pair) -> Maybe ObjectACL -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ObjectACL
objectACL,
            (Text
"KMSEncrypted" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
kmsEncrypted,
            (Text
"DefaultStorageClass" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
defaultStorageClass,
            (Text
"FileShareName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
fileShareName,
            (Text
"SMBACLEnabled" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
sMBACLEnabled,
            (Text
"OplocksEnabled" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
oplocksEnabled,
            (Text
"NotificationPolicy" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
notificationPolicy,
            (Text
"RequesterPays" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
requesterPays,
            (Text
"GuessMIMETypeEnabled" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
guessMIMETypeEnabled,
            (Text
"ReadOnly" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
readOnly,
            (Text
"CaseSensitivity" Text -> CaseSensitivity -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (CaseSensitivity -> Pair) -> Maybe CaseSensitivity -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CaseSensitivity
caseSensitivity,
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"FileShareARN" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
fileShareARN)
          ]
      )

instance Core.ToPath UpdateSMBFileShare where
  toPath :: UpdateSMBFileShare -> ByteString
toPath = ByteString -> UpdateSMBFileShare -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Core.ToQuery UpdateSMBFileShare where
  toQuery :: UpdateSMBFileShare -> QueryString
toQuery = QueryString -> UpdateSMBFileShare -> QueryString
forall a b. a -> b -> a
Prelude.const QueryString
forall a. Monoid a => a
Prelude.mempty

-- | UpdateSMBFileShareOutput
--
-- /See:/ 'newUpdateSMBFileShareResponse' smart constructor.
data UpdateSMBFileShareResponse = UpdateSMBFileShareResponse'
  { -- | The Amazon Resource Name (ARN) of the updated SMB file share.
    UpdateSMBFileShareResponse -> Maybe Text
fileShareARN :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    UpdateSMBFileShareResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateSMBFileShareResponse -> UpdateSMBFileShareResponse -> Bool
(UpdateSMBFileShareResponse -> UpdateSMBFileShareResponse -> Bool)
-> (UpdateSMBFileShareResponse
    -> UpdateSMBFileShareResponse -> Bool)
-> Eq UpdateSMBFileShareResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateSMBFileShareResponse -> UpdateSMBFileShareResponse -> Bool
$c/= :: UpdateSMBFileShareResponse -> UpdateSMBFileShareResponse -> Bool
== :: UpdateSMBFileShareResponse -> UpdateSMBFileShareResponse -> Bool
$c== :: UpdateSMBFileShareResponse -> UpdateSMBFileShareResponse -> Bool
Prelude.Eq, ReadPrec [UpdateSMBFileShareResponse]
ReadPrec UpdateSMBFileShareResponse
Int -> ReadS UpdateSMBFileShareResponse
ReadS [UpdateSMBFileShareResponse]
(Int -> ReadS UpdateSMBFileShareResponse)
-> ReadS [UpdateSMBFileShareResponse]
-> ReadPrec UpdateSMBFileShareResponse
-> ReadPrec [UpdateSMBFileShareResponse]
-> Read UpdateSMBFileShareResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateSMBFileShareResponse]
$creadListPrec :: ReadPrec [UpdateSMBFileShareResponse]
readPrec :: ReadPrec UpdateSMBFileShareResponse
$creadPrec :: ReadPrec UpdateSMBFileShareResponse
readList :: ReadS [UpdateSMBFileShareResponse]
$creadList :: ReadS [UpdateSMBFileShareResponse]
readsPrec :: Int -> ReadS UpdateSMBFileShareResponse
$creadsPrec :: Int -> ReadS UpdateSMBFileShareResponse
Prelude.Read, Int -> UpdateSMBFileShareResponse -> ShowS
[UpdateSMBFileShareResponse] -> ShowS
UpdateSMBFileShareResponse -> String
(Int -> UpdateSMBFileShareResponse -> ShowS)
-> (UpdateSMBFileShareResponse -> String)
-> ([UpdateSMBFileShareResponse] -> ShowS)
-> Show UpdateSMBFileShareResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateSMBFileShareResponse] -> ShowS
$cshowList :: [UpdateSMBFileShareResponse] -> ShowS
show :: UpdateSMBFileShareResponse -> String
$cshow :: UpdateSMBFileShareResponse -> String
showsPrec :: Int -> UpdateSMBFileShareResponse -> ShowS
$cshowsPrec :: Int -> UpdateSMBFileShareResponse -> ShowS
Prelude.Show, (forall x.
 UpdateSMBFileShareResponse -> Rep UpdateSMBFileShareResponse x)
-> (forall x.
    Rep UpdateSMBFileShareResponse x -> UpdateSMBFileShareResponse)
-> Generic UpdateSMBFileShareResponse
forall x.
Rep UpdateSMBFileShareResponse x -> UpdateSMBFileShareResponse
forall x.
UpdateSMBFileShareResponse -> Rep UpdateSMBFileShareResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateSMBFileShareResponse x -> UpdateSMBFileShareResponse
$cfrom :: forall x.
UpdateSMBFileShareResponse -> Rep UpdateSMBFileShareResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateSMBFileShareResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'fileShareARN', 'updateSMBFileShareResponse_fileShareARN' - The Amazon Resource Name (ARN) of the updated SMB file share.
--
-- 'httpStatus', 'updateSMBFileShareResponse_httpStatus' - The response's http status code.
newUpdateSMBFileShareResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateSMBFileShareResponse
newUpdateSMBFileShareResponse :: Int -> UpdateSMBFileShareResponse
newUpdateSMBFileShareResponse Int
pHttpStatus_ =
  UpdateSMBFileShareResponse' :: Maybe Text -> Int -> UpdateSMBFileShareResponse
UpdateSMBFileShareResponse'
    { $sel:fileShareARN:UpdateSMBFileShareResponse' :: Maybe Text
fileShareARN =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateSMBFileShareResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The Amazon Resource Name (ARN) of the updated SMB file share.
updateSMBFileShareResponse_fileShareARN :: Lens.Lens' UpdateSMBFileShareResponse (Prelude.Maybe Prelude.Text)
updateSMBFileShareResponse_fileShareARN :: (Maybe Text -> f (Maybe Text))
-> UpdateSMBFileShareResponse -> f UpdateSMBFileShareResponse
updateSMBFileShareResponse_fileShareARN = (UpdateSMBFileShareResponse -> Maybe Text)
-> (UpdateSMBFileShareResponse
    -> Maybe Text -> UpdateSMBFileShareResponse)
-> Lens
     UpdateSMBFileShareResponse
     UpdateSMBFileShareResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShareResponse' {Maybe Text
fileShareARN :: Maybe Text
$sel:fileShareARN:UpdateSMBFileShareResponse' :: UpdateSMBFileShareResponse -> Maybe Text
fileShareARN} -> Maybe Text
fileShareARN) (\s :: UpdateSMBFileShareResponse
s@UpdateSMBFileShareResponse' {} Maybe Text
a -> UpdateSMBFileShareResponse
s {$sel:fileShareARN:UpdateSMBFileShareResponse' :: Maybe Text
fileShareARN = Maybe Text
a} :: UpdateSMBFileShareResponse)

-- | The response's http status code.
updateSMBFileShareResponse_httpStatus :: Lens.Lens' UpdateSMBFileShareResponse Prelude.Int
updateSMBFileShareResponse_httpStatus :: (Int -> f Int)
-> UpdateSMBFileShareResponse -> f UpdateSMBFileShareResponse
updateSMBFileShareResponse_httpStatus = (UpdateSMBFileShareResponse -> Int)
-> (UpdateSMBFileShareResponse
    -> Int -> UpdateSMBFileShareResponse)
-> Lens
     UpdateSMBFileShareResponse UpdateSMBFileShareResponse Int Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSMBFileShareResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateSMBFileShareResponse' :: UpdateSMBFileShareResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateSMBFileShareResponse
s@UpdateSMBFileShareResponse' {} Int
a -> UpdateSMBFileShareResponse
s {$sel:httpStatus:UpdateSMBFileShareResponse' :: Int
httpStatus = Int
a} :: UpdateSMBFileShareResponse)

instance Prelude.NFData UpdateSMBFileShareResponse