{-# 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.FSx.UpdateDataRepositoryAssociation
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates the configuration of an existing data repository association on
-- an Amazon FSx for Lustre file system. Data repository associations are
-- supported only for file systems with the @Persistent_2@ deployment type.
module Amazonka.FSx.UpdateDataRepositoryAssociation
  ( -- * Creating a Request
    UpdateDataRepositoryAssociation (..),
    newUpdateDataRepositoryAssociation,

    -- * Request Lenses
    updateDataRepositoryAssociation_clientRequestToken,
    updateDataRepositoryAssociation_importedFileChunkSize,
    updateDataRepositoryAssociation_s3,
    updateDataRepositoryAssociation_associationId,

    -- * Destructuring the Response
    UpdateDataRepositoryAssociationResponse (..),
    newUpdateDataRepositoryAssociationResponse,

    -- * Response Lenses
    updateDataRepositoryAssociationResponse_association,
    updateDataRepositoryAssociationResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.FSx.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newUpdateDataRepositoryAssociation' smart constructor.
data UpdateDataRepositoryAssociation = UpdateDataRepositoryAssociation'
  { UpdateDataRepositoryAssociation -> Maybe Text
clientRequestToken :: Prelude.Maybe Prelude.Text,
    -- | For files imported from a data repository, this value determines the
    -- stripe count and maximum amount of data per file (in MiB) stored on a
    -- single physical disk. The maximum number of disks that a single file can
    -- be striped across is limited by the total number of disks that make up
    -- the file system.
    --
    -- The default chunk size is 1,024 MiB (1 GiB) and can go as high as
    -- 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.
    UpdateDataRepositoryAssociation -> Maybe Natural
importedFileChunkSize :: Prelude.Maybe Prelude.Natural,
    -- | The configuration for an Amazon S3 data repository linked to an Amazon
    -- FSx Lustre file system with a data repository association. The
    -- configuration defines which file events (new, changed, or deleted files
    -- or directories) are automatically imported from the linked data
    -- repository to the file system or automatically exported from the file
    -- system to the data repository.
    UpdateDataRepositoryAssociation
-> Maybe S3DataRepositoryConfiguration
s3 :: Prelude.Maybe S3DataRepositoryConfiguration,
    -- | The ID of the data repository association that you are updating.
    UpdateDataRepositoryAssociation -> Text
associationId :: Prelude.Text
  }
  deriving (UpdateDataRepositoryAssociation
-> UpdateDataRepositoryAssociation -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDataRepositoryAssociation
-> UpdateDataRepositoryAssociation -> Bool
$c/= :: UpdateDataRepositoryAssociation
-> UpdateDataRepositoryAssociation -> Bool
== :: UpdateDataRepositoryAssociation
-> UpdateDataRepositoryAssociation -> Bool
$c== :: UpdateDataRepositoryAssociation
-> UpdateDataRepositoryAssociation -> Bool
Prelude.Eq, ReadPrec [UpdateDataRepositoryAssociation]
ReadPrec UpdateDataRepositoryAssociation
Int -> ReadS UpdateDataRepositoryAssociation
ReadS [UpdateDataRepositoryAssociation]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDataRepositoryAssociation]
$creadListPrec :: ReadPrec [UpdateDataRepositoryAssociation]
readPrec :: ReadPrec UpdateDataRepositoryAssociation
$creadPrec :: ReadPrec UpdateDataRepositoryAssociation
readList :: ReadS [UpdateDataRepositoryAssociation]
$creadList :: ReadS [UpdateDataRepositoryAssociation]
readsPrec :: Int -> ReadS UpdateDataRepositoryAssociation
$creadsPrec :: Int -> ReadS UpdateDataRepositoryAssociation
Prelude.Read, Int -> UpdateDataRepositoryAssociation -> ShowS
[UpdateDataRepositoryAssociation] -> ShowS
UpdateDataRepositoryAssociation -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDataRepositoryAssociation] -> ShowS
$cshowList :: [UpdateDataRepositoryAssociation] -> ShowS
show :: UpdateDataRepositoryAssociation -> String
$cshow :: UpdateDataRepositoryAssociation -> String
showsPrec :: Int -> UpdateDataRepositoryAssociation -> ShowS
$cshowsPrec :: Int -> UpdateDataRepositoryAssociation -> ShowS
Prelude.Show, forall x.
Rep UpdateDataRepositoryAssociation x
-> UpdateDataRepositoryAssociation
forall x.
UpdateDataRepositoryAssociation
-> Rep UpdateDataRepositoryAssociation x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateDataRepositoryAssociation x
-> UpdateDataRepositoryAssociation
$cfrom :: forall x.
UpdateDataRepositoryAssociation
-> Rep UpdateDataRepositoryAssociation x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDataRepositoryAssociation' 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:
--
-- 'clientRequestToken', 'updateDataRepositoryAssociation_clientRequestToken' - Undocumented member.
--
-- 'importedFileChunkSize', 'updateDataRepositoryAssociation_importedFileChunkSize' - For files imported from a data repository, this value determines the
-- stripe count and maximum amount of data per file (in MiB) stored on a
-- single physical disk. The maximum number of disks that a single file can
-- be striped across is limited by the total number of disks that make up
-- the file system.
--
-- The default chunk size is 1,024 MiB (1 GiB) and can go as high as
-- 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.
--
-- 's3', 'updateDataRepositoryAssociation_s3' - The configuration for an Amazon S3 data repository linked to an Amazon
-- FSx Lustre file system with a data repository association. The
-- configuration defines which file events (new, changed, or deleted files
-- or directories) are automatically imported from the linked data
-- repository to the file system or automatically exported from the file
-- system to the data repository.
--
-- 'associationId', 'updateDataRepositoryAssociation_associationId' - The ID of the data repository association that you are updating.
newUpdateDataRepositoryAssociation ::
  -- | 'associationId'
  Prelude.Text ->
  UpdateDataRepositoryAssociation
newUpdateDataRepositoryAssociation :: Text -> UpdateDataRepositoryAssociation
newUpdateDataRepositoryAssociation Text
pAssociationId_ =
  UpdateDataRepositoryAssociation'
    { $sel:clientRequestToken:UpdateDataRepositoryAssociation' :: Maybe Text
clientRequestToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:importedFileChunkSize:UpdateDataRepositoryAssociation' :: Maybe Natural
importedFileChunkSize = forall a. Maybe a
Prelude.Nothing,
      $sel:s3:UpdateDataRepositoryAssociation' :: Maybe S3DataRepositoryConfiguration
s3 = forall a. Maybe a
Prelude.Nothing,
      $sel:associationId:UpdateDataRepositoryAssociation' :: Text
associationId = Text
pAssociationId_
    }

-- | Undocumented member.
updateDataRepositoryAssociation_clientRequestToken :: Lens.Lens' UpdateDataRepositoryAssociation (Prelude.Maybe Prelude.Text)
updateDataRepositoryAssociation_clientRequestToken :: Lens' UpdateDataRepositoryAssociation (Maybe Text)
updateDataRepositoryAssociation_clientRequestToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataRepositoryAssociation' {Maybe Text
clientRequestToken :: Maybe Text
$sel:clientRequestToken:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation -> Maybe Text
clientRequestToken} -> Maybe Text
clientRequestToken) (\s :: UpdateDataRepositoryAssociation
s@UpdateDataRepositoryAssociation' {} Maybe Text
a -> UpdateDataRepositoryAssociation
s {$sel:clientRequestToken:UpdateDataRepositoryAssociation' :: Maybe Text
clientRequestToken = Maybe Text
a} :: UpdateDataRepositoryAssociation)

-- | For files imported from a data repository, this value determines the
-- stripe count and maximum amount of data per file (in MiB) stored on a
-- single physical disk. The maximum number of disks that a single file can
-- be striped across is limited by the total number of disks that make up
-- the file system.
--
-- The default chunk size is 1,024 MiB (1 GiB) and can go as high as
-- 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.
updateDataRepositoryAssociation_importedFileChunkSize :: Lens.Lens' UpdateDataRepositoryAssociation (Prelude.Maybe Prelude.Natural)
updateDataRepositoryAssociation_importedFileChunkSize :: Lens' UpdateDataRepositoryAssociation (Maybe Natural)
updateDataRepositoryAssociation_importedFileChunkSize = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataRepositoryAssociation' {Maybe Natural
importedFileChunkSize :: Maybe Natural
$sel:importedFileChunkSize:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation -> Maybe Natural
importedFileChunkSize} -> Maybe Natural
importedFileChunkSize) (\s :: UpdateDataRepositoryAssociation
s@UpdateDataRepositoryAssociation' {} Maybe Natural
a -> UpdateDataRepositoryAssociation
s {$sel:importedFileChunkSize:UpdateDataRepositoryAssociation' :: Maybe Natural
importedFileChunkSize = Maybe Natural
a} :: UpdateDataRepositoryAssociation)

-- | The configuration for an Amazon S3 data repository linked to an Amazon
-- FSx Lustre file system with a data repository association. The
-- configuration defines which file events (new, changed, or deleted files
-- or directories) are automatically imported from the linked data
-- repository to the file system or automatically exported from the file
-- system to the data repository.
updateDataRepositoryAssociation_s3 :: Lens.Lens' UpdateDataRepositoryAssociation (Prelude.Maybe S3DataRepositoryConfiguration)
updateDataRepositoryAssociation_s3 :: Lens'
  UpdateDataRepositoryAssociation
  (Maybe S3DataRepositoryConfiguration)
updateDataRepositoryAssociation_s3 = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataRepositoryAssociation' {Maybe S3DataRepositoryConfiguration
s3 :: Maybe S3DataRepositoryConfiguration
$sel:s3:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation
-> Maybe S3DataRepositoryConfiguration
s3} -> Maybe S3DataRepositoryConfiguration
s3) (\s :: UpdateDataRepositoryAssociation
s@UpdateDataRepositoryAssociation' {} Maybe S3DataRepositoryConfiguration
a -> UpdateDataRepositoryAssociation
s {$sel:s3:UpdateDataRepositoryAssociation' :: Maybe S3DataRepositoryConfiguration
s3 = Maybe S3DataRepositoryConfiguration
a} :: UpdateDataRepositoryAssociation)

-- | The ID of the data repository association that you are updating.
updateDataRepositoryAssociation_associationId :: Lens.Lens' UpdateDataRepositoryAssociation Prelude.Text
updateDataRepositoryAssociation_associationId :: Lens' UpdateDataRepositoryAssociation Text
updateDataRepositoryAssociation_associationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataRepositoryAssociation' {Text
associationId :: Text
$sel:associationId:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation -> Text
associationId} -> Text
associationId) (\s :: UpdateDataRepositoryAssociation
s@UpdateDataRepositoryAssociation' {} Text
a -> UpdateDataRepositoryAssociation
s {$sel:associationId:UpdateDataRepositoryAssociation' :: Text
associationId = Text
a} :: UpdateDataRepositoryAssociation)

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

instance
  Prelude.Hashable
    UpdateDataRepositoryAssociation
  where
  hashWithSalt :: Int -> UpdateDataRepositoryAssociation -> Int
hashWithSalt
    Int
_salt
    UpdateDataRepositoryAssociation' {Maybe Natural
Maybe Text
Maybe S3DataRepositoryConfiguration
Text
associationId :: Text
s3 :: Maybe S3DataRepositoryConfiguration
importedFileChunkSize :: Maybe Natural
clientRequestToken :: Maybe Text
$sel:associationId:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation -> Text
$sel:s3:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation
-> Maybe S3DataRepositoryConfiguration
$sel:importedFileChunkSize:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation -> Maybe Natural
$sel:clientRequestToken:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientRequestToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
importedFileChunkSize
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe S3DataRepositoryConfiguration
s3
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
associationId

instance
  Prelude.NFData
    UpdateDataRepositoryAssociation
  where
  rnf :: UpdateDataRepositoryAssociation -> ()
rnf UpdateDataRepositoryAssociation' {Maybe Natural
Maybe Text
Maybe S3DataRepositoryConfiguration
Text
associationId :: Text
s3 :: Maybe S3DataRepositoryConfiguration
importedFileChunkSize :: Maybe Natural
clientRequestToken :: Maybe Text
$sel:associationId:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation -> Text
$sel:s3:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation
-> Maybe S3DataRepositoryConfiguration
$sel:importedFileChunkSize:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation -> Maybe Natural
$sel:clientRequestToken:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientRequestToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
importedFileChunkSize
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe S3DataRepositoryConfiguration
s3
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
associationId

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

instance Data.ToJSON UpdateDataRepositoryAssociation where
  toJSON :: UpdateDataRepositoryAssociation -> Value
toJSON UpdateDataRepositoryAssociation' {Maybe Natural
Maybe Text
Maybe S3DataRepositoryConfiguration
Text
associationId :: Text
s3 :: Maybe S3DataRepositoryConfiguration
importedFileChunkSize :: Maybe Natural
clientRequestToken :: Maybe Text
$sel:associationId:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation -> Text
$sel:s3:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation
-> Maybe S3DataRepositoryConfiguration
$sel:importedFileChunkSize:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation -> Maybe Natural
$sel:clientRequestToken:UpdateDataRepositoryAssociation' :: UpdateDataRepositoryAssociation -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"ClientRequestToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
clientRequestToken,
            (Key
"ImportedFileChunkSize" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
importedFileChunkSize,
            (Key
"S3" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe S3DataRepositoryConfiguration
s3,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"AssociationId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
associationId)
          ]
      )

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

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

-- | /See:/ 'newUpdateDataRepositoryAssociationResponse' smart constructor.
data UpdateDataRepositoryAssociationResponse = UpdateDataRepositoryAssociationResponse'
  { -- | The response object returned after the data repository association is
    -- updated.
    UpdateDataRepositoryAssociationResponse
-> Maybe DataRepositoryAssociation
association :: Prelude.Maybe DataRepositoryAssociation,
    -- | The response's http status code.
    UpdateDataRepositoryAssociationResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateDataRepositoryAssociationResponse
-> UpdateDataRepositoryAssociationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDataRepositoryAssociationResponse
-> UpdateDataRepositoryAssociationResponse -> Bool
$c/= :: UpdateDataRepositoryAssociationResponse
-> UpdateDataRepositoryAssociationResponse -> Bool
== :: UpdateDataRepositoryAssociationResponse
-> UpdateDataRepositoryAssociationResponse -> Bool
$c== :: UpdateDataRepositoryAssociationResponse
-> UpdateDataRepositoryAssociationResponse -> Bool
Prelude.Eq, ReadPrec [UpdateDataRepositoryAssociationResponse]
ReadPrec UpdateDataRepositoryAssociationResponse
Int -> ReadS UpdateDataRepositoryAssociationResponse
ReadS [UpdateDataRepositoryAssociationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDataRepositoryAssociationResponse]
$creadListPrec :: ReadPrec [UpdateDataRepositoryAssociationResponse]
readPrec :: ReadPrec UpdateDataRepositoryAssociationResponse
$creadPrec :: ReadPrec UpdateDataRepositoryAssociationResponse
readList :: ReadS [UpdateDataRepositoryAssociationResponse]
$creadList :: ReadS [UpdateDataRepositoryAssociationResponse]
readsPrec :: Int -> ReadS UpdateDataRepositoryAssociationResponse
$creadsPrec :: Int -> ReadS UpdateDataRepositoryAssociationResponse
Prelude.Read, Int -> UpdateDataRepositoryAssociationResponse -> ShowS
[UpdateDataRepositoryAssociationResponse] -> ShowS
UpdateDataRepositoryAssociationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDataRepositoryAssociationResponse] -> ShowS
$cshowList :: [UpdateDataRepositoryAssociationResponse] -> ShowS
show :: UpdateDataRepositoryAssociationResponse -> String
$cshow :: UpdateDataRepositoryAssociationResponse -> String
showsPrec :: Int -> UpdateDataRepositoryAssociationResponse -> ShowS
$cshowsPrec :: Int -> UpdateDataRepositoryAssociationResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateDataRepositoryAssociationResponse x
-> UpdateDataRepositoryAssociationResponse
forall x.
UpdateDataRepositoryAssociationResponse
-> Rep UpdateDataRepositoryAssociationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateDataRepositoryAssociationResponse x
-> UpdateDataRepositoryAssociationResponse
$cfrom :: forall x.
UpdateDataRepositoryAssociationResponse
-> Rep UpdateDataRepositoryAssociationResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDataRepositoryAssociationResponse' 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:
--
-- 'association', 'updateDataRepositoryAssociationResponse_association' - The response object returned after the data repository association is
-- updated.
--
-- 'httpStatus', 'updateDataRepositoryAssociationResponse_httpStatus' - The response's http status code.
newUpdateDataRepositoryAssociationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateDataRepositoryAssociationResponse
newUpdateDataRepositoryAssociationResponse :: Int -> UpdateDataRepositoryAssociationResponse
newUpdateDataRepositoryAssociationResponse
  Int
pHttpStatus_ =
    UpdateDataRepositoryAssociationResponse'
      { $sel:association:UpdateDataRepositoryAssociationResponse' :: Maybe DataRepositoryAssociation
association =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:UpdateDataRepositoryAssociationResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The response object returned after the data repository association is
-- updated.
updateDataRepositoryAssociationResponse_association :: Lens.Lens' UpdateDataRepositoryAssociationResponse (Prelude.Maybe DataRepositoryAssociation)
updateDataRepositoryAssociationResponse_association :: Lens'
  UpdateDataRepositoryAssociationResponse
  (Maybe DataRepositoryAssociation)
updateDataRepositoryAssociationResponse_association = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDataRepositoryAssociationResponse' {Maybe DataRepositoryAssociation
association :: Maybe DataRepositoryAssociation
$sel:association:UpdateDataRepositoryAssociationResponse' :: UpdateDataRepositoryAssociationResponse
-> Maybe DataRepositoryAssociation
association} -> Maybe DataRepositoryAssociation
association) (\s :: UpdateDataRepositoryAssociationResponse
s@UpdateDataRepositoryAssociationResponse' {} Maybe DataRepositoryAssociation
a -> UpdateDataRepositoryAssociationResponse
s {$sel:association:UpdateDataRepositoryAssociationResponse' :: Maybe DataRepositoryAssociation
association = Maybe DataRepositoryAssociation
a} :: UpdateDataRepositoryAssociationResponse)

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

instance
  Prelude.NFData
    UpdateDataRepositoryAssociationResponse
  where
  rnf :: UpdateDataRepositoryAssociationResponse -> ()
rnf UpdateDataRepositoryAssociationResponse' {Int
Maybe DataRepositoryAssociation
httpStatus :: Int
association :: Maybe DataRepositoryAssociation
$sel:httpStatus:UpdateDataRepositoryAssociationResponse' :: UpdateDataRepositoryAssociationResponse -> Int
$sel:association:UpdateDataRepositoryAssociationResponse' :: UpdateDataRepositoryAssociationResponse
-> Maybe DataRepositoryAssociation
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe DataRepositoryAssociation
association
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus