{-# 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.Lightsail.Types.ContainerService
-- 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.Lightsail.Types.ContainerService where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Lightsail.Types.ContainerServiceDeployment
import Amazonka.Lightsail.Types.ContainerServicePowerName
import Amazonka.Lightsail.Types.ContainerServiceState
import Amazonka.Lightsail.Types.ContainerServiceStateDetail
import Amazonka.Lightsail.Types.PrivateRegistryAccess
import Amazonka.Lightsail.Types.ResourceLocation
import Amazonka.Lightsail.Types.ResourceType
import Amazonka.Lightsail.Types.Tag
import qualified Amazonka.Prelude as Prelude

-- | Describes an Amazon Lightsail container service.
--
-- /See:/ 'newContainerService' smart constructor.
data ContainerService = ContainerService'
  { -- | The Amazon Resource Name (ARN) of the container service.
    ContainerService -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The name of the container service.
    ContainerService -> Maybe Text
containerServiceName :: Prelude.Maybe Prelude.Text,
    -- | The timestamp when the container service was created.
    ContainerService -> Maybe POSIX
createdAt :: Prelude.Maybe Data.POSIX,
    -- | An object that describes the current container deployment of the
    -- container service.
    ContainerService -> Maybe ContainerServiceDeployment
currentDeployment :: Prelude.Maybe ContainerServiceDeployment,
    -- | A Boolean value indicating whether the container service is disabled.
    ContainerService -> Maybe Bool
isDisabled :: Prelude.Maybe Prelude.Bool,
    -- | An object that describes the location of the container service, such as
    -- the Amazon Web Services Region and Availability Zone.
    ContainerService -> Maybe ResourceLocation
location :: Prelude.Maybe ResourceLocation,
    -- | An object that describes the next deployment of the container service.
    --
    -- This value is @null@ when there is no deployment in a @pending@ state.
    ContainerService -> Maybe ContainerServiceDeployment
nextDeployment :: Prelude.Maybe ContainerServiceDeployment,
    -- | The power specification of the container service.
    --
    -- The power specifies the amount of RAM, the number of vCPUs, and the base
    -- price of the container service.
    ContainerService -> Maybe ContainerServicePowerName
power :: Prelude.Maybe ContainerServicePowerName,
    -- | The ID of the power of the container service.
    ContainerService -> Maybe Text
powerId :: Prelude.Maybe Prelude.Text,
    -- | The principal ARN of the container service.
    --
    -- The principal ARN can be used to create a trust relationship between
    -- your standard Amazon Web Services account and your Lightsail container
    -- service. This allows you to give your service permission to access
    -- resources in your standard Amazon Web Services account.
    ContainerService -> Maybe Text
principalArn :: Prelude.Maybe Prelude.Text,
    -- | The private domain name of the container service.
    --
    -- The private domain name is accessible only by other resources within the
    -- default virtual private cloud (VPC) of your Lightsail account.
    ContainerService -> Maybe Text
privateDomainName :: Prelude.Maybe Prelude.Text,
    -- | An object that describes the configuration for the container service to
    -- access private container image repositories, such as Amazon Elastic
    -- Container Registry (Amazon ECR) private repositories.
    --
    -- For more information, see
    -- <https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-service-ecr-private-repo-access Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service>
    -- in the /Amazon Lightsail Developer Guide/.
    ContainerService -> Maybe PrivateRegistryAccess
privateRegistryAccess :: Prelude.Maybe PrivateRegistryAccess,
    -- | The public domain name of the container service, such as @example.com@
    -- and @www.example.com@.
    --
    -- You can specify up to four public domain names for a container service.
    -- The domain names that you specify are used when you create a deployment
    -- with a container configured as the public endpoint of your container
    -- service.
    --
    -- If you don\'t specify public domain names, then you can use the default
    -- domain of the container service.
    --
    -- You must create and validate an SSL\/TLS certificate before you can use
    -- public domain names with your container service. Use the
    -- @CreateCertificate@ action to create a certificate for the public domain
    -- names you want to use with your container service.
    --
    -- See @CreateContainerService@ or @UpdateContainerService@ for information
    -- about how to specify public domain names for your Lightsail container
    -- service.
    ContainerService -> Maybe (HashMap Text [Text])
publicDomainNames :: Prelude.Maybe (Prelude.HashMap Prelude.Text [Prelude.Text]),
    -- | The Lightsail resource type of the container service (i.e.,
    -- @ContainerService@).
    ContainerService -> Maybe ResourceType
resourceType :: Prelude.Maybe ResourceType,
    -- | The scale specification of the container service.
    --
    -- The scale specifies the allocated compute nodes of the container
    -- service.
    ContainerService -> Maybe Natural
scale :: Prelude.Maybe Prelude.Natural,
    -- | The current state of the container service.
    --
    -- The following container service states are possible:
    --
    -- -   @PENDING@ - The container service is being created.
    --
    -- -   @READY@ - The container service is running but it does not have an
    --     active container deployment.
    --
    -- -   @DEPLOYING@ - The container service is launching a container
    --     deployment.
    --
    -- -   @RUNNING@ - The container service is running and it has an active
    --     container deployment.
    --
    -- -   @UPDATING@ - The container service capacity or its custom domains
    --     are being updated.
    --
    -- -   @DELETING@ - The container service is being deleted.
    --
    -- -   @DISABLED@ - The container service is disabled, and its active
    --     deployment and containers, if any, are shut down.
    ContainerService -> Maybe ContainerServiceState
state :: Prelude.Maybe ContainerServiceState,
    -- | An object that describes the current state of the container service.
    --
    -- The state detail is populated only when a container service is in a
    -- @PENDING@, @DEPLOYING@, or @UPDATING@ state.
    ContainerService -> Maybe ContainerServiceStateDetail
stateDetail :: Prelude.Maybe ContainerServiceStateDetail,
    -- | The tag keys and optional values for the resource. For more information
    -- about tags in Lightsail, see the
    -- <https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-tags Amazon Lightsail Developer Guide>.
    ContainerService -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The publicly accessible URL of the container service.
    --
    -- If no public endpoint is specified in the @currentDeployment@, this URL
    -- returns a 404 response.
    ContainerService -> Maybe Text
url :: Prelude.Maybe Prelude.Text
  }
  deriving (ContainerService -> ContainerService -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ContainerService -> ContainerService -> Bool
$c/= :: ContainerService -> ContainerService -> Bool
== :: ContainerService -> ContainerService -> Bool
$c== :: ContainerService -> ContainerService -> Bool
Prelude.Eq, ReadPrec [ContainerService]
ReadPrec ContainerService
Int -> ReadS ContainerService
ReadS [ContainerService]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ContainerService]
$creadListPrec :: ReadPrec [ContainerService]
readPrec :: ReadPrec ContainerService
$creadPrec :: ReadPrec ContainerService
readList :: ReadS [ContainerService]
$creadList :: ReadS [ContainerService]
readsPrec :: Int -> ReadS ContainerService
$creadsPrec :: Int -> ReadS ContainerService
Prelude.Read, Int -> ContainerService -> ShowS
[ContainerService] -> ShowS
ContainerService -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ContainerService] -> ShowS
$cshowList :: [ContainerService] -> ShowS
show :: ContainerService -> String
$cshow :: ContainerService -> String
showsPrec :: Int -> ContainerService -> ShowS
$cshowsPrec :: Int -> ContainerService -> ShowS
Prelude.Show, forall x. Rep ContainerService x -> ContainerService
forall x. ContainerService -> Rep ContainerService x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ContainerService x -> ContainerService
$cfrom :: forall x. ContainerService -> Rep ContainerService x
Prelude.Generic)

-- |
-- Create a value of 'ContainerService' 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:
--
-- 'arn', 'containerService_arn' - The Amazon Resource Name (ARN) of the container service.
--
-- 'containerServiceName', 'containerService_containerServiceName' - The name of the container service.
--
-- 'createdAt', 'containerService_createdAt' - The timestamp when the container service was created.
--
-- 'currentDeployment', 'containerService_currentDeployment' - An object that describes the current container deployment of the
-- container service.
--
-- 'isDisabled', 'containerService_isDisabled' - A Boolean value indicating whether the container service is disabled.
--
-- 'location', 'containerService_location' - An object that describes the location of the container service, such as
-- the Amazon Web Services Region and Availability Zone.
--
-- 'nextDeployment', 'containerService_nextDeployment' - An object that describes the next deployment of the container service.
--
-- This value is @null@ when there is no deployment in a @pending@ state.
--
-- 'power', 'containerService_power' - The power specification of the container service.
--
-- The power specifies the amount of RAM, the number of vCPUs, and the base
-- price of the container service.
--
-- 'powerId', 'containerService_powerId' - The ID of the power of the container service.
--
-- 'principalArn', 'containerService_principalArn' - The principal ARN of the container service.
--
-- The principal ARN can be used to create a trust relationship between
-- your standard Amazon Web Services account and your Lightsail container
-- service. This allows you to give your service permission to access
-- resources in your standard Amazon Web Services account.
--
-- 'privateDomainName', 'containerService_privateDomainName' - The private domain name of the container service.
--
-- The private domain name is accessible only by other resources within the
-- default virtual private cloud (VPC) of your Lightsail account.
--
-- 'privateRegistryAccess', 'containerService_privateRegistryAccess' - An object that describes the configuration for the container service to
-- access private container image repositories, such as Amazon Elastic
-- Container Registry (Amazon ECR) private repositories.
--
-- For more information, see
-- <https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-service-ecr-private-repo-access Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service>
-- in the /Amazon Lightsail Developer Guide/.
--
-- 'publicDomainNames', 'containerService_publicDomainNames' - The public domain name of the container service, such as @example.com@
-- and @www.example.com@.
--
-- You can specify up to four public domain names for a container service.
-- The domain names that you specify are used when you create a deployment
-- with a container configured as the public endpoint of your container
-- service.
--
-- If you don\'t specify public domain names, then you can use the default
-- domain of the container service.
--
-- You must create and validate an SSL\/TLS certificate before you can use
-- public domain names with your container service. Use the
-- @CreateCertificate@ action to create a certificate for the public domain
-- names you want to use with your container service.
--
-- See @CreateContainerService@ or @UpdateContainerService@ for information
-- about how to specify public domain names for your Lightsail container
-- service.
--
-- 'resourceType', 'containerService_resourceType' - The Lightsail resource type of the container service (i.e.,
-- @ContainerService@).
--
-- 'scale', 'containerService_scale' - The scale specification of the container service.
--
-- The scale specifies the allocated compute nodes of the container
-- service.
--
-- 'state', 'containerService_state' - The current state of the container service.
--
-- The following container service states are possible:
--
-- -   @PENDING@ - The container service is being created.
--
-- -   @READY@ - The container service is running but it does not have an
--     active container deployment.
--
-- -   @DEPLOYING@ - The container service is launching a container
--     deployment.
--
-- -   @RUNNING@ - The container service is running and it has an active
--     container deployment.
--
-- -   @UPDATING@ - The container service capacity or its custom domains
--     are being updated.
--
-- -   @DELETING@ - The container service is being deleted.
--
-- -   @DISABLED@ - The container service is disabled, and its active
--     deployment and containers, if any, are shut down.
--
-- 'stateDetail', 'containerService_stateDetail' - An object that describes the current state of the container service.
--
-- The state detail is populated only when a container service is in a
-- @PENDING@, @DEPLOYING@, or @UPDATING@ state.
--
-- 'tags', 'containerService_tags' - The tag keys and optional values for the resource. For more information
-- about tags in Lightsail, see the
-- <https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-tags Amazon Lightsail Developer Guide>.
--
-- 'url', 'containerService_url' - The publicly accessible URL of the container service.
--
-- If no public endpoint is specified in the @currentDeployment@, this URL
-- returns a 404 response.
newContainerService ::
  ContainerService
newContainerService :: ContainerService
newContainerService =
  ContainerService'
    { $sel:arn:ContainerService' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:containerServiceName:ContainerService' :: Maybe Text
containerServiceName = forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:ContainerService' :: Maybe POSIX
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:currentDeployment:ContainerService' :: Maybe ContainerServiceDeployment
currentDeployment = forall a. Maybe a
Prelude.Nothing,
      $sel:isDisabled:ContainerService' :: Maybe Bool
isDisabled = forall a. Maybe a
Prelude.Nothing,
      $sel:location:ContainerService' :: Maybe ResourceLocation
location = forall a. Maybe a
Prelude.Nothing,
      $sel:nextDeployment:ContainerService' :: Maybe ContainerServiceDeployment
nextDeployment = forall a. Maybe a
Prelude.Nothing,
      $sel:power:ContainerService' :: Maybe ContainerServicePowerName
power = forall a. Maybe a
Prelude.Nothing,
      $sel:powerId:ContainerService' :: Maybe Text
powerId = forall a. Maybe a
Prelude.Nothing,
      $sel:principalArn:ContainerService' :: Maybe Text
principalArn = forall a. Maybe a
Prelude.Nothing,
      $sel:privateDomainName:ContainerService' :: Maybe Text
privateDomainName = forall a. Maybe a
Prelude.Nothing,
      $sel:privateRegistryAccess:ContainerService' :: Maybe PrivateRegistryAccess
privateRegistryAccess = forall a. Maybe a
Prelude.Nothing,
      $sel:publicDomainNames:ContainerService' :: Maybe (HashMap Text [Text])
publicDomainNames = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceType:ContainerService' :: Maybe ResourceType
resourceType = forall a. Maybe a
Prelude.Nothing,
      $sel:scale:ContainerService' :: Maybe Natural
scale = forall a. Maybe a
Prelude.Nothing,
      $sel:state:ContainerService' :: Maybe ContainerServiceState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:stateDetail:ContainerService' :: Maybe ContainerServiceStateDetail
stateDetail = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:ContainerService' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:url:ContainerService' :: Maybe Text
url = forall a. Maybe a
Prelude.Nothing
    }

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

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

-- | The timestamp when the container service was created.
containerService_createdAt :: Lens.Lens' ContainerService (Prelude.Maybe Prelude.UTCTime)
containerService_createdAt :: Lens' ContainerService (Maybe UTCTime)
containerService_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:ContainerService' :: ContainerService -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: ContainerService
s@ContainerService' {} Maybe POSIX
a -> ContainerService
s {$sel:createdAt:ContainerService' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: ContainerService) 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

-- | An object that describes the current container deployment of the
-- container service.
containerService_currentDeployment :: Lens.Lens' ContainerService (Prelude.Maybe ContainerServiceDeployment)
containerService_currentDeployment :: Lens' ContainerService (Maybe ContainerServiceDeployment)
containerService_currentDeployment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe ContainerServiceDeployment
currentDeployment :: Maybe ContainerServiceDeployment
$sel:currentDeployment:ContainerService' :: ContainerService -> Maybe ContainerServiceDeployment
currentDeployment} -> Maybe ContainerServiceDeployment
currentDeployment) (\s :: ContainerService
s@ContainerService' {} Maybe ContainerServiceDeployment
a -> ContainerService
s {$sel:currentDeployment:ContainerService' :: Maybe ContainerServiceDeployment
currentDeployment = Maybe ContainerServiceDeployment
a} :: ContainerService)

-- | A Boolean value indicating whether the container service is disabled.
containerService_isDisabled :: Lens.Lens' ContainerService (Prelude.Maybe Prelude.Bool)
containerService_isDisabled :: Lens' ContainerService (Maybe Bool)
containerService_isDisabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe Bool
isDisabled :: Maybe Bool
$sel:isDisabled:ContainerService' :: ContainerService -> Maybe Bool
isDisabled} -> Maybe Bool
isDisabled) (\s :: ContainerService
s@ContainerService' {} Maybe Bool
a -> ContainerService
s {$sel:isDisabled:ContainerService' :: Maybe Bool
isDisabled = Maybe Bool
a} :: ContainerService)

-- | An object that describes the location of the container service, such as
-- the Amazon Web Services Region and Availability Zone.
containerService_location :: Lens.Lens' ContainerService (Prelude.Maybe ResourceLocation)
containerService_location :: Lens' ContainerService (Maybe ResourceLocation)
containerService_location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe ResourceLocation
location :: Maybe ResourceLocation
$sel:location:ContainerService' :: ContainerService -> Maybe ResourceLocation
location} -> Maybe ResourceLocation
location) (\s :: ContainerService
s@ContainerService' {} Maybe ResourceLocation
a -> ContainerService
s {$sel:location:ContainerService' :: Maybe ResourceLocation
location = Maybe ResourceLocation
a} :: ContainerService)

-- | An object that describes the next deployment of the container service.
--
-- This value is @null@ when there is no deployment in a @pending@ state.
containerService_nextDeployment :: Lens.Lens' ContainerService (Prelude.Maybe ContainerServiceDeployment)
containerService_nextDeployment :: Lens' ContainerService (Maybe ContainerServiceDeployment)
containerService_nextDeployment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe ContainerServiceDeployment
nextDeployment :: Maybe ContainerServiceDeployment
$sel:nextDeployment:ContainerService' :: ContainerService -> Maybe ContainerServiceDeployment
nextDeployment} -> Maybe ContainerServiceDeployment
nextDeployment) (\s :: ContainerService
s@ContainerService' {} Maybe ContainerServiceDeployment
a -> ContainerService
s {$sel:nextDeployment:ContainerService' :: Maybe ContainerServiceDeployment
nextDeployment = Maybe ContainerServiceDeployment
a} :: ContainerService)

-- | The power specification of the container service.
--
-- The power specifies the amount of RAM, the number of vCPUs, and the base
-- price of the container service.
containerService_power :: Lens.Lens' ContainerService (Prelude.Maybe ContainerServicePowerName)
containerService_power :: Lens' ContainerService (Maybe ContainerServicePowerName)
containerService_power = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe ContainerServicePowerName
power :: Maybe ContainerServicePowerName
$sel:power:ContainerService' :: ContainerService -> Maybe ContainerServicePowerName
power} -> Maybe ContainerServicePowerName
power) (\s :: ContainerService
s@ContainerService' {} Maybe ContainerServicePowerName
a -> ContainerService
s {$sel:power:ContainerService' :: Maybe ContainerServicePowerName
power = Maybe ContainerServicePowerName
a} :: ContainerService)

-- | The ID of the power of the container service.
containerService_powerId :: Lens.Lens' ContainerService (Prelude.Maybe Prelude.Text)
containerService_powerId :: Lens' ContainerService (Maybe Text)
containerService_powerId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe Text
powerId :: Maybe Text
$sel:powerId:ContainerService' :: ContainerService -> Maybe Text
powerId} -> Maybe Text
powerId) (\s :: ContainerService
s@ContainerService' {} Maybe Text
a -> ContainerService
s {$sel:powerId:ContainerService' :: Maybe Text
powerId = Maybe Text
a} :: ContainerService)

-- | The principal ARN of the container service.
--
-- The principal ARN can be used to create a trust relationship between
-- your standard Amazon Web Services account and your Lightsail container
-- service. This allows you to give your service permission to access
-- resources in your standard Amazon Web Services account.
containerService_principalArn :: Lens.Lens' ContainerService (Prelude.Maybe Prelude.Text)
containerService_principalArn :: Lens' ContainerService (Maybe Text)
containerService_principalArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe Text
principalArn :: Maybe Text
$sel:principalArn:ContainerService' :: ContainerService -> Maybe Text
principalArn} -> Maybe Text
principalArn) (\s :: ContainerService
s@ContainerService' {} Maybe Text
a -> ContainerService
s {$sel:principalArn:ContainerService' :: Maybe Text
principalArn = Maybe Text
a} :: ContainerService)

-- | The private domain name of the container service.
--
-- The private domain name is accessible only by other resources within the
-- default virtual private cloud (VPC) of your Lightsail account.
containerService_privateDomainName :: Lens.Lens' ContainerService (Prelude.Maybe Prelude.Text)
containerService_privateDomainName :: Lens' ContainerService (Maybe Text)
containerService_privateDomainName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe Text
privateDomainName :: Maybe Text
$sel:privateDomainName:ContainerService' :: ContainerService -> Maybe Text
privateDomainName} -> Maybe Text
privateDomainName) (\s :: ContainerService
s@ContainerService' {} Maybe Text
a -> ContainerService
s {$sel:privateDomainName:ContainerService' :: Maybe Text
privateDomainName = Maybe Text
a} :: ContainerService)

-- | An object that describes the configuration for the container service to
-- access private container image repositories, such as Amazon Elastic
-- Container Registry (Amazon ECR) private repositories.
--
-- For more information, see
-- <https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-service-ecr-private-repo-access Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service>
-- in the /Amazon Lightsail Developer Guide/.
containerService_privateRegistryAccess :: Lens.Lens' ContainerService (Prelude.Maybe PrivateRegistryAccess)
containerService_privateRegistryAccess :: Lens' ContainerService (Maybe PrivateRegistryAccess)
containerService_privateRegistryAccess = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe PrivateRegistryAccess
privateRegistryAccess :: Maybe PrivateRegistryAccess
$sel:privateRegistryAccess:ContainerService' :: ContainerService -> Maybe PrivateRegistryAccess
privateRegistryAccess} -> Maybe PrivateRegistryAccess
privateRegistryAccess) (\s :: ContainerService
s@ContainerService' {} Maybe PrivateRegistryAccess
a -> ContainerService
s {$sel:privateRegistryAccess:ContainerService' :: Maybe PrivateRegistryAccess
privateRegistryAccess = Maybe PrivateRegistryAccess
a} :: ContainerService)

-- | The public domain name of the container service, such as @example.com@
-- and @www.example.com@.
--
-- You can specify up to four public domain names for a container service.
-- The domain names that you specify are used when you create a deployment
-- with a container configured as the public endpoint of your container
-- service.
--
-- If you don\'t specify public domain names, then you can use the default
-- domain of the container service.
--
-- You must create and validate an SSL\/TLS certificate before you can use
-- public domain names with your container service. Use the
-- @CreateCertificate@ action to create a certificate for the public domain
-- names you want to use with your container service.
--
-- See @CreateContainerService@ or @UpdateContainerService@ for information
-- about how to specify public domain names for your Lightsail container
-- service.
containerService_publicDomainNames :: Lens.Lens' ContainerService (Prelude.Maybe (Prelude.HashMap Prelude.Text [Prelude.Text]))
containerService_publicDomainNames :: Lens' ContainerService (Maybe (HashMap Text [Text]))
containerService_publicDomainNames = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe (HashMap Text [Text])
publicDomainNames :: Maybe (HashMap Text [Text])
$sel:publicDomainNames:ContainerService' :: ContainerService -> Maybe (HashMap Text [Text])
publicDomainNames} -> Maybe (HashMap Text [Text])
publicDomainNames) (\s :: ContainerService
s@ContainerService' {} Maybe (HashMap Text [Text])
a -> ContainerService
s {$sel:publicDomainNames:ContainerService' :: Maybe (HashMap Text [Text])
publicDomainNames = Maybe (HashMap Text [Text])
a} :: ContainerService) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The Lightsail resource type of the container service (i.e.,
-- @ContainerService@).
containerService_resourceType :: Lens.Lens' ContainerService (Prelude.Maybe ResourceType)
containerService_resourceType :: Lens' ContainerService (Maybe ResourceType)
containerService_resourceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe ResourceType
resourceType :: Maybe ResourceType
$sel:resourceType:ContainerService' :: ContainerService -> Maybe ResourceType
resourceType} -> Maybe ResourceType
resourceType) (\s :: ContainerService
s@ContainerService' {} Maybe ResourceType
a -> ContainerService
s {$sel:resourceType:ContainerService' :: Maybe ResourceType
resourceType = Maybe ResourceType
a} :: ContainerService)

-- | The scale specification of the container service.
--
-- The scale specifies the allocated compute nodes of the container
-- service.
containerService_scale :: Lens.Lens' ContainerService (Prelude.Maybe Prelude.Natural)
containerService_scale :: Lens' ContainerService (Maybe Natural)
containerService_scale = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe Natural
scale :: Maybe Natural
$sel:scale:ContainerService' :: ContainerService -> Maybe Natural
scale} -> Maybe Natural
scale) (\s :: ContainerService
s@ContainerService' {} Maybe Natural
a -> ContainerService
s {$sel:scale:ContainerService' :: Maybe Natural
scale = Maybe Natural
a} :: ContainerService)

-- | The current state of the container service.
--
-- The following container service states are possible:
--
-- -   @PENDING@ - The container service is being created.
--
-- -   @READY@ - The container service is running but it does not have an
--     active container deployment.
--
-- -   @DEPLOYING@ - The container service is launching a container
--     deployment.
--
-- -   @RUNNING@ - The container service is running and it has an active
--     container deployment.
--
-- -   @UPDATING@ - The container service capacity or its custom domains
--     are being updated.
--
-- -   @DELETING@ - The container service is being deleted.
--
-- -   @DISABLED@ - The container service is disabled, and its active
--     deployment and containers, if any, are shut down.
containerService_state :: Lens.Lens' ContainerService (Prelude.Maybe ContainerServiceState)
containerService_state :: Lens' ContainerService (Maybe ContainerServiceState)
containerService_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe ContainerServiceState
state :: Maybe ContainerServiceState
$sel:state:ContainerService' :: ContainerService -> Maybe ContainerServiceState
state} -> Maybe ContainerServiceState
state) (\s :: ContainerService
s@ContainerService' {} Maybe ContainerServiceState
a -> ContainerService
s {$sel:state:ContainerService' :: Maybe ContainerServiceState
state = Maybe ContainerServiceState
a} :: ContainerService)

-- | An object that describes the current state of the container service.
--
-- The state detail is populated only when a container service is in a
-- @PENDING@, @DEPLOYING@, or @UPDATING@ state.
containerService_stateDetail :: Lens.Lens' ContainerService (Prelude.Maybe ContainerServiceStateDetail)
containerService_stateDetail :: Lens' ContainerService (Maybe ContainerServiceStateDetail)
containerService_stateDetail = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe ContainerServiceStateDetail
stateDetail :: Maybe ContainerServiceStateDetail
$sel:stateDetail:ContainerService' :: ContainerService -> Maybe ContainerServiceStateDetail
stateDetail} -> Maybe ContainerServiceStateDetail
stateDetail) (\s :: ContainerService
s@ContainerService' {} Maybe ContainerServiceStateDetail
a -> ContainerService
s {$sel:stateDetail:ContainerService' :: Maybe ContainerServiceStateDetail
stateDetail = Maybe ContainerServiceStateDetail
a} :: ContainerService)

-- | The tag keys and optional values for the resource. For more information
-- about tags in Lightsail, see the
-- <https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-tags Amazon Lightsail Developer Guide>.
containerService_tags :: Lens.Lens' ContainerService (Prelude.Maybe [Tag])
containerService_tags :: Lens' ContainerService (Maybe [Tag])
containerService_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:ContainerService' :: ContainerService -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: ContainerService
s@ContainerService' {} Maybe [Tag]
a -> ContainerService
s {$sel:tags:ContainerService' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: ContainerService) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The publicly accessible URL of the container service.
--
-- If no public endpoint is specified in the @currentDeployment@, this URL
-- returns a 404 response.
containerService_url :: Lens.Lens' ContainerService (Prelude.Maybe Prelude.Text)
containerService_url :: Lens' ContainerService (Maybe Text)
containerService_url = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ContainerService' {Maybe Text
url :: Maybe Text
$sel:url:ContainerService' :: ContainerService -> Maybe Text
url} -> Maybe Text
url) (\s :: ContainerService
s@ContainerService' {} Maybe Text
a -> ContainerService
s {$sel:url:ContainerService' :: Maybe Text
url = Maybe Text
a} :: ContainerService)

instance Data.FromJSON ContainerService where
  parseJSON :: Value -> Parser ContainerService
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ContainerService"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe ContainerServiceDeployment
-> Maybe Bool
-> Maybe ResourceLocation
-> Maybe ContainerServiceDeployment
-> Maybe ContainerServicePowerName
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PrivateRegistryAccess
-> Maybe (HashMap Text [Text])
-> Maybe ResourceType
-> Maybe Natural
-> Maybe ContainerServiceState
-> Maybe ContainerServiceStateDetail
-> Maybe [Tag]
-> Maybe Text
-> ContainerService
ContainerService'
            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
"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
"containerServiceName")
            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
"createdAt")
            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
"currentDeployment")
            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
"isDisabled")
            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
"location")
            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
"nextDeployment")
            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
"power")
            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
"powerId")
            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
"principalArn")
            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
"privateDomainName")
            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
"privateRegistryAccess")
            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
"publicDomainNames"
                            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
"resourceType")
            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
"scale")
            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
"stateDetail")
            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
"url")
      )

instance Prelude.Hashable ContainerService where
  hashWithSalt :: Int -> ContainerService -> Int
hashWithSalt Int
_salt ContainerService' {Maybe Bool
Maybe Natural
Maybe [Tag]
Maybe Text
Maybe (HashMap Text [Text])
Maybe POSIX
Maybe ContainerServicePowerName
Maybe ContainerServiceDeployment
Maybe ContainerServiceState
Maybe ContainerServiceStateDetail
Maybe PrivateRegistryAccess
Maybe ResourceLocation
Maybe ResourceType
url :: Maybe Text
tags :: Maybe [Tag]
stateDetail :: Maybe ContainerServiceStateDetail
state :: Maybe ContainerServiceState
scale :: Maybe Natural
resourceType :: Maybe ResourceType
publicDomainNames :: Maybe (HashMap Text [Text])
privateRegistryAccess :: Maybe PrivateRegistryAccess
privateDomainName :: Maybe Text
principalArn :: Maybe Text
powerId :: Maybe Text
power :: Maybe ContainerServicePowerName
nextDeployment :: Maybe ContainerServiceDeployment
location :: Maybe ResourceLocation
isDisabled :: Maybe Bool
currentDeployment :: Maybe ContainerServiceDeployment
createdAt :: Maybe POSIX
containerServiceName :: Maybe Text
arn :: Maybe Text
$sel:url:ContainerService' :: ContainerService -> Maybe Text
$sel:tags:ContainerService' :: ContainerService -> Maybe [Tag]
$sel:stateDetail:ContainerService' :: ContainerService -> Maybe ContainerServiceStateDetail
$sel:state:ContainerService' :: ContainerService -> Maybe ContainerServiceState
$sel:scale:ContainerService' :: ContainerService -> Maybe Natural
$sel:resourceType:ContainerService' :: ContainerService -> Maybe ResourceType
$sel:publicDomainNames:ContainerService' :: ContainerService -> Maybe (HashMap Text [Text])
$sel:privateRegistryAccess:ContainerService' :: ContainerService -> Maybe PrivateRegistryAccess
$sel:privateDomainName:ContainerService' :: ContainerService -> Maybe Text
$sel:principalArn:ContainerService' :: ContainerService -> Maybe Text
$sel:powerId:ContainerService' :: ContainerService -> Maybe Text
$sel:power:ContainerService' :: ContainerService -> Maybe ContainerServicePowerName
$sel:nextDeployment:ContainerService' :: ContainerService -> Maybe ContainerServiceDeployment
$sel:location:ContainerService' :: ContainerService -> Maybe ResourceLocation
$sel:isDisabled:ContainerService' :: ContainerService -> Maybe Bool
$sel:currentDeployment:ContainerService' :: ContainerService -> Maybe ContainerServiceDeployment
$sel:createdAt:ContainerService' :: ContainerService -> Maybe POSIX
$sel:containerServiceName:ContainerService' :: ContainerService -> Maybe Text
$sel:arn:ContainerService' :: ContainerService -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
containerServiceName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
createdAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ContainerServiceDeployment
currentDeployment
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
isDisabled
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ResourceLocation
location
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ContainerServiceDeployment
nextDeployment
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ContainerServicePowerName
power
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
powerId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
principalArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
privateDomainName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PrivateRegistryAccess
privateRegistryAccess
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text [Text])
publicDomainNames
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ResourceType
resourceType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
scale
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ContainerServiceState
state
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ContainerServiceStateDetail
stateDetail
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
url

instance Prelude.NFData ContainerService where
  rnf :: ContainerService -> ()
rnf ContainerService' {Maybe Bool
Maybe Natural
Maybe [Tag]
Maybe Text
Maybe (HashMap Text [Text])
Maybe POSIX
Maybe ContainerServicePowerName
Maybe ContainerServiceDeployment
Maybe ContainerServiceState
Maybe ContainerServiceStateDetail
Maybe PrivateRegistryAccess
Maybe ResourceLocation
Maybe ResourceType
url :: Maybe Text
tags :: Maybe [Tag]
stateDetail :: Maybe ContainerServiceStateDetail
state :: Maybe ContainerServiceState
scale :: Maybe Natural
resourceType :: Maybe ResourceType
publicDomainNames :: Maybe (HashMap Text [Text])
privateRegistryAccess :: Maybe PrivateRegistryAccess
privateDomainName :: Maybe Text
principalArn :: Maybe Text
powerId :: Maybe Text
power :: Maybe ContainerServicePowerName
nextDeployment :: Maybe ContainerServiceDeployment
location :: Maybe ResourceLocation
isDisabled :: Maybe Bool
currentDeployment :: Maybe ContainerServiceDeployment
createdAt :: Maybe POSIX
containerServiceName :: Maybe Text
arn :: Maybe Text
$sel:url:ContainerService' :: ContainerService -> Maybe Text
$sel:tags:ContainerService' :: ContainerService -> Maybe [Tag]
$sel:stateDetail:ContainerService' :: ContainerService -> Maybe ContainerServiceStateDetail
$sel:state:ContainerService' :: ContainerService -> Maybe ContainerServiceState
$sel:scale:ContainerService' :: ContainerService -> Maybe Natural
$sel:resourceType:ContainerService' :: ContainerService -> Maybe ResourceType
$sel:publicDomainNames:ContainerService' :: ContainerService -> Maybe (HashMap Text [Text])
$sel:privateRegistryAccess:ContainerService' :: ContainerService -> Maybe PrivateRegistryAccess
$sel:privateDomainName:ContainerService' :: ContainerService -> Maybe Text
$sel:principalArn:ContainerService' :: ContainerService -> Maybe Text
$sel:powerId:ContainerService' :: ContainerService -> Maybe Text
$sel:power:ContainerService' :: ContainerService -> Maybe ContainerServicePowerName
$sel:nextDeployment:ContainerService' :: ContainerService -> Maybe ContainerServiceDeployment
$sel:location:ContainerService' :: ContainerService -> Maybe ResourceLocation
$sel:isDisabled:ContainerService' :: ContainerService -> Maybe Bool
$sel:currentDeployment:ContainerService' :: ContainerService -> Maybe ContainerServiceDeployment
$sel:createdAt:ContainerService' :: ContainerService -> Maybe POSIX
$sel:containerServiceName:ContainerService' :: ContainerService -> Maybe Text
$sel:arn:ContainerService' :: ContainerService -> Maybe Text
..} =
    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
containerServiceName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ContainerServiceDeployment
currentDeployment
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
isDisabled
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ResourceLocation
location
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ContainerServiceDeployment
nextDeployment
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ContainerServicePowerName
power
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
powerId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
principalArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
privateDomainName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PrivateRegistryAccess
privateRegistryAccess
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text [Text])
publicDomainNames
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ResourceType
resourceType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
scale
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ContainerServiceState
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ContainerServiceStateDetail
stateDetail
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
url