{-# 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.ClusterServiceConnectDefaultsRequest -- 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.ClusterServiceConnectDefaultsRequest 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 -- | Use this parameter to set a default Service Connect namespace. After you -- set a default Service Connect namespace, any new services with Service -- Connect turned on that are created in the cluster are added as client -- services in the namespace. This setting only applies to new services -- that set the @enabled@ parameter to @true@ in the -- @ServiceConnectConfiguration@. You can set the namespace of each service -- individually in the @ServiceConnectConfiguration@ to override this -- default parameter. -- -- Tasks that run in a namespace can use short names to connect to services -- in the namespace. Tasks can connect to services across all of the -- clusters in the namespace. Tasks connect through a managed proxy -- container that collects logs and metrics for increased visibility. Only -- the tasks that Amazon ECS services create are supported with Service -- Connect. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html Service Connect> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- /See:/ 'newClusterServiceConnectDefaultsRequest' smart constructor. data ClusterServiceConnectDefaultsRequest = ClusterServiceConnectDefaultsRequest' { -- | The namespace name or full Amazon Resource Name (ARN) of the Cloud Map -- namespace that\'s used when you create a service and don\'t specify a -- Service Connect configuration. The namespace name can include up to 1024 -- characters. The name is case-sensitive. The name can\'t include hyphens -- (-), tilde (~), greater than (>), less than (\<), or slash (\/). -- -- If you enter an existing namespace name or ARN, then that namespace will -- be used. Any namespace type is supported. The namespace must be in this -- account and this Amazon Web Services Region. -- -- If you enter a new name, a Cloud Map namespace will be created. Amazon -- ECS creates a Cloud Map namespace with the \"API calls\" method of -- instance discovery only. This instance discovery method is the \"HTTP\" -- namespace type in the Command Line Interface. Other types of instance -- discovery aren\'t used by Service Connect. -- -- If you update the service with an empty string @\"\"@ for the namespace -- name, the cluster configuration for Service Connect is removed. Note -- that the namespace will remain in Cloud Map and must be deleted -- separately. -- -- For more information about Cloud Map, see -- <https://docs.aws.amazon.com/ Working with Services> in the /Cloud Map -- Developer Guide/. ClusterServiceConnectDefaultsRequest -> Text namespace :: Prelude.Text } deriving (ClusterServiceConnectDefaultsRequest -> ClusterServiceConnectDefaultsRequest -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: ClusterServiceConnectDefaultsRequest -> ClusterServiceConnectDefaultsRequest -> Bool $c/= :: ClusterServiceConnectDefaultsRequest -> ClusterServiceConnectDefaultsRequest -> Bool == :: ClusterServiceConnectDefaultsRequest -> ClusterServiceConnectDefaultsRequest -> Bool $c== :: ClusterServiceConnectDefaultsRequest -> ClusterServiceConnectDefaultsRequest -> Bool Prelude.Eq, ReadPrec [ClusterServiceConnectDefaultsRequest] ReadPrec ClusterServiceConnectDefaultsRequest Int -> ReadS ClusterServiceConnectDefaultsRequest ReadS [ClusterServiceConnectDefaultsRequest] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [ClusterServiceConnectDefaultsRequest] $creadListPrec :: ReadPrec [ClusterServiceConnectDefaultsRequest] readPrec :: ReadPrec ClusterServiceConnectDefaultsRequest $creadPrec :: ReadPrec ClusterServiceConnectDefaultsRequest readList :: ReadS [ClusterServiceConnectDefaultsRequest] $creadList :: ReadS [ClusterServiceConnectDefaultsRequest] readsPrec :: Int -> ReadS ClusterServiceConnectDefaultsRequest $creadsPrec :: Int -> ReadS ClusterServiceConnectDefaultsRequest Prelude.Read, Int -> ClusterServiceConnectDefaultsRequest -> ShowS [ClusterServiceConnectDefaultsRequest] -> ShowS ClusterServiceConnectDefaultsRequest -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [ClusterServiceConnectDefaultsRequest] -> ShowS $cshowList :: [ClusterServiceConnectDefaultsRequest] -> ShowS show :: ClusterServiceConnectDefaultsRequest -> String $cshow :: ClusterServiceConnectDefaultsRequest -> String showsPrec :: Int -> ClusterServiceConnectDefaultsRequest -> ShowS $cshowsPrec :: Int -> ClusterServiceConnectDefaultsRequest -> ShowS Prelude.Show, forall x. Rep ClusterServiceConnectDefaultsRequest x -> ClusterServiceConnectDefaultsRequest forall x. ClusterServiceConnectDefaultsRequest -> Rep ClusterServiceConnectDefaultsRequest x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep ClusterServiceConnectDefaultsRequest x -> ClusterServiceConnectDefaultsRequest $cfrom :: forall x. ClusterServiceConnectDefaultsRequest -> Rep ClusterServiceConnectDefaultsRequest x Prelude.Generic) -- | -- Create a value of 'ClusterServiceConnectDefaultsRequest' 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: -- -- 'namespace', 'clusterServiceConnectDefaultsRequest_namespace' - The namespace name or full Amazon Resource Name (ARN) of the Cloud Map -- namespace that\'s used when you create a service and don\'t specify a -- Service Connect configuration. The namespace name can include up to 1024 -- characters. The name is case-sensitive. The name can\'t include hyphens -- (-), tilde (~), greater than (>), less than (\<), or slash (\/). -- -- If you enter an existing namespace name or ARN, then that namespace will -- be used. Any namespace type is supported. The namespace must be in this -- account and this Amazon Web Services Region. -- -- If you enter a new name, a Cloud Map namespace will be created. Amazon -- ECS creates a Cloud Map namespace with the \"API calls\" method of -- instance discovery only. This instance discovery method is the \"HTTP\" -- namespace type in the Command Line Interface. Other types of instance -- discovery aren\'t used by Service Connect. -- -- If you update the service with an empty string @\"\"@ for the namespace -- name, the cluster configuration for Service Connect is removed. Note -- that the namespace will remain in Cloud Map and must be deleted -- separately. -- -- For more information about Cloud Map, see -- <https://docs.aws.amazon.com/ Working with Services> in the /Cloud Map -- Developer Guide/. newClusterServiceConnectDefaultsRequest :: -- | 'namespace' Prelude.Text -> ClusterServiceConnectDefaultsRequest newClusterServiceConnectDefaultsRequest :: Text -> ClusterServiceConnectDefaultsRequest newClusterServiceConnectDefaultsRequest Text pNamespace_ = ClusterServiceConnectDefaultsRequest' { $sel:namespace:ClusterServiceConnectDefaultsRequest' :: Text namespace = Text pNamespace_ } -- | The namespace name or full Amazon Resource Name (ARN) of the Cloud Map -- namespace that\'s used when you create a service and don\'t specify a -- Service Connect configuration. The namespace name can include up to 1024 -- characters. The name is case-sensitive. The name can\'t include hyphens -- (-), tilde (~), greater than (>), less than (\<), or slash (\/). -- -- If you enter an existing namespace name or ARN, then that namespace will -- be used. Any namespace type is supported. The namespace must be in this -- account and this Amazon Web Services Region. -- -- If you enter a new name, a Cloud Map namespace will be created. Amazon -- ECS creates a Cloud Map namespace with the \"API calls\" method of -- instance discovery only. This instance discovery method is the \"HTTP\" -- namespace type in the Command Line Interface. Other types of instance -- discovery aren\'t used by Service Connect. -- -- If you update the service with an empty string @\"\"@ for the namespace -- name, the cluster configuration for Service Connect is removed. Note -- that the namespace will remain in Cloud Map and must be deleted -- separately. -- -- For more information about Cloud Map, see -- <https://docs.aws.amazon.com/ Working with Services> in the /Cloud Map -- Developer Guide/. clusterServiceConnectDefaultsRequest_namespace :: Lens.Lens' ClusterServiceConnectDefaultsRequest Prelude.Text clusterServiceConnectDefaultsRequest_namespace :: Lens' ClusterServiceConnectDefaultsRequest Text clusterServiceConnectDefaultsRequest_namespace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\ClusterServiceConnectDefaultsRequest' {Text namespace :: Text $sel:namespace:ClusterServiceConnectDefaultsRequest' :: ClusterServiceConnectDefaultsRequest -> Text namespace} -> Text namespace) (\s :: ClusterServiceConnectDefaultsRequest s@ClusterServiceConnectDefaultsRequest' {} Text a -> ClusterServiceConnectDefaultsRequest s {$sel:namespace:ClusterServiceConnectDefaultsRequest' :: Text namespace = Text a} :: ClusterServiceConnectDefaultsRequest) instance Prelude.Hashable ClusterServiceConnectDefaultsRequest where hashWithSalt :: Int -> ClusterServiceConnectDefaultsRequest -> Int hashWithSalt Int _salt ClusterServiceConnectDefaultsRequest' {Text namespace :: Text $sel:namespace:ClusterServiceConnectDefaultsRequest' :: ClusterServiceConnectDefaultsRequest -> Text ..} = Int _salt forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Text namespace instance Prelude.NFData ClusterServiceConnectDefaultsRequest where rnf :: ClusterServiceConnectDefaultsRequest -> () rnf ClusterServiceConnectDefaultsRequest' {Text namespace :: Text $sel:namespace:ClusterServiceConnectDefaultsRequest' :: ClusterServiceConnectDefaultsRequest -> Text ..} = forall a. NFData a => a -> () Prelude.rnf Text namespace instance Data.ToJSON ClusterServiceConnectDefaultsRequest where toJSON :: ClusterServiceConnectDefaultsRequest -> Value toJSON ClusterServiceConnectDefaultsRequest' {Text namespace :: Text $sel:namespace:ClusterServiceConnectDefaultsRequest' :: ClusterServiceConnectDefaultsRequest -> Text ..} = [Pair] -> Value Data.object ( forall a. [Maybe a] -> [a] Prelude.catMaybes [forall a. a -> Maybe a Prelude.Just (Key "namespace" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv Data..= Text namespace)] )