packages feed

amazonka-route53-recovery-control-config-2.0: gen/Amazonka/Route53RecoveryControlConfig/Waiters.hs

{-# LANGUAGE DisambiguateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Route53RecoveryControlConfig.Waiters
-- 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.Route53RecoveryControlConfig.Waiters 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
import Amazonka.Route53RecoveryControlConfig.DescribeCluster
import Amazonka.Route53RecoveryControlConfig.DescribeControlPanel
import Amazonka.Route53RecoveryControlConfig.DescribeRoutingControl
import Amazonka.Route53RecoveryControlConfig.Lens
import Amazonka.Route53RecoveryControlConfig.Types

-- | Polls 'Amazonka.Route53RecoveryControlConfig.DescribeCluster' every 5 seconds until a successful state is reached. An error is returned after 26 failed checks.
newClusterCreated :: Core.Wait DescribeCluster
newClusterCreated =
  Core.Wait
    { Core.name = "ClusterCreated",
      Core.attempts = 26,
      Core.delay = 5,
      Core.acceptors =
        [ Core.matchAll
            "DEPLOYED"
            Core.AcceptSuccess
            ( describeClusterResponse_cluster
                Prelude.. Lens._Just
                Prelude.. cluster_status
                Prelude.. Lens._Just
                Prelude.. Lens.to Data.toTextCI
            ),
          Core.matchAll
            "PENDING"
            Core.AcceptRetry
            ( describeClusterResponse_cluster
                Prelude.. Lens._Just
                Prelude.. cluster_status
                Prelude.. Lens._Just
                Prelude.. Lens.to Data.toTextCI
            ),
          Core.matchStatus 500 Core.AcceptRetry
        ]
    }

-- | Polls 'Amazonka.Route53RecoveryControlConfig.DescribeCluster' every 5 seconds until a successful state is reached. An error is returned after 26 failed checks.
newClusterDeleted :: Core.Wait DescribeCluster
newClusterDeleted =
  Core.Wait
    { Core.name = "ClusterDeleted",
      Core.attempts = 26,
      Core.delay = 5,
      Core.acceptors =
        [ Core.matchStatus 404 Core.AcceptSuccess,
          Core.matchAll
            "PENDING_DELETION"
            Core.AcceptRetry
            ( describeClusterResponse_cluster
                Prelude.. Lens._Just
                Prelude.. cluster_status
                Prelude.. Lens._Just
                Prelude.. Lens.to Data.toTextCI
            ),
          Core.matchStatus 500 Core.AcceptRetry
        ]
    }

-- | Polls 'Amazonka.Route53RecoveryControlConfig.DescribeControlPanel' every 5 seconds until a successful state is reached. An error is returned after 26 failed checks.
newControlPanelCreated :: Core.Wait DescribeControlPanel
newControlPanelCreated =
  Core.Wait
    { Core.name = "ControlPanelCreated",
      Core.attempts = 26,
      Core.delay = 5,
      Core.acceptors =
        [ Core.matchAll
            "DEPLOYED"
            Core.AcceptSuccess
            ( describeControlPanelResponse_controlPanel
                Prelude.. Lens._Just
                Prelude.. controlPanel_status
                Prelude.. Lens._Just
                Prelude.. Lens.to Data.toTextCI
            ),
          Core.matchAll
            "PENDING"
            Core.AcceptRetry
            ( describeControlPanelResponse_controlPanel
                Prelude.. Lens._Just
                Prelude.. controlPanel_status
                Prelude.. Lens._Just
                Prelude.. Lens.to Data.toTextCI
            ),
          Core.matchStatus 500 Core.AcceptRetry
        ]
    }

-- | Polls 'Amazonka.Route53RecoveryControlConfig.DescribeControlPanel' every 5 seconds until a successful state is reached. An error is returned after 26 failed checks.
newControlPanelDeleted :: Core.Wait DescribeControlPanel
newControlPanelDeleted =
  Core.Wait
    { Core.name = "ControlPanelDeleted",
      Core.attempts = 26,
      Core.delay = 5,
      Core.acceptors =
        [ Core.matchStatus 404 Core.AcceptSuccess,
          Core.matchAll
            "PENDING_DELETION"
            Core.AcceptRetry
            ( describeControlPanelResponse_controlPanel
                Prelude.. Lens._Just
                Prelude.. controlPanel_status
                Prelude.. Lens._Just
                Prelude.. Lens.to Data.toTextCI
            ),
          Core.matchStatus 500 Core.AcceptRetry
        ]
    }

-- | Polls 'Amazonka.Route53RecoveryControlConfig.DescribeRoutingControl' every 5 seconds until a successful state is reached. An error is returned after 26 failed checks.
newRoutingControlCreated :: Core.Wait DescribeRoutingControl
newRoutingControlCreated =
  Core.Wait
    { Core.name = "RoutingControlCreated",
      Core.attempts = 26,
      Core.delay = 5,
      Core.acceptors =
        [ Core.matchAll
            "DEPLOYED"
            Core.AcceptSuccess
            ( describeRoutingControlResponse_routingControl
                Prelude.. Lens._Just
                Prelude.. routingControl_status
                Prelude.. Lens._Just
                Prelude.. Lens.to Data.toTextCI
            ),
          Core.matchAll
            "PENDING"
            Core.AcceptRetry
            ( describeRoutingControlResponse_routingControl
                Prelude.. Lens._Just
                Prelude.. routingControl_status
                Prelude.. Lens._Just
                Prelude.. Lens.to Data.toTextCI
            ),
          Core.matchStatus 500 Core.AcceptRetry
        ]
    }

-- | Polls 'Amazonka.Route53RecoveryControlConfig.DescribeRoutingControl' every 5 seconds until a successful state is reached. An error is returned after 26 failed checks.
newRoutingControlDeleted :: Core.Wait DescribeRoutingControl
newRoutingControlDeleted =
  Core.Wait
    { Core.name = "RoutingControlDeleted",
      Core.attempts = 26,
      Core.delay = 5,
      Core.acceptors =
        [ Core.matchStatus 404 Core.AcceptSuccess,
          Core.matchAll
            "PENDING_DELETION"
            Core.AcceptRetry
            ( describeRoutingControlResponse_routingControl
                Prelude.. Lens._Just
                Prelude.. routingControl_status
                Prelude.. Lens._Just
                Prelude.. Lens.to Data.toTextCI
            ),
          Core.matchStatus 500 Core.AcceptRetry
        ]
    }