{-# 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.MigrationHubReFactorSpaces.Types.ServiceSummary
-- 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.MigrationHubReFactorSpaces.Types.ServiceSummary where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MigrationHubReFactorSpaces.Types.ErrorResponse
import Amazonka.MigrationHubReFactorSpaces.Types.LambdaEndpointSummary
import Amazonka.MigrationHubReFactorSpaces.Types.ServiceEndpointType
import Amazonka.MigrationHubReFactorSpaces.Types.ServiceState
import Amazonka.MigrationHubReFactorSpaces.Types.UrlEndpointSummary
import qualified Amazonka.Prelude as Prelude

-- | A summary for the service as a response to @ListServices@.
--
-- /See:/ 'newServiceSummary' smart constructor.
data ServiceSummary = ServiceSummary'
  { -- | The unique identifier of the application.
    ServiceSummary -> Maybe Text
applicationId :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the service.
    ServiceSummary -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services account ID of the service creator.
    ServiceSummary -> Maybe Text
createdByAccountId :: Prelude.Maybe Prelude.Text,
    -- | A timestamp that indicates when the service is created.
    ServiceSummary -> Maybe POSIX
createdTime :: Prelude.Maybe Data.POSIX,
    -- | A description of the service.
    ServiceSummary -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The endpoint type of the service.
    ServiceSummary -> Maybe ServiceEndpointType
endpointType :: Prelude.Maybe ServiceEndpointType,
    -- | The unique identifier of the environment.
    ServiceSummary -> Maybe Text
environmentId :: Prelude.Maybe Prelude.Text,
    -- | Any error associated with the service resource.
    ServiceSummary -> Maybe ErrorResponse
error :: Prelude.Maybe ErrorResponse,
    -- | A summary of the configuration for the Lambda endpoint type.
    ServiceSummary -> Maybe LambdaEndpointSummary
lambdaEndpoint :: Prelude.Maybe LambdaEndpointSummary,
    -- | A timestamp that indicates when the service was last updated.
    ServiceSummary -> Maybe POSIX
lastUpdatedTime :: Prelude.Maybe Data.POSIX,
    -- | The name of the service.
    ServiceSummary -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services account ID of the service owner.
    ServiceSummary -> Maybe Text
ownerAccountId :: Prelude.Maybe Prelude.Text,
    -- | The unique identifier of the service.
    ServiceSummary -> Maybe Text
serviceId :: Prelude.Maybe Prelude.Text,
    -- | The current state of the service.
    ServiceSummary -> Maybe ServiceState
state :: Prelude.Maybe ServiceState,
    -- | The tags assigned to the service.
    ServiceSummary -> Maybe (Sensitive (HashMap Text Text))
tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),
    -- | The summary of the configuration for the URL endpoint type.
    ServiceSummary -> Maybe UrlEndpointSummary
urlEndpoint :: Prelude.Maybe UrlEndpointSummary,
    -- | The ID of the virtual private cloud (VPC).
    ServiceSummary -> Maybe Text
vpcId :: Prelude.Maybe Prelude.Text
  }
  deriving (ServiceSummary -> ServiceSummary -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ServiceSummary -> ServiceSummary -> Bool
$c/= :: ServiceSummary -> ServiceSummary -> Bool
== :: ServiceSummary -> ServiceSummary -> Bool
$c== :: ServiceSummary -> ServiceSummary -> Bool
Prelude.Eq, Int -> ServiceSummary -> ShowS
[ServiceSummary] -> ShowS
ServiceSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ServiceSummary] -> ShowS
$cshowList :: [ServiceSummary] -> ShowS
show :: ServiceSummary -> String
$cshow :: ServiceSummary -> String
showsPrec :: Int -> ServiceSummary -> ShowS
$cshowsPrec :: Int -> ServiceSummary -> ShowS
Prelude.Show, forall x. Rep ServiceSummary x -> ServiceSummary
forall x. ServiceSummary -> Rep ServiceSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ServiceSummary x -> ServiceSummary
$cfrom :: forall x. ServiceSummary -> Rep ServiceSummary x
Prelude.Generic)

-- |
-- Create a value of 'ServiceSummary' 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:
--
-- 'applicationId', 'serviceSummary_applicationId' - The unique identifier of the application.
--
-- 'arn', 'serviceSummary_arn' - The Amazon Resource Name (ARN) of the service.
--
-- 'createdByAccountId', 'serviceSummary_createdByAccountId' - The Amazon Web Services account ID of the service creator.
--
-- 'createdTime', 'serviceSummary_createdTime' - A timestamp that indicates when the service is created.
--
-- 'description', 'serviceSummary_description' - A description of the service.
--
-- 'endpointType', 'serviceSummary_endpointType' - The endpoint type of the service.
--
-- 'environmentId', 'serviceSummary_environmentId' - The unique identifier of the environment.
--
-- 'error', 'serviceSummary_error' - Any error associated with the service resource.
--
-- 'lambdaEndpoint', 'serviceSummary_lambdaEndpoint' - A summary of the configuration for the Lambda endpoint type.
--
-- 'lastUpdatedTime', 'serviceSummary_lastUpdatedTime' - A timestamp that indicates when the service was last updated.
--
-- 'name', 'serviceSummary_name' - The name of the service.
--
-- 'ownerAccountId', 'serviceSummary_ownerAccountId' - The Amazon Web Services account ID of the service owner.
--
-- 'serviceId', 'serviceSummary_serviceId' - The unique identifier of the service.
--
-- 'state', 'serviceSummary_state' - The current state of the service.
--
-- 'tags', 'serviceSummary_tags' - The tags assigned to the service.
--
-- 'urlEndpoint', 'serviceSummary_urlEndpoint' - The summary of the configuration for the URL endpoint type.
--
-- 'vpcId', 'serviceSummary_vpcId' - The ID of the virtual private cloud (VPC).
newServiceSummary ::
  ServiceSummary
newServiceSummary :: ServiceSummary
newServiceSummary =
  ServiceSummary'
    { $sel:applicationId:ServiceSummary' :: Maybe Text
applicationId = forall a. Maybe a
Prelude.Nothing,
      $sel:arn:ServiceSummary' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:createdByAccountId:ServiceSummary' :: Maybe Text
createdByAccountId = forall a. Maybe a
Prelude.Nothing,
      $sel:createdTime:ServiceSummary' :: Maybe POSIX
createdTime = forall a. Maybe a
Prelude.Nothing,
      $sel:description:ServiceSummary' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:endpointType:ServiceSummary' :: Maybe ServiceEndpointType
endpointType = forall a. Maybe a
Prelude.Nothing,
      $sel:environmentId:ServiceSummary' :: Maybe Text
environmentId = forall a. Maybe a
Prelude.Nothing,
      $sel:error:ServiceSummary' :: Maybe ErrorResponse
error = forall a. Maybe a
Prelude.Nothing,
      $sel:lambdaEndpoint:ServiceSummary' :: Maybe LambdaEndpointSummary
lambdaEndpoint = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedTime:ServiceSummary' :: Maybe POSIX
lastUpdatedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:name:ServiceSummary' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:ownerAccountId:ServiceSummary' :: Maybe Text
ownerAccountId = forall a. Maybe a
Prelude.Nothing,
      $sel:serviceId:ServiceSummary' :: Maybe Text
serviceId = forall a. Maybe a
Prelude.Nothing,
      $sel:state:ServiceSummary' :: Maybe ServiceState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:ServiceSummary' :: Maybe (Sensitive (HashMap Text Text))
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:urlEndpoint:ServiceSummary' :: Maybe UrlEndpointSummary
urlEndpoint = forall a. Maybe a
Prelude.Nothing,
      $sel:vpcId:ServiceSummary' :: Maybe Text
vpcId = forall a. Maybe a
Prelude.Nothing
    }

-- | The unique identifier of the application.
serviceSummary_applicationId :: Lens.Lens' ServiceSummary (Prelude.Maybe Prelude.Text)
serviceSummary_applicationId :: Lens' ServiceSummary (Maybe Text)
serviceSummary_applicationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe Text
applicationId :: Maybe Text
$sel:applicationId:ServiceSummary' :: ServiceSummary -> Maybe Text
applicationId} -> Maybe Text
applicationId) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe Text
a -> ServiceSummary
s {$sel:applicationId:ServiceSummary' :: Maybe Text
applicationId = Maybe Text
a} :: ServiceSummary)

-- | The Amazon Resource Name (ARN) of the service.
serviceSummary_arn :: Lens.Lens' ServiceSummary (Prelude.Maybe Prelude.Text)
serviceSummary_arn :: Lens' ServiceSummary (Maybe Text)
serviceSummary_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe Text
arn :: Maybe Text
$sel:arn:ServiceSummary' :: ServiceSummary -> Maybe Text
arn} -> Maybe Text
arn) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe Text
a -> ServiceSummary
s {$sel:arn:ServiceSummary' :: Maybe Text
arn = Maybe Text
a} :: ServiceSummary)

-- | The Amazon Web Services account ID of the service creator.
serviceSummary_createdByAccountId :: Lens.Lens' ServiceSummary (Prelude.Maybe Prelude.Text)
serviceSummary_createdByAccountId :: Lens' ServiceSummary (Maybe Text)
serviceSummary_createdByAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe Text
createdByAccountId :: Maybe Text
$sel:createdByAccountId:ServiceSummary' :: ServiceSummary -> Maybe Text
createdByAccountId} -> Maybe Text
createdByAccountId) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe Text
a -> ServiceSummary
s {$sel:createdByAccountId:ServiceSummary' :: Maybe Text
createdByAccountId = Maybe Text
a} :: ServiceSummary)

-- | A timestamp that indicates when the service is created.
serviceSummary_createdTime :: Lens.Lens' ServiceSummary (Prelude.Maybe Prelude.UTCTime)
serviceSummary_createdTime :: Lens' ServiceSummary (Maybe UTCTime)
serviceSummary_createdTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe POSIX
createdTime :: Maybe POSIX
$sel:createdTime:ServiceSummary' :: ServiceSummary -> Maybe POSIX
createdTime} -> Maybe POSIX
createdTime) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe POSIX
a -> ServiceSummary
s {$sel:createdTime:ServiceSummary' :: Maybe POSIX
createdTime = Maybe POSIX
a} :: ServiceSummary) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | A description of the service.
serviceSummary_description :: Lens.Lens' ServiceSummary (Prelude.Maybe Prelude.Text)
serviceSummary_description :: Lens' ServiceSummary (Maybe Text)
serviceSummary_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe Text
description :: Maybe Text
$sel:description:ServiceSummary' :: ServiceSummary -> Maybe Text
description} -> Maybe Text
description) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe Text
a -> ServiceSummary
s {$sel:description:ServiceSummary' :: Maybe Text
description = Maybe Text
a} :: ServiceSummary)

-- | The endpoint type of the service.
serviceSummary_endpointType :: Lens.Lens' ServiceSummary (Prelude.Maybe ServiceEndpointType)
serviceSummary_endpointType :: Lens' ServiceSummary (Maybe ServiceEndpointType)
serviceSummary_endpointType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe ServiceEndpointType
endpointType :: Maybe ServiceEndpointType
$sel:endpointType:ServiceSummary' :: ServiceSummary -> Maybe ServiceEndpointType
endpointType} -> Maybe ServiceEndpointType
endpointType) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe ServiceEndpointType
a -> ServiceSummary
s {$sel:endpointType:ServiceSummary' :: Maybe ServiceEndpointType
endpointType = Maybe ServiceEndpointType
a} :: ServiceSummary)

-- | The unique identifier of the environment.
serviceSummary_environmentId :: Lens.Lens' ServiceSummary (Prelude.Maybe Prelude.Text)
serviceSummary_environmentId :: Lens' ServiceSummary (Maybe Text)
serviceSummary_environmentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe Text
environmentId :: Maybe Text
$sel:environmentId:ServiceSummary' :: ServiceSummary -> Maybe Text
environmentId} -> Maybe Text
environmentId) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe Text
a -> ServiceSummary
s {$sel:environmentId:ServiceSummary' :: Maybe Text
environmentId = Maybe Text
a} :: ServiceSummary)

-- | Any error associated with the service resource.
serviceSummary_error :: Lens.Lens' ServiceSummary (Prelude.Maybe ErrorResponse)
serviceSummary_error :: Lens' ServiceSummary (Maybe ErrorResponse)
serviceSummary_error = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe ErrorResponse
error :: Maybe ErrorResponse
$sel:error:ServiceSummary' :: ServiceSummary -> Maybe ErrorResponse
error} -> Maybe ErrorResponse
error) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe ErrorResponse
a -> ServiceSummary
s {$sel:error:ServiceSummary' :: Maybe ErrorResponse
error = Maybe ErrorResponse
a} :: ServiceSummary)

-- | A summary of the configuration for the Lambda endpoint type.
serviceSummary_lambdaEndpoint :: Lens.Lens' ServiceSummary (Prelude.Maybe LambdaEndpointSummary)
serviceSummary_lambdaEndpoint :: Lens' ServiceSummary (Maybe LambdaEndpointSummary)
serviceSummary_lambdaEndpoint = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe LambdaEndpointSummary
lambdaEndpoint :: Maybe LambdaEndpointSummary
$sel:lambdaEndpoint:ServiceSummary' :: ServiceSummary -> Maybe LambdaEndpointSummary
lambdaEndpoint} -> Maybe LambdaEndpointSummary
lambdaEndpoint) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe LambdaEndpointSummary
a -> ServiceSummary
s {$sel:lambdaEndpoint:ServiceSummary' :: Maybe LambdaEndpointSummary
lambdaEndpoint = Maybe LambdaEndpointSummary
a} :: ServiceSummary)

-- | A timestamp that indicates when the service was last updated.
serviceSummary_lastUpdatedTime :: Lens.Lens' ServiceSummary (Prelude.Maybe Prelude.UTCTime)
serviceSummary_lastUpdatedTime :: Lens' ServiceSummary (Maybe UTCTime)
serviceSummary_lastUpdatedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe POSIX
lastUpdatedTime :: Maybe POSIX
$sel:lastUpdatedTime:ServiceSummary' :: ServiceSummary -> Maybe POSIX
lastUpdatedTime} -> Maybe POSIX
lastUpdatedTime) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe POSIX
a -> ServiceSummary
s {$sel:lastUpdatedTime:ServiceSummary' :: Maybe POSIX
lastUpdatedTime = Maybe POSIX
a} :: ServiceSummary) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The name of the service.
serviceSummary_name :: Lens.Lens' ServiceSummary (Prelude.Maybe Prelude.Text)
serviceSummary_name :: Lens' ServiceSummary (Maybe Text)
serviceSummary_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe Text
name :: Maybe Text
$sel:name:ServiceSummary' :: ServiceSummary -> Maybe Text
name} -> Maybe Text
name) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe Text
a -> ServiceSummary
s {$sel:name:ServiceSummary' :: Maybe Text
name = Maybe Text
a} :: ServiceSummary)

-- | The Amazon Web Services account ID of the service owner.
serviceSummary_ownerAccountId :: Lens.Lens' ServiceSummary (Prelude.Maybe Prelude.Text)
serviceSummary_ownerAccountId :: Lens' ServiceSummary (Maybe Text)
serviceSummary_ownerAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe Text
ownerAccountId :: Maybe Text
$sel:ownerAccountId:ServiceSummary' :: ServiceSummary -> Maybe Text
ownerAccountId} -> Maybe Text
ownerAccountId) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe Text
a -> ServiceSummary
s {$sel:ownerAccountId:ServiceSummary' :: Maybe Text
ownerAccountId = Maybe Text
a} :: ServiceSummary)

-- | The unique identifier of the service.
serviceSummary_serviceId :: Lens.Lens' ServiceSummary (Prelude.Maybe Prelude.Text)
serviceSummary_serviceId :: Lens' ServiceSummary (Maybe Text)
serviceSummary_serviceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe Text
serviceId :: Maybe Text
$sel:serviceId:ServiceSummary' :: ServiceSummary -> Maybe Text
serviceId} -> Maybe Text
serviceId) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe Text
a -> ServiceSummary
s {$sel:serviceId:ServiceSummary' :: Maybe Text
serviceId = Maybe Text
a} :: ServiceSummary)

-- | The current state of the service.
serviceSummary_state :: Lens.Lens' ServiceSummary (Prelude.Maybe ServiceState)
serviceSummary_state :: Lens' ServiceSummary (Maybe ServiceState)
serviceSummary_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe ServiceState
state :: Maybe ServiceState
$sel:state:ServiceSummary' :: ServiceSummary -> Maybe ServiceState
state} -> Maybe ServiceState
state) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe ServiceState
a -> ServiceSummary
s {$sel:state:ServiceSummary' :: Maybe ServiceState
state = Maybe ServiceState
a} :: ServiceSummary)

-- | The tags assigned to the service.
serviceSummary_tags :: Lens.Lens' ServiceSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
serviceSummary_tags :: Lens' ServiceSummary (Maybe (HashMap Text Text))
serviceSummary_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe (Sensitive (HashMap Text Text))
tags :: Maybe (Sensitive (HashMap Text Text))
$sel:tags:ServiceSummary' :: ServiceSummary -> Maybe (Sensitive (HashMap Text Text))
tags} -> Maybe (Sensitive (HashMap Text Text))
tags) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe (Sensitive (HashMap Text Text))
a -> ServiceSummary
s {$sel:tags:ServiceSummary' :: Maybe (Sensitive (HashMap Text Text))
tags = Maybe (Sensitive (HashMap Text Text))
a} :: ServiceSummary) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping (forall a. Iso' (Sensitive a) a
Data._Sensitive forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced)

-- | The summary of the configuration for the URL endpoint type.
serviceSummary_urlEndpoint :: Lens.Lens' ServiceSummary (Prelude.Maybe UrlEndpointSummary)
serviceSummary_urlEndpoint :: Lens' ServiceSummary (Maybe UrlEndpointSummary)
serviceSummary_urlEndpoint = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe UrlEndpointSummary
urlEndpoint :: Maybe UrlEndpointSummary
$sel:urlEndpoint:ServiceSummary' :: ServiceSummary -> Maybe UrlEndpointSummary
urlEndpoint} -> Maybe UrlEndpointSummary
urlEndpoint) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe UrlEndpointSummary
a -> ServiceSummary
s {$sel:urlEndpoint:ServiceSummary' :: Maybe UrlEndpointSummary
urlEndpoint = Maybe UrlEndpointSummary
a} :: ServiceSummary)

-- | The ID of the virtual private cloud (VPC).
serviceSummary_vpcId :: Lens.Lens' ServiceSummary (Prelude.Maybe Prelude.Text)
serviceSummary_vpcId :: Lens' ServiceSummary (Maybe Text)
serviceSummary_vpcId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceSummary' {Maybe Text
vpcId :: Maybe Text
$sel:vpcId:ServiceSummary' :: ServiceSummary -> Maybe Text
vpcId} -> Maybe Text
vpcId) (\s :: ServiceSummary
s@ServiceSummary' {} Maybe Text
a -> ServiceSummary
s {$sel:vpcId:ServiceSummary' :: Maybe Text
vpcId = Maybe Text
a} :: ServiceSummary)

instance Data.FromJSON ServiceSummary where
  parseJSON :: Value -> Parser ServiceSummary
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ServiceSummary"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe ServiceEndpointType
-> Maybe Text
-> Maybe ErrorResponse
-> Maybe LambdaEndpointSummary
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe ServiceState
-> Maybe (Sensitive (HashMap Text Text))
-> Maybe UrlEndpointSummary
-> Maybe Text
-> ServiceSummary
ServiceSummary'
            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
"ApplicationId")
            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
"Arn")
            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
"CreatedByAccountId")
            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
"CreatedTime")
            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
"Description")
            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
"EndpointType")
            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
"EnvironmentId")
            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
"Error")
            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
"LambdaEndpoint")
            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
"LastUpdatedTime")
            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
"Name")
            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
"OwnerAccountId")
            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
"ServiceId")
            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
"State")
            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
"Tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            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
"UrlEndpoint")
            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
"VpcId")
      )

instance Prelude.Hashable ServiceSummary where
  hashWithSalt :: Int -> ServiceSummary -> Int
hashWithSalt Int
_salt ServiceSummary' {Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe POSIX
Maybe ErrorResponse
Maybe LambdaEndpointSummary
Maybe ServiceEndpointType
Maybe ServiceState
Maybe UrlEndpointSummary
vpcId :: Maybe Text
urlEndpoint :: Maybe UrlEndpointSummary
tags :: Maybe (Sensitive (HashMap Text Text))
state :: Maybe ServiceState
serviceId :: Maybe Text
ownerAccountId :: Maybe Text
name :: Maybe Text
lastUpdatedTime :: Maybe POSIX
lambdaEndpoint :: Maybe LambdaEndpointSummary
error :: Maybe ErrorResponse
environmentId :: Maybe Text
endpointType :: Maybe ServiceEndpointType
description :: Maybe Text
createdTime :: Maybe POSIX
createdByAccountId :: Maybe Text
arn :: Maybe Text
applicationId :: Maybe Text
$sel:vpcId:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:urlEndpoint:ServiceSummary' :: ServiceSummary -> Maybe UrlEndpointSummary
$sel:tags:ServiceSummary' :: ServiceSummary -> Maybe (Sensitive (HashMap Text Text))
$sel:state:ServiceSummary' :: ServiceSummary -> Maybe ServiceState
$sel:serviceId:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:ownerAccountId:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:name:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:lastUpdatedTime:ServiceSummary' :: ServiceSummary -> Maybe POSIX
$sel:lambdaEndpoint:ServiceSummary' :: ServiceSummary -> Maybe LambdaEndpointSummary
$sel:error:ServiceSummary' :: ServiceSummary -> Maybe ErrorResponse
$sel:environmentId:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:endpointType:ServiceSummary' :: ServiceSummary -> Maybe ServiceEndpointType
$sel:description:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:createdTime:ServiceSummary' :: ServiceSummary -> Maybe POSIX
$sel:createdByAccountId:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:arn:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:applicationId:ServiceSummary' :: ServiceSummary -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
applicationId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
createdByAccountId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
createdTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ServiceEndpointType
endpointType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
environmentId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ErrorResponse
error
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LambdaEndpointSummary
lambdaEndpoint
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastUpdatedTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ownerAccountId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
serviceId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ServiceState
state
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive (HashMap Text Text))
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UrlEndpointSummary
urlEndpoint
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vpcId

instance Prelude.NFData ServiceSummary where
  rnf :: ServiceSummary -> ()
rnf ServiceSummary' {Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe POSIX
Maybe ErrorResponse
Maybe LambdaEndpointSummary
Maybe ServiceEndpointType
Maybe ServiceState
Maybe UrlEndpointSummary
vpcId :: Maybe Text
urlEndpoint :: Maybe UrlEndpointSummary
tags :: Maybe (Sensitive (HashMap Text Text))
state :: Maybe ServiceState
serviceId :: Maybe Text
ownerAccountId :: Maybe Text
name :: Maybe Text
lastUpdatedTime :: Maybe POSIX
lambdaEndpoint :: Maybe LambdaEndpointSummary
error :: Maybe ErrorResponse
environmentId :: Maybe Text
endpointType :: Maybe ServiceEndpointType
description :: Maybe Text
createdTime :: Maybe POSIX
createdByAccountId :: Maybe Text
arn :: Maybe Text
applicationId :: Maybe Text
$sel:vpcId:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:urlEndpoint:ServiceSummary' :: ServiceSummary -> Maybe UrlEndpointSummary
$sel:tags:ServiceSummary' :: ServiceSummary -> Maybe (Sensitive (HashMap Text Text))
$sel:state:ServiceSummary' :: ServiceSummary -> Maybe ServiceState
$sel:serviceId:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:ownerAccountId:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:name:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:lastUpdatedTime:ServiceSummary' :: ServiceSummary -> Maybe POSIX
$sel:lambdaEndpoint:ServiceSummary' :: ServiceSummary -> Maybe LambdaEndpointSummary
$sel:error:ServiceSummary' :: ServiceSummary -> Maybe ErrorResponse
$sel:environmentId:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:endpointType:ServiceSummary' :: ServiceSummary -> Maybe ServiceEndpointType
$sel:description:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:createdTime:ServiceSummary' :: ServiceSummary -> Maybe POSIX
$sel:createdByAccountId:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:arn:ServiceSummary' :: ServiceSummary -> Maybe Text
$sel:applicationId:ServiceSummary' :: ServiceSummary -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
applicationId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
createdByAccountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ServiceEndpointType
endpointType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
environmentId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ErrorResponse
error
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LambdaEndpointSummary
lambdaEndpoint
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastUpdatedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ownerAccountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
serviceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ServiceState
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive (HashMap Text Text))
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UrlEndpointSummary
urlEndpoint
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vpcId