amazonka-ecs-2.0: gen/Amazonka/ECS/Types/ServiceConnectServiceResource.hs
{-# 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.ECS.Types.ServiceConnectServiceResource
-- 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.ECS.Types.ServiceConnectServiceResource 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
-- | The Service Connect resource. Each configuration maps a discovery name
-- to a Cloud Map service name. The data is stored in Cloud Map as part of
-- the Service Connect configuration for each discovery name of this Amazon
-- ECS service.
--
-- A task can resolve the @dnsName@ for each of the @clientAliases@ of a
-- service. However a task can\'t resolve the discovery names. If you want
-- to connect to a service, refer to the @ServiceConnectConfiguration@ of
-- that service for the list of @clientAliases@ that you can use.
--
-- /See:/ 'newServiceConnectServiceResource' smart constructor.
data ServiceConnectServiceResource = ServiceConnectServiceResource'
{ -- | The Amazon Resource Name (ARN) for the namespace in Cloud Map that
-- matches the discovery name for this Service Connect resource. You can
-- use this ARN in other integrations with Cloud Map. However, Service
-- Connect can\'t ensure connectivity outside of Amazon ECS.
discoveryArn :: Prelude.Maybe Prelude.Text,
-- | The discovery name of this Service Connect resource.
--
-- The @discoveryName@ is the name of the new Cloud Map service that Amazon
-- ECS creates for this Amazon ECS service. This must be unique within the
-- Cloud Map namespace. The name can contain up to 64 characters. The name
-- can include lowercase letters, numbers, underscores (_), and hyphens
-- (-). The name can\'t start with a hyphen.
--
-- If this parameter isn\'t specified, the default value of
-- @discoveryName.namespace@ is used. If the @discoveryName@ isn\'t
-- specified, the port mapping name from the task definition is used in
-- @portName.namespace@.
discoveryName :: Prelude.Maybe Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ServiceConnectServiceResource' 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:
--
-- 'discoveryArn', 'serviceConnectServiceResource_discoveryArn' - The Amazon Resource Name (ARN) for the namespace in Cloud Map that
-- matches the discovery name for this Service Connect resource. You can
-- use this ARN in other integrations with Cloud Map. However, Service
-- Connect can\'t ensure connectivity outside of Amazon ECS.
--
-- 'discoveryName', 'serviceConnectServiceResource_discoveryName' - The discovery name of this Service Connect resource.
--
-- The @discoveryName@ is the name of the new Cloud Map service that Amazon
-- ECS creates for this Amazon ECS service. This must be unique within the
-- Cloud Map namespace. The name can contain up to 64 characters. The name
-- can include lowercase letters, numbers, underscores (_), and hyphens
-- (-). The name can\'t start with a hyphen.
--
-- If this parameter isn\'t specified, the default value of
-- @discoveryName.namespace@ is used. If the @discoveryName@ isn\'t
-- specified, the port mapping name from the task definition is used in
-- @portName.namespace@.
newServiceConnectServiceResource ::
ServiceConnectServiceResource
newServiceConnectServiceResource =
ServiceConnectServiceResource'
{ discoveryArn =
Prelude.Nothing,
discoveryName = Prelude.Nothing
}
-- | The Amazon Resource Name (ARN) for the namespace in Cloud Map that
-- matches the discovery name for this Service Connect resource. You can
-- use this ARN in other integrations with Cloud Map. However, Service
-- Connect can\'t ensure connectivity outside of Amazon ECS.
serviceConnectServiceResource_discoveryArn :: Lens.Lens' ServiceConnectServiceResource (Prelude.Maybe Prelude.Text)
serviceConnectServiceResource_discoveryArn = Lens.lens (\ServiceConnectServiceResource' {discoveryArn} -> discoveryArn) (\s@ServiceConnectServiceResource' {} a -> s {discoveryArn = a} :: ServiceConnectServiceResource)
-- | The discovery name of this Service Connect resource.
--
-- The @discoveryName@ is the name of the new Cloud Map service that Amazon
-- ECS creates for this Amazon ECS service. This must be unique within the
-- Cloud Map namespace. The name can contain up to 64 characters. The name
-- can include lowercase letters, numbers, underscores (_), and hyphens
-- (-). The name can\'t start with a hyphen.
--
-- If this parameter isn\'t specified, the default value of
-- @discoveryName.namespace@ is used. If the @discoveryName@ isn\'t
-- specified, the port mapping name from the task definition is used in
-- @portName.namespace@.
serviceConnectServiceResource_discoveryName :: Lens.Lens' ServiceConnectServiceResource (Prelude.Maybe Prelude.Text)
serviceConnectServiceResource_discoveryName = Lens.lens (\ServiceConnectServiceResource' {discoveryName} -> discoveryName) (\s@ServiceConnectServiceResource' {} a -> s {discoveryName = a} :: ServiceConnectServiceResource)
instance Data.FromJSON ServiceConnectServiceResource where
parseJSON =
Data.withObject
"ServiceConnectServiceResource"
( \x ->
ServiceConnectServiceResource'
Prelude.<$> (x Data..:? "discoveryArn")
Prelude.<*> (x Data..:? "discoveryName")
)
instance
Prelude.Hashable
ServiceConnectServiceResource
where
hashWithSalt _salt ServiceConnectServiceResource' {..} =
_salt
`Prelude.hashWithSalt` discoveryArn
`Prelude.hashWithSalt` discoveryName
instance Prelude.NFData ServiceConnectServiceResource where
rnf ServiceConnectServiceResource' {..} =
Prelude.rnf discoveryArn
`Prelude.seq` Prelude.rnf discoveryName