{-# 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.Omics.UpdateAnnotationStore
-- 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 an annotation store.
module Amazonka.Omics.UpdateAnnotationStore
  ( -- * Creating a Request
    UpdateAnnotationStore (..),
    newUpdateAnnotationStore,

    -- * Request Lenses
    updateAnnotationStore_description,
    updateAnnotationStore_name,

    -- * Destructuring the Response
    UpdateAnnotationStoreResponse (..),
    newUpdateAnnotationStoreResponse,

    -- * Response Lenses
    updateAnnotationStoreResponse_storeFormat,
    updateAnnotationStoreResponse_storeOptions,
    updateAnnotationStoreResponse_httpStatus,
    updateAnnotationStoreResponse_creationTime,
    updateAnnotationStoreResponse_description,
    updateAnnotationStoreResponse_id,
    updateAnnotationStoreResponse_name,
    updateAnnotationStoreResponse_reference,
    updateAnnotationStoreResponse_status,
    updateAnnotationStoreResponse_updateTime,
  )
where

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

-- | /See:/ 'newUpdateAnnotationStore' smart constructor.
data UpdateAnnotationStore = UpdateAnnotationStore'
  { -- | A description for the store.
    UpdateAnnotationStore -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | A name for the store.
    UpdateAnnotationStore -> Text
name :: Prelude.Text
  }
  deriving (UpdateAnnotationStore -> UpdateAnnotationStore -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateAnnotationStore -> UpdateAnnotationStore -> Bool
$c/= :: UpdateAnnotationStore -> UpdateAnnotationStore -> Bool
== :: UpdateAnnotationStore -> UpdateAnnotationStore -> Bool
$c== :: UpdateAnnotationStore -> UpdateAnnotationStore -> Bool
Prelude.Eq, ReadPrec [UpdateAnnotationStore]
ReadPrec UpdateAnnotationStore
Int -> ReadS UpdateAnnotationStore
ReadS [UpdateAnnotationStore]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateAnnotationStore]
$creadListPrec :: ReadPrec [UpdateAnnotationStore]
readPrec :: ReadPrec UpdateAnnotationStore
$creadPrec :: ReadPrec UpdateAnnotationStore
readList :: ReadS [UpdateAnnotationStore]
$creadList :: ReadS [UpdateAnnotationStore]
readsPrec :: Int -> ReadS UpdateAnnotationStore
$creadsPrec :: Int -> ReadS UpdateAnnotationStore
Prelude.Read, Int -> UpdateAnnotationStore -> ShowS
[UpdateAnnotationStore] -> ShowS
UpdateAnnotationStore -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateAnnotationStore] -> ShowS
$cshowList :: [UpdateAnnotationStore] -> ShowS
show :: UpdateAnnotationStore -> String
$cshow :: UpdateAnnotationStore -> String
showsPrec :: Int -> UpdateAnnotationStore -> ShowS
$cshowsPrec :: Int -> UpdateAnnotationStore -> ShowS
Prelude.Show, forall x. Rep UpdateAnnotationStore x -> UpdateAnnotationStore
forall x. UpdateAnnotationStore -> Rep UpdateAnnotationStore x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateAnnotationStore x -> UpdateAnnotationStore
$cfrom :: forall x. UpdateAnnotationStore -> Rep UpdateAnnotationStore x
Prelude.Generic)

-- |
-- Create a value of 'UpdateAnnotationStore' 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:
--
-- 'description', 'updateAnnotationStore_description' - A description for the store.
--
-- 'name', 'updateAnnotationStore_name' - A name for the store.
newUpdateAnnotationStore ::
  -- | 'name'
  Prelude.Text ->
  UpdateAnnotationStore
newUpdateAnnotationStore :: Text -> UpdateAnnotationStore
newUpdateAnnotationStore Text
pName_ =
  UpdateAnnotationStore'
    { $sel:description:UpdateAnnotationStore' :: Maybe Text
description =
        forall a. Maybe a
Prelude.Nothing,
      $sel:name:UpdateAnnotationStore' :: Text
name = Text
pName_
    }

-- | A description for the store.
updateAnnotationStore_description :: Lens.Lens' UpdateAnnotationStore (Prelude.Maybe Prelude.Text)
updateAnnotationStore_description :: Lens' UpdateAnnotationStore (Maybe Text)
updateAnnotationStore_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAnnotationStore' {Maybe Text
description :: Maybe Text
$sel:description:UpdateAnnotationStore' :: UpdateAnnotationStore -> Maybe Text
description} -> Maybe Text
description) (\s :: UpdateAnnotationStore
s@UpdateAnnotationStore' {} Maybe Text
a -> UpdateAnnotationStore
s {$sel:description:UpdateAnnotationStore' :: Maybe Text
description = Maybe Text
a} :: UpdateAnnotationStore)

-- | A name for the store.
updateAnnotationStore_name :: Lens.Lens' UpdateAnnotationStore Prelude.Text
updateAnnotationStore_name :: Lens' UpdateAnnotationStore Text
updateAnnotationStore_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAnnotationStore' {Text
name :: Text
$sel:name:UpdateAnnotationStore' :: UpdateAnnotationStore -> Text
name} -> Text
name) (\s :: UpdateAnnotationStore
s@UpdateAnnotationStore' {} Text
a -> UpdateAnnotationStore
s {$sel:name:UpdateAnnotationStore' :: Text
name = Text
a} :: UpdateAnnotationStore)

instance Core.AWSRequest UpdateAnnotationStore where
  type
    AWSResponse UpdateAnnotationStore =
      UpdateAnnotationStoreResponse
  request :: (Service -> Service)
-> UpdateAnnotationStore -> Request UpdateAnnotationStore
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 UpdateAnnotationStore
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateAnnotationStore)))
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 StoreFormat
-> Maybe StoreOptions
-> Int
-> ISO8601
-> Text
-> Text
-> Text
-> ReferenceItem
-> StoreStatus
-> ISO8601
-> UpdateAnnotationStoreResponse
UpdateAnnotationStoreResponse'
            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
"storeFormat")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"storeOptions")
            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))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"creationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"description")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"id")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"name")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"reference")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"status")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"updateTime")
      )

instance Prelude.Hashable UpdateAnnotationStore where
  hashWithSalt :: Int -> UpdateAnnotationStore -> Int
hashWithSalt Int
_salt UpdateAnnotationStore' {Maybe Text
Text
name :: Text
description :: Maybe Text
$sel:name:UpdateAnnotationStore' :: UpdateAnnotationStore -> Text
$sel:description:UpdateAnnotationStore' :: UpdateAnnotationStore -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name

instance Prelude.NFData UpdateAnnotationStore where
  rnf :: UpdateAnnotationStore -> ()
rnf UpdateAnnotationStore' {Maybe Text
Text
name :: Text
description :: Maybe Text
$sel:name:UpdateAnnotationStore' :: UpdateAnnotationStore -> Text
$sel:description:UpdateAnnotationStore' :: UpdateAnnotationStore -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name

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

instance Data.ToJSON UpdateAnnotationStore where
  toJSON :: UpdateAnnotationStore -> Value
toJSON UpdateAnnotationStore' {Maybe Text
Text
name :: Text
description :: Maybe Text
$sel:name:UpdateAnnotationStore' :: UpdateAnnotationStore -> Text
$sel:description:UpdateAnnotationStore' :: UpdateAnnotationStore -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [(Key
"description" 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
description]
      )

instance Data.ToPath UpdateAnnotationStore where
  toPath :: UpdateAnnotationStore -> ByteString
toPath UpdateAnnotationStore' {Maybe Text
Text
name :: Text
description :: Maybe Text
$sel:name:UpdateAnnotationStore' :: UpdateAnnotationStore -> Text
$sel:description:UpdateAnnotationStore' :: UpdateAnnotationStore -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/annotationStore/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
name]

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

-- | /See:/ 'newUpdateAnnotationStoreResponse' smart constructor.
data UpdateAnnotationStoreResponse = UpdateAnnotationStoreResponse'
  { -- | The annotation file format of the store.
    UpdateAnnotationStoreResponse -> Maybe StoreFormat
storeFormat :: Prelude.Maybe StoreFormat,
    -- | Parsing options for the store.
    UpdateAnnotationStoreResponse -> Maybe StoreOptions
storeOptions :: Prelude.Maybe StoreOptions,
    -- | The response's http status code.
    UpdateAnnotationStoreResponse -> Int
httpStatus :: Prelude.Int,
    -- | When the store was created.
    UpdateAnnotationStoreResponse -> ISO8601
creationTime :: Data.ISO8601,
    -- | The store\'s description.
    UpdateAnnotationStoreResponse -> Text
description :: Prelude.Text,
    -- | The store\'s ID.
    UpdateAnnotationStoreResponse -> Text
id :: Prelude.Text,
    -- | The store\'s name.
    UpdateAnnotationStoreResponse -> Text
name :: Prelude.Text,
    -- | The store\'s genome reference.
    UpdateAnnotationStoreResponse -> ReferenceItem
reference :: ReferenceItem,
    -- | The store\'s status.
    UpdateAnnotationStoreResponse -> StoreStatus
status :: StoreStatus,
    -- | When the store was updated.
    UpdateAnnotationStoreResponse -> ISO8601
updateTime :: Data.ISO8601
  }
  deriving (UpdateAnnotationStoreResponse
-> UpdateAnnotationStoreResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateAnnotationStoreResponse
-> UpdateAnnotationStoreResponse -> Bool
$c/= :: UpdateAnnotationStoreResponse
-> UpdateAnnotationStoreResponse -> Bool
== :: UpdateAnnotationStoreResponse
-> UpdateAnnotationStoreResponse -> Bool
$c== :: UpdateAnnotationStoreResponse
-> UpdateAnnotationStoreResponse -> Bool
Prelude.Eq, ReadPrec [UpdateAnnotationStoreResponse]
ReadPrec UpdateAnnotationStoreResponse
Int -> ReadS UpdateAnnotationStoreResponse
ReadS [UpdateAnnotationStoreResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateAnnotationStoreResponse]
$creadListPrec :: ReadPrec [UpdateAnnotationStoreResponse]
readPrec :: ReadPrec UpdateAnnotationStoreResponse
$creadPrec :: ReadPrec UpdateAnnotationStoreResponse
readList :: ReadS [UpdateAnnotationStoreResponse]
$creadList :: ReadS [UpdateAnnotationStoreResponse]
readsPrec :: Int -> ReadS UpdateAnnotationStoreResponse
$creadsPrec :: Int -> ReadS UpdateAnnotationStoreResponse
Prelude.Read, Int -> UpdateAnnotationStoreResponse -> ShowS
[UpdateAnnotationStoreResponse] -> ShowS
UpdateAnnotationStoreResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateAnnotationStoreResponse] -> ShowS
$cshowList :: [UpdateAnnotationStoreResponse] -> ShowS
show :: UpdateAnnotationStoreResponse -> String
$cshow :: UpdateAnnotationStoreResponse -> String
showsPrec :: Int -> UpdateAnnotationStoreResponse -> ShowS
$cshowsPrec :: Int -> UpdateAnnotationStoreResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateAnnotationStoreResponse x
-> UpdateAnnotationStoreResponse
forall x.
UpdateAnnotationStoreResponse
-> Rep UpdateAnnotationStoreResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateAnnotationStoreResponse x
-> UpdateAnnotationStoreResponse
$cfrom :: forall x.
UpdateAnnotationStoreResponse
-> Rep UpdateAnnotationStoreResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateAnnotationStoreResponse' 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:
--
-- 'storeFormat', 'updateAnnotationStoreResponse_storeFormat' - The annotation file format of the store.
--
-- 'storeOptions', 'updateAnnotationStoreResponse_storeOptions' - Parsing options for the store.
--
-- 'httpStatus', 'updateAnnotationStoreResponse_httpStatus' - The response's http status code.
--
-- 'creationTime', 'updateAnnotationStoreResponse_creationTime' - When the store was created.
--
-- 'description', 'updateAnnotationStoreResponse_description' - The store\'s description.
--
-- 'id', 'updateAnnotationStoreResponse_id' - The store\'s ID.
--
-- 'name', 'updateAnnotationStoreResponse_name' - The store\'s name.
--
-- 'reference', 'updateAnnotationStoreResponse_reference' - The store\'s genome reference.
--
-- 'status', 'updateAnnotationStoreResponse_status' - The store\'s status.
--
-- 'updateTime', 'updateAnnotationStoreResponse_updateTime' - When the store was updated.
newUpdateAnnotationStoreResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'description'
  Prelude.Text ->
  -- | 'id'
  Prelude.Text ->
  -- | 'name'
  Prelude.Text ->
  -- | 'reference'
  ReferenceItem ->
  -- | 'status'
  StoreStatus ->
  -- | 'updateTime'
  Prelude.UTCTime ->
  UpdateAnnotationStoreResponse
newUpdateAnnotationStoreResponse :: Int
-> UTCTime
-> Text
-> Text
-> Text
-> ReferenceItem
-> StoreStatus
-> UTCTime
-> UpdateAnnotationStoreResponse
newUpdateAnnotationStoreResponse
  Int
pHttpStatus_
  UTCTime
pCreationTime_
  Text
pDescription_
  Text
pId_
  Text
pName_
  ReferenceItem
pReference_
  StoreStatus
pStatus_
  UTCTime
pUpdateTime_ =
    UpdateAnnotationStoreResponse'
      { $sel:storeFormat:UpdateAnnotationStoreResponse' :: Maybe StoreFormat
storeFormat =
          forall a. Maybe a
Prelude.Nothing,
        $sel:storeOptions:UpdateAnnotationStoreResponse' :: Maybe StoreOptions
storeOptions = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:UpdateAnnotationStoreResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:creationTime:UpdateAnnotationStoreResponse' :: ISO8601
creationTime =
          forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_,
        $sel:description:UpdateAnnotationStoreResponse' :: Text
description = Text
pDescription_,
        $sel:id:UpdateAnnotationStoreResponse' :: Text
id = Text
pId_,
        $sel:name:UpdateAnnotationStoreResponse' :: Text
name = Text
pName_,
        $sel:reference:UpdateAnnotationStoreResponse' :: ReferenceItem
reference = ReferenceItem
pReference_,
        $sel:status:UpdateAnnotationStoreResponse' :: StoreStatus
status = StoreStatus
pStatus_,
        $sel:updateTime:UpdateAnnotationStoreResponse' :: ISO8601
updateTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pUpdateTime_
      }

-- | The annotation file format of the store.
updateAnnotationStoreResponse_storeFormat :: Lens.Lens' UpdateAnnotationStoreResponse (Prelude.Maybe StoreFormat)
updateAnnotationStoreResponse_storeFormat :: Lens' UpdateAnnotationStoreResponse (Maybe StoreFormat)
updateAnnotationStoreResponse_storeFormat = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAnnotationStoreResponse' {Maybe StoreFormat
storeFormat :: Maybe StoreFormat
$sel:storeFormat:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> Maybe StoreFormat
storeFormat} -> Maybe StoreFormat
storeFormat) (\s :: UpdateAnnotationStoreResponse
s@UpdateAnnotationStoreResponse' {} Maybe StoreFormat
a -> UpdateAnnotationStoreResponse
s {$sel:storeFormat:UpdateAnnotationStoreResponse' :: Maybe StoreFormat
storeFormat = Maybe StoreFormat
a} :: UpdateAnnotationStoreResponse)

-- | Parsing options for the store.
updateAnnotationStoreResponse_storeOptions :: Lens.Lens' UpdateAnnotationStoreResponse (Prelude.Maybe StoreOptions)
updateAnnotationStoreResponse_storeOptions :: Lens' UpdateAnnotationStoreResponse (Maybe StoreOptions)
updateAnnotationStoreResponse_storeOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAnnotationStoreResponse' {Maybe StoreOptions
storeOptions :: Maybe StoreOptions
$sel:storeOptions:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> Maybe StoreOptions
storeOptions} -> Maybe StoreOptions
storeOptions) (\s :: UpdateAnnotationStoreResponse
s@UpdateAnnotationStoreResponse' {} Maybe StoreOptions
a -> UpdateAnnotationStoreResponse
s {$sel:storeOptions:UpdateAnnotationStoreResponse' :: Maybe StoreOptions
storeOptions = Maybe StoreOptions
a} :: UpdateAnnotationStoreResponse)

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

-- | When the store was created.
updateAnnotationStoreResponse_creationTime :: Lens.Lens' UpdateAnnotationStoreResponse Prelude.UTCTime
updateAnnotationStoreResponse_creationTime :: Lens' UpdateAnnotationStoreResponse UTCTime
updateAnnotationStoreResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAnnotationStoreResponse' {ISO8601
creationTime :: ISO8601
$sel:creationTime:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> ISO8601
creationTime} -> ISO8601
creationTime) (\s :: UpdateAnnotationStoreResponse
s@UpdateAnnotationStoreResponse' {} ISO8601
a -> UpdateAnnotationStoreResponse
s {$sel:creationTime:UpdateAnnotationStoreResponse' :: ISO8601
creationTime = ISO8601
a} :: UpdateAnnotationStoreResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The store\'s description.
updateAnnotationStoreResponse_description :: Lens.Lens' UpdateAnnotationStoreResponse Prelude.Text
updateAnnotationStoreResponse_description :: Lens' UpdateAnnotationStoreResponse Text
updateAnnotationStoreResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAnnotationStoreResponse' {Text
description :: Text
$sel:description:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> Text
description} -> Text
description) (\s :: UpdateAnnotationStoreResponse
s@UpdateAnnotationStoreResponse' {} Text
a -> UpdateAnnotationStoreResponse
s {$sel:description:UpdateAnnotationStoreResponse' :: Text
description = Text
a} :: UpdateAnnotationStoreResponse)

-- | The store\'s ID.
updateAnnotationStoreResponse_id :: Lens.Lens' UpdateAnnotationStoreResponse Prelude.Text
updateAnnotationStoreResponse_id :: Lens' UpdateAnnotationStoreResponse Text
updateAnnotationStoreResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAnnotationStoreResponse' {Text
id :: Text
$sel:id:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> Text
id} -> Text
id) (\s :: UpdateAnnotationStoreResponse
s@UpdateAnnotationStoreResponse' {} Text
a -> UpdateAnnotationStoreResponse
s {$sel:id:UpdateAnnotationStoreResponse' :: Text
id = Text
a} :: UpdateAnnotationStoreResponse)

-- | The store\'s name.
updateAnnotationStoreResponse_name :: Lens.Lens' UpdateAnnotationStoreResponse Prelude.Text
updateAnnotationStoreResponse_name :: Lens' UpdateAnnotationStoreResponse Text
updateAnnotationStoreResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAnnotationStoreResponse' {Text
name :: Text
$sel:name:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> Text
name} -> Text
name) (\s :: UpdateAnnotationStoreResponse
s@UpdateAnnotationStoreResponse' {} Text
a -> UpdateAnnotationStoreResponse
s {$sel:name:UpdateAnnotationStoreResponse' :: Text
name = Text
a} :: UpdateAnnotationStoreResponse)

-- | The store\'s genome reference.
updateAnnotationStoreResponse_reference :: Lens.Lens' UpdateAnnotationStoreResponse ReferenceItem
updateAnnotationStoreResponse_reference :: Lens' UpdateAnnotationStoreResponse ReferenceItem
updateAnnotationStoreResponse_reference = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAnnotationStoreResponse' {ReferenceItem
reference :: ReferenceItem
$sel:reference:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> ReferenceItem
reference} -> ReferenceItem
reference) (\s :: UpdateAnnotationStoreResponse
s@UpdateAnnotationStoreResponse' {} ReferenceItem
a -> UpdateAnnotationStoreResponse
s {$sel:reference:UpdateAnnotationStoreResponse' :: ReferenceItem
reference = ReferenceItem
a} :: UpdateAnnotationStoreResponse)

-- | The store\'s status.
updateAnnotationStoreResponse_status :: Lens.Lens' UpdateAnnotationStoreResponse StoreStatus
updateAnnotationStoreResponse_status :: Lens' UpdateAnnotationStoreResponse StoreStatus
updateAnnotationStoreResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAnnotationStoreResponse' {StoreStatus
status :: StoreStatus
$sel:status:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> StoreStatus
status} -> StoreStatus
status) (\s :: UpdateAnnotationStoreResponse
s@UpdateAnnotationStoreResponse' {} StoreStatus
a -> UpdateAnnotationStoreResponse
s {$sel:status:UpdateAnnotationStoreResponse' :: StoreStatus
status = StoreStatus
a} :: UpdateAnnotationStoreResponse)

-- | When the store was updated.
updateAnnotationStoreResponse_updateTime :: Lens.Lens' UpdateAnnotationStoreResponse Prelude.UTCTime
updateAnnotationStoreResponse_updateTime :: Lens' UpdateAnnotationStoreResponse UTCTime
updateAnnotationStoreResponse_updateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAnnotationStoreResponse' {ISO8601
updateTime :: ISO8601
$sel:updateTime:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> ISO8601
updateTime} -> ISO8601
updateTime) (\s :: UpdateAnnotationStoreResponse
s@UpdateAnnotationStoreResponse' {} ISO8601
a -> UpdateAnnotationStoreResponse
s {$sel:updateTime:UpdateAnnotationStoreResponse' :: ISO8601
updateTime = ISO8601
a} :: UpdateAnnotationStoreResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

instance Prelude.NFData UpdateAnnotationStoreResponse where
  rnf :: UpdateAnnotationStoreResponse -> ()
rnf UpdateAnnotationStoreResponse' {Int
Maybe StoreFormat
Maybe StoreOptions
Text
ISO8601
ReferenceItem
StoreStatus
updateTime :: ISO8601
status :: StoreStatus
reference :: ReferenceItem
name :: Text
id :: Text
description :: Text
creationTime :: ISO8601
httpStatus :: Int
storeOptions :: Maybe StoreOptions
storeFormat :: Maybe StoreFormat
$sel:updateTime:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> ISO8601
$sel:status:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> StoreStatus
$sel:reference:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> ReferenceItem
$sel:name:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> Text
$sel:id:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> Text
$sel:description:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> Text
$sel:creationTime:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> ISO8601
$sel:httpStatus:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> Int
$sel:storeOptions:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> Maybe StoreOptions
$sel:storeFormat:UpdateAnnotationStoreResponse' :: UpdateAnnotationStoreResponse -> Maybe StoreFormat
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe StoreFormat
storeFormat
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe StoreOptions
storeOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ISO8601
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
id
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ReferenceItem
reference
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf StoreStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ISO8601
updateTime