{-# 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.WellArchitected.Types.ShareInvitationSummary
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.WellArchitected.Types.ShareInvitationSummary where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.WellArchitected.Types.PermissionType
import Amazonka.WellArchitected.Types.ShareResourceType

-- | A share invitation summary return object.
--
-- /See:/ 'newShareInvitationSummary' smart constructor.
data ShareInvitationSummary = ShareInvitationSummary'
  { -- | The ARN for the lens.
    ShareInvitationSummary -> Maybe Text
lensArn :: Prelude.Maybe Prelude.Text,
    ShareInvitationSummary -> Maybe Text
lensName :: Prelude.Maybe Prelude.Text,
    ShareInvitationSummary -> Maybe PermissionType
permissionType :: Prelude.Maybe PermissionType,
    -- | The ID assigned to the share invitation.
    ShareInvitationSummary -> Maybe Text
shareInvitationId :: Prelude.Maybe Prelude.Text,
    -- | The resource type of the share invitation.
    ShareInvitationSummary -> Maybe ShareResourceType
shareResourceType :: Prelude.Maybe ShareResourceType,
    ShareInvitationSummary -> Maybe Text
sharedBy :: Prelude.Maybe Prelude.Text,
    ShareInvitationSummary -> Maybe Text
sharedWith :: Prelude.Maybe Prelude.Text,
    ShareInvitationSummary -> Maybe Text
workloadId :: Prelude.Maybe Prelude.Text,
    ShareInvitationSummary -> Maybe Text
workloadName :: Prelude.Maybe Prelude.Text
  }
  deriving (ShareInvitationSummary -> ShareInvitationSummary -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ShareInvitationSummary -> ShareInvitationSummary -> Bool
$c/= :: ShareInvitationSummary -> ShareInvitationSummary -> Bool
== :: ShareInvitationSummary -> ShareInvitationSummary -> Bool
$c== :: ShareInvitationSummary -> ShareInvitationSummary -> Bool
Prelude.Eq, ReadPrec [ShareInvitationSummary]
ReadPrec ShareInvitationSummary
Int -> ReadS ShareInvitationSummary
ReadS [ShareInvitationSummary]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ShareInvitationSummary]
$creadListPrec :: ReadPrec [ShareInvitationSummary]
readPrec :: ReadPrec ShareInvitationSummary
$creadPrec :: ReadPrec ShareInvitationSummary
readList :: ReadS [ShareInvitationSummary]
$creadList :: ReadS [ShareInvitationSummary]
readsPrec :: Int -> ReadS ShareInvitationSummary
$creadsPrec :: Int -> ReadS ShareInvitationSummary
Prelude.Read, Int -> ShareInvitationSummary -> ShowS
[ShareInvitationSummary] -> ShowS
ShareInvitationSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ShareInvitationSummary] -> ShowS
$cshowList :: [ShareInvitationSummary] -> ShowS
show :: ShareInvitationSummary -> String
$cshow :: ShareInvitationSummary -> String
showsPrec :: Int -> ShareInvitationSummary -> ShowS
$cshowsPrec :: Int -> ShareInvitationSummary -> ShowS
Prelude.Show, forall x. Rep ShareInvitationSummary x -> ShareInvitationSummary
forall x. ShareInvitationSummary -> Rep ShareInvitationSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ShareInvitationSummary x -> ShareInvitationSummary
$cfrom :: forall x. ShareInvitationSummary -> Rep ShareInvitationSummary x
Prelude.Generic)

-- |
-- Create a value of 'ShareInvitationSummary' 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:
--
-- 'lensArn', 'shareInvitationSummary_lensArn' - The ARN for the lens.
--
-- 'lensName', 'shareInvitationSummary_lensName' - Undocumented member.
--
-- 'permissionType', 'shareInvitationSummary_permissionType' - Undocumented member.
--
-- 'shareInvitationId', 'shareInvitationSummary_shareInvitationId' - The ID assigned to the share invitation.
--
-- 'shareResourceType', 'shareInvitationSummary_shareResourceType' - The resource type of the share invitation.
--
-- 'sharedBy', 'shareInvitationSummary_sharedBy' - Undocumented member.
--
-- 'sharedWith', 'shareInvitationSummary_sharedWith' - Undocumented member.
--
-- 'workloadId', 'shareInvitationSummary_workloadId' - Undocumented member.
--
-- 'workloadName', 'shareInvitationSummary_workloadName' - Undocumented member.
newShareInvitationSummary ::
  ShareInvitationSummary
newShareInvitationSummary :: ShareInvitationSummary
newShareInvitationSummary =
  ShareInvitationSummary'
    { $sel:lensArn:ShareInvitationSummary' :: Maybe Text
lensArn = forall a. Maybe a
Prelude.Nothing,
      $sel:lensName:ShareInvitationSummary' :: Maybe Text
lensName = forall a. Maybe a
Prelude.Nothing,
      $sel:permissionType:ShareInvitationSummary' :: Maybe PermissionType
permissionType = forall a. Maybe a
Prelude.Nothing,
      $sel:shareInvitationId:ShareInvitationSummary' :: Maybe Text
shareInvitationId = forall a. Maybe a
Prelude.Nothing,
      $sel:shareResourceType:ShareInvitationSummary' :: Maybe ShareResourceType
shareResourceType = forall a. Maybe a
Prelude.Nothing,
      $sel:sharedBy:ShareInvitationSummary' :: Maybe Text
sharedBy = forall a. Maybe a
Prelude.Nothing,
      $sel:sharedWith:ShareInvitationSummary' :: Maybe Text
sharedWith = forall a. Maybe a
Prelude.Nothing,
      $sel:workloadId:ShareInvitationSummary' :: Maybe Text
workloadId = forall a. Maybe a
Prelude.Nothing,
      $sel:workloadName:ShareInvitationSummary' :: Maybe Text
workloadName = forall a. Maybe a
Prelude.Nothing
    }

-- | The ARN for the lens.
shareInvitationSummary_lensArn :: Lens.Lens' ShareInvitationSummary (Prelude.Maybe Prelude.Text)
shareInvitationSummary_lensArn :: Lens' ShareInvitationSummary (Maybe Text)
shareInvitationSummary_lensArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ShareInvitationSummary' {Maybe Text
lensArn :: Maybe Text
$sel:lensArn:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
lensArn} -> Maybe Text
lensArn) (\s :: ShareInvitationSummary
s@ShareInvitationSummary' {} Maybe Text
a -> ShareInvitationSummary
s {$sel:lensArn:ShareInvitationSummary' :: Maybe Text
lensArn = Maybe Text
a} :: ShareInvitationSummary)

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

-- | Undocumented member.
shareInvitationSummary_permissionType :: Lens.Lens' ShareInvitationSummary (Prelude.Maybe PermissionType)
shareInvitationSummary_permissionType :: Lens' ShareInvitationSummary (Maybe PermissionType)
shareInvitationSummary_permissionType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ShareInvitationSummary' {Maybe PermissionType
permissionType :: Maybe PermissionType
$sel:permissionType:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe PermissionType
permissionType} -> Maybe PermissionType
permissionType) (\s :: ShareInvitationSummary
s@ShareInvitationSummary' {} Maybe PermissionType
a -> ShareInvitationSummary
s {$sel:permissionType:ShareInvitationSummary' :: Maybe PermissionType
permissionType = Maybe PermissionType
a} :: ShareInvitationSummary)

-- | The ID assigned to the share invitation.
shareInvitationSummary_shareInvitationId :: Lens.Lens' ShareInvitationSummary (Prelude.Maybe Prelude.Text)
shareInvitationSummary_shareInvitationId :: Lens' ShareInvitationSummary (Maybe Text)
shareInvitationSummary_shareInvitationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ShareInvitationSummary' {Maybe Text
shareInvitationId :: Maybe Text
$sel:shareInvitationId:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
shareInvitationId} -> Maybe Text
shareInvitationId) (\s :: ShareInvitationSummary
s@ShareInvitationSummary' {} Maybe Text
a -> ShareInvitationSummary
s {$sel:shareInvitationId:ShareInvitationSummary' :: Maybe Text
shareInvitationId = Maybe Text
a} :: ShareInvitationSummary)

-- | The resource type of the share invitation.
shareInvitationSummary_shareResourceType :: Lens.Lens' ShareInvitationSummary (Prelude.Maybe ShareResourceType)
shareInvitationSummary_shareResourceType :: Lens' ShareInvitationSummary (Maybe ShareResourceType)
shareInvitationSummary_shareResourceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ShareInvitationSummary' {Maybe ShareResourceType
shareResourceType :: Maybe ShareResourceType
$sel:shareResourceType:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe ShareResourceType
shareResourceType} -> Maybe ShareResourceType
shareResourceType) (\s :: ShareInvitationSummary
s@ShareInvitationSummary' {} Maybe ShareResourceType
a -> ShareInvitationSummary
s {$sel:shareResourceType:ShareInvitationSummary' :: Maybe ShareResourceType
shareResourceType = Maybe ShareResourceType
a} :: ShareInvitationSummary)

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

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

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

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

instance Data.FromJSON ShareInvitationSummary where
  parseJSON :: Value -> Parser ShareInvitationSummary
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ShareInvitationSummary"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe PermissionType
-> Maybe Text
-> Maybe ShareResourceType
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> ShareInvitationSummary
ShareInvitationSummary'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LensArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LensName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"PermissionType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ShareInvitationId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ShareResourceType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SharedBy")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SharedWith")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"WorkloadId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"WorkloadName")
      )

instance Prelude.Hashable ShareInvitationSummary where
  hashWithSalt :: Int -> ShareInvitationSummary -> Int
hashWithSalt Int
_salt ShareInvitationSummary' {Maybe Text
Maybe PermissionType
Maybe ShareResourceType
workloadName :: Maybe Text
workloadId :: Maybe Text
sharedWith :: Maybe Text
sharedBy :: Maybe Text
shareResourceType :: Maybe ShareResourceType
shareInvitationId :: Maybe Text
permissionType :: Maybe PermissionType
lensName :: Maybe Text
lensArn :: Maybe Text
$sel:workloadName:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
$sel:workloadId:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
$sel:sharedWith:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
$sel:sharedBy:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
$sel:shareResourceType:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe ShareResourceType
$sel:shareInvitationId:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
$sel:permissionType:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe PermissionType
$sel:lensName:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
$sel:lensArn:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
lensArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
lensName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PermissionType
permissionType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
shareInvitationId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ShareResourceType
shareResourceType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sharedBy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sharedWith
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
workloadId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
workloadName

instance Prelude.NFData ShareInvitationSummary where
  rnf :: ShareInvitationSummary -> ()
rnf ShareInvitationSummary' {Maybe Text
Maybe PermissionType
Maybe ShareResourceType
workloadName :: Maybe Text
workloadId :: Maybe Text
sharedWith :: Maybe Text
sharedBy :: Maybe Text
shareResourceType :: Maybe ShareResourceType
shareInvitationId :: Maybe Text
permissionType :: Maybe PermissionType
lensName :: Maybe Text
lensArn :: Maybe Text
$sel:workloadName:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
$sel:workloadId:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
$sel:sharedWith:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
$sel:sharedBy:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
$sel:shareResourceType:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe ShareResourceType
$sel:shareInvitationId:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
$sel:permissionType:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe PermissionType
$sel:lensName:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
$sel:lensArn:ShareInvitationSummary' :: ShareInvitationSummary -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lensArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lensName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PermissionType
permissionType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
shareInvitationId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ShareResourceType
shareResourceType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sharedBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sharedWith
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
workloadId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
workloadName