{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

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

-- |
-- Module      : Amazonka.Outposts.UpdateSiteRackPhysicalProperties
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Update the physical and logistical details for a rack at a site. For
-- more information about hardware requirements for racks, see
-- <https://docs.aws.amazon.com/outposts/latest/userguide/outposts-requirements.html#checklist Network readiness checklist>
-- in the Amazon Web Services Outposts User Guide.
--
-- To update a rack at a site with an order of @IN_PROGRESS@, you must wait
-- for the order to complete or cancel the order.
module Amazonka.Outposts.UpdateSiteRackPhysicalProperties
  ( -- * Creating a Request
    UpdateSiteRackPhysicalProperties (..),
    newUpdateSiteRackPhysicalProperties,

    -- * Request Lenses
    updateSiteRackPhysicalProperties_fiberOpticCableType,
    updateSiteRackPhysicalProperties_maximumSupportedWeightLbs,
    updateSiteRackPhysicalProperties_opticalStandard,
    updateSiteRackPhysicalProperties_powerConnector,
    updateSiteRackPhysicalProperties_powerDrawKva,
    updateSiteRackPhysicalProperties_powerFeedDrop,
    updateSiteRackPhysicalProperties_powerPhase,
    updateSiteRackPhysicalProperties_uplinkCount,
    updateSiteRackPhysicalProperties_uplinkGbps,
    updateSiteRackPhysicalProperties_siteId,

    -- * Destructuring the Response
    UpdateSiteRackPhysicalPropertiesResponse (..),
    newUpdateSiteRackPhysicalPropertiesResponse,

    -- * Response Lenses
    updateSiteRackPhysicalPropertiesResponse_site,
    updateSiteRackPhysicalPropertiesResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Outposts.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newUpdateSiteRackPhysicalProperties' smart constructor.
data UpdateSiteRackPhysicalProperties = UpdateSiteRackPhysicalProperties'
  { -- | The type of fiber that you will use to attach the Outpost to your
    -- network.
    UpdateSiteRackPhysicalProperties -> Maybe FiberOpticCableType
fiberOpticCableType :: Prelude.Maybe FiberOpticCableType,
    -- | The maximum rack weight that this site can support. @NO_LIMIT@ is over
    -- 2000lbs.
    UpdateSiteRackPhysicalProperties -> Maybe MaximumSupportedWeightLbs
maximumSupportedWeightLbs :: Prelude.Maybe MaximumSupportedWeightLbs,
    -- | The type of optical standard that you will use to attach the Outpost to
    -- your network. This field is dependent on uplink speed, fiber type, and
    -- distance to the upstream device. For more information about networking
    -- requirements for racks, see
    -- <https://docs.aws.amazon.com/outposts/latest/userguide/outposts-requirements.html#facility-networking Network>
    -- in the Amazon Web Services Outposts User Guide.
    --
    -- -   @OPTIC_10GBASE_SR@: 10GBASE-SR
    --
    -- -   @OPTIC_10GBASE_IR@: 10GBASE-IR
    --
    -- -   @OPTIC_10GBASE_LR@: 10GBASE-LR
    --
    -- -   @OPTIC_40GBASE_SR@: 40GBASE-SR
    --
    -- -   @OPTIC_40GBASE_ESR@: 40GBASE-ESR
    --
    -- -   @OPTIC_40GBASE_IR4_LR4L@: 40GBASE-IR (LR4L)
    --
    -- -   @OPTIC_40GBASE_LR4@: 40GBASE-LR4
    --
    -- -   @OPTIC_100GBASE_SR4@: 100GBASE-SR4
    --
    -- -   @OPTIC_100GBASE_CWDM4@: 100GBASE-CWDM4
    --
    -- -   @OPTIC_100GBASE_LR4@: 100GBASE-LR4
    --
    -- -   @OPTIC_100G_PSM4_MSA@: 100G PSM4 MSA
    --
    -- -   @OPTIC_1000BASE_LX@: 1000Base-LX
    --
    -- -   @OPTIC_1000BASE_SX@ : 1000Base-SX
    UpdateSiteRackPhysicalProperties -> Maybe OpticalStandard
opticalStandard :: Prelude.Maybe OpticalStandard,
    -- | The power connector that Amazon Web Services should plan to provide for
    -- connections to the hardware. Note the correlation between @PowerPhase@
    -- and @PowerConnector@.
    --
    -- -   Single-phase AC feed
    --
    --     -   __L6-30P__ – (common in US); 30A; single phase
    --
    --     -   __IEC309 (blue)__ – P+N+E, 6hr; 32 A; single phase
    --
    -- -   Three-phase AC feed
    --
    --     -   __AH530P7W (red)__ – 3P+N+E, 7hr; 30A; three phase
    --
    --     -   __AH532P6W (red)__ – 3P+N+E, 6hr; 32A; three phase
    UpdateSiteRackPhysicalProperties -> Maybe PowerConnector
powerConnector :: Prelude.Maybe PowerConnector,
    -- | The power draw, in kVA, available at the hardware placement position for
    -- the rack.
    UpdateSiteRackPhysicalProperties -> Maybe PowerDrawKva
powerDrawKva :: Prelude.Maybe PowerDrawKva,
    -- | Indicates whether the power feed comes above or below the rack.
    UpdateSiteRackPhysicalProperties -> Maybe PowerFeedDrop
powerFeedDrop :: Prelude.Maybe PowerFeedDrop,
    -- | The power option that you can provide for hardware.
    --
    -- -   Single-phase AC feed: 200 V to 277 V, 50 Hz or 60 Hz
    --
    -- -   Three-phase AC feed: 346 V to 480 V, 50 Hz or 60 Hz
    UpdateSiteRackPhysicalProperties -> Maybe PowerPhase
powerPhase :: Prelude.Maybe PowerPhase,
    -- | Racks come with two Outpost network devices. Depending on the supported
    -- uplink speed at the site, the Outpost network devices provide a variable
    -- number of uplinks. Specify the number of uplinks for each Outpost
    -- network device that you intend to use to connect the rack to your
    -- network. Note the correlation between @UplinkGbps@ and @UplinkCount@.
    --
    -- -   1Gbps - Uplinks available: 1, 2, 4, 6, 8
    --
    -- -   10Gbps - Uplinks available: 1, 2, 4, 8, 12, 16
    --
    -- -   40 and 100 Gbps- Uplinks available: 1, 2, 4
    UpdateSiteRackPhysicalProperties -> Maybe UplinkCount
uplinkCount :: Prelude.Maybe UplinkCount,
    -- | The uplink speed the rack should support for the connection to the
    -- Region.
    UpdateSiteRackPhysicalProperties -> Maybe UplinkGbps
uplinkGbps :: Prelude.Maybe UplinkGbps,
    -- | The ID or the Amazon Resource Name (ARN) of the site.
    UpdateSiteRackPhysicalProperties -> Text
siteId :: Prelude.Text
  }
  deriving (UpdateSiteRackPhysicalProperties
-> UpdateSiteRackPhysicalProperties -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateSiteRackPhysicalProperties
-> UpdateSiteRackPhysicalProperties -> Bool
$c/= :: UpdateSiteRackPhysicalProperties
-> UpdateSiteRackPhysicalProperties -> Bool
== :: UpdateSiteRackPhysicalProperties
-> UpdateSiteRackPhysicalProperties -> Bool
$c== :: UpdateSiteRackPhysicalProperties
-> UpdateSiteRackPhysicalProperties -> Bool
Prelude.Eq, ReadPrec [UpdateSiteRackPhysicalProperties]
ReadPrec UpdateSiteRackPhysicalProperties
Int -> ReadS UpdateSiteRackPhysicalProperties
ReadS [UpdateSiteRackPhysicalProperties]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateSiteRackPhysicalProperties]
$creadListPrec :: ReadPrec [UpdateSiteRackPhysicalProperties]
readPrec :: ReadPrec UpdateSiteRackPhysicalProperties
$creadPrec :: ReadPrec UpdateSiteRackPhysicalProperties
readList :: ReadS [UpdateSiteRackPhysicalProperties]
$creadList :: ReadS [UpdateSiteRackPhysicalProperties]
readsPrec :: Int -> ReadS UpdateSiteRackPhysicalProperties
$creadsPrec :: Int -> ReadS UpdateSiteRackPhysicalProperties
Prelude.Read, Int -> UpdateSiteRackPhysicalProperties -> ShowS
[UpdateSiteRackPhysicalProperties] -> ShowS
UpdateSiteRackPhysicalProperties -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateSiteRackPhysicalProperties] -> ShowS
$cshowList :: [UpdateSiteRackPhysicalProperties] -> ShowS
show :: UpdateSiteRackPhysicalProperties -> String
$cshow :: UpdateSiteRackPhysicalProperties -> String
showsPrec :: Int -> UpdateSiteRackPhysicalProperties -> ShowS
$cshowsPrec :: Int -> UpdateSiteRackPhysicalProperties -> ShowS
Prelude.Show, forall x.
Rep UpdateSiteRackPhysicalProperties x
-> UpdateSiteRackPhysicalProperties
forall x.
UpdateSiteRackPhysicalProperties
-> Rep UpdateSiteRackPhysicalProperties x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateSiteRackPhysicalProperties x
-> UpdateSiteRackPhysicalProperties
$cfrom :: forall x.
UpdateSiteRackPhysicalProperties
-> Rep UpdateSiteRackPhysicalProperties x
Prelude.Generic)

-- |
-- Create a value of 'UpdateSiteRackPhysicalProperties' 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:
--
-- 'fiberOpticCableType', 'updateSiteRackPhysicalProperties_fiberOpticCableType' - The type of fiber that you will use to attach the Outpost to your
-- network.
--
-- 'maximumSupportedWeightLbs', 'updateSiteRackPhysicalProperties_maximumSupportedWeightLbs' - The maximum rack weight that this site can support. @NO_LIMIT@ is over
-- 2000lbs.
--
-- 'opticalStandard', 'updateSiteRackPhysicalProperties_opticalStandard' - The type of optical standard that you will use to attach the Outpost to
-- your network. This field is dependent on uplink speed, fiber type, and
-- distance to the upstream device. For more information about networking
-- requirements for racks, see
-- <https://docs.aws.amazon.com/outposts/latest/userguide/outposts-requirements.html#facility-networking Network>
-- in the Amazon Web Services Outposts User Guide.
--
-- -   @OPTIC_10GBASE_SR@: 10GBASE-SR
--
-- -   @OPTIC_10GBASE_IR@: 10GBASE-IR
--
-- -   @OPTIC_10GBASE_LR@: 10GBASE-LR
--
-- -   @OPTIC_40GBASE_SR@: 40GBASE-SR
--
-- -   @OPTIC_40GBASE_ESR@: 40GBASE-ESR
--
-- -   @OPTIC_40GBASE_IR4_LR4L@: 40GBASE-IR (LR4L)
--
-- -   @OPTIC_40GBASE_LR4@: 40GBASE-LR4
--
-- -   @OPTIC_100GBASE_SR4@: 100GBASE-SR4
--
-- -   @OPTIC_100GBASE_CWDM4@: 100GBASE-CWDM4
--
-- -   @OPTIC_100GBASE_LR4@: 100GBASE-LR4
--
-- -   @OPTIC_100G_PSM4_MSA@: 100G PSM4 MSA
--
-- -   @OPTIC_1000BASE_LX@: 1000Base-LX
--
-- -   @OPTIC_1000BASE_SX@ : 1000Base-SX
--
-- 'powerConnector', 'updateSiteRackPhysicalProperties_powerConnector' - The power connector that Amazon Web Services should plan to provide for
-- connections to the hardware. Note the correlation between @PowerPhase@
-- and @PowerConnector@.
--
-- -   Single-phase AC feed
--
--     -   __L6-30P__ – (common in US); 30A; single phase
--
--     -   __IEC309 (blue)__ – P+N+E, 6hr; 32 A; single phase
--
-- -   Three-phase AC feed
--
--     -   __AH530P7W (red)__ – 3P+N+E, 7hr; 30A; three phase
--
--     -   __AH532P6W (red)__ – 3P+N+E, 6hr; 32A; three phase
--
-- 'powerDrawKva', 'updateSiteRackPhysicalProperties_powerDrawKva' - The power draw, in kVA, available at the hardware placement position for
-- the rack.
--
-- 'powerFeedDrop', 'updateSiteRackPhysicalProperties_powerFeedDrop' - Indicates whether the power feed comes above or below the rack.
--
-- 'powerPhase', 'updateSiteRackPhysicalProperties_powerPhase' - The power option that you can provide for hardware.
--
-- -   Single-phase AC feed: 200 V to 277 V, 50 Hz or 60 Hz
--
-- -   Three-phase AC feed: 346 V to 480 V, 50 Hz or 60 Hz
--
-- 'uplinkCount', 'updateSiteRackPhysicalProperties_uplinkCount' - Racks come with two Outpost network devices. Depending on the supported
-- uplink speed at the site, the Outpost network devices provide a variable
-- number of uplinks. Specify the number of uplinks for each Outpost
-- network device that you intend to use to connect the rack to your
-- network. Note the correlation between @UplinkGbps@ and @UplinkCount@.
--
-- -   1Gbps - Uplinks available: 1, 2, 4, 6, 8
--
-- -   10Gbps - Uplinks available: 1, 2, 4, 8, 12, 16
--
-- -   40 and 100 Gbps- Uplinks available: 1, 2, 4
--
-- 'uplinkGbps', 'updateSiteRackPhysicalProperties_uplinkGbps' - The uplink speed the rack should support for the connection to the
-- Region.
--
-- 'siteId', 'updateSiteRackPhysicalProperties_siteId' - The ID or the Amazon Resource Name (ARN) of the site.
newUpdateSiteRackPhysicalProperties ::
  -- | 'siteId'
  Prelude.Text ->
  UpdateSiteRackPhysicalProperties
newUpdateSiteRackPhysicalProperties :: Text -> UpdateSiteRackPhysicalProperties
newUpdateSiteRackPhysicalProperties Text
pSiteId_ =
  UpdateSiteRackPhysicalProperties'
    { $sel:fiberOpticCableType:UpdateSiteRackPhysicalProperties' :: Maybe FiberOpticCableType
fiberOpticCableType =
        forall a. Maybe a
Prelude.Nothing,
      $sel:maximumSupportedWeightLbs:UpdateSiteRackPhysicalProperties' :: Maybe MaximumSupportedWeightLbs
maximumSupportedWeightLbs =
        forall a. Maybe a
Prelude.Nothing,
      $sel:opticalStandard:UpdateSiteRackPhysicalProperties' :: Maybe OpticalStandard
opticalStandard = forall a. Maybe a
Prelude.Nothing,
      $sel:powerConnector:UpdateSiteRackPhysicalProperties' :: Maybe PowerConnector
powerConnector = forall a. Maybe a
Prelude.Nothing,
      $sel:powerDrawKva:UpdateSiteRackPhysicalProperties' :: Maybe PowerDrawKva
powerDrawKva = forall a. Maybe a
Prelude.Nothing,
      $sel:powerFeedDrop:UpdateSiteRackPhysicalProperties' :: Maybe PowerFeedDrop
powerFeedDrop = forall a. Maybe a
Prelude.Nothing,
      $sel:powerPhase:UpdateSiteRackPhysicalProperties' :: Maybe PowerPhase
powerPhase = forall a. Maybe a
Prelude.Nothing,
      $sel:uplinkCount:UpdateSiteRackPhysicalProperties' :: Maybe UplinkCount
uplinkCount = forall a. Maybe a
Prelude.Nothing,
      $sel:uplinkGbps:UpdateSiteRackPhysicalProperties' :: Maybe UplinkGbps
uplinkGbps = forall a. Maybe a
Prelude.Nothing,
      $sel:siteId:UpdateSiteRackPhysicalProperties' :: Text
siteId = Text
pSiteId_
    }

-- | The type of fiber that you will use to attach the Outpost to your
-- network.
updateSiteRackPhysicalProperties_fiberOpticCableType :: Lens.Lens' UpdateSiteRackPhysicalProperties (Prelude.Maybe FiberOpticCableType)
updateSiteRackPhysicalProperties_fiberOpticCableType :: Lens' UpdateSiteRackPhysicalProperties (Maybe FiberOpticCableType)
updateSiteRackPhysicalProperties_fiberOpticCableType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSiteRackPhysicalProperties' {Maybe FiberOpticCableType
fiberOpticCableType :: Maybe FiberOpticCableType
$sel:fiberOpticCableType:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe FiberOpticCableType
fiberOpticCableType} -> Maybe FiberOpticCableType
fiberOpticCableType) (\s :: UpdateSiteRackPhysicalProperties
s@UpdateSiteRackPhysicalProperties' {} Maybe FiberOpticCableType
a -> UpdateSiteRackPhysicalProperties
s {$sel:fiberOpticCableType:UpdateSiteRackPhysicalProperties' :: Maybe FiberOpticCableType
fiberOpticCableType = Maybe FiberOpticCableType
a} :: UpdateSiteRackPhysicalProperties)

-- | The maximum rack weight that this site can support. @NO_LIMIT@ is over
-- 2000lbs.
updateSiteRackPhysicalProperties_maximumSupportedWeightLbs :: Lens.Lens' UpdateSiteRackPhysicalProperties (Prelude.Maybe MaximumSupportedWeightLbs)
updateSiteRackPhysicalProperties_maximumSupportedWeightLbs :: Lens'
  UpdateSiteRackPhysicalProperties (Maybe MaximumSupportedWeightLbs)
updateSiteRackPhysicalProperties_maximumSupportedWeightLbs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSiteRackPhysicalProperties' {Maybe MaximumSupportedWeightLbs
maximumSupportedWeightLbs :: Maybe MaximumSupportedWeightLbs
$sel:maximumSupportedWeightLbs:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe MaximumSupportedWeightLbs
maximumSupportedWeightLbs} -> Maybe MaximumSupportedWeightLbs
maximumSupportedWeightLbs) (\s :: UpdateSiteRackPhysicalProperties
s@UpdateSiteRackPhysicalProperties' {} Maybe MaximumSupportedWeightLbs
a -> UpdateSiteRackPhysicalProperties
s {$sel:maximumSupportedWeightLbs:UpdateSiteRackPhysicalProperties' :: Maybe MaximumSupportedWeightLbs
maximumSupportedWeightLbs = Maybe MaximumSupportedWeightLbs
a} :: UpdateSiteRackPhysicalProperties)

-- | The type of optical standard that you will use to attach the Outpost to
-- your network. This field is dependent on uplink speed, fiber type, and
-- distance to the upstream device. For more information about networking
-- requirements for racks, see
-- <https://docs.aws.amazon.com/outposts/latest/userguide/outposts-requirements.html#facility-networking Network>
-- in the Amazon Web Services Outposts User Guide.
--
-- -   @OPTIC_10GBASE_SR@: 10GBASE-SR
--
-- -   @OPTIC_10GBASE_IR@: 10GBASE-IR
--
-- -   @OPTIC_10GBASE_LR@: 10GBASE-LR
--
-- -   @OPTIC_40GBASE_SR@: 40GBASE-SR
--
-- -   @OPTIC_40GBASE_ESR@: 40GBASE-ESR
--
-- -   @OPTIC_40GBASE_IR4_LR4L@: 40GBASE-IR (LR4L)
--
-- -   @OPTIC_40GBASE_LR4@: 40GBASE-LR4
--
-- -   @OPTIC_100GBASE_SR4@: 100GBASE-SR4
--
-- -   @OPTIC_100GBASE_CWDM4@: 100GBASE-CWDM4
--
-- -   @OPTIC_100GBASE_LR4@: 100GBASE-LR4
--
-- -   @OPTIC_100G_PSM4_MSA@: 100G PSM4 MSA
--
-- -   @OPTIC_1000BASE_LX@: 1000Base-LX
--
-- -   @OPTIC_1000BASE_SX@ : 1000Base-SX
updateSiteRackPhysicalProperties_opticalStandard :: Lens.Lens' UpdateSiteRackPhysicalProperties (Prelude.Maybe OpticalStandard)
updateSiteRackPhysicalProperties_opticalStandard :: Lens' UpdateSiteRackPhysicalProperties (Maybe OpticalStandard)
updateSiteRackPhysicalProperties_opticalStandard = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSiteRackPhysicalProperties' {Maybe OpticalStandard
opticalStandard :: Maybe OpticalStandard
$sel:opticalStandard:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe OpticalStandard
opticalStandard} -> Maybe OpticalStandard
opticalStandard) (\s :: UpdateSiteRackPhysicalProperties
s@UpdateSiteRackPhysicalProperties' {} Maybe OpticalStandard
a -> UpdateSiteRackPhysicalProperties
s {$sel:opticalStandard:UpdateSiteRackPhysicalProperties' :: Maybe OpticalStandard
opticalStandard = Maybe OpticalStandard
a} :: UpdateSiteRackPhysicalProperties)

-- | The power connector that Amazon Web Services should plan to provide for
-- connections to the hardware. Note the correlation between @PowerPhase@
-- and @PowerConnector@.
--
-- -   Single-phase AC feed
--
--     -   __L6-30P__ – (common in US); 30A; single phase
--
--     -   __IEC309 (blue)__ – P+N+E, 6hr; 32 A; single phase
--
-- -   Three-phase AC feed
--
--     -   __AH530P7W (red)__ – 3P+N+E, 7hr; 30A; three phase
--
--     -   __AH532P6W (red)__ – 3P+N+E, 6hr; 32A; three phase
updateSiteRackPhysicalProperties_powerConnector :: Lens.Lens' UpdateSiteRackPhysicalProperties (Prelude.Maybe PowerConnector)
updateSiteRackPhysicalProperties_powerConnector :: Lens' UpdateSiteRackPhysicalProperties (Maybe PowerConnector)
updateSiteRackPhysicalProperties_powerConnector = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSiteRackPhysicalProperties' {Maybe PowerConnector
powerConnector :: Maybe PowerConnector
$sel:powerConnector:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerConnector
powerConnector} -> Maybe PowerConnector
powerConnector) (\s :: UpdateSiteRackPhysicalProperties
s@UpdateSiteRackPhysicalProperties' {} Maybe PowerConnector
a -> UpdateSiteRackPhysicalProperties
s {$sel:powerConnector:UpdateSiteRackPhysicalProperties' :: Maybe PowerConnector
powerConnector = Maybe PowerConnector
a} :: UpdateSiteRackPhysicalProperties)

-- | The power draw, in kVA, available at the hardware placement position for
-- the rack.
updateSiteRackPhysicalProperties_powerDrawKva :: Lens.Lens' UpdateSiteRackPhysicalProperties (Prelude.Maybe PowerDrawKva)
updateSiteRackPhysicalProperties_powerDrawKva :: Lens' UpdateSiteRackPhysicalProperties (Maybe PowerDrawKva)
updateSiteRackPhysicalProperties_powerDrawKva = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSiteRackPhysicalProperties' {Maybe PowerDrawKva
powerDrawKva :: Maybe PowerDrawKva
$sel:powerDrawKva:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerDrawKva
powerDrawKva} -> Maybe PowerDrawKva
powerDrawKva) (\s :: UpdateSiteRackPhysicalProperties
s@UpdateSiteRackPhysicalProperties' {} Maybe PowerDrawKva
a -> UpdateSiteRackPhysicalProperties
s {$sel:powerDrawKva:UpdateSiteRackPhysicalProperties' :: Maybe PowerDrawKva
powerDrawKva = Maybe PowerDrawKva
a} :: UpdateSiteRackPhysicalProperties)

-- | Indicates whether the power feed comes above or below the rack.
updateSiteRackPhysicalProperties_powerFeedDrop :: Lens.Lens' UpdateSiteRackPhysicalProperties (Prelude.Maybe PowerFeedDrop)
updateSiteRackPhysicalProperties_powerFeedDrop :: Lens' UpdateSiteRackPhysicalProperties (Maybe PowerFeedDrop)
updateSiteRackPhysicalProperties_powerFeedDrop = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSiteRackPhysicalProperties' {Maybe PowerFeedDrop
powerFeedDrop :: Maybe PowerFeedDrop
$sel:powerFeedDrop:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerFeedDrop
powerFeedDrop} -> Maybe PowerFeedDrop
powerFeedDrop) (\s :: UpdateSiteRackPhysicalProperties
s@UpdateSiteRackPhysicalProperties' {} Maybe PowerFeedDrop
a -> UpdateSiteRackPhysicalProperties
s {$sel:powerFeedDrop:UpdateSiteRackPhysicalProperties' :: Maybe PowerFeedDrop
powerFeedDrop = Maybe PowerFeedDrop
a} :: UpdateSiteRackPhysicalProperties)

-- | The power option that you can provide for hardware.
--
-- -   Single-phase AC feed: 200 V to 277 V, 50 Hz or 60 Hz
--
-- -   Three-phase AC feed: 346 V to 480 V, 50 Hz or 60 Hz
updateSiteRackPhysicalProperties_powerPhase :: Lens.Lens' UpdateSiteRackPhysicalProperties (Prelude.Maybe PowerPhase)
updateSiteRackPhysicalProperties_powerPhase :: Lens' UpdateSiteRackPhysicalProperties (Maybe PowerPhase)
updateSiteRackPhysicalProperties_powerPhase = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSiteRackPhysicalProperties' {Maybe PowerPhase
powerPhase :: Maybe PowerPhase
$sel:powerPhase:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerPhase
powerPhase} -> Maybe PowerPhase
powerPhase) (\s :: UpdateSiteRackPhysicalProperties
s@UpdateSiteRackPhysicalProperties' {} Maybe PowerPhase
a -> UpdateSiteRackPhysicalProperties
s {$sel:powerPhase:UpdateSiteRackPhysicalProperties' :: Maybe PowerPhase
powerPhase = Maybe PowerPhase
a} :: UpdateSiteRackPhysicalProperties)

-- | Racks come with two Outpost network devices. Depending on the supported
-- uplink speed at the site, the Outpost network devices provide a variable
-- number of uplinks. Specify the number of uplinks for each Outpost
-- network device that you intend to use to connect the rack to your
-- network. Note the correlation between @UplinkGbps@ and @UplinkCount@.
--
-- -   1Gbps - Uplinks available: 1, 2, 4, 6, 8
--
-- -   10Gbps - Uplinks available: 1, 2, 4, 8, 12, 16
--
-- -   40 and 100 Gbps- Uplinks available: 1, 2, 4
updateSiteRackPhysicalProperties_uplinkCount :: Lens.Lens' UpdateSiteRackPhysicalProperties (Prelude.Maybe UplinkCount)
updateSiteRackPhysicalProperties_uplinkCount :: Lens' UpdateSiteRackPhysicalProperties (Maybe UplinkCount)
updateSiteRackPhysicalProperties_uplinkCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSiteRackPhysicalProperties' {Maybe UplinkCount
uplinkCount :: Maybe UplinkCount
$sel:uplinkCount:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe UplinkCount
uplinkCount} -> Maybe UplinkCount
uplinkCount) (\s :: UpdateSiteRackPhysicalProperties
s@UpdateSiteRackPhysicalProperties' {} Maybe UplinkCount
a -> UpdateSiteRackPhysicalProperties
s {$sel:uplinkCount:UpdateSiteRackPhysicalProperties' :: Maybe UplinkCount
uplinkCount = Maybe UplinkCount
a} :: UpdateSiteRackPhysicalProperties)

-- | The uplink speed the rack should support for the connection to the
-- Region.
updateSiteRackPhysicalProperties_uplinkGbps :: Lens.Lens' UpdateSiteRackPhysicalProperties (Prelude.Maybe UplinkGbps)
updateSiteRackPhysicalProperties_uplinkGbps :: Lens' UpdateSiteRackPhysicalProperties (Maybe UplinkGbps)
updateSiteRackPhysicalProperties_uplinkGbps = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSiteRackPhysicalProperties' {Maybe UplinkGbps
uplinkGbps :: Maybe UplinkGbps
$sel:uplinkGbps:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe UplinkGbps
uplinkGbps} -> Maybe UplinkGbps
uplinkGbps) (\s :: UpdateSiteRackPhysicalProperties
s@UpdateSiteRackPhysicalProperties' {} Maybe UplinkGbps
a -> UpdateSiteRackPhysicalProperties
s {$sel:uplinkGbps:UpdateSiteRackPhysicalProperties' :: Maybe UplinkGbps
uplinkGbps = Maybe UplinkGbps
a} :: UpdateSiteRackPhysicalProperties)

-- | The ID or the Amazon Resource Name (ARN) of the site.
updateSiteRackPhysicalProperties_siteId :: Lens.Lens' UpdateSiteRackPhysicalProperties Prelude.Text
updateSiteRackPhysicalProperties_siteId :: Lens' UpdateSiteRackPhysicalProperties Text
updateSiteRackPhysicalProperties_siteId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSiteRackPhysicalProperties' {Text
siteId :: Text
$sel:siteId:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Text
siteId} -> Text
siteId) (\s :: UpdateSiteRackPhysicalProperties
s@UpdateSiteRackPhysicalProperties' {} Text
a -> UpdateSiteRackPhysicalProperties
s {$sel:siteId:UpdateSiteRackPhysicalProperties' :: Text
siteId = Text
a} :: UpdateSiteRackPhysicalProperties)

instance
  Core.AWSRequest
    UpdateSiteRackPhysicalProperties
  where
  type
    AWSResponse UpdateSiteRackPhysicalProperties =
      UpdateSiteRackPhysicalPropertiesResponse
  request :: (Service -> Service)
-> UpdateSiteRackPhysicalProperties
-> Request UpdateSiteRackPhysicalProperties
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.patchJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateSiteRackPhysicalProperties
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse UpdateSiteRackPhysicalProperties)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Site -> Int -> UpdateSiteRackPhysicalPropertiesResponse
UpdateSiteRackPhysicalPropertiesResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Site")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    UpdateSiteRackPhysicalProperties
  where
  hashWithSalt :: Int -> UpdateSiteRackPhysicalProperties -> Int
hashWithSalt
    Int
_salt
    UpdateSiteRackPhysicalProperties' {Maybe FiberOpticCableType
Maybe MaximumSupportedWeightLbs
Maybe OpticalStandard
Maybe PowerConnector
Maybe PowerDrawKva
Maybe PowerFeedDrop
Maybe PowerPhase
Maybe UplinkCount
Maybe UplinkGbps
Text
siteId :: Text
uplinkGbps :: Maybe UplinkGbps
uplinkCount :: Maybe UplinkCount
powerPhase :: Maybe PowerPhase
powerFeedDrop :: Maybe PowerFeedDrop
powerDrawKva :: Maybe PowerDrawKva
powerConnector :: Maybe PowerConnector
opticalStandard :: Maybe OpticalStandard
maximumSupportedWeightLbs :: Maybe MaximumSupportedWeightLbs
fiberOpticCableType :: Maybe FiberOpticCableType
$sel:siteId:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Text
$sel:uplinkGbps:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe UplinkGbps
$sel:uplinkCount:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe UplinkCount
$sel:powerPhase:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerPhase
$sel:powerFeedDrop:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerFeedDrop
$sel:powerDrawKva:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerDrawKva
$sel:powerConnector:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerConnector
$sel:opticalStandard:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe OpticalStandard
$sel:maximumSupportedWeightLbs:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe MaximumSupportedWeightLbs
$sel:fiberOpticCableType:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe FiberOpticCableType
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FiberOpticCableType
fiberOpticCableType
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MaximumSupportedWeightLbs
maximumSupportedWeightLbs
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OpticalStandard
opticalStandard
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PowerConnector
powerConnector
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PowerDrawKva
powerDrawKva
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PowerFeedDrop
powerFeedDrop
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PowerPhase
powerPhase
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UplinkCount
uplinkCount
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UplinkGbps
uplinkGbps
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
siteId

instance
  Prelude.NFData
    UpdateSiteRackPhysicalProperties
  where
  rnf :: UpdateSiteRackPhysicalProperties -> ()
rnf UpdateSiteRackPhysicalProperties' {Maybe FiberOpticCableType
Maybe MaximumSupportedWeightLbs
Maybe OpticalStandard
Maybe PowerConnector
Maybe PowerDrawKva
Maybe PowerFeedDrop
Maybe PowerPhase
Maybe UplinkCount
Maybe UplinkGbps
Text
siteId :: Text
uplinkGbps :: Maybe UplinkGbps
uplinkCount :: Maybe UplinkCount
powerPhase :: Maybe PowerPhase
powerFeedDrop :: Maybe PowerFeedDrop
powerDrawKva :: Maybe PowerDrawKva
powerConnector :: Maybe PowerConnector
opticalStandard :: Maybe OpticalStandard
maximumSupportedWeightLbs :: Maybe MaximumSupportedWeightLbs
fiberOpticCableType :: Maybe FiberOpticCableType
$sel:siteId:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Text
$sel:uplinkGbps:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe UplinkGbps
$sel:uplinkCount:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe UplinkCount
$sel:powerPhase:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerPhase
$sel:powerFeedDrop:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerFeedDrop
$sel:powerDrawKva:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerDrawKva
$sel:powerConnector:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerConnector
$sel:opticalStandard:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe OpticalStandard
$sel:maximumSupportedWeightLbs:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe MaximumSupportedWeightLbs
$sel:fiberOpticCableType:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe FiberOpticCableType
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe FiberOpticCableType
fiberOpticCableType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MaximumSupportedWeightLbs
maximumSupportedWeightLbs
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OpticalStandard
opticalStandard
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PowerConnector
powerConnector
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PowerDrawKva
powerDrawKva
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PowerFeedDrop
powerFeedDrop
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PowerPhase
powerPhase
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UplinkCount
uplinkCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UplinkGbps
uplinkGbps
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
siteId

instance
  Data.ToHeaders
    UpdateSiteRackPhysicalProperties
  where
  toHeaders :: UpdateSiteRackPhysicalProperties -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON UpdateSiteRackPhysicalProperties where
  toJSON :: UpdateSiteRackPhysicalProperties -> Value
toJSON UpdateSiteRackPhysicalProperties' {Maybe FiberOpticCableType
Maybe MaximumSupportedWeightLbs
Maybe OpticalStandard
Maybe PowerConnector
Maybe PowerDrawKva
Maybe PowerFeedDrop
Maybe PowerPhase
Maybe UplinkCount
Maybe UplinkGbps
Text
siteId :: Text
uplinkGbps :: Maybe UplinkGbps
uplinkCount :: Maybe UplinkCount
powerPhase :: Maybe PowerPhase
powerFeedDrop :: Maybe PowerFeedDrop
powerDrawKva :: Maybe PowerDrawKva
powerConnector :: Maybe PowerConnector
opticalStandard :: Maybe OpticalStandard
maximumSupportedWeightLbs :: Maybe MaximumSupportedWeightLbs
fiberOpticCableType :: Maybe FiberOpticCableType
$sel:siteId:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Text
$sel:uplinkGbps:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe UplinkGbps
$sel:uplinkCount:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe UplinkCount
$sel:powerPhase:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerPhase
$sel:powerFeedDrop:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerFeedDrop
$sel:powerDrawKva:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerDrawKva
$sel:powerConnector:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerConnector
$sel:opticalStandard:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe OpticalStandard
$sel:maximumSupportedWeightLbs:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe MaximumSupportedWeightLbs
$sel:fiberOpticCableType:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe FiberOpticCableType
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"FiberOpticCableType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe FiberOpticCableType
fiberOpticCableType,
            (Key
"MaximumSupportedWeightLbs" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe MaximumSupportedWeightLbs
maximumSupportedWeightLbs,
            (Key
"OpticalStandard" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OpticalStandard
opticalStandard,
            (Key
"PowerConnector" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe PowerConnector
powerConnector,
            (Key
"PowerDrawKva" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe PowerDrawKva
powerDrawKva,
            (Key
"PowerFeedDrop" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe PowerFeedDrop
powerFeedDrop,
            (Key
"PowerPhase" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe PowerPhase
powerPhase,
            (Key
"UplinkCount" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe UplinkCount
uplinkCount,
            (Key
"UplinkGbps" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe UplinkGbps
uplinkGbps
          ]
      )

instance Data.ToPath UpdateSiteRackPhysicalProperties where
  toPath :: UpdateSiteRackPhysicalProperties -> ByteString
toPath UpdateSiteRackPhysicalProperties' {Maybe FiberOpticCableType
Maybe MaximumSupportedWeightLbs
Maybe OpticalStandard
Maybe PowerConnector
Maybe PowerDrawKva
Maybe PowerFeedDrop
Maybe PowerPhase
Maybe UplinkCount
Maybe UplinkGbps
Text
siteId :: Text
uplinkGbps :: Maybe UplinkGbps
uplinkCount :: Maybe UplinkCount
powerPhase :: Maybe PowerPhase
powerFeedDrop :: Maybe PowerFeedDrop
powerDrawKva :: Maybe PowerDrawKva
powerConnector :: Maybe PowerConnector
opticalStandard :: Maybe OpticalStandard
maximumSupportedWeightLbs :: Maybe MaximumSupportedWeightLbs
fiberOpticCableType :: Maybe FiberOpticCableType
$sel:siteId:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Text
$sel:uplinkGbps:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe UplinkGbps
$sel:uplinkCount:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe UplinkCount
$sel:powerPhase:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerPhase
$sel:powerFeedDrop:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerFeedDrop
$sel:powerDrawKva:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerDrawKva
$sel:powerConnector:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe PowerConnector
$sel:opticalStandard:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe OpticalStandard
$sel:maximumSupportedWeightLbs:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe MaximumSupportedWeightLbs
$sel:fiberOpticCableType:UpdateSiteRackPhysicalProperties' :: UpdateSiteRackPhysicalProperties -> Maybe FiberOpticCableType
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/sites/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
siteId,
        ByteString
"/rackPhysicalProperties"
      ]

instance
  Data.ToQuery
    UpdateSiteRackPhysicalProperties
  where
  toQuery :: UpdateSiteRackPhysicalProperties -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newUpdateSiteRackPhysicalPropertiesResponse' smart constructor.
data UpdateSiteRackPhysicalPropertiesResponse = UpdateSiteRackPhysicalPropertiesResponse'
  { UpdateSiteRackPhysicalPropertiesResponse -> Maybe Site
site :: Prelude.Maybe Site,
    -- | The response's http status code.
    UpdateSiteRackPhysicalPropertiesResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateSiteRackPhysicalPropertiesResponse
-> UpdateSiteRackPhysicalPropertiesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateSiteRackPhysicalPropertiesResponse
-> UpdateSiteRackPhysicalPropertiesResponse -> Bool
$c/= :: UpdateSiteRackPhysicalPropertiesResponse
-> UpdateSiteRackPhysicalPropertiesResponse -> Bool
== :: UpdateSiteRackPhysicalPropertiesResponse
-> UpdateSiteRackPhysicalPropertiesResponse -> Bool
$c== :: UpdateSiteRackPhysicalPropertiesResponse
-> UpdateSiteRackPhysicalPropertiesResponse -> Bool
Prelude.Eq, ReadPrec [UpdateSiteRackPhysicalPropertiesResponse]
ReadPrec UpdateSiteRackPhysicalPropertiesResponse
Int -> ReadS UpdateSiteRackPhysicalPropertiesResponse
ReadS [UpdateSiteRackPhysicalPropertiesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateSiteRackPhysicalPropertiesResponse]
$creadListPrec :: ReadPrec [UpdateSiteRackPhysicalPropertiesResponse]
readPrec :: ReadPrec UpdateSiteRackPhysicalPropertiesResponse
$creadPrec :: ReadPrec UpdateSiteRackPhysicalPropertiesResponse
readList :: ReadS [UpdateSiteRackPhysicalPropertiesResponse]
$creadList :: ReadS [UpdateSiteRackPhysicalPropertiesResponse]
readsPrec :: Int -> ReadS UpdateSiteRackPhysicalPropertiesResponse
$creadsPrec :: Int -> ReadS UpdateSiteRackPhysicalPropertiesResponse
Prelude.Read, Int -> UpdateSiteRackPhysicalPropertiesResponse -> ShowS
[UpdateSiteRackPhysicalPropertiesResponse] -> ShowS
UpdateSiteRackPhysicalPropertiesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateSiteRackPhysicalPropertiesResponse] -> ShowS
$cshowList :: [UpdateSiteRackPhysicalPropertiesResponse] -> ShowS
show :: UpdateSiteRackPhysicalPropertiesResponse -> String
$cshow :: UpdateSiteRackPhysicalPropertiesResponse -> String
showsPrec :: Int -> UpdateSiteRackPhysicalPropertiesResponse -> ShowS
$cshowsPrec :: Int -> UpdateSiteRackPhysicalPropertiesResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateSiteRackPhysicalPropertiesResponse x
-> UpdateSiteRackPhysicalPropertiesResponse
forall x.
UpdateSiteRackPhysicalPropertiesResponse
-> Rep UpdateSiteRackPhysicalPropertiesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateSiteRackPhysicalPropertiesResponse x
-> UpdateSiteRackPhysicalPropertiesResponse
$cfrom :: forall x.
UpdateSiteRackPhysicalPropertiesResponse
-> Rep UpdateSiteRackPhysicalPropertiesResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateSiteRackPhysicalPropertiesResponse' 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:
--
-- 'site', 'updateSiteRackPhysicalPropertiesResponse_site' - Undocumented member.
--
-- 'httpStatus', 'updateSiteRackPhysicalPropertiesResponse_httpStatus' - The response's http status code.
newUpdateSiteRackPhysicalPropertiesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateSiteRackPhysicalPropertiesResponse
newUpdateSiteRackPhysicalPropertiesResponse :: Int -> UpdateSiteRackPhysicalPropertiesResponse
newUpdateSiteRackPhysicalPropertiesResponse
  Int
pHttpStatus_ =
    UpdateSiteRackPhysicalPropertiesResponse'
      { $sel:site:UpdateSiteRackPhysicalPropertiesResponse' :: Maybe Site
site =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:UpdateSiteRackPhysicalPropertiesResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | Undocumented member.
updateSiteRackPhysicalPropertiesResponse_site :: Lens.Lens' UpdateSiteRackPhysicalPropertiesResponse (Prelude.Maybe Site)
updateSiteRackPhysicalPropertiesResponse_site :: Lens' UpdateSiteRackPhysicalPropertiesResponse (Maybe Site)
updateSiteRackPhysicalPropertiesResponse_site = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSiteRackPhysicalPropertiesResponse' {Maybe Site
site :: Maybe Site
$sel:site:UpdateSiteRackPhysicalPropertiesResponse' :: UpdateSiteRackPhysicalPropertiesResponse -> Maybe Site
site} -> Maybe Site
site) (\s :: UpdateSiteRackPhysicalPropertiesResponse
s@UpdateSiteRackPhysicalPropertiesResponse' {} Maybe Site
a -> UpdateSiteRackPhysicalPropertiesResponse
s {$sel:site:UpdateSiteRackPhysicalPropertiesResponse' :: Maybe Site
site = Maybe Site
a} :: UpdateSiteRackPhysicalPropertiesResponse)

-- | The response's http status code.
updateSiteRackPhysicalPropertiesResponse_httpStatus :: Lens.Lens' UpdateSiteRackPhysicalPropertiesResponse Prelude.Int
updateSiteRackPhysicalPropertiesResponse_httpStatus :: Lens' UpdateSiteRackPhysicalPropertiesResponse Int
updateSiteRackPhysicalPropertiesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSiteRackPhysicalPropertiesResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateSiteRackPhysicalPropertiesResponse' :: UpdateSiteRackPhysicalPropertiesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateSiteRackPhysicalPropertiesResponse
s@UpdateSiteRackPhysicalPropertiesResponse' {} Int
a -> UpdateSiteRackPhysicalPropertiesResponse
s {$sel:httpStatus:UpdateSiteRackPhysicalPropertiesResponse' :: Int
httpStatus = Int
a} :: UpdateSiteRackPhysicalPropertiesResponse)

instance
  Prelude.NFData
    UpdateSiteRackPhysicalPropertiesResponse
  where
  rnf :: UpdateSiteRackPhysicalPropertiesResponse -> ()
rnf UpdateSiteRackPhysicalPropertiesResponse' {Int
Maybe Site
httpStatus :: Int
site :: Maybe Site
$sel:httpStatus:UpdateSiteRackPhysicalPropertiesResponse' :: UpdateSiteRackPhysicalPropertiesResponse -> Int
$sel:site:UpdateSiteRackPhysicalPropertiesResponse' :: UpdateSiteRackPhysicalPropertiesResponse -> Maybe Site
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Site
site
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus