/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include <aws/outposts/Outposts_EXPORTS.h> #include <aws/outposts/model/PowerDrawKva.h> #include <aws/outposts/model/PowerPhase.h> #include <aws/outposts/model/PowerConnector.h> #include <aws/outposts/model/PowerFeedDrop.h> #include <aws/outposts/model/UplinkGbps.h> #include <aws/outposts/model/UplinkCount.h> #include <aws/outposts/model/FiberOpticCableType.h> #include <aws/outposts/model/OpticalStandard.h> #include <aws/outposts/model/MaximumSupportedWeightLbs.h> #include <utility> namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Outposts { namespace Model { /** * <p> Information about the physical and logistical details for racks at sites. * For more information about hardware requirements for racks, see <a * href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-requirements.html#checklist">Network * readiness checklist</a> in the Amazon Web Services Outposts User Guide. * </p><p><h3>See Also:</h3> <a * href="http://docs.aws.amazon.com/goto/WebAPI/outposts-2019-12-03/RackPhysicalProperties">AWS * API Reference</a></p> */ class RackPhysicalProperties { public: AWS_OUTPOSTS_API RackPhysicalProperties(); AWS_OUTPOSTS_API RackPhysicalProperties(Aws::Utils::Json::JsonView jsonValue); AWS_OUTPOSTS_API RackPhysicalProperties& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_OUTPOSTS_API Aws::Utils::Json::JsonValue Jsonize() const; /** * <p>The power draw available at the hardware placement position for the rack. * </p> */ inline const PowerDrawKva& GetPowerDrawKva() const{ return m_powerDrawKva; } /** * <p>The power draw available at the hardware placement position for the rack. * </p> */ inline bool PowerDrawKvaHasBeenSet() const { return m_powerDrawKvaHasBeenSet; } /** * <p>The power draw available at the hardware placement position for the rack. * </p> */ inline void SetPowerDrawKva(const PowerDrawKva& value) { m_powerDrawKvaHasBeenSet = true; m_powerDrawKva = value; } /** * <p>The power draw available at the hardware placement position for the rack. * </p> */ inline void SetPowerDrawKva(PowerDrawKva&& value) { m_powerDrawKvaHasBeenSet = true; m_powerDrawKva = std::move(value); } /** * <p>The power draw available at the hardware placement position for the rack. * </p> */ inline RackPhysicalProperties& WithPowerDrawKva(const PowerDrawKva& value) { SetPowerDrawKva(value); return *this;} /** * <p>The power draw available at the hardware placement position for the rack. * </p> */ inline RackPhysicalProperties& WithPowerDrawKva(PowerDrawKva&& value) { SetPowerDrawKva(std::move(value)); return *this;} /** * <p>The power option that you can provide for hardware.</p> */ inline const PowerPhase& GetPowerPhase() const{ return m_powerPhase; } /** * <p>The power option that you can provide for hardware.</p> */ inline bool PowerPhaseHasBeenSet() const { return m_powerPhaseHasBeenSet; } /** * <p>The power option that you can provide for hardware.</p> */ inline void SetPowerPhase(const PowerPhase& value) { m_powerPhaseHasBeenSet = true; m_powerPhase = value; } /** * <p>The power option that you can provide for hardware.</p> */ inline void SetPowerPhase(PowerPhase&& value) { m_powerPhaseHasBeenSet = true; m_powerPhase = std::move(value); } /** * <p>The power option that you can provide for hardware.</p> */ inline RackPhysicalProperties& WithPowerPhase(const PowerPhase& value) { SetPowerPhase(value); return *this;} /** * <p>The power option that you can provide for hardware.</p> */ inline RackPhysicalProperties& WithPowerPhase(PowerPhase&& value) { SetPowerPhase(std::move(value)); return *this;} /** * <p>The power connector for the hardware. </p> */ inline const PowerConnector& GetPowerConnector() const{ return m_powerConnector; } /** * <p>The power connector for the hardware. </p> */ inline bool PowerConnectorHasBeenSet() const { return m_powerConnectorHasBeenSet; } /** * <p>The power connector for the hardware. </p> */ inline void SetPowerConnector(const PowerConnector& value) { m_powerConnectorHasBeenSet = true; m_powerConnector = value; } /** * <p>The power connector for the hardware. </p> */ inline void SetPowerConnector(PowerConnector&& value) { m_powerConnectorHasBeenSet = true; m_powerConnector = std::move(value); } /** * <p>The power connector for the hardware. </p> */ inline RackPhysicalProperties& WithPowerConnector(const PowerConnector& value) { SetPowerConnector(value); return *this;} /** * <p>The power connector for the hardware. </p> */ inline RackPhysicalProperties& WithPowerConnector(PowerConnector&& value) { SetPowerConnector(std::move(value)); return *this;} /** * <p>The position of the power feed.</p> */ inline const PowerFeedDrop& GetPowerFeedDrop() const{ return m_powerFeedDrop; } /** * <p>The position of the power feed.</p> */ inline bool PowerFeedDropHasBeenSet() const { return m_powerFeedDropHasBeenSet; } /** * <p>The position of the power feed.</p> */ inline void SetPowerFeedDrop(const PowerFeedDrop& value) { m_powerFeedDropHasBeenSet = true; m_powerFeedDrop = value; } /** * <p>The position of the power feed.</p> */ inline void SetPowerFeedDrop(PowerFeedDrop&& value) { m_powerFeedDropHasBeenSet = true; m_powerFeedDrop = std::move(value); } /** * <p>The position of the power feed.</p> */ inline RackPhysicalProperties& WithPowerFeedDrop(const PowerFeedDrop& value) { SetPowerFeedDrop(value); return *this;} /** * <p>The position of the power feed.</p> */ inline RackPhysicalProperties& WithPowerFeedDrop(PowerFeedDrop&& value) { SetPowerFeedDrop(std::move(value)); return *this;} /** * <p>The uplink speed the rack supports for the connection to the Region. </p> */ inline const UplinkGbps& GetUplinkGbps() const{ return m_uplinkGbps; } /** * <p>The uplink speed the rack supports for the connection to the Region. </p> */ inline bool UplinkGbpsHasBeenSet() const { return m_uplinkGbpsHasBeenSet; } /** * <p>The uplink speed the rack supports for the connection to the Region. </p> */ inline void SetUplinkGbps(const UplinkGbps& value) { m_uplinkGbpsHasBeenSet = true; m_uplinkGbps = value; } /** * <p>The uplink speed the rack supports for the connection to the Region. </p> */ inline void SetUplinkGbps(UplinkGbps&& value) { m_uplinkGbpsHasBeenSet = true; m_uplinkGbps = std::move(value); } /** * <p>The uplink speed the rack supports for the connection to the Region. </p> */ inline RackPhysicalProperties& WithUplinkGbps(const UplinkGbps& value) { SetUplinkGbps(value); return *this;} /** * <p>The uplink speed the rack supports for the connection to the Region. </p> */ inline RackPhysicalProperties& WithUplinkGbps(UplinkGbps&& value) { SetUplinkGbps(std::move(value)); return *this;} /** * <p>The number of uplinks each Outpost network device.</p> */ inline const UplinkCount& GetUplinkCount() const{ return m_uplinkCount; } /** * <p>The number of uplinks each Outpost network device.</p> */ inline bool UplinkCountHasBeenSet() const { return m_uplinkCountHasBeenSet; } /** * <p>The number of uplinks each Outpost network device.</p> */ inline void SetUplinkCount(const UplinkCount& value) { m_uplinkCountHasBeenSet = true; m_uplinkCount = value; } /** * <p>The number of uplinks each Outpost network device.</p> */ inline void SetUplinkCount(UplinkCount&& value) { m_uplinkCountHasBeenSet = true; m_uplinkCount = std::move(value); } /** * <p>The number of uplinks each Outpost network device.</p> */ inline RackPhysicalProperties& WithUplinkCount(const UplinkCount& value) { SetUplinkCount(value); return *this;} /** * <p>The number of uplinks each Outpost network device.</p> */ inline RackPhysicalProperties& WithUplinkCount(UplinkCount&& value) { SetUplinkCount(std::move(value)); return *this;} /** * <p>The type of fiber used to attach the Outpost to the network. </p> */ inline const FiberOpticCableType& GetFiberOpticCableType() const{ return m_fiberOpticCableType; } /** * <p>The type of fiber used to attach the Outpost to the network. </p> */ inline bool FiberOpticCableTypeHasBeenSet() const { return m_fiberOpticCableTypeHasBeenSet; } /** * <p>The type of fiber used to attach the Outpost to the network. </p> */ inline void SetFiberOpticCableType(const FiberOpticCableType& value) { m_fiberOpticCableTypeHasBeenSet = true; m_fiberOpticCableType = value; } /** * <p>The type of fiber used to attach the Outpost to the network. </p> */ inline void SetFiberOpticCableType(FiberOpticCableType&& value) { m_fiberOpticCableTypeHasBeenSet = true; m_fiberOpticCableType = std::move(value); } /** * <p>The type of fiber used to attach the Outpost to the network. </p> */ inline RackPhysicalProperties& WithFiberOpticCableType(const FiberOpticCableType& value) { SetFiberOpticCableType(value); return *this;} /** * <p>The type of fiber used to attach the Outpost to the network. </p> */ inline RackPhysicalProperties& WithFiberOpticCableType(FiberOpticCableType&& value) { SetFiberOpticCableType(std::move(value)); return *this;} /** * <p>The type of optical standard used to attach the Outpost to the 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 <a * href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-requirements.html#facility-networking">Network</a> * in the Amazon Web Services Outposts User Guide. </p> */ inline const OpticalStandard& GetOpticalStandard() const{ return m_opticalStandard; } /** * <p>The type of optical standard used to attach the Outpost to the 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 <a * href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-requirements.html#facility-networking">Network</a> * in the Amazon Web Services Outposts User Guide. </p> */ inline bool OpticalStandardHasBeenSet() const { return m_opticalStandardHasBeenSet; } /** * <p>The type of optical standard used to attach the Outpost to the 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 <a * href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-requirements.html#facility-networking">Network</a> * in the Amazon Web Services Outposts User Guide. </p> */ inline void SetOpticalStandard(const OpticalStandard& value) { m_opticalStandardHasBeenSet = true; m_opticalStandard = value; } /** * <p>The type of optical standard used to attach the Outpost to the 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 <a * href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-requirements.html#facility-networking">Network</a> * in the Amazon Web Services Outposts User Guide. </p> */ inline void SetOpticalStandard(OpticalStandard&& value) { m_opticalStandardHasBeenSet = true; m_opticalStandard = std::move(value); } /** * <p>The type of optical standard used to attach the Outpost to the 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 <a * href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-requirements.html#facility-networking">Network</a> * in the Amazon Web Services Outposts User Guide. </p> */ inline RackPhysicalProperties& WithOpticalStandard(const OpticalStandard& value) { SetOpticalStandard(value); return *this;} /** * <p>The type of optical standard used to attach the Outpost to the 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 <a * href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-requirements.html#facility-networking">Network</a> * in the Amazon Web Services Outposts User Guide. </p> */ inline RackPhysicalProperties& WithOpticalStandard(OpticalStandard&& value) { SetOpticalStandard(std::move(value)); return *this;} /** * <p>The maximum rack weight that this site can support. <code>NO_LIMIT</code> is * over 2000 lbs (907 kg). </p> */ inline const MaximumSupportedWeightLbs& GetMaximumSupportedWeightLbs() const{ return m_maximumSupportedWeightLbs; } /** * <p>The maximum rack weight that this site can support. <code>NO_LIMIT</code> is * over 2000 lbs (907 kg). </p> */ inline bool MaximumSupportedWeightLbsHasBeenSet() const { return m_maximumSupportedWeightLbsHasBeenSet; } /** * <p>The maximum rack weight that this site can support. <code>NO_LIMIT</code> is * over 2000 lbs (907 kg). </p> */ inline void SetMaximumSupportedWeightLbs(const MaximumSupportedWeightLbs& value) { m_maximumSupportedWeightLbsHasBeenSet = true; m_maximumSupportedWeightLbs = value; } /** * <p>The maximum rack weight that this site can support. <code>NO_LIMIT</code> is * over 2000 lbs (907 kg). </p> */ inline void SetMaximumSupportedWeightLbs(MaximumSupportedWeightLbs&& value) { m_maximumSupportedWeightLbsHasBeenSet = true; m_maximumSupportedWeightLbs = std::move(value); } /** * <p>The maximum rack weight that this site can support. <code>NO_LIMIT</code> is * over 2000 lbs (907 kg). </p> */ inline RackPhysicalProperties& WithMaximumSupportedWeightLbs(const MaximumSupportedWeightLbs& value) { SetMaximumSupportedWeightLbs(value); return *this;} /** * <p>The maximum rack weight that this site can support. <code>NO_LIMIT</code> is * over 2000 lbs (907 kg). </p> */ inline RackPhysicalProperties& WithMaximumSupportedWeightLbs(MaximumSupportedWeightLbs&& value) { SetMaximumSupportedWeightLbs(std::move(value)); return *this;} private: PowerDrawKva m_powerDrawKva; bool m_powerDrawKvaHasBeenSet = false; PowerPhase m_powerPhase; bool m_powerPhaseHasBeenSet = false; PowerConnector m_powerConnector; bool m_powerConnectorHasBeenSet = false; PowerFeedDrop m_powerFeedDrop; bool m_powerFeedDropHasBeenSet = false; UplinkGbps m_uplinkGbps; bool m_uplinkGbpsHasBeenSet = false; UplinkCount m_uplinkCount; bool m_uplinkCountHasBeenSet = false; FiberOpticCableType m_fiberOpticCableType; bool m_fiberOpticCableTypeHasBeenSet = false; OpticalStandard m_opticalStandard; bool m_opticalStandardHasBeenSet = false; MaximumSupportedWeightLbs m_maximumSupportedWeightLbs; bool m_maximumSupportedWeightLbsHasBeenSet = false; }; } // namespace Model } // namespace Outposts } // namespace Aws