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

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

-- |
-- Module      : Amazonka.CloudDirectory.Types.BatchWriteOperationResponse
-- 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)
module Amazonka.CloudDirectory.Types.BatchWriteOperationResponse where

import Amazonka.CloudDirectory.Types.BatchAddFacetToObjectResponse
import Amazonka.CloudDirectory.Types.BatchAttachObjectResponse
import Amazonka.CloudDirectory.Types.BatchAttachPolicyResponse
import Amazonka.CloudDirectory.Types.BatchAttachToIndexResponse
import Amazonka.CloudDirectory.Types.BatchAttachTypedLinkResponse
import Amazonka.CloudDirectory.Types.BatchCreateIndexResponse
import Amazonka.CloudDirectory.Types.BatchCreateObjectResponse
import Amazonka.CloudDirectory.Types.BatchDeleteObjectResponse
import Amazonka.CloudDirectory.Types.BatchDetachFromIndexResponse
import Amazonka.CloudDirectory.Types.BatchDetachObjectResponse
import Amazonka.CloudDirectory.Types.BatchDetachPolicyResponse
import Amazonka.CloudDirectory.Types.BatchDetachTypedLinkResponse
import Amazonka.CloudDirectory.Types.BatchRemoveFacetFromObjectResponse
import Amazonka.CloudDirectory.Types.BatchUpdateLinkAttributesResponse
import Amazonka.CloudDirectory.Types.BatchUpdateObjectAttributesResponse
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Represents the output of a @BatchWrite@ response operation.
--
-- /See:/ 'newBatchWriteOperationResponse' smart constructor.
data BatchWriteOperationResponse = BatchWriteOperationResponse'
  { -- | Deletes an object in a Directory.
    BatchWriteOperationResponse -> Maybe BatchDeleteObjectResponse
deleteObject :: Prelude.Maybe BatchDeleteObjectResponse,
    -- | Detaches the specified object from the specified index.
    BatchWriteOperationResponse -> Maybe BatchDetachFromIndexResponse
detachFromIndex :: Prelude.Maybe BatchDetachFromIndexResponse,
    -- | The result of a batch remove facet from object operation.
    BatchWriteOperationResponse
-> Maybe BatchRemoveFacetFromObjectResponse
removeFacetFromObject :: Prelude.Maybe BatchRemoveFacetFromObjectResponse,
    -- | Attaches an object to a Directory.
    BatchWriteOperationResponse -> Maybe BatchAttachObjectResponse
attachObject :: Prelude.Maybe BatchAttachObjectResponse,
    -- | Creates an object in a Directory.
    BatchWriteOperationResponse -> Maybe BatchCreateObjectResponse
createObject :: Prelude.Maybe BatchCreateObjectResponse,
    -- | Attaches a typed link to a specified source and target object. For more
    -- information, see
    -- <https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink Typed Links>.
    BatchWriteOperationResponse -> Maybe BatchAttachTypedLinkResponse
attachTypedLink :: Prelude.Maybe BatchAttachTypedLinkResponse,
    -- | Detaches a policy from a Directory.
    BatchWriteOperationResponse -> Maybe BatchDetachPolicyResponse
detachPolicy :: Prelude.Maybe BatchDetachPolicyResponse,
    -- | Creates an index object. See
    -- <https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm Indexing and search>
    -- for more information.
    BatchWriteOperationResponse -> Maybe BatchCreateIndexResponse
createIndex :: Prelude.Maybe BatchCreateIndexResponse,
    -- | Detaches an object from a Directory.
    BatchWriteOperationResponse -> Maybe BatchDetachObjectResponse
detachObject :: Prelude.Maybe BatchDetachObjectResponse,
    -- | The result of an add facet to object batch operation.
    BatchWriteOperationResponse -> Maybe BatchAddFacetToObjectResponse
addFacetToObject :: Prelude.Maybe BatchAddFacetToObjectResponse,
    -- | Detaches a typed link from a specified source and target object. For
    -- more information, see
    -- <https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink Typed Links>.
    BatchWriteOperationResponse -> Maybe BatchDetachTypedLinkResponse
detachTypedLink :: Prelude.Maybe BatchDetachTypedLinkResponse,
    -- | Updates a given object’s attributes.
    BatchWriteOperationResponse
-> Maybe BatchUpdateObjectAttributesResponse
updateObjectAttributes :: Prelude.Maybe BatchUpdateObjectAttributesResponse,
    -- | Attaches a policy object to a regular object. An object can have a
    -- limited number of attached policies.
    BatchWriteOperationResponse -> Maybe BatchAttachPolicyResponse
attachPolicy :: Prelude.Maybe BatchAttachPolicyResponse,
    -- | Represents the output of a @BatchWrite@ response operation.
    BatchWriteOperationResponse
-> Maybe BatchUpdateLinkAttributesResponse
updateLinkAttributes :: Prelude.Maybe BatchUpdateLinkAttributesResponse,
    -- | Attaches the specified object to the specified index.
    BatchWriteOperationResponse -> Maybe BatchAttachToIndexResponse
attachToIndex :: Prelude.Maybe BatchAttachToIndexResponse
  }
  deriving (BatchWriteOperationResponse -> BatchWriteOperationResponse -> Bool
(BatchWriteOperationResponse
 -> BatchWriteOperationResponse -> Bool)
-> (BatchWriteOperationResponse
    -> BatchWriteOperationResponse -> Bool)
-> Eq BatchWriteOperationResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BatchWriteOperationResponse -> BatchWriteOperationResponse -> Bool
$c/= :: BatchWriteOperationResponse -> BatchWriteOperationResponse -> Bool
== :: BatchWriteOperationResponse -> BatchWriteOperationResponse -> Bool
$c== :: BatchWriteOperationResponse -> BatchWriteOperationResponse -> Bool
Prelude.Eq, ReadPrec [BatchWriteOperationResponse]
ReadPrec BatchWriteOperationResponse
Int -> ReadS BatchWriteOperationResponse
ReadS [BatchWriteOperationResponse]
(Int -> ReadS BatchWriteOperationResponse)
-> ReadS [BatchWriteOperationResponse]
-> ReadPrec BatchWriteOperationResponse
-> ReadPrec [BatchWriteOperationResponse]
-> Read BatchWriteOperationResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [BatchWriteOperationResponse]
$creadListPrec :: ReadPrec [BatchWriteOperationResponse]
readPrec :: ReadPrec BatchWriteOperationResponse
$creadPrec :: ReadPrec BatchWriteOperationResponse
readList :: ReadS [BatchWriteOperationResponse]
$creadList :: ReadS [BatchWriteOperationResponse]
readsPrec :: Int -> ReadS BatchWriteOperationResponse
$creadsPrec :: Int -> ReadS BatchWriteOperationResponse
Prelude.Read, Int -> BatchWriteOperationResponse -> ShowS
[BatchWriteOperationResponse] -> ShowS
BatchWriteOperationResponse -> String
(Int -> BatchWriteOperationResponse -> ShowS)
-> (BatchWriteOperationResponse -> String)
-> ([BatchWriteOperationResponse] -> ShowS)
-> Show BatchWriteOperationResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BatchWriteOperationResponse] -> ShowS
$cshowList :: [BatchWriteOperationResponse] -> ShowS
show :: BatchWriteOperationResponse -> String
$cshow :: BatchWriteOperationResponse -> String
showsPrec :: Int -> BatchWriteOperationResponse -> ShowS
$cshowsPrec :: Int -> BatchWriteOperationResponse -> ShowS
Prelude.Show, (forall x.
 BatchWriteOperationResponse -> Rep BatchWriteOperationResponse x)
-> (forall x.
    Rep BatchWriteOperationResponse x -> BatchWriteOperationResponse)
-> Generic BatchWriteOperationResponse
forall x.
Rep BatchWriteOperationResponse x -> BatchWriteOperationResponse
forall x.
BatchWriteOperationResponse -> Rep BatchWriteOperationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep BatchWriteOperationResponse x -> BatchWriteOperationResponse
$cfrom :: forall x.
BatchWriteOperationResponse -> Rep BatchWriteOperationResponse x
Prelude.Generic)

-- |
-- Create a value of 'BatchWriteOperationResponse' 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:
--
-- 'deleteObject', 'batchWriteOperationResponse_deleteObject' - Deletes an object in a Directory.
--
-- 'detachFromIndex', 'batchWriteOperationResponse_detachFromIndex' - Detaches the specified object from the specified index.
--
-- 'removeFacetFromObject', 'batchWriteOperationResponse_removeFacetFromObject' - The result of a batch remove facet from object operation.
--
-- 'attachObject', 'batchWriteOperationResponse_attachObject' - Attaches an object to a Directory.
--
-- 'createObject', 'batchWriteOperationResponse_createObject' - Creates an object in a Directory.
--
-- 'attachTypedLink', 'batchWriteOperationResponse_attachTypedLink' - Attaches a typed link to a specified source and target object. For more
-- information, see
-- <https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink Typed Links>.
--
-- 'detachPolicy', 'batchWriteOperationResponse_detachPolicy' - Detaches a policy from a Directory.
--
-- 'createIndex', 'batchWriteOperationResponse_createIndex' - Creates an index object. See
-- <https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm Indexing and search>
-- for more information.
--
-- 'detachObject', 'batchWriteOperationResponse_detachObject' - Detaches an object from a Directory.
--
-- 'addFacetToObject', 'batchWriteOperationResponse_addFacetToObject' - The result of an add facet to object batch operation.
--
-- 'detachTypedLink', 'batchWriteOperationResponse_detachTypedLink' - Detaches a typed link from a specified source and target object. For
-- more information, see
-- <https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink Typed Links>.
--
-- 'updateObjectAttributes', 'batchWriteOperationResponse_updateObjectAttributes' - Updates a given object’s attributes.
--
-- 'attachPolicy', 'batchWriteOperationResponse_attachPolicy' - Attaches a policy object to a regular object. An object can have a
-- limited number of attached policies.
--
-- 'updateLinkAttributes', 'batchWriteOperationResponse_updateLinkAttributes' - Represents the output of a @BatchWrite@ response operation.
--
-- 'attachToIndex', 'batchWriteOperationResponse_attachToIndex' - Attaches the specified object to the specified index.
newBatchWriteOperationResponse ::
  BatchWriteOperationResponse
newBatchWriteOperationResponse :: BatchWriteOperationResponse
newBatchWriteOperationResponse =
  BatchWriteOperationResponse' :: Maybe BatchDeleteObjectResponse
-> Maybe BatchDetachFromIndexResponse
-> Maybe BatchRemoveFacetFromObjectResponse
-> Maybe BatchAttachObjectResponse
-> Maybe BatchCreateObjectResponse
-> Maybe BatchAttachTypedLinkResponse
-> Maybe BatchDetachPolicyResponse
-> Maybe BatchCreateIndexResponse
-> Maybe BatchDetachObjectResponse
-> Maybe BatchAddFacetToObjectResponse
-> Maybe BatchDetachTypedLinkResponse
-> Maybe BatchUpdateObjectAttributesResponse
-> Maybe BatchAttachPolicyResponse
-> Maybe BatchUpdateLinkAttributesResponse
-> Maybe BatchAttachToIndexResponse
-> BatchWriteOperationResponse
BatchWriteOperationResponse'
    { $sel:deleteObject:BatchWriteOperationResponse' :: Maybe BatchDeleteObjectResponse
deleteObject =
        Maybe BatchDeleteObjectResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:detachFromIndex:BatchWriteOperationResponse' :: Maybe BatchDetachFromIndexResponse
detachFromIndex = Maybe BatchDetachFromIndexResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:removeFacetFromObject:BatchWriteOperationResponse' :: Maybe BatchRemoveFacetFromObjectResponse
removeFacetFromObject = Maybe BatchRemoveFacetFromObjectResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:attachObject:BatchWriteOperationResponse' :: Maybe BatchAttachObjectResponse
attachObject = Maybe BatchAttachObjectResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:createObject:BatchWriteOperationResponse' :: Maybe BatchCreateObjectResponse
createObject = Maybe BatchCreateObjectResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:attachTypedLink:BatchWriteOperationResponse' :: Maybe BatchAttachTypedLinkResponse
attachTypedLink = Maybe BatchAttachTypedLinkResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:detachPolicy:BatchWriteOperationResponse' :: Maybe BatchDetachPolicyResponse
detachPolicy = Maybe BatchDetachPolicyResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:createIndex:BatchWriteOperationResponse' :: Maybe BatchCreateIndexResponse
createIndex = Maybe BatchCreateIndexResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:detachObject:BatchWriteOperationResponse' :: Maybe BatchDetachObjectResponse
detachObject = Maybe BatchDetachObjectResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:addFacetToObject:BatchWriteOperationResponse' :: Maybe BatchAddFacetToObjectResponse
addFacetToObject = Maybe BatchAddFacetToObjectResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:detachTypedLink:BatchWriteOperationResponse' :: Maybe BatchDetachTypedLinkResponse
detachTypedLink = Maybe BatchDetachTypedLinkResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:updateObjectAttributes:BatchWriteOperationResponse' :: Maybe BatchUpdateObjectAttributesResponse
updateObjectAttributes = Maybe BatchUpdateObjectAttributesResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:attachPolicy:BatchWriteOperationResponse' :: Maybe BatchAttachPolicyResponse
attachPolicy = Maybe BatchAttachPolicyResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:updateLinkAttributes:BatchWriteOperationResponse' :: Maybe BatchUpdateLinkAttributesResponse
updateLinkAttributes = Maybe BatchUpdateLinkAttributesResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:attachToIndex:BatchWriteOperationResponse' :: Maybe BatchAttachToIndexResponse
attachToIndex = Maybe BatchAttachToIndexResponse
forall a. Maybe a
Prelude.Nothing
    }

-- | Deletes an object in a Directory.
batchWriteOperationResponse_deleteObject :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchDeleteObjectResponse)
batchWriteOperationResponse_deleteObject :: (Maybe BatchDeleteObjectResponse
 -> f (Maybe BatchDeleteObjectResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_deleteObject = (BatchWriteOperationResponse -> Maybe BatchDeleteObjectResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchDeleteObjectResponse -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchDeleteObjectResponse)
     (Maybe BatchDeleteObjectResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchDeleteObjectResponse
deleteObject :: Maybe BatchDeleteObjectResponse
$sel:deleteObject:BatchWriteOperationResponse' :: BatchWriteOperationResponse -> Maybe BatchDeleteObjectResponse
deleteObject} -> Maybe BatchDeleteObjectResponse
deleteObject) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchDeleteObjectResponse
a -> BatchWriteOperationResponse
s {$sel:deleteObject:BatchWriteOperationResponse' :: Maybe BatchDeleteObjectResponse
deleteObject = Maybe BatchDeleteObjectResponse
a} :: BatchWriteOperationResponse)

-- | Detaches the specified object from the specified index.
batchWriteOperationResponse_detachFromIndex :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchDetachFromIndexResponse)
batchWriteOperationResponse_detachFromIndex :: (Maybe BatchDetachFromIndexResponse
 -> f (Maybe BatchDetachFromIndexResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_detachFromIndex = (BatchWriteOperationResponse -> Maybe BatchDetachFromIndexResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchDetachFromIndexResponse
    -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchDetachFromIndexResponse)
     (Maybe BatchDetachFromIndexResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchDetachFromIndexResponse
detachFromIndex :: Maybe BatchDetachFromIndexResponse
$sel:detachFromIndex:BatchWriteOperationResponse' :: BatchWriteOperationResponse -> Maybe BatchDetachFromIndexResponse
detachFromIndex} -> Maybe BatchDetachFromIndexResponse
detachFromIndex) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchDetachFromIndexResponse
a -> BatchWriteOperationResponse
s {$sel:detachFromIndex:BatchWriteOperationResponse' :: Maybe BatchDetachFromIndexResponse
detachFromIndex = Maybe BatchDetachFromIndexResponse
a} :: BatchWriteOperationResponse)

-- | The result of a batch remove facet from object operation.
batchWriteOperationResponse_removeFacetFromObject :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchRemoveFacetFromObjectResponse)
batchWriteOperationResponse_removeFacetFromObject :: (Maybe BatchRemoveFacetFromObjectResponse
 -> f (Maybe BatchRemoveFacetFromObjectResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_removeFacetFromObject = (BatchWriteOperationResponse
 -> Maybe BatchRemoveFacetFromObjectResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchRemoveFacetFromObjectResponse
    -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchRemoveFacetFromObjectResponse)
     (Maybe BatchRemoveFacetFromObjectResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchRemoveFacetFromObjectResponse
removeFacetFromObject :: Maybe BatchRemoveFacetFromObjectResponse
$sel:removeFacetFromObject:BatchWriteOperationResponse' :: BatchWriteOperationResponse
-> Maybe BatchRemoveFacetFromObjectResponse
removeFacetFromObject} -> Maybe BatchRemoveFacetFromObjectResponse
removeFacetFromObject) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchRemoveFacetFromObjectResponse
a -> BatchWriteOperationResponse
s {$sel:removeFacetFromObject:BatchWriteOperationResponse' :: Maybe BatchRemoveFacetFromObjectResponse
removeFacetFromObject = Maybe BatchRemoveFacetFromObjectResponse
a} :: BatchWriteOperationResponse)

-- | Attaches an object to a Directory.
batchWriteOperationResponse_attachObject :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchAttachObjectResponse)
batchWriteOperationResponse_attachObject :: (Maybe BatchAttachObjectResponse
 -> f (Maybe BatchAttachObjectResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_attachObject = (BatchWriteOperationResponse -> Maybe BatchAttachObjectResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchAttachObjectResponse -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchAttachObjectResponse)
     (Maybe BatchAttachObjectResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchAttachObjectResponse
attachObject :: Maybe BatchAttachObjectResponse
$sel:attachObject:BatchWriteOperationResponse' :: BatchWriteOperationResponse -> Maybe BatchAttachObjectResponse
attachObject} -> Maybe BatchAttachObjectResponse
attachObject) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchAttachObjectResponse
a -> BatchWriteOperationResponse
s {$sel:attachObject:BatchWriteOperationResponse' :: Maybe BatchAttachObjectResponse
attachObject = Maybe BatchAttachObjectResponse
a} :: BatchWriteOperationResponse)

-- | Creates an object in a Directory.
batchWriteOperationResponse_createObject :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchCreateObjectResponse)
batchWriteOperationResponse_createObject :: (Maybe BatchCreateObjectResponse
 -> f (Maybe BatchCreateObjectResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_createObject = (BatchWriteOperationResponse -> Maybe BatchCreateObjectResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchCreateObjectResponse -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchCreateObjectResponse)
     (Maybe BatchCreateObjectResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchCreateObjectResponse
createObject :: Maybe BatchCreateObjectResponse
$sel:createObject:BatchWriteOperationResponse' :: BatchWriteOperationResponse -> Maybe BatchCreateObjectResponse
createObject} -> Maybe BatchCreateObjectResponse
createObject) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchCreateObjectResponse
a -> BatchWriteOperationResponse
s {$sel:createObject:BatchWriteOperationResponse' :: Maybe BatchCreateObjectResponse
createObject = Maybe BatchCreateObjectResponse
a} :: BatchWriteOperationResponse)

-- | Attaches a typed link to a specified source and target object. For more
-- information, see
-- <https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink Typed Links>.
batchWriteOperationResponse_attachTypedLink :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchAttachTypedLinkResponse)
batchWriteOperationResponse_attachTypedLink :: (Maybe BatchAttachTypedLinkResponse
 -> f (Maybe BatchAttachTypedLinkResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_attachTypedLink = (BatchWriteOperationResponse -> Maybe BatchAttachTypedLinkResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchAttachTypedLinkResponse
    -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchAttachTypedLinkResponse)
     (Maybe BatchAttachTypedLinkResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchAttachTypedLinkResponse
attachTypedLink :: Maybe BatchAttachTypedLinkResponse
$sel:attachTypedLink:BatchWriteOperationResponse' :: BatchWriteOperationResponse -> Maybe BatchAttachTypedLinkResponse
attachTypedLink} -> Maybe BatchAttachTypedLinkResponse
attachTypedLink) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchAttachTypedLinkResponse
a -> BatchWriteOperationResponse
s {$sel:attachTypedLink:BatchWriteOperationResponse' :: Maybe BatchAttachTypedLinkResponse
attachTypedLink = Maybe BatchAttachTypedLinkResponse
a} :: BatchWriteOperationResponse)

-- | Detaches a policy from a Directory.
batchWriteOperationResponse_detachPolicy :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchDetachPolicyResponse)
batchWriteOperationResponse_detachPolicy :: (Maybe BatchDetachPolicyResponse
 -> f (Maybe BatchDetachPolicyResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_detachPolicy = (BatchWriteOperationResponse -> Maybe BatchDetachPolicyResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchDetachPolicyResponse -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchDetachPolicyResponse)
     (Maybe BatchDetachPolicyResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchDetachPolicyResponse
detachPolicy :: Maybe BatchDetachPolicyResponse
$sel:detachPolicy:BatchWriteOperationResponse' :: BatchWriteOperationResponse -> Maybe BatchDetachPolicyResponse
detachPolicy} -> Maybe BatchDetachPolicyResponse
detachPolicy) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchDetachPolicyResponse
a -> BatchWriteOperationResponse
s {$sel:detachPolicy:BatchWriteOperationResponse' :: Maybe BatchDetachPolicyResponse
detachPolicy = Maybe BatchDetachPolicyResponse
a} :: BatchWriteOperationResponse)

-- | Creates an index object. See
-- <https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm Indexing and search>
-- for more information.
batchWriteOperationResponse_createIndex :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchCreateIndexResponse)
batchWriteOperationResponse_createIndex :: (Maybe BatchCreateIndexResponse
 -> f (Maybe BatchCreateIndexResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_createIndex = (BatchWriteOperationResponse -> Maybe BatchCreateIndexResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchCreateIndexResponse -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchCreateIndexResponse)
     (Maybe BatchCreateIndexResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchCreateIndexResponse
createIndex :: Maybe BatchCreateIndexResponse
$sel:createIndex:BatchWriteOperationResponse' :: BatchWriteOperationResponse -> Maybe BatchCreateIndexResponse
createIndex} -> Maybe BatchCreateIndexResponse
createIndex) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchCreateIndexResponse
a -> BatchWriteOperationResponse
s {$sel:createIndex:BatchWriteOperationResponse' :: Maybe BatchCreateIndexResponse
createIndex = Maybe BatchCreateIndexResponse
a} :: BatchWriteOperationResponse)

-- | Detaches an object from a Directory.
batchWriteOperationResponse_detachObject :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchDetachObjectResponse)
batchWriteOperationResponse_detachObject :: (Maybe BatchDetachObjectResponse
 -> f (Maybe BatchDetachObjectResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_detachObject = (BatchWriteOperationResponse -> Maybe BatchDetachObjectResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchDetachObjectResponse -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchDetachObjectResponse)
     (Maybe BatchDetachObjectResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchDetachObjectResponse
detachObject :: Maybe BatchDetachObjectResponse
$sel:detachObject:BatchWriteOperationResponse' :: BatchWriteOperationResponse -> Maybe BatchDetachObjectResponse
detachObject} -> Maybe BatchDetachObjectResponse
detachObject) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchDetachObjectResponse
a -> BatchWriteOperationResponse
s {$sel:detachObject:BatchWriteOperationResponse' :: Maybe BatchDetachObjectResponse
detachObject = Maybe BatchDetachObjectResponse
a} :: BatchWriteOperationResponse)

-- | The result of an add facet to object batch operation.
batchWriteOperationResponse_addFacetToObject :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchAddFacetToObjectResponse)
batchWriteOperationResponse_addFacetToObject :: (Maybe BatchAddFacetToObjectResponse
 -> f (Maybe BatchAddFacetToObjectResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_addFacetToObject = (BatchWriteOperationResponse
 -> Maybe BatchAddFacetToObjectResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchAddFacetToObjectResponse
    -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchAddFacetToObjectResponse)
     (Maybe BatchAddFacetToObjectResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchAddFacetToObjectResponse
addFacetToObject :: Maybe BatchAddFacetToObjectResponse
$sel:addFacetToObject:BatchWriteOperationResponse' :: BatchWriteOperationResponse -> Maybe BatchAddFacetToObjectResponse
addFacetToObject} -> Maybe BatchAddFacetToObjectResponse
addFacetToObject) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchAddFacetToObjectResponse
a -> BatchWriteOperationResponse
s {$sel:addFacetToObject:BatchWriteOperationResponse' :: Maybe BatchAddFacetToObjectResponse
addFacetToObject = Maybe BatchAddFacetToObjectResponse
a} :: BatchWriteOperationResponse)

-- | Detaches a typed link from a specified source and target object. For
-- more information, see
-- <https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink Typed Links>.
batchWriteOperationResponse_detachTypedLink :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchDetachTypedLinkResponse)
batchWriteOperationResponse_detachTypedLink :: (Maybe BatchDetachTypedLinkResponse
 -> f (Maybe BatchDetachTypedLinkResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_detachTypedLink = (BatchWriteOperationResponse -> Maybe BatchDetachTypedLinkResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchDetachTypedLinkResponse
    -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchDetachTypedLinkResponse)
     (Maybe BatchDetachTypedLinkResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchDetachTypedLinkResponse
detachTypedLink :: Maybe BatchDetachTypedLinkResponse
$sel:detachTypedLink:BatchWriteOperationResponse' :: BatchWriteOperationResponse -> Maybe BatchDetachTypedLinkResponse
detachTypedLink} -> Maybe BatchDetachTypedLinkResponse
detachTypedLink) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchDetachTypedLinkResponse
a -> BatchWriteOperationResponse
s {$sel:detachTypedLink:BatchWriteOperationResponse' :: Maybe BatchDetachTypedLinkResponse
detachTypedLink = Maybe BatchDetachTypedLinkResponse
a} :: BatchWriteOperationResponse)

-- | Updates a given object’s attributes.
batchWriteOperationResponse_updateObjectAttributes :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchUpdateObjectAttributesResponse)
batchWriteOperationResponse_updateObjectAttributes :: (Maybe BatchUpdateObjectAttributesResponse
 -> f (Maybe BatchUpdateObjectAttributesResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_updateObjectAttributes = (BatchWriteOperationResponse
 -> Maybe BatchUpdateObjectAttributesResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchUpdateObjectAttributesResponse
    -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchUpdateObjectAttributesResponse)
     (Maybe BatchUpdateObjectAttributesResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchUpdateObjectAttributesResponse
updateObjectAttributes :: Maybe BatchUpdateObjectAttributesResponse
$sel:updateObjectAttributes:BatchWriteOperationResponse' :: BatchWriteOperationResponse
-> Maybe BatchUpdateObjectAttributesResponse
updateObjectAttributes} -> Maybe BatchUpdateObjectAttributesResponse
updateObjectAttributes) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchUpdateObjectAttributesResponse
a -> BatchWriteOperationResponse
s {$sel:updateObjectAttributes:BatchWriteOperationResponse' :: Maybe BatchUpdateObjectAttributesResponse
updateObjectAttributes = Maybe BatchUpdateObjectAttributesResponse
a} :: BatchWriteOperationResponse)

-- | Attaches a policy object to a regular object. An object can have a
-- limited number of attached policies.
batchWriteOperationResponse_attachPolicy :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchAttachPolicyResponse)
batchWriteOperationResponse_attachPolicy :: (Maybe BatchAttachPolicyResponse
 -> f (Maybe BatchAttachPolicyResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_attachPolicy = (BatchWriteOperationResponse -> Maybe BatchAttachPolicyResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchAttachPolicyResponse -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchAttachPolicyResponse)
     (Maybe BatchAttachPolicyResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchAttachPolicyResponse
attachPolicy :: Maybe BatchAttachPolicyResponse
$sel:attachPolicy:BatchWriteOperationResponse' :: BatchWriteOperationResponse -> Maybe BatchAttachPolicyResponse
attachPolicy} -> Maybe BatchAttachPolicyResponse
attachPolicy) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchAttachPolicyResponse
a -> BatchWriteOperationResponse
s {$sel:attachPolicy:BatchWriteOperationResponse' :: Maybe BatchAttachPolicyResponse
attachPolicy = Maybe BatchAttachPolicyResponse
a} :: BatchWriteOperationResponse)

-- | Represents the output of a @BatchWrite@ response operation.
batchWriteOperationResponse_updateLinkAttributes :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchUpdateLinkAttributesResponse)
batchWriteOperationResponse_updateLinkAttributes :: (Maybe BatchUpdateLinkAttributesResponse
 -> f (Maybe BatchUpdateLinkAttributesResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_updateLinkAttributes = (BatchWriteOperationResponse
 -> Maybe BatchUpdateLinkAttributesResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchUpdateLinkAttributesResponse
    -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchUpdateLinkAttributesResponse)
     (Maybe BatchUpdateLinkAttributesResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchUpdateLinkAttributesResponse
updateLinkAttributes :: Maybe BatchUpdateLinkAttributesResponse
$sel:updateLinkAttributes:BatchWriteOperationResponse' :: BatchWriteOperationResponse
-> Maybe BatchUpdateLinkAttributesResponse
updateLinkAttributes} -> Maybe BatchUpdateLinkAttributesResponse
updateLinkAttributes) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchUpdateLinkAttributesResponse
a -> BatchWriteOperationResponse
s {$sel:updateLinkAttributes:BatchWriteOperationResponse' :: Maybe BatchUpdateLinkAttributesResponse
updateLinkAttributes = Maybe BatchUpdateLinkAttributesResponse
a} :: BatchWriteOperationResponse)

-- | Attaches the specified object to the specified index.
batchWriteOperationResponse_attachToIndex :: Lens.Lens' BatchWriteOperationResponse (Prelude.Maybe BatchAttachToIndexResponse)
batchWriteOperationResponse_attachToIndex :: (Maybe BatchAttachToIndexResponse
 -> f (Maybe BatchAttachToIndexResponse))
-> BatchWriteOperationResponse -> f BatchWriteOperationResponse
batchWriteOperationResponse_attachToIndex = (BatchWriteOperationResponse -> Maybe BatchAttachToIndexResponse)
-> (BatchWriteOperationResponse
    -> Maybe BatchAttachToIndexResponse -> BatchWriteOperationResponse)
-> Lens
     BatchWriteOperationResponse
     BatchWriteOperationResponse
     (Maybe BatchAttachToIndexResponse)
     (Maybe BatchAttachToIndexResponse)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchWriteOperationResponse' {Maybe BatchAttachToIndexResponse
attachToIndex :: Maybe BatchAttachToIndexResponse
$sel:attachToIndex:BatchWriteOperationResponse' :: BatchWriteOperationResponse -> Maybe BatchAttachToIndexResponse
attachToIndex} -> Maybe BatchAttachToIndexResponse
attachToIndex) (\s :: BatchWriteOperationResponse
s@BatchWriteOperationResponse' {} Maybe BatchAttachToIndexResponse
a -> BatchWriteOperationResponse
s {$sel:attachToIndex:BatchWriteOperationResponse' :: Maybe BatchAttachToIndexResponse
attachToIndex = Maybe BatchAttachToIndexResponse
a} :: BatchWriteOperationResponse)

instance Core.FromJSON BatchWriteOperationResponse where
  parseJSON :: Value -> Parser BatchWriteOperationResponse
parseJSON =
    String
-> (Object -> Parser BatchWriteOperationResponse)
-> Value
-> Parser BatchWriteOperationResponse
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"BatchWriteOperationResponse"
      ( \Object
x ->
          Maybe BatchDeleteObjectResponse
-> Maybe BatchDetachFromIndexResponse
-> Maybe BatchRemoveFacetFromObjectResponse
-> Maybe BatchAttachObjectResponse
-> Maybe BatchCreateObjectResponse
-> Maybe BatchAttachTypedLinkResponse
-> Maybe BatchDetachPolicyResponse
-> Maybe BatchCreateIndexResponse
-> Maybe BatchDetachObjectResponse
-> Maybe BatchAddFacetToObjectResponse
-> Maybe BatchDetachTypedLinkResponse
-> Maybe BatchUpdateObjectAttributesResponse
-> Maybe BatchAttachPolicyResponse
-> Maybe BatchUpdateLinkAttributesResponse
-> Maybe BatchAttachToIndexResponse
-> BatchWriteOperationResponse
BatchWriteOperationResponse'
            (Maybe BatchDeleteObjectResponse
 -> Maybe BatchDetachFromIndexResponse
 -> Maybe BatchRemoveFacetFromObjectResponse
 -> Maybe BatchAttachObjectResponse
 -> Maybe BatchCreateObjectResponse
 -> Maybe BatchAttachTypedLinkResponse
 -> Maybe BatchDetachPolicyResponse
 -> Maybe BatchCreateIndexResponse
 -> Maybe BatchDetachObjectResponse
 -> Maybe BatchAddFacetToObjectResponse
 -> Maybe BatchDetachTypedLinkResponse
 -> Maybe BatchUpdateObjectAttributesResponse
 -> Maybe BatchAttachPolicyResponse
 -> Maybe BatchUpdateLinkAttributesResponse
 -> Maybe BatchAttachToIndexResponse
 -> BatchWriteOperationResponse)
-> Parser (Maybe BatchDeleteObjectResponse)
-> Parser
     (Maybe BatchDetachFromIndexResponse
      -> Maybe BatchRemoveFacetFromObjectResponse
      -> Maybe BatchAttachObjectResponse
      -> Maybe BatchCreateObjectResponse
      -> Maybe BatchAttachTypedLinkResponse
      -> Maybe BatchDetachPolicyResponse
      -> Maybe BatchCreateIndexResponse
      -> Maybe BatchDetachObjectResponse
      -> Maybe BatchAddFacetToObjectResponse
      -> Maybe BatchDetachTypedLinkResponse
      -> Maybe BatchUpdateObjectAttributesResponse
      -> Maybe BatchAttachPolicyResponse
      -> Maybe BatchUpdateLinkAttributesResponse
      -> Maybe BatchAttachToIndexResponse
      -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe BatchDeleteObjectResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DeleteObject")
            Parser
  (Maybe BatchDetachFromIndexResponse
   -> Maybe BatchRemoveFacetFromObjectResponse
   -> Maybe BatchAttachObjectResponse
   -> Maybe BatchCreateObjectResponse
   -> Maybe BatchAttachTypedLinkResponse
   -> Maybe BatchDetachPolicyResponse
   -> Maybe BatchCreateIndexResponse
   -> Maybe BatchDetachObjectResponse
   -> Maybe BatchAddFacetToObjectResponse
   -> Maybe BatchDetachTypedLinkResponse
   -> Maybe BatchUpdateObjectAttributesResponse
   -> Maybe BatchAttachPolicyResponse
   -> Maybe BatchUpdateLinkAttributesResponse
   -> Maybe BatchAttachToIndexResponse
   -> BatchWriteOperationResponse)
-> Parser (Maybe BatchDetachFromIndexResponse)
-> Parser
     (Maybe BatchRemoveFacetFromObjectResponse
      -> Maybe BatchAttachObjectResponse
      -> Maybe BatchCreateObjectResponse
      -> Maybe BatchAttachTypedLinkResponse
      -> Maybe BatchDetachPolicyResponse
      -> Maybe BatchCreateIndexResponse
      -> Maybe BatchDetachObjectResponse
      -> Maybe BatchAddFacetToObjectResponse
      -> Maybe BatchDetachTypedLinkResponse
      -> Maybe BatchUpdateObjectAttributesResponse
      -> Maybe BatchAttachPolicyResponse
      -> Maybe BatchUpdateLinkAttributesResponse
      -> Maybe BatchAttachToIndexResponse
      -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchDetachFromIndexResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DetachFromIndex")
            Parser
  (Maybe BatchRemoveFacetFromObjectResponse
   -> Maybe BatchAttachObjectResponse
   -> Maybe BatchCreateObjectResponse
   -> Maybe BatchAttachTypedLinkResponse
   -> Maybe BatchDetachPolicyResponse
   -> Maybe BatchCreateIndexResponse
   -> Maybe BatchDetachObjectResponse
   -> Maybe BatchAddFacetToObjectResponse
   -> Maybe BatchDetachTypedLinkResponse
   -> Maybe BatchUpdateObjectAttributesResponse
   -> Maybe BatchAttachPolicyResponse
   -> Maybe BatchUpdateLinkAttributesResponse
   -> Maybe BatchAttachToIndexResponse
   -> BatchWriteOperationResponse)
-> Parser (Maybe BatchRemoveFacetFromObjectResponse)
-> Parser
     (Maybe BatchAttachObjectResponse
      -> Maybe BatchCreateObjectResponse
      -> Maybe BatchAttachTypedLinkResponse
      -> Maybe BatchDetachPolicyResponse
      -> Maybe BatchCreateIndexResponse
      -> Maybe BatchDetachObjectResponse
      -> Maybe BatchAddFacetToObjectResponse
      -> Maybe BatchDetachTypedLinkResponse
      -> Maybe BatchUpdateObjectAttributesResponse
      -> Maybe BatchAttachPolicyResponse
      -> Maybe BatchUpdateLinkAttributesResponse
      -> Maybe BatchAttachToIndexResponse
      -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchRemoveFacetFromObjectResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"RemoveFacetFromObject")
            Parser
  (Maybe BatchAttachObjectResponse
   -> Maybe BatchCreateObjectResponse
   -> Maybe BatchAttachTypedLinkResponse
   -> Maybe BatchDetachPolicyResponse
   -> Maybe BatchCreateIndexResponse
   -> Maybe BatchDetachObjectResponse
   -> Maybe BatchAddFacetToObjectResponse
   -> Maybe BatchDetachTypedLinkResponse
   -> Maybe BatchUpdateObjectAttributesResponse
   -> Maybe BatchAttachPolicyResponse
   -> Maybe BatchUpdateLinkAttributesResponse
   -> Maybe BatchAttachToIndexResponse
   -> BatchWriteOperationResponse)
-> Parser (Maybe BatchAttachObjectResponse)
-> Parser
     (Maybe BatchCreateObjectResponse
      -> Maybe BatchAttachTypedLinkResponse
      -> Maybe BatchDetachPolicyResponse
      -> Maybe BatchCreateIndexResponse
      -> Maybe BatchDetachObjectResponse
      -> Maybe BatchAddFacetToObjectResponse
      -> Maybe BatchDetachTypedLinkResponse
      -> Maybe BatchUpdateObjectAttributesResponse
      -> Maybe BatchAttachPolicyResponse
      -> Maybe BatchUpdateLinkAttributesResponse
      -> Maybe BatchAttachToIndexResponse
      -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchAttachObjectResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AttachObject")
            Parser
  (Maybe BatchCreateObjectResponse
   -> Maybe BatchAttachTypedLinkResponse
   -> Maybe BatchDetachPolicyResponse
   -> Maybe BatchCreateIndexResponse
   -> Maybe BatchDetachObjectResponse
   -> Maybe BatchAddFacetToObjectResponse
   -> Maybe BatchDetachTypedLinkResponse
   -> Maybe BatchUpdateObjectAttributesResponse
   -> Maybe BatchAttachPolicyResponse
   -> Maybe BatchUpdateLinkAttributesResponse
   -> Maybe BatchAttachToIndexResponse
   -> BatchWriteOperationResponse)
-> Parser (Maybe BatchCreateObjectResponse)
-> Parser
     (Maybe BatchAttachTypedLinkResponse
      -> Maybe BatchDetachPolicyResponse
      -> Maybe BatchCreateIndexResponse
      -> Maybe BatchDetachObjectResponse
      -> Maybe BatchAddFacetToObjectResponse
      -> Maybe BatchDetachTypedLinkResponse
      -> Maybe BatchUpdateObjectAttributesResponse
      -> Maybe BatchAttachPolicyResponse
      -> Maybe BatchUpdateLinkAttributesResponse
      -> Maybe BatchAttachToIndexResponse
      -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchCreateObjectResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"CreateObject")
            Parser
  (Maybe BatchAttachTypedLinkResponse
   -> Maybe BatchDetachPolicyResponse
   -> Maybe BatchCreateIndexResponse
   -> Maybe BatchDetachObjectResponse
   -> Maybe BatchAddFacetToObjectResponse
   -> Maybe BatchDetachTypedLinkResponse
   -> Maybe BatchUpdateObjectAttributesResponse
   -> Maybe BatchAttachPolicyResponse
   -> Maybe BatchUpdateLinkAttributesResponse
   -> Maybe BatchAttachToIndexResponse
   -> BatchWriteOperationResponse)
-> Parser (Maybe BatchAttachTypedLinkResponse)
-> Parser
     (Maybe BatchDetachPolicyResponse
      -> Maybe BatchCreateIndexResponse
      -> Maybe BatchDetachObjectResponse
      -> Maybe BatchAddFacetToObjectResponse
      -> Maybe BatchDetachTypedLinkResponse
      -> Maybe BatchUpdateObjectAttributesResponse
      -> Maybe BatchAttachPolicyResponse
      -> Maybe BatchUpdateLinkAttributesResponse
      -> Maybe BatchAttachToIndexResponse
      -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchAttachTypedLinkResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AttachTypedLink")
            Parser
  (Maybe BatchDetachPolicyResponse
   -> Maybe BatchCreateIndexResponse
   -> Maybe BatchDetachObjectResponse
   -> Maybe BatchAddFacetToObjectResponse
   -> Maybe BatchDetachTypedLinkResponse
   -> Maybe BatchUpdateObjectAttributesResponse
   -> Maybe BatchAttachPolicyResponse
   -> Maybe BatchUpdateLinkAttributesResponse
   -> Maybe BatchAttachToIndexResponse
   -> BatchWriteOperationResponse)
-> Parser (Maybe BatchDetachPolicyResponse)
-> Parser
     (Maybe BatchCreateIndexResponse
      -> Maybe BatchDetachObjectResponse
      -> Maybe BatchAddFacetToObjectResponse
      -> Maybe BatchDetachTypedLinkResponse
      -> Maybe BatchUpdateObjectAttributesResponse
      -> Maybe BatchAttachPolicyResponse
      -> Maybe BatchUpdateLinkAttributesResponse
      -> Maybe BatchAttachToIndexResponse
      -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchDetachPolicyResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DetachPolicy")
            Parser
  (Maybe BatchCreateIndexResponse
   -> Maybe BatchDetachObjectResponse
   -> Maybe BatchAddFacetToObjectResponse
   -> Maybe BatchDetachTypedLinkResponse
   -> Maybe BatchUpdateObjectAttributesResponse
   -> Maybe BatchAttachPolicyResponse
   -> Maybe BatchUpdateLinkAttributesResponse
   -> Maybe BatchAttachToIndexResponse
   -> BatchWriteOperationResponse)
-> Parser (Maybe BatchCreateIndexResponse)
-> Parser
     (Maybe BatchDetachObjectResponse
      -> Maybe BatchAddFacetToObjectResponse
      -> Maybe BatchDetachTypedLinkResponse
      -> Maybe BatchUpdateObjectAttributesResponse
      -> Maybe BatchAttachPolicyResponse
      -> Maybe BatchUpdateLinkAttributesResponse
      -> Maybe BatchAttachToIndexResponse
      -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchCreateIndexResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"CreateIndex")
            Parser
  (Maybe BatchDetachObjectResponse
   -> Maybe BatchAddFacetToObjectResponse
   -> Maybe BatchDetachTypedLinkResponse
   -> Maybe BatchUpdateObjectAttributesResponse
   -> Maybe BatchAttachPolicyResponse
   -> Maybe BatchUpdateLinkAttributesResponse
   -> Maybe BatchAttachToIndexResponse
   -> BatchWriteOperationResponse)
-> Parser (Maybe BatchDetachObjectResponse)
-> Parser
     (Maybe BatchAddFacetToObjectResponse
      -> Maybe BatchDetachTypedLinkResponse
      -> Maybe BatchUpdateObjectAttributesResponse
      -> Maybe BatchAttachPolicyResponse
      -> Maybe BatchUpdateLinkAttributesResponse
      -> Maybe BatchAttachToIndexResponse
      -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchDetachObjectResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DetachObject")
            Parser
  (Maybe BatchAddFacetToObjectResponse
   -> Maybe BatchDetachTypedLinkResponse
   -> Maybe BatchUpdateObjectAttributesResponse
   -> Maybe BatchAttachPolicyResponse
   -> Maybe BatchUpdateLinkAttributesResponse
   -> Maybe BatchAttachToIndexResponse
   -> BatchWriteOperationResponse)
-> Parser (Maybe BatchAddFacetToObjectResponse)
-> Parser
     (Maybe BatchDetachTypedLinkResponse
      -> Maybe BatchUpdateObjectAttributesResponse
      -> Maybe BatchAttachPolicyResponse
      -> Maybe BatchUpdateLinkAttributesResponse
      -> Maybe BatchAttachToIndexResponse
      -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchAddFacetToObjectResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AddFacetToObject")
            Parser
  (Maybe BatchDetachTypedLinkResponse
   -> Maybe BatchUpdateObjectAttributesResponse
   -> Maybe BatchAttachPolicyResponse
   -> Maybe BatchUpdateLinkAttributesResponse
   -> Maybe BatchAttachToIndexResponse
   -> BatchWriteOperationResponse)
-> Parser (Maybe BatchDetachTypedLinkResponse)
-> Parser
     (Maybe BatchUpdateObjectAttributesResponse
      -> Maybe BatchAttachPolicyResponse
      -> Maybe BatchUpdateLinkAttributesResponse
      -> Maybe BatchAttachToIndexResponse
      -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchDetachTypedLinkResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DetachTypedLink")
            Parser
  (Maybe BatchUpdateObjectAttributesResponse
   -> Maybe BatchAttachPolicyResponse
   -> Maybe BatchUpdateLinkAttributesResponse
   -> Maybe BatchAttachToIndexResponse
   -> BatchWriteOperationResponse)
-> Parser (Maybe BatchUpdateObjectAttributesResponse)
-> Parser
     (Maybe BatchAttachPolicyResponse
      -> Maybe BatchUpdateLinkAttributesResponse
      -> Maybe BatchAttachToIndexResponse
      -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text -> Parser (Maybe BatchUpdateObjectAttributesResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"UpdateObjectAttributes")
            Parser
  (Maybe BatchAttachPolicyResponse
   -> Maybe BatchUpdateLinkAttributesResponse
   -> Maybe BatchAttachToIndexResponse
   -> BatchWriteOperationResponse)
-> Parser (Maybe BatchAttachPolicyResponse)
-> Parser
     (Maybe BatchUpdateLinkAttributesResponse
      -> Maybe BatchAttachToIndexResponse -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchAttachPolicyResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AttachPolicy")
            Parser
  (Maybe BatchUpdateLinkAttributesResponse
   -> Maybe BatchAttachToIndexResponse -> BatchWriteOperationResponse)
-> Parser (Maybe BatchUpdateLinkAttributesResponse)
-> Parser
     (Maybe BatchAttachToIndexResponse -> BatchWriteOperationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchUpdateLinkAttributesResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"UpdateLinkAttributes")
            Parser
  (Maybe BatchAttachToIndexResponse -> BatchWriteOperationResponse)
-> Parser (Maybe BatchAttachToIndexResponse)
-> Parser BatchWriteOperationResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchAttachToIndexResponse)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AttachToIndex")
      )

instance Prelude.Hashable BatchWriteOperationResponse

instance Prelude.NFData BatchWriteOperationResponse