{-# 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.Transfer.Types.ListedServer
-- 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.Transfer.Types.ListedServer where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.Transfer.Types.Domain
import Amazonka.Transfer.Types.EndpointType
import Amazonka.Transfer.Types.IdentityProviderType
import Amazonka.Transfer.Types.State

-- | Returns properties of a file transfer protocol-enabled server that was
-- specified.
--
-- /See:/ 'newListedServer' smart constructor.
data ListedServer = ListedServer'
  { -- | Specifies the Amazon Resource Name (ARN) of the Amazon Web Services
    -- Identity and Access Management (IAM) role that allows a server to turn
    -- on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When
    -- set, user activity can be viewed in your CloudWatch logs.
    ListedServer -> Maybe Text
loggingRole :: Prelude.Maybe Prelude.Text,
    -- | Specifies the condition of a server for the server that was described. A
    -- value of @ONLINE@ indicates that the server can accept jobs and transfer
    -- files. A @State@ value of @OFFLINE@ means that the server cannot perform
    -- file transfer operations.
    --
    -- The states of @STARTING@ and @STOPPING@ indicate that the server is in
    -- an intermediate state, either not fully able to respond, or not fully
    -- offline. The values of @START_FAILED@ or @STOP_FAILED@ can indicate an
    -- error condition.
    ListedServer -> Maybe State
state :: Prelude.Maybe State,
    -- | Specifies the mode of authentication for a server. The default value is
    -- @SERVICE_MANAGED@, which allows you to store and access user credentials
    -- within the Amazon Web Services Transfer Family service.
    --
    -- Use @AWS_DIRECTORY_SERVICE@ to provide access to Active Directory groups
    -- in Amazon Web Services Managed Active Directory or Microsoft Active
    -- Directory in your on-premises environment or in Amazon Web Services
    -- using AD Connectors. This option also requires you to provide a
    -- Directory ID using the @IdentityProviderDetails@ parameter.
    --
    -- Use the @API_GATEWAY@ value to integrate with an identity provider of
    -- your choosing. The @API_GATEWAY@ setting requires you to provide an API
    -- Gateway endpoint URL to call for authentication using the
    -- @IdentityProviderDetails@ parameter.
    ListedServer -> Maybe IdentityProviderType
identityProviderType :: Prelude.Maybe IdentityProviderType,
    -- | Specifies the unique system assigned identifier for the servers that
    -- were listed.
    ListedServer -> Maybe Text
serverId :: Prelude.Maybe Prelude.Text,
    -- | Specifies the domain of the storage system that is used for file
    -- transfers.
    ListedServer -> Maybe Domain
domain :: Prelude.Maybe Domain,
    -- | Specifies the type of VPC endpoint that your server is connected to. If
    -- your server is connected to a VPC endpoint, your server isn\'t
    -- accessible over the public internet.
    ListedServer -> Maybe EndpointType
endpointType :: Prelude.Maybe EndpointType,
    -- | Specifies the number of users that are assigned to a server you
    -- specified with the @ServerId@.
    ListedServer -> Maybe Int
userCount :: Prelude.Maybe Prelude.Int,
    -- | Specifies the unique Amazon Resource Name (ARN) for a server to be
    -- listed.
    ListedServer -> Text
arn :: Prelude.Text
  }
  deriving (ListedServer -> ListedServer -> Bool
(ListedServer -> ListedServer -> Bool)
-> (ListedServer -> ListedServer -> Bool) -> Eq ListedServer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListedServer -> ListedServer -> Bool
$c/= :: ListedServer -> ListedServer -> Bool
== :: ListedServer -> ListedServer -> Bool
$c== :: ListedServer -> ListedServer -> Bool
Prelude.Eq, ReadPrec [ListedServer]
ReadPrec ListedServer
Int -> ReadS ListedServer
ReadS [ListedServer]
(Int -> ReadS ListedServer)
-> ReadS [ListedServer]
-> ReadPrec ListedServer
-> ReadPrec [ListedServer]
-> Read ListedServer
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListedServer]
$creadListPrec :: ReadPrec [ListedServer]
readPrec :: ReadPrec ListedServer
$creadPrec :: ReadPrec ListedServer
readList :: ReadS [ListedServer]
$creadList :: ReadS [ListedServer]
readsPrec :: Int -> ReadS ListedServer
$creadsPrec :: Int -> ReadS ListedServer
Prelude.Read, Int -> ListedServer -> ShowS
[ListedServer] -> ShowS
ListedServer -> String
(Int -> ListedServer -> ShowS)
-> (ListedServer -> String)
-> ([ListedServer] -> ShowS)
-> Show ListedServer
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListedServer] -> ShowS
$cshowList :: [ListedServer] -> ShowS
show :: ListedServer -> String
$cshow :: ListedServer -> String
showsPrec :: Int -> ListedServer -> ShowS
$cshowsPrec :: Int -> ListedServer -> ShowS
Prelude.Show, (forall x. ListedServer -> Rep ListedServer x)
-> (forall x. Rep ListedServer x -> ListedServer)
-> Generic ListedServer
forall x. Rep ListedServer x -> ListedServer
forall x. ListedServer -> Rep ListedServer x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListedServer x -> ListedServer
$cfrom :: forall x. ListedServer -> Rep ListedServer x
Prelude.Generic)

-- |
-- Create a value of 'ListedServer' 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:
--
-- 'loggingRole', 'listedServer_loggingRole' - Specifies the Amazon Resource Name (ARN) of the Amazon Web Services
-- Identity and Access Management (IAM) role that allows a server to turn
-- on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When
-- set, user activity can be viewed in your CloudWatch logs.
--
-- 'state', 'listedServer_state' - Specifies the condition of a server for the server that was described. A
-- value of @ONLINE@ indicates that the server can accept jobs and transfer
-- files. A @State@ value of @OFFLINE@ means that the server cannot perform
-- file transfer operations.
--
-- The states of @STARTING@ and @STOPPING@ indicate that the server is in
-- an intermediate state, either not fully able to respond, or not fully
-- offline. The values of @START_FAILED@ or @STOP_FAILED@ can indicate an
-- error condition.
--
-- 'identityProviderType', 'listedServer_identityProviderType' - Specifies the mode of authentication for a server. The default value is
-- @SERVICE_MANAGED@, which allows you to store and access user credentials
-- within the Amazon Web Services Transfer Family service.
--
-- Use @AWS_DIRECTORY_SERVICE@ to provide access to Active Directory groups
-- in Amazon Web Services Managed Active Directory or Microsoft Active
-- Directory in your on-premises environment or in Amazon Web Services
-- using AD Connectors. This option also requires you to provide a
-- Directory ID using the @IdentityProviderDetails@ parameter.
--
-- Use the @API_GATEWAY@ value to integrate with an identity provider of
-- your choosing. The @API_GATEWAY@ setting requires you to provide an API
-- Gateway endpoint URL to call for authentication using the
-- @IdentityProviderDetails@ parameter.
--
-- 'serverId', 'listedServer_serverId' - Specifies the unique system assigned identifier for the servers that
-- were listed.
--
-- 'domain', 'listedServer_domain' - Specifies the domain of the storage system that is used for file
-- transfers.
--
-- 'endpointType', 'listedServer_endpointType' - Specifies the type of VPC endpoint that your server is connected to. If
-- your server is connected to a VPC endpoint, your server isn\'t
-- accessible over the public internet.
--
-- 'userCount', 'listedServer_userCount' - Specifies the number of users that are assigned to a server you
-- specified with the @ServerId@.
--
-- 'arn', 'listedServer_arn' - Specifies the unique Amazon Resource Name (ARN) for a server to be
-- listed.
newListedServer ::
  -- | 'arn'
  Prelude.Text ->
  ListedServer
newListedServer :: Text -> ListedServer
newListedServer Text
pArn_ =
  ListedServer' :: Maybe Text
-> Maybe State
-> Maybe IdentityProviderType
-> Maybe Text
-> Maybe Domain
-> Maybe EndpointType
-> Maybe Int
-> Text
-> ListedServer
ListedServer'
    { $sel:loggingRole:ListedServer' :: Maybe Text
loggingRole = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:state:ListedServer' :: Maybe State
state = Maybe State
forall a. Maybe a
Prelude.Nothing,
      $sel:identityProviderType:ListedServer' :: Maybe IdentityProviderType
identityProviderType = Maybe IdentityProviderType
forall a. Maybe a
Prelude.Nothing,
      $sel:serverId:ListedServer' :: Maybe Text
serverId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:domain:ListedServer' :: Maybe Domain
domain = Maybe Domain
forall a. Maybe a
Prelude.Nothing,
      $sel:endpointType:ListedServer' :: Maybe EndpointType
endpointType = Maybe EndpointType
forall a. Maybe a
Prelude.Nothing,
      $sel:userCount:ListedServer' :: Maybe Int
userCount = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:arn:ListedServer' :: Text
arn = Text
pArn_
    }

-- | Specifies the Amazon Resource Name (ARN) of the Amazon Web Services
-- Identity and Access Management (IAM) role that allows a server to turn
-- on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When
-- set, user activity can be viewed in your CloudWatch logs.
listedServer_loggingRole :: Lens.Lens' ListedServer (Prelude.Maybe Prelude.Text)
listedServer_loggingRole :: (Maybe Text -> f (Maybe Text)) -> ListedServer -> f ListedServer
listedServer_loggingRole = (ListedServer -> Maybe Text)
-> (ListedServer -> Maybe Text -> ListedServer)
-> Lens ListedServer ListedServer (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListedServer' {Maybe Text
loggingRole :: Maybe Text
$sel:loggingRole:ListedServer' :: ListedServer -> Maybe Text
loggingRole} -> Maybe Text
loggingRole) (\s :: ListedServer
s@ListedServer' {} Maybe Text
a -> ListedServer
s {$sel:loggingRole:ListedServer' :: Maybe Text
loggingRole = Maybe Text
a} :: ListedServer)

-- | Specifies the condition of a server for the server that was described. A
-- value of @ONLINE@ indicates that the server can accept jobs and transfer
-- files. A @State@ value of @OFFLINE@ means that the server cannot perform
-- file transfer operations.
--
-- The states of @STARTING@ and @STOPPING@ indicate that the server is in
-- an intermediate state, either not fully able to respond, or not fully
-- offline. The values of @START_FAILED@ or @STOP_FAILED@ can indicate an
-- error condition.
listedServer_state :: Lens.Lens' ListedServer (Prelude.Maybe State)
listedServer_state :: (Maybe State -> f (Maybe State)) -> ListedServer -> f ListedServer
listedServer_state = (ListedServer -> Maybe State)
-> (ListedServer -> Maybe State -> ListedServer)
-> Lens ListedServer ListedServer (Maybe State) (Maybe State)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListedServer' {Maybe State
state :: Maybe State
$sel:state:ListedServer' :: ListedServer -> Maybe State
state} -> Maybe State
state) (\s :: ListedServer
s@ListedServer' {} Maybe State
a -> ListedServer
s {$sel:state:ListedServer' :: Maybe State
state = Maybe State
a} :: ListedServer)

-- | Specifies the mode of authentication for a server. The default value is
-- @SERVICE_MANAGED@, which allows you to store and access user credentials
-- within the Amazon Web Services Transfer Family service.
--
-- Use @AWS_DIRECTORY_SERVICE@ to provide access to Active Directory groups
-- in Amazon Web Services Managed Active Directory or Microsoft Active
-- Directory in your on-premises environment or in Amazon Web Services
-- using AD Connectors. This option also requires you to provide a
-- Directory ID using the @IdentityProviderDetails@ parameter.
--
-- Use the @API_GATEWAY@ value to integrate with an identity provider of
-- your choosing. The @API_GATEWAY@ setting requires you to provide an API
-- Gateway endpoint URL to call for authentication using the
-- @IdentityProviderDetails@ parameter.
listedServer_identityProviderType :: Lens.Lens' ListedServer (Prelude.Maybe IdentityProviderType)
listedServer_identityProviderType :: (Maybe IdentityProviderType -> f (Maybe IdentityProviderType))
-> ListedServer -> f ListedServer
listedServer_identityProviderType = (ListedServer -> Maybe IdentityProviderType)
-> (ListedServer -> Maybe IdentityProviderType -> ListedServer)
-> Lens
     ListedServer
     ListedServer
     (Maybe IdentityProviderType)
     (Maybe IdentityProviderType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListedServer' {Maybe IdentityProviderType
identityProviderType :: Maybe IdentityProviderType
$sel:identityProviderType:ListedServer' :: ListedServer -> Maybe IdentityProviderType
identityProviderType} -> Maybe IdentityProviderType
identityProviderType) (\s :: ListedServer
s@ListedServer' {} Maybe IdentityProviderType
a -> ListedServer
s {$sel:identityProviderType:ListedServer' :: Maybe IdentityProviderType
identityProviderType = Maybe IdentityProviderType
a} :: ListedServer)

-- | Specifies the unique system assigned identifier for the servers that
-- were listed.
listedServer_serverId :: Lens.Lens' ListedServer (Prelude.Maybe Prelude.Text)
listedServer_serverId :: (Maybe Text -> f (Maybe Text)) -> ListedServer -> f ListedServer
listedServer_serverId = (ListedServer -> Maybe Text)
-> (ListedServer -> Maybe Text -> ListedServer)
-> Lens ListedServer ListedServer (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListedServer' {Maybe Text
serverId :: Maybe Text
$sel:serverId:ListedServer' :: ListedServer -> Maybe Text
serverId} -> Maybe Text
serverId) (\s :: ListedServer
s@ListedServer' {} Maybe Text
a -> ListedServer
s {$sel:serverId:ListedServer' :: Maybe Text
serverId = Maybe Text
a} :: ListedServer)

-- | Specifies the domain of the storage system that is used for file
-- transfers.
listedServer_domain :: Lens.Lens' ListedServer (Prelude.Maybe Domain)
listedServer_domain :: (Maybe Domain -> f (Maybe Domain))
-> ListedServer -> f ListedServer
listedServer_domain = (ListedServer -> Maybe Domain)
-> (ListedServer -> Maybe Domain -> ListedServer)
-> Lens ListedServer ListedServer (Maybe Domain) (Maybe Domain)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListedServer' {Maybe Domain
domain :: Maybe Domain
$sel:domain:ListedServer' :: ListedServer -> Maybe Domain
domain} -> Maybe Domain
domain) (\s :: ListedServer
s@ListedServer' {} Maybe Domain
a -> ListedServer
s {$sel:domain:ListedServer' :: Maybe Domain
domain = Maybe Domain
a} :: ListedServer)

-- | Specifies the type of VPC endpoint that your server is connected to. If
-- your server is connected to a VPC endpoint, your server isn\'t
-- accessible over the public internet.
listedServer_endpointType :: Lens.Lens' ListedServer (Prelude.Maybe EndpointType)
listedServer_endpointType :: (Maybe EndpointType -> f (Maybe EndpointType))
-> ListedServer -> f ListedServer
listedServer_endpointType = (ListedServer -> Maybe EndpointType)
-> (ListedServer -> Maybe EndpointType -> ListedServer)
-> Lens
     ListedServer ListedServer (Maybe EndpointType) (Maybe EndpointType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListedServer' {Maybe EndpointType
endpointType :: Maybe EndpointType
$sel:endpointType:ListedServer' :: ListedServer -> Maybe EndpointType
endpointType} -> Maybe EndpointType
endpointType) (\s :: ListedServer
s@ListedServer' {} Maybe EndpointType
a -> ListedServer
s {$sel:endpointType:ListedServer' :: Maybe EndpointType
endpointType = Maybe EndpointType
a} :: ListedServer)

-- | Specifies the number of users that are assigned to a server you
-- specified with the @ServerId@.
listedServer_userCount :: Lens.Lens' ListedServer (Prelude.Maybe Prelude.Int)
listedServer_userCount :: (Maybe Int -> f (Maybe Int)) -> ListedServer -> f ListedServer
listedServer_userCount = (ListedServer -> Maybe Int)
-> (ListedServer -> Maybe Int -> ListedServer)
-> Lens ListedServer ListedServer (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListedServer' {Maybe Int
userCount :: Maybe Int
$sel:userCount:ListedServer' :: ListedServer -> Maybe Int
userCount} -> Maybe Int
userCount) (\s :: ListedServer
s@ListedServer' {} Maybe Int
a -> ListedServer
s {$sel:userCount:ListedServer' :: Maybe Int
userCount = Maybe Int
a} :: ListedServer)

-- | Specifies the unique Amazon Resource Name (ARN) for a server to be
-- listed.
listedServer_arn :: Lens.Lens' ListedServer Prelude.Text
listedServer_arn :: (Text -> f Text) -> ListedServer -> f ListedServer
listedServer_arn = (ListedServer -> Text)
-> (ListedServer -> Text -> ListedServer)
-> Lens ListedServer ListedServer Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListedServer' {Text
arn :: Text
$sel:arn:ListedServer' :: ListedServer -> Text
arn} -> Text
arn) (\s :: ListedServer
s@ListedServer' {} Text
a -> ListedServer
s {$sel:arn:ListedServer' :: Text
arn = Text
a} :: ListedServer)

instance Core.FromJSON ListedServer where
  parseJSON :: Value -> Parser ListedServer
parseJSON =
    String
-> (Object -> Parser ListedServer) -> Value -> Parser ListedServer
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"ListedServer"
      ( \Object
x ->
          Maybe Text
-> Maybe State
-> Maybe IdentityProviderType
-> Maybe Text
-> Maybe Domain
-> Maybe EndpointType
-> Maybe Int
-> Text
-> ListedServer
ListedServer'
            (Maybe Text
 -> Maybe State
 -> Maybe IdentityProviderType
 -> Maybe Text
 -> Maybe Domain
 -> Maybe EndpointType
 -> Maybe Int
 -> Text
 -> ListedServer)
-> Parser (Maybe Text)
-> Parser
     (Maybe State
      -> Maybe IdentityProviderType
      -> Maybe Text
      -> Maybe Domain
      -> Maybe EndpointType
      -> Maybe Int
      -> Text
      -> ListedServer)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"LoggingRole")
            Parser
  (Maybe State
   -> Maybe IdentityProviderType
   -> Maybe Text
   -> Maybe Domain
   -> Maybe EndpointType
   -> Maybe Int
   -> Text
   -> ListedServer)
-> Parser (Maybe State)
-> Parser
     (Maybe IdentityProviderType
      -> Maybe Text
      -> Maybe Domain
      -> Maybe EndpointType
      -> Maybe Int
      -> Text
      -> ListedServer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe State)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"State")
            Parser
  (Maybe IdentityProviderType
   -> Maybe Text
   -> Maybe Domain
   -> Maybe EndpointType
   -> Maybe Int
   -> Text
   -> ListedServer)
-> Parser (Maybe IdentityProviderType)
-> Parser
     (Maybe Text
      -> Maybe Domain
      -> Maybe EndpointType
      -> Maybe Int
      -> Text
      -> ListedServer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe IdentityProviderType)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"IdentityProviderType")
            Parser
  (Maybe Text
   -> Maybe Domain
   -> Maybe EndpointType
   -> Maybe Int
   -> Text
   -> ListedServer)
-> Parser (Maybe Text)
-> Parser
     (Maybe Domain
      -> Maybe EndpointType -> Maybe Int -> Text -> ListedServer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ServerId")
            Parser
  (Maybe Domain
   -> Maybe EndpointType -> Maybe Int -> Text -> ListedServer)
-> Parser (Maybe Domain)
-> Parser (Maybe EndpointType -> Maybe Int -> Text -> ListedServer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Domain)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Domain")
            Parser (Maybe EndpointType -> Maybe Int -> Text -> ListedServer)
-> Parser (Maybe EndpointType)
-> Parser (Maybe Int -> Text -> ListedServer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe EndpointType)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"EndpointType")
            Parser (Maybe Int -> Text -> ListedServer)
-> Parser (Maybe Int) -> Parser (Text -> ListedServer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"UserCount")
            Parser (Text -> ListedServer) -> Parser Text -> Parser ListedServer
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"Arn")
      )

instance Prelude.Hashable ListedServer

instance Prelude.NFData ListedServer