-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon Lightsail SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.Lightsail</a> or <a>the AWS documentation</a> to
--   get started.
@package amazonka-lightsail
@version 1.6.1


module Network.AWS.Lightsail.Types

-- | API version <tt>2016-11-28</tt> of the Amazon Lightsail SDK
--   configuration.
lightsail :: Service

-- | Lightsail throws this exception when the user cannot be authenticated
--   or uses invalid credentials to access a resource.
_AccessDeniedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Lightsail throws this exception when an account is still in the setup
--   in progress state.
_AccountSetupInProgressException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Lightsail throws this exception when it cannot find a resource.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Lightsail throws this exception when an operation fails to execute.
_OperationFailureException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A general service exception.
_ServiceException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Lightsail throws this exception when the user has not been
--   authenticated.
_UnauthenticatedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Lightsail throws this exception when user input does not conform to
--   the validation rules of an input field.
_InvalidInputException :: AsError a => Getting (First ServiceError) a ServiceError
data AccessDirection
Inbound :: AccessDirection
Outbound :: AccessDirection
data BlueprintType
App :: BlueprintType
OS :: BlueprintType
data DiskSnapshotState
DSSCompleted :: DiskSnapshotState
DSSError' :: DiskSnapshotState
DSSPending :: DiskSnapshotState
DSSUnknown :: DiskSnapshotState
data DiskState
Available :: DiskState
Error' :: DiskState
InUse :: DiskState
Pending :: DiskState
Unknown :: DiskState
data InstanceAccessProtocol
Rdp :: InstanceAccessProtocol
SSH :: InstanceAccessProtocol
data InstanceHealthReason
Instance_DeregistrationInProgress :: InstanceHealthReason
Instance_FailedHealthChecks :: InstanceHealthReason
Instance_IPUnusable :: InstanceHealthReason
Instance_InvalidState :: InstanceHealthReason
Instance_NotInUse :: InstanceHealthReason
Instance_NotRegistered :: InstanceHealthReason
Instance_ResponseCodeMismatch :: InstanceHealthReason
Instance_Timeout :: InstanceHealthReason
Lb_InitialHealthChecking :: InstanceHealthReason
Lb_InternalError :: InstanceHealthReason
Lb_RegistrationInProgress :: InstanceHealthReason
data InstanceHealthState
Draining :: InstanceHealthState
Healthy :: InstanceHealthState
Initial :: InstanceHealthState
Unavailable :: InstanceHealthState
Unhealthy :: InstanceHealthState
Unused :: InstanceHealthState
data InstanceMetricName
CPUUtilization :: InstanceMetricName
NetworkIn :: InstanceMetricName
NetworkOut :: InstanceMetricName
StatusCheckFailed :: InstanceMetricName
StatusCheckFailedInstance :: InstanceMetricName
StatusCheckFailedSystem :: InstanceMetricName
data InstancePlatform
LinuxUnix :: InstancePlatform
Windows :: InstancePlatform
data InstanceSnapshotState
ISSAvailable :: InstanceSnapshotState
ISSError' :: InstanceSnapshotState
ISSPending :: InstanceSnapshotState
data LoadBalancerAttributeName
HealthCheckPath :: LoadBalancerAttributeName
SessionStickinessEnabled :: LoadBalancerAttributeName
SessionStickinessLbCookieDurationSeconds :: LoadBalancerAttributeName
data LoadBalancerMetricName
ClientTLSNegotiationErrorCount :: LoadBalancerMetricName
HTTPCodeInstance2XXCount :: LoadBalancerMetricName
HTTPCodeInstance3XXCount :: LoadBalancerMetricName
HTTPCodeInstance4XXCount :: LoadBalancerMetricName
HTTPCodeInstance5XXCount :: LoadBalancerMetricName
HTTPCodeLb4XXCount :: LoadBalancerMetricName
HTTPCodeLb5XXCount :: LoadBalancerMetricName
HealthyHostCount :: LoadBalancerMetricName
InstanceResponseTime :: LoadBalancerMetricName
RejectedConnectionCount :: LoadBalancerMetricName
RequestCount :: LoadBalancerMetricName
UnhealthyHostCount :: LoadBalancerMetricName
data LoadBalancerProtocol
HTTP :: LoadBalancerProtocol
HTTPHTTPS :: LoadBalancerProtocol
data LoadBalancerState
LBSActive :: LoadBalancerState
LBSActiveImpaired :: LoadBalancerState
LBSFailed :: LoadBalancerState
LBSProvisioning :: LoadBalancerState
LBSUnknown :: LoadBalancerState
data LoadBalancerTLSCertificateDomainStatus
LBTCDSFailed :: LoadBalancerTLSCertificateDomainStatus
LBTCDSPendingValidation :: LoadBalancerTLSCertificateDomainStatus
LBTCDSSuccess :: LoadBalancerTLSCertificateDomainStatus
data LoadBalancerTLSCertificateFailureReason
AdditionalVerificationRequired :: LoadBalancerTLSCertificateFailureReason
DomainNotAllowed :: LoadBalancerTLSCertificateFailureReason
InvalidPublicDomain :: LoadBalancerTLSCertificateFailureReason
NoAvailableContacts :: LoadBalancerTLSCertificateFailureReason
Other :: LoadBalancerTLSCertificateFailureReason
data LoadBalancerTLSCertificateRenewalStatus
LBTCRSFailed :: LoadBalancerTLSCertificateRenewalStatus
LBTCRSPendingAutoRenewal :: LoadBalancerTLSCertificateRenewalStatus
LBTCRSPendingValidation :: LoadBalancerTLSCertificateRenewalStatus
LBTCRSSuccess :: LoadBalancerTLSCertificateRenewalStatus
data LoadBalancerTLSCertificateRevocationReason
AACompromise :: LoadBalancerTLSCertificateRevocationReason
AffiliationChanged :: LoadBalancerTLSCertificateRevocationReason
CaCompromise :: LoadBalancerTLSCertificateRevocationReason
CertificateHold :: LoadBalancerTLSCertificateRevocationReason
CessationOfOperation :: LoadBalancerTLSCertificateRevocationReason
KeyCompromise :: LoadBalancerTLSCertificateRevocationReason
PrivilegeWithdrawn :: LoadBalancerTLSCertificateRevocationReason
RemoveFromCrl :: LoadBalancerTLSCertificateRevocationReason
Superceded :: LoadBalancerTLSCertificateRevocationReason
Unspecified :: LoadBalancerTLSCertificateRevocationReason
data LoadBalancerTLSCertificateStatus
LBTCSExpired :: LoadBalancerTLSCertificateStatus
LBTCSFailed :: LoadBalancerTLSCertificateStatus
LBTCSInactive :: LoadBalancerTLSCertificateStatus
LBTCSIssued :: LoadBalancerTLSCertificateStatus
LBTCSPendingValidation :: LoadBalancerTLSCertificateStatus
LBTCSRevoked :: LoadBalancerTLSCertificateStatus
LBTCSUnknown :: LoadBalancerTLSCertificateStatus
LBTCSValidationTimedOut :: LoadBalancerTLSCertificateStatus
data MetricStatistic
Average :: MetricStatistic
Maximum :: MetricStatistic
Minimum :: MetricStatistic
SampleCount :: MetricStatistic
Sum :: MetricStatistic
data MetricUnit
Bits :: MetricUnit
BitsSecond :: MetricUnit
Bytes :: MetricUnit
BytesSecond :: MetricUnit
Count :: MetricUnit
CountSecond :: MetricUnit
Gigabits :: MetricUnit
GigabitsSecond :: MetricUnit
Gigabytes :: MetricUnit
GigabytesSecond :: MetricUnit
Kilobits :: MetricUnit
KilobitsSecond :: MetricUnit
Kilobytes :: MetricUnit
KilobytesSecond :: MetricUnit
Megabits :: MetricUnit
MegabitsSecond :: MetricUnit
Megabytes :: MetricUnit
MegabytesSecond :: MetricUnit
Microseconds :: MetricUnit
Milliseconds :: MetricUnit
None :: MetricUnit
Percent :: MetricUnit
Seconds :: MetricUnit
Terabits :: MetricUnit
TerabitsSecond :: MetricUnit
Terabytes :: MetricUnit
TerabytesSecond :: MetricUnit
data NetworkProtocol
All :: NetworkProtocol
TCP :: NetworkProtocol
Udp :: NetworkProtocol
data OperationStatus
Completed :: OperationStatus
Failed :: OperationStatus
NotStarted :: OperationStatus
Started :: OperationStatus
Succeeded :: OperationStatus
data OperationType
AllocateStaticIP :: OperationType
AttachDisk :: OperationType
AttachInstancesToLoadBalancer :: OperationType
AttachLoadBalancerTLSCertificate :: OperationType
AttachStaticIP :: OperationType
CloseInstancePublicPorts :: OperationType
CreateDisk :: OperationType
CreateDiskFromSnapshot :: OperationType
CreateDiskSnapshot :: OperationType
CreateDomain :: OperationType
CreateInstance :: OperationType
CreateInstanceSnapshot :: OperationType
CreateInstancesFromSnapshot :: OperationType
CreateLoadBalancer :: OperationType
CreateLoadBalancerTLSCertificate :: OperationType
DeleteDisk :: OperationType
DeleteDiskSnapshot :: OperationType
DeleteDomain :: OperationType
DeleteDomainEntry :: OperationType
DeleteInstance :: OperationType
DeleteInstanceSnapshot :: OperationType
DeleteLoadBalancer :: OperationType
DeleteLoadBalancerTLSCertificate :: OperationType
DetachDisk :: OperationType
DetachInstancesFromLoadBalancer :: OperationType
DetachStaticIP :: OperationType
OpenInstancePublicPorts :: OperationType
PutInstancePublicPorts :: OperationType
RebootInstance :: OperationType
ReleaseStaticIP :: OperationType
StartInstance :: OperationType
StopInstance :: OperationType
UpdateDomainEntry :: OperationType
UpdateLoadBalancerAttribute :: OperationType
data PortAccessType
Private :: PortAccessType
Public :: PortAccessType
data PortState
Closed :: PortState
Open :: PortState
data RegionName
ApNortheast1 :: RegionName
ApNortheast2 :: RegionName
ApSouth1 :: RegionName
ApSoutheast1 :: RegionName
ApSoutheast2 :: RegionName
EuCentral1 :: RegionName
EuWest1 :: RegionName
EuWest2 :: RegionName
UsEast1 :: RegionName
UsEast2 :: RegionName
UsWest1 :: RegionName
UsWest2 :: RegionName
data ResourceType
Disk :: ResourceType
DiskSnapshot :: ResourceType
Domain :: ResourceType
Instance :: ResourceType
InstanceSnapshot :: ResourceType
KeyPair :: ResourceType
LoadBalancer :: ResourceType
LoadBalancerTLSCertificate :: ResourceType
PeeredVPC :: ResourceType
StaticIP :: ResourceType

-- | Describes an Availability Zone.
--   
--   <i>See:</i> <a>availabilityZone</a> smart constructor.
data AvailabilityZone

-- | Creates a value of <a>AvailabilityZone</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>azState</a> - The state of the Availability Zone.</li>
--   <li><a>azZoneName</a> - The name of the Availability Zone. The format
--   is <tt>us-east-2a</tt> (case-sensitive).</li>
--   </ul>
availabilityZone :: AvailabilityZone

-- | The state of the Availability Zone.
azState :: Lens' AvailabilityZone (Maybe Text)

-- | The name of the Availability Zone. The format is <tt>us-east-2a</tt>
--   (case-sensitive).
azZoneName :: Lens' AvailabilityZone (Maybe Text)

-- | Describes a blueprint (a virtual private server image).
--   
--   <i>See:</i> <a>blueprint</a> smart constructor.
data Blueprint

-- | Creates a value of <a>Blueprint</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bVersionCode</a> - The version code.</li>
--   <li><a>bPlatform</a> - The operating system platform (either
--   Linux/Unix-based or Windows Server-based) of the blueprint.</li>
--   <li><a>bGroup</a> - The group name of the blueprint (e.g.,
--   <tt>amazon-linux</tt> ).</li>
--   <li><a>bMinPower</a> - The minimum bundle power required to run this
--   blueprint. For example, you need a bundle with a power value of 500 or
--   more to create an instance that uses a blueprint with a minimum power
--   value of 500. <tt>0</tt> indicates that the blueprint runs on all
--   instance sizes.</li>
--   <li><a>bProductURL</a> - The product URL to learn more about the image
--   or blueprint.</li>
--   <li><a>bLicenseURL</a> - The end-user license agreement URL for the
--   image or blueprint.</li>
--   <li><a>bName</a> - The friendly name of the blueprint (e.g.,
--   <tt>Amazon Linux</tt> ).</li>
--   <li><a>bVersion</a> - The version number of the operating system,
--   application, or stack (e.g., <tt>2016.03.0</tt> ).</li>
--   <li><a>bBlueprintId</a> - The ID for the virtual private server image
--   (e.g., <tt>app_wordpress_4_4</tt> or <tt>app_lamp_7_0</tt> ).</li>
--   <li><a>bType</a> - The type of the blueprint (e.g., <tt>os</tt> or
--   <tt>app</tt> ).</li>
--   <li><a>bIsActive</a> - A Boolean value indicating whether the
--   blueprint is active. When you update your blueprints, you will
--   inactivate old blueprints and keep the most recent versions
--   active.</li>
--   <li><a>bDescription</a> - The description of the blueprint.</li>
--   </ul>
blueprint :: Blueprint

-- | The version code.
bVersionCode :: Lens' Blueprint (Maybe Text)

-- | The operating system platform (either Linux/Unix-based or Windows
--   Server-based) of the blueprint.
bPlatform :: Lens' Blueprint (Maybe InstancePlatform)

-- | The group name of the blueprint (e.g., <tt>amazon-linux</tt> ).
bGroup :: Lens' Blueprint (Maybe Text)

-- | The minimum bundle power required to run this blueprint. For example,
--   you need a bundle with a power value of 500 or more to create an
--   instance that uses a blueprint with a minimum power value of 500.
--   <tt>0</tt> indicates that the blueprint runs on all instance sizes.
bMinPower :: Lens' Blueprint (Maybe Int)

-- | The product URL to learn more about the image or blueprint.
bProductURL :: Lens' Blueprint (Maybe Text)

-- | The end-user license agreement URL for the image or blueprint.
bLicenseURL :: Lens' Blueprint (Maybe Text)

-- | The friendly name of the blueprint (e.g., <tt>Amazon Linux</tt> ).
bName :: Lens' Blueprint (Maybe Text)

-- | The version number of the operating system, application, or stack
--   (e.g., <tt>2016.03.0</tt> ).
bVersion :: Lens' Blueprint (Maybe Text)

-- | The ID for the virtual private server image (e.g.,
--   <tt>app_wordpress_4_4</tt> or <tt>app_lamp_7_0</tt> ).
bBlueprintId :: Lens' Blueprint (Maybe Text)

-- | The type of the blueprint (e.g., <tt>os</tt> or <tt>app</tt> ).
bType :: Lens' Blueprint (Maybe BlueprintType)

-- | A Boolean value indicating whether the blueprint is active. When you
--   update your blueprints, you will inactivate old blueprints and keep
--   the most recent versions active.
bIsActive :: Lens' Blueprint (Maybe Bool)

-- | The description of the blueprint.
bDescription :: Lens' Blueprint (Maybe Text)

-- | Describes a bundle, which is a set of specs describing your virtual
--   private server (or <i>instance</i> ).
--   
--   <i>See:</i> <a>bundle</a> smart constructor.
data Bundle

-- | Creates a value of <a>Bundle</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bunCpuCount</a> - The number of vCPUs included in the bundle
--   (e.g., <tt>2</tt> ).</li>
--   <li><a>bunTransferPerMonthInGb</a> - The data transfer rate per month
--   in GB (e.g., <tt>2000</tt> ).</li>
--   <li><a>bunBundleId</a> - The bundle ID (e.g., <tt>micro_1_0</tt>
--   ).</li>
--   <li><a>bunInstanceType</a> - The Amazon EC2 instance type (e.g.,
--   <tt>t2.micro</tt> ).</li>
--   <li><a>bunName</a> - A friendly name for the bundle (e.g.,
--   <tt>Micro</tt> ).</li>
--   <li><a>bunPower</a> - A numeric value that represents the power of the
--   bundle (e.g., <tt>500</tt> ). You can use the bundle's power value in
--   conjunction with a blueprint's minimum power value to determine
--   whether the blueprint will run on the bundle. For example, you need a
--   bundle with a power value of 500 or more to create an instance that
--   uses a blueprint with a minimum power value of 500.</li>
--   <li><a>bunDiskSizeInGb</a> - The size of the SSD (e.g., <tt>30</tt>
--   ).</li>
--   <li><a>bunSupportedPlatforms</a> - The operating system platform
--   (Linux/Unix-based or Windows Server-based) that the bundle supports.
--   You can only launch a <tt>WINDOWS</tt> bundle on a blueprint that
--   supports the <tt>WINDOWS</tt> platform. <tt>LINUX_UNIX</tt> blueprints
--   require a <tt>LINUX_UNIX</tt> bundle.</li>
--   <li><a>bunPrice</a> - The price in US dollars (e.g., <tt>5.0</tt>
--   ).</li>
--   <li><a>bunIsActive</a> - A Boolean value indicating whether the bundle
--   is active.</li>
--   <li><a>bunRamSizeInGb</a> - The amount of RAM in GB (e.g.,
--   <tt>2.0</tt> ).</li>
--   </ul>
bundle :: Bundle

-- | The number of vCPUs included in the bundle (e.g., <tt>2</tt> ).
bunCpuCount :: Lens' Bundle (Maybe Int)

-- | The data transfer rate per month in GB (e.g., <tt>2000</tt> ).
bunTransferPerMonthInGb :: Lens' Bundle (Maybe Int)

-- | The bundle ID (e.g., <tt>micro_1_0</tt> ).
bunBundleId :: Lens' Bundle (Maybe Text)

-- | The Amazon EC2 instance type (e.g., <tt>t2.micro</tt> ).
bunInstanceType :: Lens' Bundle (Maybe Text)

-- | A friendly name for the bundle (e.g., <tt>Micro</tt> ).
bunName :: Lens' Bundle (Maybe Text)

-- | A numeric value that represents the power of the bundle (e.g.,
--   <tt>500</tt> ). You can use the bundle's power value in conjunction
--   with a blueprint's minimum power value to determine whether the
--   blueprint will run on the bundle. For example, you need a bundle with
--   a power value of 500 or more to create an instance that uses a
--   blueprint with a minimum power value of 500.
bunPower :: Lens' Bundle (Maybe Int)

-- | The size of the SSD (e.g., <tt>30</tt> ).
bunDiskSizeInGb :: Lens' Bundle (Maybe Int)

-- | The operating system platform (Linux/Unix-based or Windows
--   Server-based) that the bundle supports. You can only launch a
--   <tt>WINDOWS</tt> bundle on a blueprint that supports the
--   <tt>WINDOWS</tt> platform. <tt>LINUX_UNIX</tt> blueprints require a
--   <tt>LINUX_UNIX</tt> bundle.
bunSupportedPlatforms :: Lens' Bundle [InstancePlatform]

-- | The price in US dollars (e.g., <tt>5.0</tt> ).
bunPrice :: Lens' Bundle (Maybe Double)

-- | A Boolean value indicating whether the bundle is active.
bunIsActive :: Lens' Bundle (Maybe Bool)

-- | The amount of RAM in GB (e.g., <tt>2.0</tt> ).
bunRamSizeInGb :: Lens' Bundle (Maybe Double)

-- | Describes a system disk or an block storage disk.
--   
--   <i>See:</i> <a>disk</a> smart constructor.
data Disk

-- | Creates a value of <a>Disk</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dState</a> - Describes the status of the disk.</li>
--   <li><a>dResourceType</a> - The Lightsail resource type (e.g.,
--   <tt>Disk</tt> ).</li>
--   <li><a>dArn</a> - The Amazon Resource Name (ARN) of the disk.</li>
--   <li><a>dPath</a> - The disk path.</li>
--   <li><a>dCreatedAt</a> - The date when the disk was created.</li>
--   <li><a>dLocation</a> - The AWS Region and Availability Zone where the
--   disk is located.</li>
--   <li><a>dIops</a> - The input/output operations per second (IOPS) of
--   the disk.</li>
--   <li><a>dIsAttached</a> - A Boolean value indicating whether the disk
--   is attached.</li>
--   <li><a>dAttachmentState</a> - (Deprecated) The attachment state of the
--   disk.</li>
--   <li><a>dName</a> - The unique name of the disk.</li>
--   <li><a>dSizeInGb</a> - The size of the disk in GB.</li>
--   <li><a>dSupportCode</a> - The support code. Include this code in your
--   email to support when you have questions about an instance or another
--   resource in Lightsail. This code enables our support team to look up
--   your Lightsail information more easily.</li>
--   <li><a>dIsSystemDisk</a> - A Boolean value indicating whether this
--   disk is a system disk (has an operating system loaded on it).</li>
--   <li><a>dAttachedTo</a> - The resources to which the disk is
--   attached.</li>
--   <li><a>dGbInUse</a> - (Deprecated) The number of GB in use by the
--   disk.</li>
--   </ul>
disk :: Disk

-- | Describes the status of the disk.
dState :: Lens' Disk (Maybe DiskState)

-- | The Lightsail resource type (e.g., <tt>Disk</tt> ).
dResourceType :: Lens' Disk (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the disk.
dArn :: Lens' Disk (Maybe Text)

-- | The disk path.
dPath :: Lens' Disk (Maybe Text)

-- | The date when the disk was created.
dCreatedAt :: Lens' Disk (Maybe UTCTime)

-- | The AWS Region and Availability Zone where the disk is located.
dLocation :: Lens' Disk (Maybe ResourceLocation)

-- | The input/output operations per second (IOPS) of the disk.
dIops :: Lens' Disk (Maybe Int)

-- | A Boolean value indicating whether the disk is attached.
dIsAttached :: Lens' Disk (Maybe Bool)

-- | (Deprecated) The attachment state of the disk.
dAttachmentState :: Lens' Disk (Maybe Text)

-- | The unique name of the disk.
dName :: Lens' Disk (Maybe Text)

-- | The size of the disk in GB.
dSizeInGb :: Lens' Disk (Maybe Int)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
dSupportCode :: Lens' Disk (Maybe Text)

-- | A Boolean value indicating whether this disk is a system disk (has an
--   operating system loaded on it).
dIsSystemDisk :: Lens' Disk (Maybe Bool)

-- | The resources to which the disk is attached.
dAttachedTo :: Lens' Disk (Maybe Text)

-- | (Deprecated) The number of GB in use by the disk.
dGbInUse :: Lens' Disk (Maybe Int)

-- | Describes a block storage disk mapping.
--   
--   <i>See:</i> <a>diskMap</a> smart constructor.
data DiskMap

-- | Creates a value of <a>DiskMap</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmNewDiskName</a> - The new disk name (e.g.,
--   <tt>my-new-disk</tt> ).</li>
--   <li><a>dmOriginalDiskPath</a> - The original disk path exposed to the
--   instance (for example, <tt><i>dev</i>sdh</tt> ).</li>
--   </ul>
diskMap :: DiskMap

-- | The new disk name (e.g., <tt>my-new-disk</tt> ).
dmNewDiskName :: Lens' DiskMap (Maybe Text)

-- | The original disk path exposed to the instance (for example,
--   <tt><i>dev</i>sdh</tt> ).
dmOriginalDiskPath :: Lens' DiskMap (Maybe Text)

-- | Describes a block storage disk snapshot.
--   
--   <i>See:</i> <a>diskSnapshot</a> smart constructor.
data DiskSnapshot

-- | Creates a value of <a>DiskSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsFromDiskName</a> - The unique name of the source disk from
--   which you are creating the disk snapshot.</li>
--   <li><a>dsState</a> - The status of the disk snapshot operation.</li>
--   <li><a>dsResourceType</a> - The Lightsail resource type (e.g.,
--   <tt>DiskSnapshot</tt> ).</li>
--   <li><a>dsArn</a> - The Amazon Resource Name (ARN) of the disk
--   snapshot.</li>
--   <li><a>dsCreatedAt</a> - The date when the disk snapshot was
--   created.</li>
--   <li><a>dsLocation</a> - The AWS Region and Availability Zone where the
--   disk snapshot was created.</li>
--   <li><a>dsProgress</a> - The progress of the disk snapshot
--   operation.</li>
--   <li><a>dsName</a> - The name of the disk snapshot (e.g.,
--   <tt>my-disk-snapshot</tt> ).</li>
--   <li><a>dsSizeInGb</a> - The size of the disk in GB.</li>
--   <li><a>dsSupportCode</a> - The support code. Include this code in your
--   email to support when you have questions about an instance or another
--   resource in Lightsail. This code enables our support team to look up
--   your Lightsail information more easily.</li>
--   <li><a>dsFromDiskARN</a> - The Amazon Resource Name (ARN) of the
--   source disk from which you are creating the disk snapshot.</li>
--   </ul>
diskSnapshot :: DiskSnapshot

-- | The unique name of the source disk from which you are creating the
--   disk snapshot.
dsFromDiskName :: Lens' DiskSnapshot (Maybe Text)

-- | The status of the disk snapshot operation.
dsState :: Lens' DiskSnapshot (Maybe DiskSnapshotState)

-- | The Lightsail resource type (e.g., <tt>DiskSnapshot</tt> ).
dsResourceType :: Lens' DiskSnapshot (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the disk snapshot.
dsArn :: Lens' DiskSnapshot (Maybe Text)

-- | The date when the disk snapshot was created.
dsCreatedAt :: Lens' DiskSnapshot (Maybe UTCTime)

-- | The AWS Region and Availability Zone where the disk snapshot was
--   created.
dsLocation :: Lens' DiskSnapshot (Maybe ResourceLocation)

-- | The progress of the disk snapshot operation.
dsProgress :: Lens' DiskSnapshot (Maybe Text)

-- | The name of the disk snapshot (e.g., <tt>my-disk-snapshot</tt> ).
dsName :: Lens' DiskSnapshot (Maybe Text)

-- | The size of the disk in GB.
dsSizeInGb :: Lens' DiskSnapshot (Maybe Int)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
dsSupportCode :: Lens' DiskSnapshot (Maybe Text)

-- | The Amazon Resource Name (ARN) of the source disk from which you are
--   creating the disk snapshot.
dsFromDiskARN :: Lens' DiskSnapshot (Maybe Text)

-- | Describes a domain where you are storing recordsets in Lightsail.
--   
--   <i>See:</i> <a>domain</a> smart constructor.
data Domain

-- | Creates a value of <a>Domain</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>domResourceType</a> - The resource type.</li>
--   <li><a>domDomainEntries</a> - An array of key-value pairs containing
--   information about the domain entries.</li>
--   <li><a>domArn</a> - The Amazon Resource Name (ARN) of the domain
--   recordset (e.g.,
--   <tt>arn:aws:lightsail:global:123456789101:Domain/824cede0-abc7-4f84-8dbc-12345EXAMPLE</tt>
--   ).</li>
--   <li><a>domCreatedAt</a> - The date when the domain recordset was
--   created.</li>
--   <li><a>domLocation</a> - The AWS Region and Availability Zones where
--   the domain recordset was created.</li>
--   <li><a>domName</a> - The name of the domain.</li>
--   <li><a>domSupportCode</a> - The support code. Include this code in
--   your email to support when you have questions about an instance or
--   another resource in Lightsail. This code enables our support team to
--   look up your Lightsail information more easily.</li>
--   </ul>
domain :: Domain

-- | The resource type.
domResourceType :: Lens' Domain (Maybe ResourceType)

-- | An array of key-value pairs containing information about the domain
--   entries.
domDomainEntries :: Lens' Domain [DomainEntry]

-- | The Amazon Resource Name (ARN) of the domain recordset (e.g.,
--   <tt>arn:aws:lightsail:global:123456789101:Domain/824cede0-abc7-4f84-8dbc-12345EXAMPLE</tt>
--   ).
domArn :: Lens' Domain (Maybe Text)

-- | The date when the domain recordset was created.
domCreatedAt :: Lens' Domain (Maybe UTCTime)

-- | The AWS Region and Availability Zones where the domain recordset was
--   created.
domLocation :: Lens' Domain (Maybe ResourceLocation)

-- | The name of the domain.
domName :: Lens' Domain (Maybe Text)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
domSupportCode :: Lens' Domain (Maybe Text)

-- | Describes a domain recordset entry.
--   
--   <i>See:</i> <a>domainEntry</a> smart constructor.
data DomainEntry

-- | Creates a value of <a>DomainEntry</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deIsAlias</a> - When <tt>true</tt> , specifies whether the
--   domain entry is an alias used by the Lightsail load balancer. You can
--   include an alias (A type) record in your request, which points to a
--   load balancer DNS name and routes traffic to your load balancer</li>
--   <li><a>deName</a> - The name of the domain.</li>
--   <li><a>deId</a> - The ID of the domain recordset entry.</li>
--   <li><a>deOptions</a> - (Deprecated) The options for the domain
--   entry.</li>
--   <li><a>deType</a> - The type of domain entry (e.g., <tt>SOA</tt> or
--   <tt>NS</tt> ).</li>
--   <li><a>deTarget</a> - The target AWS name server (e.g.,
--   <tt>ns-111.awsdns-22.com.</tt> ). For Lightsail load balancers, the
--   value looks like
--   <tt>ab1234c56789c6b86aba6fb203d443bc-123456789.us-east-2.elb.amazonaws.com</tt>
--   . Be sure to also set <tt>isAlias</tt> to <tt>true</tt> when setting
--   up an A record for a load balancer.</li>
--   </ul>
domainEntry :: DomainEntry

-- | When <tt>true</tt> , specifies whether the domain entry is an alias
--   used by the Lightsail load balancer. You can include an alias (A type)
--   record in your request, which points to a load balancer DNS name and
--   routes traffic to your load balancer
deIsAlias :: Lens' DomainEntry (Maybe Bool)

-- | The name of the domain.
deName :: Lens' DomainEntry (Maybe Text)

-- | The ID of the domain recordset entry.
deId :: Lens' DomainEntry (Maybe Text)

-- | (Deprecated) The options for the domain entry.
deOptions :: Lens' DomainEntry (HashMap Text Text)

-- | The type of domain entry (e.g., <tt>SOA</tt> or <tt>NS</tt> ).
deType :: Lens' DomainEntry (Maybe Text)

-- | The target AWS name server (e.g., <tt>ns-111.awsdns-22.com.</tt> ).
--   For Lightsail load balancers, the value looks like
--   <tt>ab1234c56789c6b86aba6fb203d443bc-123456789.us-east-2.elb.amazonaws.com</tt>
--   . Be sure to also set <tt>isAlias</tt> to <tt>true</tt> when setting
--   up an A record for a load balancer.
deTarget :: Lens' DomainEntry (Maybe Text)

-- | Describes an instance (a virtual private server).
--   
--   <i>See:</i> <a>instance'</a> smart constructor.
data Instance

-- | Creates a value of <a>Instance</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iState</a> - The status code and the state (e.g.,
--   <tt>running</tt> ) for the instance.</li>
--   <li><a>iIpv6Address</a> - The IPv6 address of the instance.</li>
--   <li><a>iResourceType</a> - The type of resource (usually
--   <tt>Instance</tt> ).</li>
--   <li><a>iArn</a> - The Amazon Resource Name (ARN) of the instance
--   (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:Instance/244ad76f-8aad-4741-809f-12345EXAMPLE</tt>
--   ).</li>
--   <li><a>iCreatedAt</a> - The timestamp when the instance was created
--   (e.g., <tt>1479734909.17</tt> ).</li>
--   <li><a>iLocation</a> - The region name and availability zone where the
--   instance is located.</li>
--   <li><a>iSshKeyName</a> - The name of the SSH key being used to connect
--   to the instance (e.g., <tt>LightsailDefaultKeyPair</tt> ).</li>
--   <li><a>iUsername</a> - The user name for connecting to the instance
--   (e.g., <tt>ec2-user</tt> ).</li>
--   <li><a>iNetworking</a> - Information about the public ports and
--   monthly data transfer rates for the instance.</li>
--   <li><a>iBundleId</a> - The bundle for the instance (e.g.,
--   <tt>micro_1_0</tt> ).</li>
--   <li><a>iName</a> - The name the user gave the instance (e.g.,
--   <tt>Amazon_Linux-1GB-Ohio-1</tt> ).</li>
--   <li><a>iSupportCode</a> - The support code. Include this code in your
--   email to support when you have questions about an instance or another
--   resource in Lightsail. This code enables our support team to look up
--   your Lightsail information more easily.</li>
--   <li><a>iBlueprintId</a> - The blueprint ID (e.g.,
--   <tt>os_amlinux_2016_03</tt> ).</li>
--   <li><a>iPrivateIPAddress</a> - The private IP address of the
--   instance.</li>
--   <li><a>iBlueprintName</a> - The friendly name of the blueprint (e.g.,
--   <tt>Amazon Linux</tt> ).</li>
--   <li><a>iIsStaticIP</a> - A Boolean value indicating whether this
--   instance has a static IP assigned to it.</li>
--   <li><a>iPublicIPAddress</a> - The public IP address of the
--   instance.</li>
--   <li><a>iHardware</a> - The size of the vCPU and the amount of RAM for
--   the instance.</li>
--   </ul>
instance' :: Instance

-- | The status code and the state (e.g., <tt>running</tt> ) for the
--   instance.
iState :: Lens' Instance (Maybe InstanceState)

-- | The IPv6 address of the instance.
iIpv6Address :: Lens' Instance (Maybe Text)

-- | The type of resource (usually <tt>Instance</tt> ).
iResourceType :: Lens' Instance (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the instance (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:Instance/244ad76f-8aad-4741-809f-12345EXAMPLE</tt>
--   ).
iArn :: Lens' Instance (Maybe Text)

-- | The timestamp when the instance was created (e.g.,
--   <tt>1479734909.17</tt> ).
iCreatedAt :: Lens' Instance (Maybe UTCTime)

-- | The region name and availability zone where the instance is located.
iLocation :: Lens' Instance (Maybe ResourceLocation)

-- | The name of the SSH key being used to connect to the instance (e.g.,
--   <tt>LightsailDefaultKeyPair</tt> ).
iSshKeyName :: Lens' Instance (Maybe Text)

-- | The user name for connecting to the instance (e.g., <tt>ec2-user</tt>
--   ).
iUsername :: Lens' Instance (Maybe Text)

-- | Information about the public ports and monthly data transfer rates for
--   the instance.
iNetworking :: Lens' Instance (Maybe InstanceNetworking)

-- | The bundle for the instance (e.g., <tt>micro_1_0</tt> ).
iBundleId :: Lens' Instance (Maybe Text)

-- | The name the user gave the instance (e.g.,
--   <tt>Amazon_Linux-1GB-Ohio-1</tt> ).
iName :: Lens' Instance (Maybe Text)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
iSupportCode :: Lens' Instance (Maybe Text)

-- | The blueprint ID (e.g., <tt>os_amlinux_2016_03</tt> ).
iBlueprintId :: Lens' Instance (Maybe Text)

-- | The private IP address of the instance.
iPrivateIPAddress :: Lens' Instance (Maybe Text)

-- | The friendly name of the blueprint (e.g., <tt>Amazon Linux</tt> ).
iBlueprintName :: Lens' Instance (Maybe Text)

-- | A Boolean value indicating whether this instance has a static IP
--   assigned to it.
iIsStaticIP :: Lens' Instance (Maybe Bool)

-- | The public IP address of the instance.
iPublicIPAddress :: Lens' Instance (Maybe Text)

-- | The size of the vCPU and the amount of RAM for the instance.
iHardware :: Lens' Instance (Maybe InstanceHardware)

-- | The parameters for gaining temporary access to one of your Amazon
--   Lightsail instances.
--   
--   <i>See:</i> <a>instanceAccessDetails</a> smart constructor.
data InstanceAccessDetails

-- | Creates a value of <a>InstanceAccessDetails</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iadCertKey</a> - For SSH access, the public key to use when
--   accessing your instance For OpenSSH clients (e.g., command line SSH),
--   you should save this value to <tt>tempkey-cert.pub</tt> .</li>
--   <li><a>iadIpAddress</a> - The public IP address of the Amazon
--   Lightsail instance.</li>
--   <li><a>iadPrivateKey</a> - For SSH access, the temporary private key.
--   For OpenSSH clients (e.g., command line SSH), you should save this
--   value to <tt>tempkey</tt> ).</li>
--   <li><a>iadExpiresAt</a> - For SSH access, the date on which the
--   temporary keys expire.</li>
--   <li><a>iadUsername</a> - The user name to use when logging in to the
--   Amazon Lightsail instance.</li>
--   <li><a>iadProtocol</a> - The protocol for these Amazon Lightsail
--   instance access details.</li>
--   <li><a>iadPasswordData</a> - For a Windows Server-based instance, an
--   object with the data you can use to retrieve your password. This is
--   only needed if <tt>password</tt> is empty and the instance is not new
--   (and therefore the password is not ready yet). When you create an
--   instance, it can take up to 15 minutes for the instance to be
--   ready.</li>
--   <li><a>iadPassword</a> - For RDP access, the password for your Amazon
--   Lightsail instance. Password will be an empty string if the password
--   for your new instance is not ready yet. When you create an instance,
--   it can take up to 15 minutes for the instance to be ready.</li>
--   <li><a>iadInstanceName</a> - The name of this Amazon Lightsail
--   instance.</li>
--   </ul>
instanceAccessDetails :: InstanceAccessDetails

-- | For SSH access, the public key to use when accessing your instance For
--   OpenSSH clients (e.g., command line SSH), you should save this value
--   to <tt>tempkey-cert.pub</tt> .
iadCertKey :: Lens' InstanceAccessDetails (Maybe Text)

-- | The public IP address of the Amazon Lightsail instance.
iadIpAddress :: Lens' InstanceAccessDetails (Maybe Text)

-- | For SSH access, the temporary private key. For OpenSSH clients (e.g.,
--   command line SSH), you should save this value to <tt>tempkey</tt> ).
iadPrivateKey :: Lens' InstanceAccessDetails (Maybe Text)

-- | For SSH access, the date on which the temporary keys expire.
iadExpiresAt :: Lens' InstanceAccessDetails (Maybe UTCTime)

-- | The user name to use when logging in to the Amazon Lightsail instance.
iadUsername :: Lens' InstanceAccessDetails (Maybe Text)

-- | The protocol for these Amazon Lightsail instance access details.
iadProtocol :: Lens' InstanceAccessDetails (Maybe InstanceAccessProtocol)

-- | For a Windows Server-based instance, an object with the data you can
--   use to retrieve your password. This is only needed if
--   <tt>password</tt> is empty and the instance is not new (and therefore
--   the password is not ready yet). When you create an instance, it can
--   take up to 15 minutes for the instance to be ready.
iadPasswordData :: Lens' InstanceAccessDetails (Maybe PasswordData)

-- | For RDP access, the password for your Amazon Lightsail instance.
--   Password will be an empty string if the password for your new instance
--   is not ready yet. When you create an instance, it can take up to 15
--   minutes for the instance to be ready.
iadPassword :: Lens' InstanceAccessDetails (Maybe Text)

-- | The name of this Amazon Lightsail instance.
iadInstanceName :: Lens' InstanceAccessDetails (Maybe Text)

-- | Describes the hardware for the instance.
--   
--   <i>See:</i> <a>instanceHardware</a> smart constructor.
data InstanceHardware

-- | Creates a value of <a>InstanceHardware</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ihCpuCount</a> - The number of vCPUs the instance has.</li>
--   <li><a>ihDisks</a> - The disks attached to the instance.</li>
--   <li><a>ihRamSizeInGb</a> - The amount of RAM in GB on the instance
--   (e.g., <tt>1.0</tt> ).</li>
--   </ul>
instanceHardware :: InstanceHardware

-- | The number of vCPUs the instance has.
ihCpuCount :: Lens' InstanceHardware (Maybe Int)

-- | The disks attached to the instance.
ihDisks :: Lens' InstanceHardware [Disk]

-- | The amount of RAM in GB on the instance (e.g., <tt>1.0</tt> ).
ihRamSizeInGb :: Lens' InstanceHardware (Maybe Double)

-- | Describes information about the health of the instance.
--   
--   <i>See:</i> <a>instanceHealthSummary</a> smart constructor.
data InstanceHealthSummary

-- | Creates a value of <a>InstanceHealthSummary</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ihsInstanceHealth</a> - Describes the overall instance health.
--   Valid values are below.</li>
--   <li><a>ihsInstanceName</a> - The name of the Lightsail instance for
--   which you are requesting health check data.</li>
--   <li><a>ihsInstanceHealthReason</a> - More information about the
--   instance health. If the <tt>instanceHealth</tt> is <tt>healthy</tt> ,
--   then an <tt>instanceHealthReason</tt> value is not provided. If
--   <b><tt>instanceHealth</tt> </b> is <tt>initial</tt> , the
--   <b><tt>instanceHealthReason</tt> </b> value can be one of the
--   following: * <b><tt>Lb.RegistrationInProgress</tt> </b> - The target
--   instance is in the process of being registered with the load balancer.
--   * <b><tt>Lb.InitialHealthChecking</tt> </b> - The Lightsail load
--   balancer is still sending the target instance the minimum number of
--   health checks required to determine its health status. If
--   <b><tt>instanceHealth</tt> </b> is <tt>unhealthy</tt> , the
--   <b><tt>instanceHealthReason</tt> </b> value can be one of the
--   following: * <b><tt>Instance.ResponseCodeMismatch</tt> </b> - The
--   health checks did not return an expected HTTP code. *
--   <b><tt>Instance.Timeout</tt> </b> - The health check requests timed
--   out. * <b><tt>Instance.FailedHealthChecks</tt> </b> - The health
--   checks failed because the connection to the target instance timed out,
--   the target instance response was malformed, or the target instance
--   failed the health check for an unknown reason. *
--   <b><tt>Lb.InternalError</tt> </b> - The health checks failed due to an
--   internal error. If <b><tt>instanceHealth</tt> </b> is <tt>unused</tt>
--   , the <b><tt>instanceHealthReason</tt> </b> value can be one of the
--   following: * <b><tt>Instance.NotRegistered</tt> </b> - The target
--   instance is not registered with the target group. *
--   <b><tt>Instance.NotInUse</tt> </b> - The target group is not used by
--   any load balancer, or the target instance is in an Availability Zone
--   that is not enabled for its load balancer. *
--   <b><tt>Instance.IpUnusable</tt> </b> - The target IP address is
--   reserved for use by a Lightsail load balancer. *
--   <b><tt>Instance.InvalidState</tt> </b> - The target is in the stopped
--   or terminated state. If <b><tt>instanceHealth</tt> </b> is
--   <tt>draining</tt> , the <b><tt>instanceHealthReason</tt> </b> value
--   can be one of the following: *
--   <b><tt>Instance.DeregistrationInProgress</tt> </b> - The target
--   instance is in the process of being deregistered and the
--   deregistration delay period has not expired.</li>
--   </ul>
instanceHealthSummary :: InstanceHealthSummary

-- | Describes the overall instance health. Valid values are below.
ihsInstanceHealth :: Lens' InstanceHealthSummary (Maybe InstanceHealthState)

-- | The name of the Lightsail instance for which you are requesting health
--   check data.
ihsInstanceName :: Lens' InstanceHealthSummary (Maybe Text)

-- | More information about the instance health. If the
--   <tt>instanceHealth</tt> is <tt>healthy</tt> , then an
--   <tt>instanceHealthReason</tt> value is not provided. If
--   <b><tt>instanceHealth</tt> </b> is <tt>initial</tt> , the
--   <b><tt>instanceHealthReason</tt> </b> value can be one of the
--   following: * <b><tt>Lb.RegistrationInProgress</tt> </b> - The target
--   instance is in the process of being registered with the load balancer.
--   * <b><tt>Lb.InitialHealthChecking</tt> </b> - The Lightsail load
--   balancer is still sending the target instance the minimum number of
--   health checks required to determine its health status. If
--   <b><tt>instanceHealth</tt> </b> is <tt>unhealthy</tt> , the
--   <b><tt>instanceHealthReason</tt> </b> value can be one of the
--   following: * <b><tt>Instance.ResponseCodeMismatch</tt> </b> - The
--   health checks did not return an expected HTTP code. *
--   <b><tt>Instance.Timeout</tt> </b> - The health check requests timed
--   out. * <b><tt>Instance.FailedHealthChecks</tt> </b> - The health
--   checks failed because the connection to the target instance timed out,
--   the target instance response was malformed, or the target instance
--   failed the health check for an unknown reason. *
--   <b><tt>Lb.InternalError</tt> </b> - The health checks failed due to an
--   internal error. If <b><tt>instanceHealth</tt> </b> is <tt>unused</tt>
--   , the <b><tt>instanceHealthReason</tt> </b> value can be one of the
--   following: * <b><tt>Instance.NotRegistered</tt> </b> - The target
--   instance is not registered with the target group. *
--   <b><tt>Instance.NotInUse</tt> </b> - The target group is not used by
--   any load balancer, or the target instance is in an Availability Zone
--   that is not enabled for its load balancer. *
--   <b><tt>Instance.IpUnusable</tt> </b> - The target IP address is
--   reserved for use by a Lightsail load balancer. *
--   <b><tt>Instance.InvalidState</tt> </b> - The target is in the stopped
--   or terminated state. If <b><tt>instanceHealth</tt> </b> is
--   <tt>draining</tt> , the <b><tt>instanceHealthReason</tt> </b> value
--   can be one of the following: *
--   <b><tt>Instance.DeregistrationInProgress</tt> </b> - The target
--   instance is in the process of being deregistered and the
--   deregistration delay period has not expired.
ihsInstanceHealthReason :: Lens' InstanceHealthSummary (Maybe InstanceHealthReason)

-- | Describes monthly data transfer rates and port information for an
--   instance.
--   
--   <i>See:</i> <a>instanceNetworking</a> smart constructor.
data InstanceNetworking

-- | Creates a value of <a>InstanceNetworking</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>inMonthlyTransfer</a> - The amount of data in GB allocated for
--   monthly data transfers.</li>
--   <li><a>inPorts</a> - An array of key-value pairs containing
--   information about the ports on the instance.</li>
--   </ul>
instanceNetworking :: InstanceNetworking

-- | The amount of data in GB allocated for monthly data transfers.
inMonthlyTransfer :: Lens' InstanceNetworking (Maybe MonthlyTransfer)

-- | An array of key-value pairs containing information about the ports on
--   the instance.
inPorts :: Lens' InstanceNetworking [InstancePortInfo]

-- | Describes information about the instance ports.
--   
--   <i>See:</i> <a>instancePortInfo</a> smart constructor.
data InstancePortInfo

-- | Creates a value of <a>InstancePortInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ipiFromPort</a> - The first port in the range.</li>
--   <li><a>ipiCommonName</a> - The common name.</li>
--   <li><a>ipiProtocol</a> - The protocol being used. Can be one of the
--   following. * <tt>tcp</tt> - Transmission Control Protocol (TCP)
--   provides reliable, ordered, and error-checked delivery of streamed
--   data between applications running on hosts communicating by an IP
--   network. If you have an application that doesn't require reliable data
--   stream service, use UDP instead. * <tt>all</tt> - All transport layer
--   protocol types. For more general information, see <a>Transport
--   layer</a> on Wikipedia. * <tt>udp</tt> - With User Datagram Protocol
--   (UDP), computer applications can send messages (or datagrams) to other
--   hosts on an Internet Protocol (IP) network. Prior communications are
--   not required to set up transmission channels or data paths.
--   Applications that don't require reliable data stream service can use
--   UDP, which provides a connectionless datagram service that emphasizes
--   reduced latency over reliability. If you do require reliable data
--   stream service, use TCP instead.</li>
--   <li><a>ipiAccessDirection</a> - The access direction (<tt>inbound</tt>
--   or <tt>outbound</tt> ).</li>
--   <li><a>ipiAccessType</a> - The type of access (<tt>Public</tt> or
--   <tt>Private</tt> ).</li>
--   <li><a>ipiToPort</a> - The last port in the range.</li>
--   <li><a>ipiAccessFrom</a> - The location from which access is allowed
--   (e.g., <tt>Anywhere (0.0.0.0/0)</tt> ).</li>
--   </ul>
instancePortInfo :: InstancePortInfo

-- | The first port in the range.
ipiFromPort :: Lens' InstancePortInfo (Maybe Natural)

-- | The common name.
ipiCommonName :: Lens' InstancePortInfo (Maybe Text)

-- | The protocol being used. Can be one of the following. * <tt>tcp</tt> -
--   Transmission Control Protocol (TCP) provides reliable, ordered, and
--   error-checked delivery of streamed data between applications running
--   on hosts communicating by an IP network. If you have an application
--   that doesn't require reliable data stream service, use UDP instead. *
--   <tt>all</tt> - All transport layer protocol types. For more general
--   information, see <a>Transport layer</a> on Wikipedia. * <tt>udp</tt> -
--   With User Datagram Protocol (UDP), computer applications can send
--   messages (or datagrams) to other hosts on an Internet Protocol (IP)
--   network. Prior communications are not required to set up transmission
--   channels or data paths. Applications that don't require reliable data
--   stream service can use UDP, which provides a connectionless datagram
--   service that emphasizes reduced latency over reliability. If you do
--   require reliable data stream service, use TCP instead.
ipiProtocol :: Lens' InstancePortInfo (Maybe NetworkProtocol)

-- | The access direction (<tt>inbound</tt> or <tt>outbound</tt> ).
ipiAccessDirection :: Lens' InstancePortInfo (Maybe AccessDirection)

-- | The type of access (<tt>Public</tt> or <tt>Private</tt> ).
ipiAccessType :: Lens' InstancePortInfo (Maybe PortAccessType)

-- | The last port in the range.
ipiToPort :: Lens' InstancePortInfo (Maybe Natural)

-- | The location from which access is allowed (e.g., <tt>Anywhere
--   (0.0.0.0/0)</tt> ).
ipiAccessFrom :: Lens' InstancePortInfo (Maybe Text)

-- | Describes the port state.
--   
--   <i>See:</i> <a>instancePortState</a> smart constructor.
data InstancePortState

-- | Creates a value of <a>InstancePortState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ipsFromPort</a> - The first port in the range.</li>
--   <li><a>ipsState</a> - Specifies whether the instance port is
--   <tt>open</tt> or <tt>closed</tt> .</li>
--   <li><a>ipsProtocol</a> - The protocol being used. Can be one of the
--   following. * <tt>tcp</tt> - Transmission Control Protocol (TCP)
--   provides reliable, ordered, and error-checked delivery of streamed
--   data between applications running on hosts communicating by an IP
--   network. If you have an application that doesn't require reliable data
--   stream service, use UDP instead. * <tt>all</tt> - All transport layer
--   protocol types. For more general information, see <a>Transport
--   layer</a> on Wikipedia. * <tt>udp</tt> - With User Datagram Protocol
--   (UDP), computer applications can send messages (or datagrams) to other
--   hosts on an Internet Protocol (IP) network. Prior communications are
--   not required to set up transmission channels or data paths.
--   Applications that don't require reliable data stream service can use
--   UDP, which provides a connectionless datagram service that emphasizes
--   reduced latency over reliability. If you do require reliable data
--   stream service, use TCP instead.</li>
--   <li><a>ipsToPort</a> - The last port in the range.</li>
--   </ul>
instancePortState :: InstancePortState

-- | The first port in the range.
ipsFromPort :: Lens' InstancePortState (Maybe Natural)

-- | Specifies whether the instance port is <tt>open</tt> or
--   <tt>closed</tt> .
ipsState :: Lens' InstancePortState (Maybe PortState)

-- | The protocol being used. Can be one of the following. * <tt>tcp</tt> -
--   Transmission Control Protocol (TCP) provides reliable, ordered, and
--   error-checked delivery of streamed data between applications running
--   on hosts communicating by an IP network. If you have an application
--   that doesn't require reliable data stream service, use UDP instead. *
--   <tt>all</tt> - All transport layer protocol types. For more general
--   information, see <a>Transport layer</a> on Wikipedia. * <tt>udp</tt> -
--   With User Datagram Protocol (UDP), computer applications can send
--   messages (or datagrams) to other hosts on an Internet Protocol (IP)
--   network. Prior communications are not required to set up transmission
--   channels or data paths. Applications that don't require reliable data
--   stream service can use UDP, which provides a connectionless datagram
--   service that emphasizes reduced latency over reliability. If you do
--   require reliable data stream service, use TCP instead.
ipsProtocol :: Lens' InstancePortState (Maybe NetworkProtocol)

-- | The last port in the range.
ipsToPort :: Lens' InstancePortState (Maybe Natural)

-- | Describes the snapshot of the virtual private server, or
--   <i>instance</i> .
--   
--   <i>See:</i> <a>instanceSnapshot</a> smart constructor.
data InstanceSnapshot

-- | Creates a value of <a>InstanceSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>insFromBlueprintId</a> - The blueprint ID from which you
--   created the snapshot (e.g., <tt>os_debian_8_3</tt> ). A blueprint is a
--   virtual private server (or <i>instance</i> ) image used to create
--   instances quickly.</li>
--   <li><a>insState</a> - The state the snapshot is in.</li>
--   <li><a>insResourceType</a> - The type of resource (usually
--   <tt>InstanceSnapshot</tt> ).</li>
--   <li><a>insFromAttachedDisks</a> - An array of disk objects containing
--   information about all block storage disks.</li>
--   <li><a>insArn</a> - The Amazon Resource Name (ARN) of the snapshot
--   (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:InstanceSnapshot/d23b5706-3322-4d83-81e5-12345EXAMPLE</tt>
--   ).</li>
--   <li><a>insCreatedAt</a> - The timestamp when the snapshot was created
--   (e.g., <tt>1479907467.024</tt> ).</li>
--   <li><a>insLocation</a> - The region name and availability zone where
--   you created the snapshot.</li>
--   <li><a>insProgress</a> - The progress of the snapshot.</li>
--   <li><a>insName</a> - The name of the snapshot.</li>
--   <li><a>insFromBundleId</a> - The bundle ID from which you created the
--   snapshot (e.g., <tt>micro_1_0</tt> ).</li>
--   <li><a>insSizeInGb</a> - The size in GB of the SSD.</li>
--   <li><a>insSupportCode</a> - The support code. Include this code in
--   your email to support when you have questions about an instance or
--   another resource in Lightsail. This code enables our support team to
--   look up your Lightsail information more easily.</li>
--   <li><a>insFromInstanceARN</a> - The Amazon Resource Name (ARN) of the
--   instance from which the snapshot was created (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:Instance/64b8404c-ccb1-430b-8daf-12345EXAMPLE</tt>
--   ).</li>
--   <li><a>insFromInstanceName</a> - The instance from which the snapshot
--   was created.</li>
--   </ul>
instanceSnapshot :: InstanceSnapshot

-- | The blueprint ID from which you created the snapshot (e.g.,
--   <tt>os_debian_8_3</tt> ). A blueprint is a virtual private server (or
--   <i>instance</i> ) image used to create instances quickly.
insFromBlueprintId :: Lens' InstanceSnapshot (Maybe Text)

-- | The state the snapshot is in.
insState :: Lens' InstanceSnapshot (Maybe InstanceSnapshotState)

-- | The type of resource (usually <tt>InstanceSnapshot</tt> ).
insResourceType :: Lens' InstanceSnapshot (Maybe ResourceType)

-- | An array of disk objects containing information about all block
--   storage disks.
insFromAttachedDisks :: Lens' InstanceSnapshot [Disk]

-- | The Amazon Resource Name (ARN) of the snapshot (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:InstanceSnapshot/d23b5706-3322-4d83-81e5-12345EXAMPLE</tt>
--   ).
insArn :: Lens' InstanceSnapshot (Maybe Text)

-- | The timestamp when the snapshot was created (e.g.,
--   <tt>1479907467.024</tt> ).
insCreatedAt :: Lens' InstanceSnapshot (Maybe UTCTime)

-- | The region name and availability zone where you created the snapshot.
insLocation :: Lens' InstanceSnapshot (Maybe ResourceLocation)

-- | The progress of the snapshot.
insProgress :: Lens' InstanceSnapshot (Maybe Text)

-- | The name of the snapshot.
insName :: Lens' InstanceSnapshot (Maybe Text)

-- | The bundle ID from which you created the snapshot (e.g.,
--   <tt>micro_1_0</tt> ).
insFromBundleId :: Lens' InstanceSnapshot (Maybe Text)

-- | The size in GB of the SSD.
insSizeInGb :: Lens' InstanceSnapshot (Maybe Int)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
insSupportCode :: Lens' InstanceSnapshot (Maybe Text)

-- | The Amazon Resource Name (ARN) of the instance from which the snapshot
--   was created (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:Instance/64b8404c-ccb1-430b-8daf-12345EXAMPLE</tt>
--   ).
insFromInstanceARN :: Lens' InstanceSnapshot (Maybe Text)

-- | The instance from which the snapshot was created.
insFromInstanceName :: Lens' InstanceSnapshot (Maybe Text)

-- | Describes the virtual private server (or <i>instance</i> ) status.
--   
--   <i>See:</i> <a>instanceState</a> smart constructor.
data InstanceState

-- | Creates a value of <a>InstanceState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isName</a> - The state of the instance (e.g., <tt>running</tt>
--   or <tt>pending</tt> ).</li>
--   <li><a>isCode</a> - The status code for the instance.</li>
--   </ul>
instanceState :: InstanceState

-- | The state of the instance (e.g., <tt>running</tt> or <tt>pending</tt>
--   ).
isName :: Lens' InstanceState (Maybe Text)

-- | The status code for the instance.
isCode :: Lens' InstanceState (Maybe Int)

-- | Describes the SSH key pair.
--   
--   <i>See:</i> <a>keyPair</a> smart constructor.
data KeyPair

-- | Creates a value of <a>KeyPair</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>kpResourceType</a> - The resource type (usually
--   <tt>KeyPair</tt> ).</li>
--   <li><a>kpArn</a> - The Amazon Resource Name (ARN) of the key pair
--   (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:KeyPair/05859e3d-331d-48ba-9034-12345EXAMPLE</tt>
--   ).</li>
--   <li><a>kpCreatedAt</a> - The timestamp when the key pair was created
--   (e.g., <tt>1479816991.349</tt> ).</li>
--   <li><a>kpLocation</a> - The region name and Availability Zone where
--   the key pair was created.</li>
--   <li><a>kpFingerprint</a> - The RSA fingerprint of the key pair.</li>
--   <li><a>kpName</a> - The friendly name of the SSH key pair.</li>
--   <li><a>kpSupportCode</a> - The support code. Include this code in your
--   email to support when you have questions about an instance or another
--   resource in Lightsail. This code enables our support team to look up
--   your Lightsail information more easily.</li>
--   </ul>
keyPair :: KeyPair

-- | The resource type (usually <tt>KeyPair</tt> ).
kpResourceType :: Lens' KeyPair (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the key pair (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:KeyPair/05859e3d-331d-48ba-9034-12345EXAMPLE</tt>
--   ).
kpArn :: Lens' KeyPair (Maybe Text)

-- | The timestamp when the key pair was created (e.g.,
--   <tt>1479816991.349</tt> ).
kpCreatedAt :: Lens' KeyPair (Maybe UTCTime)

-- | The region name and Availability Zone where the key pair was created.
kpLocation :: Lens' KeyPair (Maybe ResourceLocation)

-- | The RSA fingerprint of the key pair.
kpFingerprint :: Lens' KeyPair (Maybe Text)

-- | The friendly name of the SSH key pair.
kpName :: Lens' KeyPair (Maybe Text)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
kpSupportCode :: Lens' KeyPair (Maybe Text)

-- | Describes the Lightsail load balancer.
--   
--   <i>See:</i> <a>loadBalancer</a> smart constructor.
data LoadBalancer

-- | Creates a value of <a>LoadBalancer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbHealthCheckPath</a> - The path you specified to perform your
--   health checks. If no path is specified, the load balancer tries to
--   make a request to the default (root) page.</li>
--   <li><a>lbState</a> - The status of your load balancer. Valid values
--   are below.</li>
--   <li><a>lbResourceType</a> - The resource type (e.g.,
--   <tt>LoadBalancer</tt> .</li>
--   <li><a>lbArn</a> - The Amazon Resource Name (ARN) of the load
--   balancer.</li>
--   <li><a>lbCreatedAt</a> - The date when your load balancer was
--   created.</li>
--   <li><a>lbLocation</a> - The AWS Region where your load balancer was
--   created (e.g., <tt>us-east-2a</tt> ). Lightsail automatically creates
--   your load balancer across Availability Zones.</li>
--   <li><a>lbInstancePort</a> - The port where the load balancer will
--   direct traffic to your Lightsail instances. For HTTP traffic, it's
--   port 80. For HTTPS traffic, it's port 443.</li>
--   <li><a>lbConfigurationOptions</a> - A string to string map of the
--   configuration options for your load balancer. Valid values are listed
--   below.</li>
--   <li><a>lbProtocol</a> - The protocol you have enabled for your load
--   balancer. Valid values are below. You can't just have
--   <tt>HTTP_HTTPS</tt> , but you can have just <tt>HTTP</tt> .</li>
--   <li><a>lbTlsCertificateSummaries</a> - An array of
--   LoadBalancerTlsCertificateSummary objects that provide additional
--   information about the SSL/TLS certificates. For example, if
--   <tt>true</tt> , the certificate is attached to the load balancer.</li>
--   <li><a>lbName</a> - The name of the load balancer (e.g.,
--   <tt>my-load-balancer</tt> ).</li>
--   <li><a>lbSupportCode</a> - The support code. Include this code in your
--   email to support when you have questions about your Lightsail load
--   balancer. This code enables our support team to look up your Lightsail
--   information more easily.</li>
--   <li><a>lbPublicPorts</a> - An array of public port settings for your
--   load balancer. For HTTP, use port 80. For HTTPS, use port 443.</li>
--   <li><a>lbDnsName</a> - The DNS name of your Lightsail load
--   balancer.</li>
--   <li><a>lbInstanceHealthSummary</a> - An array of InstanceHealthSummary
--   objects describing the health of the load balancer.</li>
--   </ul>
loadBalancer :: LoadBalancer

-- | The path you specified to perform your health checks. If no path is
--   specified, the load balancer tries to make a request to the default
--   (root) page.
lbHealthCheckPath :: Lens' LoadBalancer (Maybe Text)

-- | The status of your load balancer. Valid values are below.
lbState :: Lens' LoadBalancer (Maybe LoadBalancerState)

-- | The resource type (e.g., <tt>LoadBalancer</tt> .
lbResourceType :: Lens' LoadBalancer (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the load balancer.
lbArn :: Lens' LoadBalancer (Maybe Text)

-- | The date when your load balancer was created.
lbCreatedAt :: Lens' LoadBalancer (Maybe UTCTime)

-- | The AWS Region where your load balancer was created (e.g.,
--   <tt>us-east-2a</tt> ). Lightsail automatically creates your load
--   balancer across Availability Zones.
lbLocation :: Lens' LoadBalancer (Maybe ResourceLocation)

-- | The port where the load balancer will direct traffic to your Lightsail
--   instances. For HTTP traffic, it's port 80. For HTTPS traffic, it's
--   port 443.
lbInstancePort :: Lens' LoadBalancer (Maybe Int)

-- | A string to string map of the configuration options for your load
--   balancer. Valid values are listed below.
lbConfigurationOptions :: Lens' LoadBalancer (HashMap LoadBalancerAttributeName Text)

-- | The protocol you have enabled for your load balancer. Valid values are
--   below. You can't just have <tt>HTTP_HTTPS</tt> , but you can have just
--   <tt>HTTP</tt> .
lbProtocol :: Lens' LoadBalancer (Maybe LoadBalancerProtocol)

-- | An array of LoadBalancerTlsCertificateSummary objects that provide
--   additional information about the SSL/TLS certificates. For example, if
--   <tt>true</tt> , the certificate is attached to the load balancer.
lbTlsCertificateSummaries :: Lens' LoadBalancer [LoadBalancerTLSCertificateSummary]

-- | The name of the load balancer (e.g., <tt>my-load-balancer</tt> ).
lbName :: Lens' LoadBalancer (Maybe Text)

-- | The support code. Include this code in your email to support when you
--   have questions about your Lightsail load balancer. This code enables
--   our support team to look up your Lightsail information more easily.
lbSupportCode :: Lens' LoadBalancer (Maybe Text)

-- | An array of public port settings for your load balancer. For HTTP, use
--   port 80. For HTTPS, use port 443.
lbPublicPorts :: Lens' LoadBalancer [Natural]

-- | The DNS name of your Lightsail load balancer.
lbDnsName :: Lens' LoadBalancer (Maybe Text)

-- | An array of InstanceHealthSummary objects describing the health of the
--   load balancer.
lbInstanceHealthSummary :: Lens' LoadBalancer [InstanceHealthSummary]

-- | Describes a load balancer SSL/TLS certificate.
--   
--   TLS is just an updated, more secure version of Secure Socket Layer
--   (SSL).
--   
--   <i>See:</i> <a>loadBalancerTLSCertificate</a> smart constructor.
data LoadBalancerTLSCertificate

-- | Creates a value of <a>LoadBalancerTLSCertificate</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbtcFailureReason</a> - The reason for the SSL/TLS certificate
--   validation failure.</li>
--   <li><a>lbtcSubject</a> - The name of the entity that is associated
--   with the public key contained in the certificate.</li>
--   <li><a>lbtcStatus</a> - The status of the SSL/TLS certificate. Valid
--   values are below.</li>
--   <li><a>lbtcSubjectAlternativeNames</a> - One or more domains or
--   subdomains included in the certificate. This list contains the domain
--   names that are bound to the public key that is contained in the
--   certificate. The subject alternative names include the canonical
--   domain name (CNAME) of the certificate and additional domain names
--   that can be used to connect to the website, such as
--   <tt>example.com</tt> , <tt>www.example.com</tt> , or
--   <tt>m.example.com</tt> .</li>
--   <li><a>lbtcResourceType</a> - The resource type (e.g.,
--   <tt>LoadBalancerTlsCertificate</tt> ). * <b><tt>Instance</tt> </b> - A
--   Lightsail instance (a virtual private server) * <b><tt>StaticIp</tt>
--   </b> - A static IP address * <b><tt>KeyPair</tt> </b> - The key pair
--   used to connect to a Lightsail instance * <b><tt>InstanceSnapshot</tt>
--   </b> - A Lightsail instance snapshot * <b><tt>Domain</tt> </b> - A DNS
--   zone * <b><tt>PeeredVpc</tt> </b> - A peered VPC *
--   <b><tt>LoadBalancer</tt> </b> - A Lightsail load balancer *
--   <b><tt>LoadBalancerTlsCertificate</tt> </b> - An SSL/TLS certificate
--   associated with a Lightsail load balancer * <b><tt>Disk</tt> </b> - A
--   Lightsail block storage disk * <b><tt>DiskSnapshot</tt> </b> - A block
--   storage disk snapshot</li>
--   <li><a>lbtcArn</a> - The Amazon Resource Name (ARN) of the SSL/TLS
--   certificate.</li>
--   <li><a>lbtcCreatedAt</a> - The time when you created your SSL/TLS
--   certificate.</li>
--   <li><a>lbtcLocation</a> - The AWS Region and Availability Zone where
--   you created your certificate.</li>
--   <li><a>lbtcLoadBalancerName</a> - The load balancer name where your
--   SSL/TLS certificate is attached.</li>
--   <li><a>lbtcSerial</a> - The serial number of the certificate.</li>
--   <li><a>lbtcIsAttached</a> - When <tt>true</tt> , the SSL/TLS
--   certificate is attached to the Lightsail load balancer.</li>
--   <li><a>lbtcRevokedAt</a> - The timestamp when the SSL/TLS certificate
--   was revoked.</li>
--   <li><a>lbtcNotBefore</a> - The timestamp when the SSL/TLS certificate
--   is first valid.</li>
--   <li><a>lbtcRevocationReason</a> - The reason the certificate was
--   revoked. Valid values are below.</li>
--   <li><a>lbtcDomainName</a> - The domain name for your SSL/TLS
--   certificate.</li>
--   <li><a>lbtcName</a> - The name of the SSL/TLS certificate (e.g.,
--   <tt>my-certificate</tt> ).</li>
--   <li><a>lbtcRenewalSummary</a> - An object containing information about
--   the status of Lightsail's managed renewal for the certificate.</li>
--   <li><a>lbtcSupportCode</a> - The support code. Include this code in
--   your email to support when you have questions about your Lightsail
--   load balancer or SSL/TLS certificate. This code enables our support
--   team to look up your Lightsail information more easily.</li>
--   <li><a>lbtcDomainValidationRecords</a> - An array of
--   LoadBalancerTlsCertificateDomainValidationRecord objects describing
--   the records.</li>
--   <li><a>lbtcIssuedAt</a> - The time when the SSL/TLS certificate was
--   issued.</li>
--   <li><a>lbtcKeyAlgorithm</a> - The algorithm that was used to generate
--   the key pair (the public and private key).</li>
--   <li><a>lbtcSignatureAlgorithm</a> - The algorithm that was used to
--   sign the certificate.</li>
--   <li><a>lbtcIssuer</a> - The issuer of the certificate.</li>
--   <li><a>lbtcNotAfter</a> - The timestamp when the SSL/TLS certificate
--   expires.</li>
--   </ul>
loadBalancerTLSCertificate :: LoadBalancerTLSCertificate

-- | The reason for the SSL/TLS certificate validation failure.
lbtcFailureReason :: Lens' LoadBalancerTLSCertificate (Maybe LoadBalancerTLSCertificateFailureReason)

-- | The name of the entity that is associated with the public key
--   contained in the certificate.
lbtcSubject :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The status of the SSL/TLS certificate. Valid values are below.
lbtcStatus :: Lens' LoadBalancerTLSCertificate (Maybe LoadBalancerTLSCertificateStatus)

-- | One or more domains or subdomains included in the certificate. This
--   list contains the domain names that are bound to the public key that
--   is contained in the certificate. The subject alternative names include
--   the canonical domain name (CNAME) of the certificate and additional
--   domain names that can be used to connect to the website, such as
--   <tt>example.com</tt> , <tt>www.example.com</tt> , or
--   <tt>m.example.com</tt> .
lbtcSubjectAlternativeNames :: Lens' LoadBalancerTLSCertificate [Text]

-- | The resource type (e.g., <tt>LoadBalancerTlsCertificate</tt> ). *
--   <b><tt>Instance</tt> </b> - A Lightsail instance (a virtual private
--   server) * <b><tt>StaticIp</tt> </b> - A static IP address *
--   <b><tt>KeyPair</tt> </b> - The key pair used to connect to a Lightsail
--   instance * <b><tt>InstanceSnapshot</tt> </b> - A Lightsail instance
--   snapshot * <b><tt>Domain</tt> </b> - A DNS zone *
--   <b><tt>PeeredVpc</tt> </b> - A peered VPC * <b><tt>LoadBalancer</tt>
--   </b> - A Lightsail load balancer *
--   <b><tt>LoadBalancerTlsCertificate</tt> </b> - An SSL/TLS certificate
--   associated with a Lightsail load balancer * <b><tt>Disk</tt> </b> - A
--   Lightsail block storage disk * <b><tt>DiskSnapshot</tt> </b> - A block
--   storage disk snapshot
lbtcResourceType :: Lens' LoadBalancerTLSCertificate (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the SSL/TLS certificate.
lbtcArn :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The time when you created your SSL/TLS certificate.
lbtcCreatedAt :: Lens' LoadBalancerTLSCertificate (Maybe UTCTime)

-- | The AWS Region and Availability Zone where you created your
--   certificate.
lbtcLocation :: Lens' LoadBalancerTLSCertificate (Maybe ResourceLocation)

-- | The load balancer name where your SSL/TLS certificate is attached.
lbtcLoadBalancerName :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The serial number of the certificate.
lbtcSerial :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | When <tt>true</tt> , the SSL/TLS certificate is attached to the
--   Lightsail load balancer.
lbtcIsAttached :: Lens' LoadBalancerTLSCertificate (Maybe Bool)

-- | The timestamp when the SSL/TLS certificate was revoked.
lbtcRevokedAt :: Lens' LoadBalancerTLSCertificate (Maybe UTCTime)

-- | The timestamp when the SSL/TLS certificate is first valid.
lbtcNotBefore :: Lens' LoadBalancerTLSCertificate (Maybe UTCTime)

-- | The reason the certificate was revoked. Valid values are below.
lbtcRevocationReason :: Lens' LoadBalancerTLSCertificate (Maybe LoadBalancerTLSCertificateRevocationReason)

-- | The domain name for your SSL/TLS certificate.
lbtcDomainName :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The name of the SSL/TLS certificate (e.g., <tt>my-certificate</tt> ).
lbtcName :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | An object containing information about the status of Lightsail's
--   managed renewal for the certificate.
lbtcRenewalSummary :: Lens' LoadBalancerTLSCertificate (Maybe LoadBalancerTLSCertificateRenewalSummary)

-- | The support code. Include this code in your email to support when you
--   have questions about your Lightsail load balancer or SSL/TLS
--   certificate. This code enables our support team to look up your
--   Lightsail information more easily.
lbtcSupportCode :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | An array of LoadBalancerTlsCertificateDomainValidationRecord objects
--   describing the records.
lbtcDomainValidationRecords :: Lens' LoadBalancerTLSCertificate [LoadBalancerTLSCertificateDomainValidationRecord]

-- | The time when the SSL/TLS certificate was issued.
lbtcIssuedAt :: Lens' LoadBalancerTLSCertificate (Maybe UTCTime)

-- | The algorithm that was used to generate the key pair (the public and
--   private key).
lbtcKeyAlgorithm :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The algorithm that was used to sign the certificate.
lbtcSignatureAlgorithm :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The issuer of the certificate.
lbtcIssuer :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The timestamp when the SSL/TLS certificate expires.
lbtcNotAfter :: Lens' LoadBalancerTLSCertificate (Maybe UTCTime)

-- | Contains information about the domain names on an SSL/TLS certificate
--   that you will use to validate domain ownership.
--   
--   <i>See:</i> <a>loadBalancerTLSCertificateDomainValidationOption</a>
--   smart constructor.
data LoadBalancerTLSCertificateDomainValidationOption

-- | Creates a value of
--   <a>LoadBalancerTLSCertificateDomainValidationOption</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbtcdvoDomainName</a> - The fully qualified domain name in the
--   certificate request.</li>
--   <li><a>lbtcdvoValidationStatus</a> - The status of the domain
--   validation. Valid values are listed below.</li>
--   </ul>
loadBalancerTLSCertificateDomainValidationOption :: LoadBalancerTLSCertificateDomainValidationOption

-- | The fully qualified domain name in the certificate request.
lbtcdvoDomainName :: Lens' LoadBalancerTLSCertificateDomainValidationOption (Maybe Text)

-- | The status of the domain validation. Valid values are listed below.
lbtcdvoValidationStatus :: Lens' LoadBalancerTLSCertificateDomainValidationOption (Maybe LoadBalancerTLSCertificateDomainStatus)

-- | Describes the validation record of each domain name in the SSL/TLS
--   certificate.
--   
--   <i>See:</i> <a>loadBalancerTLSCertificateDomainValidationRecord</a>
--   smart constructor.
data LoadBalancerTLSCertificateDomainValidationRecord

-- | Creates a value of
--   <a>LoadBalancerTLSCertificateDomainValidationRecord</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbtcdvrValue</a> - The value for that type.</li>
--   <li><a>lbtcdvrDomainName</a> - The domain name against which your
--   SSL/TLS certificate was validated.</li>
--   <li><a>lbtcdvrName</a> - A fully qualified domain name in the
--   certificate. For example, <tt>example.com</tt> .</li>
--   <li><a>lbtcdvrValidationStatus</a> - The validation status. Valid
--   values are listed below.</li>
--   <li><a>lbtcdvrType</a> - The type of validation record. For example,
--   <tt>CNAME</tt> for domain validation.</li>
--   </ul>
loadBalancerTLSCertificateDomainValidationRecord :: LoadBalancerTLSCertificateDomainValidationRecord

-- | The value for that type.
lbtcdvrValue :: Lens' LoadBalancerTLSCertificateDomainValidationRecord (Maybe Text)

-- | The domain name against which your SSL/TLS certificate was validated.
lbtcdvrDomainName :: Lens' LoadBalancerTLSCertificateDomainValidationRecord (Maybe Text)

-- | A fully qualified domain name in the certificate. For example,
--   <tt>example.com</tt> .
lbtcdvrName :: Lens' LoadBalancerTLSCertificateDomainValidationRecord (Maybe Text)

-- | The validation status. Valid values are listed below.
lbtcdvrValidationStatus :: Lens' LoadBalancerTLSCertificateDomainValidationRecord (Maybe LoadBalancerTLSCertificateDomainStatus)

-- | The type of validation record. For example, <tt>CNAME</tt> for domain
--   validation.
lbtcdvrType :: Lens' LoadBalancerTLSCertificateDomainValidationRecord (Maybe Text)

-- | Contains information about the status of Lightsail's managed renewal
--   for the certificate.
--   
--   <i>See:</i> <a>loadBalancerTLSCertificateRenewalSummary</a> smart
--   constructor.
data LoadBalancerTLSCertificateRenewalSummary

-- | Creates a value of <a>LoadBalancerTLSCertificateRenewalSummary</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbtcrsRenewalStatus</a> - The status of Lightsail's managed
--   renewal of the certificate. Valid values are listed below.</li>
--   <li><a>lbtcrsDomainValidationOptions</a> - Contains information about
--   the validation of each domain name in the certificate, as it pertains
--   to Lightsail's managed renewal. This is different from the initial
--   validation that occurs as a result of the RequestCertificate
--   request.</li>
--   </ul>
loadBalancerTLSCertificateRenewalSummary :: LoadBalancerTLSCertificateRenewalSummary

-- | The status of Lightsail's managed renewal of the certificate. Valid
--   values are listed below.
lbtcrsRenewalStatus :: Lens' LoadBalancerTLSCertificateRenewalSummary (Maybe LoadBalancerTLSCertificateRenewalStatus)

-- | Contains information about the validation of each domain name in the
--   certificate, as it pertains to Lightsail's managed renewal. This is
--   different from the initial validation that occurs as a result of the
--   RequestCertificate request.
lbtcrsDomainValidationOptions :: Lens' LoadBalancerTLSCertificateRenewalSummary [LoadBalancerTLSCertificateDomainValidationOption]

-- | Provides a summary of SSL/TLS certificate metadata.
--   
--   <i>See:</i> <a>loadBalancerTLSCertificateSummary</a> smart
--   constructor.
data LoadBalancerTLSCertificateSummary

-- | Creates a value of <a>LoadBalancerTLSCertificateSummary</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbtcsIsAttached</a> - When <tt>true</tt> , the SSL/TLS
--   certificate is attached to the Lightsail load balancer.</li>
--   <li><a>lbtcsName</a> - The name of the SSL/TLS certificate.</li>
--   </ul>
loadBalancerTLSCertificateSummary :: LoadBalancerTLSCertificateSummary

-- | When <tt>true</tt> , the SSL/TLS certificate is attached to the
--   Lightsail load balancer.
lbtcsIsAttached :: Lens' LoadBalancerTLSCertificateSummary (Maybe Bool)

-- | The name of the SSL/TLS certificate.
lbtcsName :: Lens' LoadBalancerTLSCertificateSummary (Maybe Text)

-- | Describes the metric data point.
--   
--   <i>See:</i> <a>metricDatapoint</a> smart constructor.
data MetricDatapoint

-- | Creates a value of <a>MetricDatapoint</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mdSampleCount</a> - The sample count.</li>
--   <li><a>mdMaximum</a> - The maximum.</li>
--   <li><a>mdAverage</a> - The average.</li>
--   <li><a>mdMinimum</a> - The minimum.</li>
--   <li><a>mdSum</a> - The sum.</li>
--   <li><a>mdTimestamp</a> - The timestamp (e.g., <tt>1479816991.349</tt>
--   ).</li>
--   <li><a>mdUnit</a> - The unit.</li>
--   </ul>
metricDatapoint :: MetricDatapoint

-- | The sample count.
mdSampleCount :: Lens' MetricDatapoint (Maybe Double)

-- | The maximum.
mdMaximum :: Lens' MetricDatapoint (Maybe Double)

-- | The average.
mdAverage :: Lens' MetricDatapoint (Maybe Double)

-- | The minimum.
mdMinimum :: Lens' MetricDatapoint (Maybe Double)

-- | The sum.
mdSum :: Lens' MetricDatapoint (Maybe Double)

-- | The timestamp (e.g., <tt>1479816991.349</tt> ).
mdTimestamp :: Lens' MetricDatapoint (Maybe UTCTime)

-- | The unit.
mdUnit :: Lens' MetricDatapoint (Maybe MetricUnit)

-- | Describes the monthly data transfer in and out of your virtual private
--   server (or <i>instance</i> ).
--   
--   <i>See:</i> <a>monthlyTransfer</a> smart constructor.
data MonthlyTransfer

-- | Creates a value of <a>MonthlyTransfer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mtGbPerMonthAllocated</a> - The amount allocated per month (in
--   GB).</li>
--   </ul>
monthlyTransfer :: MonthlyTransfer

-- | The amount allocated per month (in GB).
mtGbPerMonthAllocated :: Lens' MonthlyTransfer (Maybe Int)

-- | Describes the API operation.
--   
--   <i>See:</i> <a>operation</a> smart constructor.
data Operation

-- | Creates a value of <a>Operation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oStatus</a> - The status of the operation.</li>
--   <li><a>oOperationDetails</a> - Details about the operation (e.g.,
--   <tt>Debian-1GB-Ohio-1</tt> ).</li>
--   <li><a>oResourceType</a> - The resource type.</li>
--   <li><a>oCreatedAt</a> - The timestamp when the operation was
--   initialized (e.g., <tt>1479816991.349</tt> ).</li>
--   <li><a>oResourceName</a> - The resource name.</li>
--   <li><a>oLocation</a> - The region and Availability Zone.</li>
--   <li><a>oStatusChangedAt</a> - The timestamp when the status was
--   changed (e.g., <tt>1479816991.349</tt> ).</li>
--   <li><a>oErrorDetails</a> - The error details.</li>
--   <li><a>oErrorCode</a> - The error code.</li>
--   <li><a>oId</a> - The ID of the operation.</li>
--   <li><a>oOperationType</a> - The type of operation.</li>
--   <li><a>oIsTerminal</a> - A Boolean value indicating whether the
--   operation is terminal.</li>
--   </ul>
operation :: Operation

-- | The status of the operation.
oStatus :: Lens' Operation (Maybe OperationStatus)

-- | Details about the operation (e.g., <tt>Debian-1GB-Ohio-1</tt> ).
oOperationDetails :: Lens' Operation (Maybe Text)

-- | The resource type.
oResourceType :: Lens' Operation (Maybe ResourceType)

-- | The timestamp when the operation was initialized (e.g.,
--   <tt>1479816991.349</tt> ).
oCreatedAt :: Lens' Operation (Maybe UTCTime)

-- | The resource name.
oResourceName :: Lens' Operation (Maybe Text)

-- | The region and Availability Zone.
oLocation :: Lens' Operation (Maybe ResourceLocation)

-- | The timestamp when the status was changed (e.g.,
--   <tt>1479816991.349</tt> ).
oStatusChangedAt :: Lens' Operation (Maybe UTCTime)

-- | The error details.
oErrorDetails :: Lens' Operation (Maybe Text)

-- | The error code.
oErrorCode :: Lens' Operation (Maybe Text)

-- | The ID of the operation.
oId :: Lens' Operation (Maybe Text)

-- | The type of operation.
oOperationType :: Lens' Operation (Maybe OperationType)

-- | A Boolean value indicating whether the operation is terminal.
oIsTerminal :: Lens' Operation (Maybe Bool)

-- | The password data for the Windows Server-based instance, including the
--   ciphertext and the key pair name.
--   
--   <i>See:</i> <a>passwordData</a> smart constructor.
data PasswordData

-- | Creates a value of <a>PasswordData</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdKeyPairName</a> - The name of the key pair that you used when
--   creating your instance. If no key pair name was specified when
--   creating the instance, Lightsail uses the default key pair
--   (<tt>LightsailDefaultKeyPair</tt> ). If you are using a custom key
--   pair, you need to use your own means of decrypting your password using
--   the <tt>ciphertext</tt> . Lightsail creates the ciphertext by
--   encrypting your password with the public key part of this key
--   pair.</li>
--   <li><a>pdCiphertext</a> - The encrypted password. Ciphertext will be
--   an empty string if access to your new instance is not ready yet. When
--   you create an instance, it can take up to 15 minutes for the instance
--   to be ready.</li>
--   </ul>
passwordData :: PasswordData

-- | The name of the key pair that you used when creating your instance. If
--   no key pair name was specified when creating the instance, Lightsail
--   uses the default key pair (<tt>LightsailDefaultKeyPair</tt> ). If you
--   are using a custom key pair, you need to use your own means of
--   decrypting your password using the <tt>ciphertext</tt> . Lightsail
--   creates the ciphertext by encrypting your password with the public key
--   part of this key pair.
pdKeyPairName :: Lens' PasswordData (Maybe Text)

-- | The encrypted password. Ciphertext will be an empty string if access
--   to your new instance is not ready yet. When you create an instance, it
--   can take up to 15 minutes for the instance to be ready.
pdCiphertext :: Lens' PasswordData (Maybe Text)

-- | Describes information about the ports on your virtual private server
--   (or <i>instance</i> ).
--   
--   <i>See:</i> <a>portInfo</a> smart constructor.
data PortInfo

-- | Creates a value of <a>PortInfo</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>piFromPort</a> - The first port in the range.</li>
--   <li><a>piProtocol</a> - The protocol.</li>
--   <li><a>piToPort</a> - The last port in the range.</li>
--   </ul>
portInfo :: PortInfo

-- | The first port in the range.
piFromPort :: Lens' PortInfo (Maybe Natural)

-- | The protocol.
piProtocol :: Lens' PortInfo (Maybe NetworkProtocol)

-- | The last port in the range.
piToPort :: Lens' PortInfo (Maybe Natural)

-- | Describes the AWS Region.
--   
--   <i>See:</i> <a>regionInfo</a> smart constructor.
data RegionInfo

-- | Creates a value of <a>RegionInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riAvailabilityZones</a> - The Availability Zones. Follows the
--   format <tt>us-east-2a</tt> (case-sensitive).</li>
--   <li><a>riName</a> - The region name (e.g., <tt>us-east-2</tt> ).</li>
--   <li><a>riDisplayName</a> - The display name (e.g., <tt>Ohio</tt>
--   ).</li>
--   <li><a>riContinentCode</a> - The continent code (e.g., <tt>NA</tt> ,
--   meaning North America).</li>
--   <li><a>riDescription</a> - The description of the AWS Region (e.g.,
--   <tt>This region is recommended to serve users in the eastern United
--   States and eastern Canada</tt> ).</li>
--   </ul>
regionInfo :: RegionInfo

-- | The Availability Zones. Follows the format <tt>us-east-2a</tt>
--   (case-sensitive).
riAvailabilityZones :: Lens' RegionInfo [AvailabilityZone]

-- | The region name (e.g., <tt>us-east-2</tt> ).
riName :: Lens' RegionInfo (Maybe RegionName)

-- | The display name (e.g., <tt>Ohio</tt> ).
riDisplayName :: Lens' RegionInfo (Maybe Text)

-- | The continent code (e.g., <tt>NA</tt> , meaning North America).
riContinentCode :: Lens' RegionInfo (Maybe Text)

-- | The description of the AWS Region (e.g., <tt>This region is
--   recommended to serve users in the eastern United States and eastern
--   Canada</tt> ).
riDescription :: Lens' RegionInfo (Maybe Text)

-- | Describes the resource location.
--   
--   <i>See:</i> <a>resourceLocation</a> smart constructor.
data ResourceLocation

-- | Creates a value of <a>ResourceLocation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rlRegionName</a> - The AWS Region name.</li>
--   <li><a>rlAvailabilityZone</a> - The Availability Zone. Follows the
--   format <tt>us-east-2a</tt> (case-sensitive).</li>
--   </ul>
resourceLocation :: ResourceLocation

-- | The AWS Region name.
rlRegionName :: Lens' ResourceLocation (Maybe RegionName)

-- | The Availability Zone. Follows the format <tt>us-east-2a</tt>
--   (case-sensitive).
rlAvailabilityZone :: Lens' ResourceLocation (Maybe Text)

-- | Describes the static IP.
--   
--   <i>See:</i> <a>staticIP</a> smart constructor.
data StaticIP

-- | Creates a value of <a>StaticIP</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siIpAddress</a> - The static IP address.</li>
--   <li><a>siResourceType</a> - The resource type (usually
--   <tt>StaticIp</tt> ).</li>
--   <li><a>siArn</a> - The Amazon Resource Name (ARN) of the static IP
--   (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:StaticIp/9cbb4a9e-f8e3-4dfe-b57e-12345EXAMPLE</tt>
--   ).</li>
--   <li><a>siCreatedAt</a> - The timestamp when the static IP was created
--   (e.g., <tt>1479735304.222</tt> ).</li>
--   <li><a>siLocation</a> - The region and Availability Zone where the
--   static IP was created.</li>
--   <li><a>siIsAttached</a> - A Boolean value indicating whether the
--   static IP is attached.</li>
--   <li><a>siName</a> - The name of the static IP (e.g.,
--   <tt>StaticIP-Ohio-EXAMPLE</tt> ).</li>
--   <li><a>siSupportCode</a> - The support code. Include this code in your
--   email to support when you have questions about an instance or another
--   resource in Lightsail. This code enables our support team to look up
--   your Lightsail information more easily.</li>
--   <li><a>siAttachedTo</a> - The instance where the static IP is attached
--   (e.g., <tt>Amazon_Linux-1GB-Ohio-1</tt> ).</li>
--   </ul>
staticIP :: StaticIP

-- | The static IP address.
siIpAddress :: Lens' StaticIP (Maybe Text)

-- | The resource type (usually <tt>StaticIp</tt> ).
siResourceType :: Lens' StaticIP (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the static IP (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:StaticIp/9cbb4a9e-f8e3-4dfe-b57e-12345EXAMPLE</tt>
--   ).
siArn :: Lens' StaticIP (Maybe Text)

-- | The timestamp when the static IP was created (e.g.,
--   <tt>1479735304.222</tt> ).
siCreatedAt :: Lens' StaticIP (Maybe UTCTime)

-- | The region and Availability Zone where the static IP was created.
siLocation :: Lens' StaticIP (Maybe ResourceLocation)

-- | A Boolean value indicating whether the static IP is attached.
siIsAttached :: Lens' StaticIP (Maybe Bool)

-- | The name of the static IP (e.g., <tt>StaticIP-Ohio-EXAMPLE</tt> ).
siName :: Lens' StaticIP (Maybe Text)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
siSupportCode :: Lens' StaticIP (Maybe Text)

-- | The instance where the static IP is attached (e.g.,
--   <tt>Amazon_Linux-1GB-Ohio-1</tt> ).
siAttachedTo :: Lens' StaticIP (Maybe Text)


-- | Stops a specific Amazon Lightsail instance that is currently running.
module Network.AWS.Lightsail.StopInstance

-- | Creates a value of <a>StopInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siForce</a> - When set to <tt>True</tt> , forces a Lightsail
--   instance that is stuck in a <tt>stopping</tt> state to stop.
--   <i>Important:</i> Only use the <tt>force</tt> parameter if your
--   instance is stuck in the <tt>stopping</tt> state. In any other state,
--   your instance should stop normally without adding this parameter to
--   your API request.</li>
--   <li><a>siInstanceName</a> - The name of the instance (a virtual
--   private server) to stop.</li>
--   </ul>
stopInstance :: Text -> StopInstance

-- | <i>See:</i> <a>stopInstance</a> smart constructor.
data StopInstance

-- | When set to <tt>True</tt> , forces a Lightsail instance that is stuck
--   in a <tt>stopping</tt> state to stop. <i>Important:</i> Only use the
--   <tt>force</tt> parameter if your instance is stuck in the
--   <tt>stopping</tt> state. In any other state, your instance should stop
--   normally without adding this parameter to your API request.
siForce :: Lens' StopInstance (Maybe Bool)

-- | The name of the instance (a virtual private server) to stop.
siInstanceName :: Lens' StopInstance Text

-- | Creates a value of <a>StopInstanceResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sirsOperations</a> - An array of key-value pairs containing
--   information about the request operation.</li>
--   <li><a>sirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
stopInstanceResponse :: Int -> StopInstanceResponse

-- | <i>See:</i> <a>stopInstanceResponse</a> smart constructor.
data StopInstanceResponse

-- | An array of key-value pairs containing information about the request
--   operation.
sirsOperations :: Lens' StopInstanceResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
sirsResponseStatus :: Lens' StopInstanceResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.StopInstance.StopInstanceResponse
instance Data.Data.Data Network.AWS.Lightsail.StopInstance.StopInstanceResponse
instance GHC.Show.Show Network.AWS.Lightsail.StopInstance.StopInstanceResponse
instance GHC.Read.Read Network.AWS.Lightsail.StopInstance.StopInstanceResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.StopInstance.StopInstanceResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.StopInstance.StopInstance
instance Data.Data.Data Network.AWS.Lightsail.StopInstance.StopInstance
instance GHC.Show.Show Network.AWS.Lightsail.StopInstance.StopInstance
instance GHC.Read.Read Network.AWS.Lightsail.StopInstance.StopInstance
instance GHC.Classes.Eq Network.AWS.Lightsail.StopInstance.StopInstance
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.StopInstance.StopInstance
instance Control.DeepSeq.NFData Network.AWS.Lightsail.StopInstance.StopInstanceResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.StopInstance.StopInstance
instance Control.DeepSeq.NFData Network.AWS.Lightsail.StopInstance.StopInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.StopInstance.StopInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.StopInstance.StopInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.StopInstance.StopInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.StopInstance.StopInstance


-- | Starts a specific Amazon Lightsail instance from a stopped state. To
--   restart an instance, use the reboot instance operation.
module Network.AWS.Lightsail.StartInstance

-- | Creates a value of <a>StartInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sInstanceName</a> - The name of the instance (a virtual private
--   server) to start.</li>
--   </ul>
startInstance :: Text -> StartInstance

-- | <i>See:</i> <a>startInstance</a> smart constructor.
data StartInstance

-- | The name of the instance (a virtual private server) to start.
sInstanceName :: Lens' StartInstance Text

-- | Creates a value of <a>StartInstanceResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>srsOperations</a> - An array of key-value pairs containing
--   information about the request operation.</li>
--   <li><a>srsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
startInstanceResponse :: Int -> StartInstanceResponse

-- | <i>See:</i> <a>startInstanceResponse</a> smart constructor.
data StartInstanceResponse

-- | An array of key-value pairs containing information about the request
--   operation.
srsOperations :: Lens' StartInstanceResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
srsResponseStatus :: Lens' StartInstanceResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.StartInstance.StartInstanceResponse
instance Data.Data.Data Network.AWS.Lightsail.StartInstance.StartInstanceResponse
instance GHC.Show.Show Network.AWS.Lightsail.StartInstance.StartInstanceResponse
instance GHC.Read.Read Network.AWS.Lightsail.StartInstance.StartInstanceResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.StartInstance.StartInstanceResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.StartInstance.StartInstance
instance Data.Data.Data Network.AWS.Lightsail.StartInstance.StartInstance
instance GHC.Show.Show Network.AWS.Lightsail.StartInstance.StartInstance
instance GHC.Read.Read Network.AWS.Lightsail.StartInstance.StartInstance
instance GHC.Classes.Eq Network.AWS.Lightsail.StartInstance.StartInstance
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.StartInstance.StartInstance
instance Control.DeepSeq.NFData Network.AWS.Lightsail.StartInstance.StartInstanceResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.StartInstance.StartInstance
instance Control.DeepSeq.NFData Network.AWS.Lightsail.StartInstance.StartInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.StartInstance.StartInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.StartInstance.StartInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.StartInstance.StartInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.StartInstance.StartInstance


-- | Deletes a specific static IP from your account.
module Network.AWS.Lightsail.ReleaseStaticIP

-- | Creates a value of <a>ReleaseStaticIP</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsiStaticIPName</a> - The name of the static IP to delete.</li>
--   </ul>
releaseStaticIP :: Text -> ReleaseStaticIP

-- | <i>See:</i> <a>releaseStaticIP</a> smart constructor.
data ReleaseStaticIP

-- | The name of the static IP to delete.
rsiStaticIPName :: Lens' ReleaseStaticIP Text

-- | Creates a value of <a>ReleaseStaticIPResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsirsOperations</a> - An array of key-value pairs containing
--   information about the request operation.</li>
--   <li><a>rsirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
releaseStaticIPResponse :: Int -> ReleaseStaticIPResponse

-- | <i>See:</i> <a>releaseStaticIPResponse</a> smart constructor.
data ReleaseStaticIPResponse

-- | An array of key-value pairs containing information about the request
--   operation.
rsirsOperations :: Lens' ReleaseStaticIPResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rsirsResponseStatus :: Lens' ReleaseStaticIPResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIPResponse
instance Data.Data.Data Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIPResponse
instance GHC.Show.Show Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIPResponse
instance GHC.Read.Read Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIPResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIPResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIP
instance Data.Data.Data Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIP
instance GHC.Show.Show Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIP
instance GHC.Read.Read Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIP
instance GHC.Classes.Eq Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIP
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIP
instance Control.DeepSeq.NFData Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIPResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIP
instance Control.DeepSeq.NFData Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIP
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIP
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIP
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIP
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIP


-- | Restarts a specific instance. When your Amazon Lightsail instance is
--   finished rebooting, Lightsail assigns a new public IP address. To use
--   the same IP address after restarting, create a static IP address and
--   attach it to the instance.
module Network.AWS.Lightsail.RebootInstance

-- | Creates a value of <a>RebootInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riInstanceName</a> - The name of the instance to reboot.</li>
--   </ul>
rebootInstance :: Text -> RebootInstance

-- | <i>See:</i> <a>rebootInstance</a> smart constructor.
data RebootInstance

-- | The name of the instance to reboot.
riInstanceName :: Lens' RebootInstance Text

-- | Creates a value of <a>RebootInstanceResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rirsOperations</a> - An array of key-value pairs containing
--   information about the request operations.</li>
--   <li><a>rirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
rebootInstanceResponse :: Int -> RebootInstanceResponse

-- | <i>See:</i> <a>rebootInstanceResponse</a> smart constructor.
data RebootInstanceResponse

-- | An array of key-value pairs containing information about the request
--   operations.
rirsOperations :: Lens' RebootInstanceResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rirsResponseStatus :: Lens' RebootInstanceResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.RebootInstance.RebootInstanceResponse
instance Data.Data.Data Network.AWS.Lightsail.RebootInstance.RebootInstanceResponse
instance GHC.Show.Show Network.AWS.Lightsail.RebootInstance.RebootInstanceResponse
instance GHC.Read.Read Network.AWS.Lightsail.RebootInstance.RebootInstanceResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.RebootInstance.RebootInstanceResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.RebootInstance.RebootInstance
instance Data.Data.Data Network.AWS.Lightsail.RebootInstance.RebootInstance
instance GHC.Show.Show Network.AWS.Lightsail.RebootInstance.RebootInstance
instance GHC.Read.Read Network.AWS.Lightsail.RebootInstance.RebootInstance
instance GHC.Classes.Eq Network.AWS.Lightsail.RebootInstance.RebootInstance
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.RebootInstance.RebootInstance
instance Control.DeepSeq.NFData Network.AWS.Lightsail.RebootInstance.RebootInstanceResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.RebootInstance.RebootInstance
instance Control.DeepSeq.NFData Network.AWS.Lightsail.RebootInstance.RebootInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.RebootInstance.RebootInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.RebootInstance.RebootInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.RebootInstance.RebootInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.RebootInstance.RebootInstance


-- | Sets the specified open ports for an Amazon Lightsail instance, and
--   closes all ports for every protocol not included in the current
--   request.
module Network.AWS.Lightsail.PutInstancePublicPorts

-- | Creates a value of <a>PutInstancePublicPorts</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pippPortInfos</a> - Specifies information about the public
--   port(s).</li>
--   <li><a>pippInstanceName</a> - The Lightsail instance name of the
--   public port(s) you are setting.</li>
--   </ul>
putInstancePublicPorts :: Text -> PutInstancePublicPorts

-- | <i>See:</i> <a>putInstancePublicPorts</a> smart constructor.
data PutInstancePublicPorts

-- | Specifies information about the public port(s).
pippPortInfos :: Lens' PutInstancePublicPorts [PortInfo]

-- | The Lightsail instance name of the public port(s) you are setting.
pippInstanceName :: Lens' PutInstancePublicPorts Text

-- | Creates a value of <a>PutInstancePublicPortsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pipprsOperation</a> - Describes metadata about the operation
--   you just executed.</li>
--   <li><a>pipprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putInstancePublicPortsResponse :: Int -> PutInstancePublicPortsResponse

-- | <i>See:</i> <a>putInstancePublicPortsResponse</a> smart constructor.
data PutInstancePublicPortsResponse

-- | Describes metadata about the operation you just executed.
pipprsOperation :: Lens' PutInstancePublicPortsResponse (Maybe Operation)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
pipprsResponseStatus :: Lens' PutInstancePublicPortsResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPortsResponse
instance Data.Data.Data Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPortsResponse
instance GHC.Show.Show Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPortsResponse
instance GHC.Read.Read Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPortsResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPortsResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPorts
instance Data.Data.Data Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPorts
instance GHC.Show.Show Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPorts
instance GHC.Read.Read Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPorts
instance GHC.Classes.Eq Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPorts
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPorts
instance Control.DeepSeq.NFData Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPortsResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPorts
instance Control.DeepSeq.NFData Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPorts
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPorts
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPorts
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPorts
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.PutInstancePublicPorts.PutInstancePublicPorts


-- | Tries to peer the Lightsail VPC with the user's default VPC.
module Network.AWS.Lightsail.PeerVPC

-- | Creates a value of <a>PeerVPC</a> with the minimum fields required to
--   make a request.
peerVPC :: PeerVPC

-- | <i>See:</i> <a>peerVPC</a> smart constructor.
data PeerVPC

-- | Creates a value of <a>PeerVPCResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pvrsOperation</a> - An array of key-value pairs containing
--   information about the request operation.</li>
--   <li><a>pvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
peerVPCResponse :: Int -> PeerVPCResponse

-- | <i>See:</i> <a>peerVPCResponse</a> smart constructor.
data PeerVPCResponse

-- | An array of key-value pairs containing information about the request
--   operation.
pvrsOperation :: Lens' PeerVPCResponse (Maybe Operation)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
pvrsResponseStatus :: Lens' PeerVPCResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.PeerVPC.PeerVPCResponse
instance Data.Data.Data Network.AWS.Lightsail.PeerVPC.PeerVPCResponse
instance GHC.Show.Show Network.AWS.Lightsail.PeerVPC.PeerVPCResponse
instance GHC.Read.Read Network.AWS.Lightsail.PeerVPC.PeerVPCResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.PeerVPC.PeerVPCResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.PeerVPC.PeerVPC
instance Data.Data.Data Network.AWS.Lightsail.PeerVPC.PeerVPC
instance GHC.Show.Show Network.AWS.Lightsail.PeerVPC.PeerVPC
instance GHC.Read.Read Network.AWS.Lightsail.PeerVPC.PeerVPC
instance GHC.Classes.Eq Network.AWS.Lightsail.PeerVPC.PeerVPC
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.PeerVPC.PeerVPC
instance Control.DeepSeq.NFData Network.AWS.Lightsail.PeerVPC.PeerVPCResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.PeerVPC.PeerVPC
instance Control.DeepSeq.NFData Network.AWS.Lightsail.PeerVPC.PeerVPC
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.PeerVPC.PeerVPC
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.PeerVPC.PeerVPC
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.PeerVPC.PeerVPC
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.PeerVPC.PeerVPC


-- | Adds public ports to an Amazon Lightsail instance.
module Network.AWS.Lightsail.OpenInstancePublicPorts

-- | Creates a value of <a>OpenInstancePublicPorts</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oippPortInfo</a> - An array of key-value pairs containing
--   information about the port mappings.</li>
--   <li><a>oippInstanceName</a> - The name of the instance for which you
--   want to open the public ports.</li>
--   </ul>
openInstancePublicPorts :: PortInfo -> Text -> OpenInstancePublicPorts

-- | <i>See:</i> <a>openInstancePublicPorts</a> smart constructor.
data OpenInstancePublicPorts

-- | An array of key-value pairs containing information about the port
--   mappings.
oippPortInfo :: Lens' OpenInstancePublicPorts PortInfo

-- | The name of the instance for which you want to open the public ports.
oippInstanceName :: Lens' OpenInstancePublicPorts Text

-- | Creates a value of <a>OpenInstancePublicPortsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oipprsOperation</a> - An array of key-value pairs containing
--   information about the request operation.</li>
--   <li><a>oipprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
openInstancePublicPortsResponse :: Int -> OpenInstancePublicPortsResponse

-- | <i>See:</i> <a>openInstancePublicPortsResponse</a> smart constructor.
data OpenInstancePublicPortsResponse

-- | An array of key-value pairs containing information about the request
--   operation.
oipprsOperation :: Lens' OpenInstancePublicPortsResponse (Maybe Operation)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
oipprsResponseStatus :: Lens' OpenInstancePublicPortsResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPortsResponse
instance Data.Data.Data Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPortsResponse
instance GHC.Show.Show Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPortsResponse
instance GHC.Read.Read Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPortsResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPortsResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPorts
instance Data.Data.Data Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPorts
instance GHC.Show.Show Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPorts
instance GHC.Read.Read Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPorts
instance GHC.Classes.Eq Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPorts
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPorts
instance Control.DeepSeq.NFData Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPortsResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPorts
instance Control.DeepSeq.NFData Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPorts
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPorts
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPorts
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPorts
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPorts


-- | Returns a Boolean value indicating whether your Lightsail VPC is
--   peered.
module Network.AWS.Lightsail.IsVPCPeered

-- | Creates a value of <a>IsVPCPeered</a> with the minimum fields required
--   to make a request.
isVPCPeered :: IsVPCPeered

-- | <i>See:</i> <a>isVPCPeered</a> smart constructor.
data IsVPCPeered

-- | Creates a value of <a>IsVPCPeeredResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ivprsIsPeered</a> - Returns <tt>true</tt> if the Lightsail VPC
--   is peered; otherwise, <tt>false</tt> .</li>
--   <li><a>ivprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
isVPCPeeredResponse :: Int -> IsVPCPeeredResponse

-- | <i>See:</i> <a>isVPCPeeredResponse</a> smart constructor.
data IsVPCPeeredResponse

-- | Returns <tt>true</tt> if the Lightsail VPC is peered; otherwise,
--   <tt>false</tt> .
ivprsIsPeered :: Lens' IsVPCPeeredResponse (Maybe Bool)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ivprsResponseStatus :: Lens' IsVPCPeeredResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.IsVPCPeered.IsVPCPeeredResponse
instance Data.Data.Data Network.AWS.Lightsail.IsVPCPeered.IsVPCPeeredResponse
instance GHC.Show.Show Network.AWS.Lightsail.IsVPCPeered.IsVPCPeeredResponse
instance GHC.Read.Read Network.AWS.Lightsail.IsVPCPeered.IsVPCPeeredResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.IsVPCPeered.IsVPCPeeredResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.IsVPCPeered.IsVPCPeered
instance Data.Data.Data Network.AWS.Lightsail.IsVPCPeered.IsVPCPeered
instance GHC.Show.Show Network.AWS.Lightsail.IsVPCPeered.IsVPCPeered
instance GHC.Read.Read Network.AWS.Lightsail.IsVPCPeered.IsVPCPeered
instance GHC.Classes.Eq Network.AWS.Lightsail.IsVPCPeered.IsVPCPeered
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.IsVPCPeered.IsVPCPeered
instance Control.DeepSeq.NFData Network.AWS.Lightsail.IsVPCPeered.IsVPCPeeredResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.IsVPCPeered.IsVPCPeered
instance Control.DeepSeq.NFData Network.AWS.Lightsail.IsVPCPeered.IsVPCPeered
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.IsVPCPeered.IsVPCPeered
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.IsVPCPeered.IsVPCPeered
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.IsVPCPeered.IsVPCPeered
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.IsVPCPeered.IsVPCPeered


-- | Imports a public SSH key from a specific key pair.
module Network.AWS.Lightsail.ImportKeyPair

-- | Creates a value of <a>ImportKeyPair</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ikpKeyPairName</a> - The name of the key pair for which you
--   want to import the public key.</li>
--   <li><a>ikpPublicKeyBase64</a> - A base64-encoded public key of the
--   <tt>ssh-rsa</tt> type.</li>
--   </ul>
importKeyPair :: Text -> Text -> ImportKeyPair

-- | <i>See:</i> <a>importKeyPair</a> smart constructor.
data ImportKeyPair

-- | The name of the key pair for which you want to import the public key.
ikpKeyPairName :: Lens' ImportKeyPair Text

-- | A base64-encoded public key of the <tt>ssh-rsa</tt> type.
ikpPublicKeyBase64 :: Lens' ImportKeyPair Text

-- | Creates a value of <a>ImportKeyPairResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ikprsOperation</a> - An array of key-value pairs containing
--   information about the request operation.</li>
--   <li><a>ikprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
importKeyPairResponse :: Int -> ImportKeyPairResponse

-- | <i>See:</i> <a>importKeyPairResponse</a> smart constructor.
data ImportKeyPairResponse

-- | An array of key-value pairs containing information about the request
--   operation.
ikprsOperation :: Lens' ImportKeyPairResponse (Maybe Operation)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ikprsResponseStatus :: Lens' ImportKeyPairResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.ImportKeyPair.ImportKeyPairResponse
instance Data.Data.Data Network.AWS.Lightsail.ImportKeyPair.ImportKeyPairResponse
instance GHC.Show.Show Network.AWS.Lightsail.ImportKeyPair.ImportKeyPairResponse
instance GHC.Read.Read Network.AWS.Lightsail.ImportKeyPair.ImportKeyPairResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.ImportKeyPair.ImportKeyPairResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.ImportKeyPair.ImportKeyPair
instance Data.Data.Data Network.AWS.Lightsail.ImportKeyPair.ImportKeyPair
instance GHC.Show.Show Network.AWS.Lightsail.ImportKeyPair.ImportKeyPair
instance GHC.Read.Read Network.AWS.Lightsail.ImportKeyPair.ImportKeyPair
instance GHC.Classes.Eq Network.AWS.Lightsail.ImportKeyPair.ImportKeyPair
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.ImportKeyPair.ImportKeyPair
instance Control.DeepSeq.NFData Network.AWS.Lightsail.ImportKeyPair.ImportKeyPairResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.ImportKeyPair.ImportKeyPair
instance Control.DeepSeq.NFData Network.AWS.Lightsail.ImportKeyPair.ImportKeyPair
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.ImportKeyPair.ImportKeyPair
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.ImportKeyPair.ImportKeyPair
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.ImportKeyPair.ImportKeyPair
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.ImportKeyPair.ImportKeyPair


-- | Returns information about all static IPs in the user's account.
--   
--   This operation returns paginated results.
module Network.AWS.Lightsail.GetStaticIPs

-- | Creates a value of <a>GetStaticIPs</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsiPageToken</a> - A token used for advancing to the next page
--   of results from your get static IPs request.</li>
--   </ul>
getStaticIPs :: GetStaticIPs

-- | <i>See:</i> <a>getStaticIPs</a> smart constructor.
data GetStaticIPs

-- | A token used for advancing to the next page of results from your get
--   static IPs request.
gsiPageToken :: Lens' GetStaticIPs (Maybe Text)

-- | Creates a value of <a>GetStaticIPsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsiprsNextPageToken</a> - A token used for advancing to the
--   next page of results from your get static IPs request.</li>
--   <li><a>gsiprsStaticIPs</a> - An array of key-value pairs containing
--   information about your get static IPs request.</li>
--   <li><a>gsiprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getStaticIPsResponse :: Int -> GetStaticIPsResponse

-- | <i>See:</i> <a>getStaticIPsResponse</a> smart constructor.
data GetStaticIPsResponse

-- | A token used for advancing to the next page of results from your get
--   static IPs request.
gsiprsNextPageToken :: Lens' GetStaticIPsResponse (Maybe Text)

-- | An array of key-value pairs containing information about your get
--   static IPs request.
gsiprsStaticIPs :: Lens' GetStaticIPsResponse [StaticIP]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gsiprsResponseStatus :: Lens' GetStaticIPsResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetStaticIPs.GetStaticIPsResponse
instance Data.Data.Data Network.AWS.Lightsail.GetStaticIPs.GetStaticIPsResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetStaticIPs.GetStaticIPsResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetStaticIPs.GetStaticIPsResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetStaticIPs.GetStaticIPsResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetStaticIPs.GetStaticIPs
instance Data.Data.Data Network.AWS.Lightsail.GetStaticIPs.GetStaticIPs
instance GHC.Show.Show Network.AWS.Lightsail.GetStaticIPs.GetStaticIPs
instance GHC.Read.Read Network.AWS.Lightsail.GetStaticIPs.GetStaticIPs
instance GHC.Classes.Eq Network.AWS.Lightsail.GetStaticIPs.GetStaticIPs
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetStaticIPs.GetStaticIPs
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetStaticIPs.GetStaticIPsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.Lightsail.GetStaticIPs.GetStaticIPs
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetStaticIPs.GetStaticIPs
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetStaticIPs.GetStaticIPs
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetStaticIPs.GetStaticIPs
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetStaticIPs.GetStaticIPs
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetStaticIPs.GetStaticIPs
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetStaticIPs.GetStaticIPs


-- | Returns information about a specific static IP.
module Network.AWS.Lightsail.GetStaticIP

-- | Creates a value of <a>GetStaticIP</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsiStaticIPName</a> - The name of the static IP in
--   Lightsail.</li>
--   </ul>
getStaticIP :: Text -> GetStaticIP

-- | <i>See:</i> <a>getStaticIP</a> smart constructor.
data GetStaticIP

-- | The name of the static IP in Lightsail.
gsiStaticIPName :: Lens' GetStaticIP Text

-- | Creates a value of <a>GetStaticIPResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsirsStaticIP</a> - An array of key-value pairs containing
--   information about the requested static IP.</li>
--   <li><a>gsirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getStaticIPResponse :: Int -> GetStaticIPResponse

-- | <i>See:</i> <a>getStaticIPResponse</a> smart constructor.
data GetStaticIPResponse

-- | An array of key-value pairs containing information about the requested
--   static IP.
gsirsStaticIP :: Lens' GetStaticIPResponse (Maybe StaticIP)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gsirsResponseStatus :: Lens' GetStaticIPResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetStaticIP.GetStaticIPResponse
instance Data.Data.Data Network.AWS.Lightsail.GetStaticIP.GetStaticIPResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetStaticIP.GetStaticIPResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetStaticIP.GetStaticIPResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetStaticIP.GetStaticIPResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetStaticIP.GetStaticIP
instance Data.Data.Data Network.AWS.Lightsail.GetStaticIP.GetStaticIP
instance GHC.Show.Show Network.AWS.Lightsail.GetStaticIP.GetStaticIP
instance GHC.Read.Read Network.AWS.Lightsail.GetStaticIP.GetStaticIP
instance GHC.Classes.Eq Network.AWS.Lightsail.GetStaticIP.GetStaticIP
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetStaticIP.GetStaticIP
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetStaticIP.GetStaticIPResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetStaticIP.GetStaticIP
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetStaticIP.GetStaticIP
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetStaticIP.GetStaticIP
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetStaticIP.GetStaticIP
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetStaticIP.GetStaticIP
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetStaticIP.GetStaticIP


-- | Returns a list of all valid regions for Amazon Lightsail. Use the
--   <tt>include availability zones</tt> parameter to also return the
--   availability zones in a region.
module Network.AWS.Lightsail.GetRegions

-- | Creates a value of <a>GetRegions</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grIncludeAvailabilityZones</a> - A Boolean value indicating
--   whether to also include Availability Zones in your get regions
--   request. Availability Zones are indicated with a letter: e.g.,
--   <tt>us-east-2a</tt> .</li>
--   </ul>
getRegions :: GetRegions

-- | <i>See:</i> <a>getRegions</a> smart constructor.
data GetRegions

-- | A Boolean value indicating whether to also include Availability Zones
--   in your get regions request. Availability Zones are indicated with a
--   letter: e.g., <tt>us-east-2a</tt> .
grIncludeAvailabilityZones :: Lens' GetRegions (Maybe Bool)

-- | Creates a value of <a>GetRegionsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grrsRegions</a> - An array of key-value pairs containing
--   information about your get regions request.</li>
--   <li><a>grrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getRegionsResponse :: Int -> GetRegionsResponse

-- | <i>See:</i> <a>getRegionsResponse</a> smart constructor.
data GetRegionsResponse

-- | An array of key-value pairs containing information about your get
--   regions request.
grrsRegions :: Lens' GetRegionsResponse [RegionInfo]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
grrsResponseStatus :: Lens' GetRegionsResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetRegions.GetRegionsResponse
instance Data.Data.Data Network.AWS.Lightsail.GetRegions.GetRegionsResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetRegions.GetRegionsResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetRegions.GetRegionsResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetRegions.GetRegionsResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetRegions.GetRegions
instance Data.Data.Data Network.AWS.Lightsail.GetRegions.GetRegions
instance GHC.Show.Show Network.AWS.Lightsail.GetRegions.GetRegions
instance GHC.Read.Read Network.AWS.Lightsail.GetRegions.GetRegions
instance GHC.Classes.Eq Network.AWS.Lightsail.GetRegions.GetRegions
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetRegions.GetRegions
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetRegions.GetRegionsResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetRegions.GetRegions
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetRegions.GetRegions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetRegions.GetRegions
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetRegions.GetRegions
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetRegions.GetRegions
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetRegions.GetRegions


-- | Gets operations for a specific resource (e.g., an instance or a static
--   IP).
module Network.AWS.Lightsail.GetOperationsForResource

-- | Creates a value of <a>GetOperationsForResource</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gofrPageToken</a> - A token used for advancing to the next page
--   of results from your get operations for resource request.</li>
--   <li><a>gofrResourceName</a> - The name of the resource for which you
--   are requesting information.</li>
--   </ul>
getOperationsForResource :: Text -> GetOperationsForResource

-- | <i>See:</i> <a>getOperationsForResource</a> smart constructor.
data GetOperationsForResource

-- | A token used for advancing to the next page of results from your get
--   operations for resource request.
gofrPageToken :: Lens' GetOperationsForResource (Maybe Text)

-- | The name of the resource for which you are requesting information.
gofrResourceName :: Lens' GetOperationsForResource Text

-- | Creates a value of <a>GetOperationsForResourceResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gofrrsNextPageCount</a> - (Deprecated) Returns the number of
--   pages of results that remain.</li>
--   <li><a>gofrrsNextPageToken</a> - An identifier that was returned from
--   the previous call to this operation, which can be used to return the
--   next set of items in the list.</li>
--   <li><a>gofrrsOperations</a> - An array of key-value pairs containing
--   information about the results of your get operations for resource
--   request.</li>
--   <li><a>gofrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getOperationsForResourceResponse :: Int -> GetOperationsForResourceResponse

-- | <i>See:</i> <a>getOperationsForResourceResponse</a> smart constructor.
data GetOperationsForResourceResponse

-- | (Deprecated) Returns the number of pages of results that remain.
gofrrsNextPageCount :: Lens' GetOperationsForResourceResponse (Maybe Text)

-- | An identifier that was returned from the previous call to this
--   operation, which can be used to return the next set of items in the
--   list.
gofrrsNextPageToken :: Lens' GetOperationsForResourceResponse (Maybe Text)

-- | An array of key-value pairs containing information about the results
--   of your get operations for resource request.
gofrrsOperations :: Lens' GetOperationsForResourceResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gofrrsResponseStatus :: Lens' GetOperationsForResourceResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResourceResponse
instance Data.Data.Data Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResourceResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResourceResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResourceResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResourceResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResource
instance Data.Data.Data Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResource
instance GHC.Show.Show Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResource
instance GHC.Read.Read Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResource
instance GHC.Classes.Eq Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResource
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResource
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResourceResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResource
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResource
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResource
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResource
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResource
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResource


-- | Returns information about all operations.
--   
--   Results are returned from oldest to newest, up to a maximum of 200.
--   Results can be paged by making each subsequent call to
--   <tt>GetOperations</tt> use the maximum (last) <tt>statusChangedAt</tt>
--   value from the previous request.
--   
--   This operation returns paginated results.
module Network.AWS.Lightsail.GetOperations

-- | Creates a value of <a>GetOperations</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>goPageToken</a> - A token used for advancing to the next page
--   of results from your get operations request.</li>
--   </ul>
getOperations :: GetOperations

-- | <i>See:</i> <a>getOperations</a> smart constructor.
data GetOperations

-- | A token used for advancing to the next page of results from your get
--   operations request.
goPageToken :: Lens' GetOperations (Maybe Text)

-- | Creates a value of <a>GetOperationsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gosrsNextPageToken</a> - A token used for advancing to the next
--   page of results from your get operations request.</li>
--   <li><a>gosrsOperations</a> - An array of key-value pairs containing
--   information about the results of your get operations request.</li>
--   <li><a>gosrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getOperationsResponse :: Int -> GetOperationsResponse

-- | <i>See:</i> <a>getOperationsResponse</a> smart constructor.
data GetOperationsResponse

-- | A token used for advancing to the next page of results from your get
--   operations request.
gosrsNextPageToken :: Lens' GetOperationsResponse (Maybe Text)

-- | An array of key-value pairs containing information about the results
--   of your get operations request.
gosrsOperations :: Lens' GetOperationsResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gosrsResponseStatus :: Lens' GetOperationsResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetOperations.GetOperationsResponse
instance Data.Data.Data Network.AWS.Lightsail.GetOperations.GetOperationsResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetOperations.GetOperationsResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetOperations.GetOperationsResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetOperations.GetOperationsResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetOperations.GetOperations
instance Data.Data.Data Network.AWS.Lightsail.GetOperations.GetOperations
instance GHC.Show.Show Network.AWS.Lightsail.GetOperations.GetOperations
instance GHC.Read.Read Network.AWS.Lightsail.GetOperations.GetOperations
instance GHC.Classes.Eq Network.AWS.Lightsail.GetOperations.GetOperations
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetOperations.GetOperations
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetOperations.GetOperationsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.Lightsail.GetOperations.GetOperations
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetOperations.GetOperations
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetOperations.GetOperations
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetOperations.GetOperations
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetOperations.GetOperations
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetOperations.GetOperations
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetOperations.GetOperations


-- | Returns information about a specific operation. Operations include
--   events such as when you create an instance, allocate a static IP,
--   attach a static IP, and so on.
module Network.AWS.Lightsail.GetOperation

-- | Creates a value of <a>GetOperation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>goOperationId</a> - A GUID used to identify the operation.</li>
--   </ul>
getOperation :: Text -> GetOperation

-- | <i>See:</i> <a>getOperation</a> smart constructor.
data GetOperation

-- | A GUID used to identify the operation.
goOperationId :: Lens' GetOperation Text

-- | Creates a value of <a>GetOperationResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gorsOperation</a> - An array of key-value pairs containing
--   information about the results of your get operation request.</li>
--   <li><a>gorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getOperationResponse :: Int -> GetOperationResponse

-- | <i>See:</i> <a>getOperationResponse</a> smart constructor.
data GetOperationResponse

-- | An array of key-value pairs containing information about the results
--   of your get operation request.
gorsOperation :: Lens' GetOperationResponse (Maybe Operation)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gorsResponseStatus :: Lens' GetOperationResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetOperation.GetOperationResponse
instance Data.Data.Data Network.AWS.Lightsail.GetOperation.GetOperationResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetOperation.GetOperationResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetOperation.GetOperationResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetOperation.GetOperationResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetOperation.GetOperation
instance Data.Data.Data Network.AWS.Lightsail.GetOperation.GetOperation
instance GHC.Show.Show Network.AWS.Lightsail.GetOperation.GetOperation
instance GHC.Read.Read Network.AWS.Lightsail.GetOperation.GetOperation
instance GHC.Classes.Eq Network.AWS.Lightsail.GetOperation.GetOperation
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetOperation.GetOperation
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetOperation.GetOperationResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetOperation.GetOperation
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetOperation.GetOperation
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetOperation.GetOperation
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetOperation.GetOperation
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetOperation.GetOperation
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetOperation.GetOperation


-- | Returns information about all load balancers in an account.
--   
--   If you are describing a long list of load balancers, you can paginate
--   the output to make the list more manageable. You can use the pageToken
--   and nextPageToken values to retrieve the next items in the list.
module Network.AWS.Lightsail.GetLoadBalancers

-- | Creates a value of <a>GetLoadBalancers</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glbPageToken</a> - A token used for paginating the results from
--   your GetLoadBalancers request.</li>
--   </ul>
getLoadBalancers :: GetLoadBalancers

-- | <i>See:</i> <a>getLoadBalancers</a> smart constructor.
data GetLoadBalancers

-- | A token used for paginating the results from your GetLoadBalancers
--   request.
glbPageToken :: Lens' GetLoadBalancers (Maybe Text)

-- | Creates a value of <a>GetLoadBalancersResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glbsrsNextPageToken</a> - A token used for advancing to the
--   next page of results from your GetLoadBalancers request.</li>
--   <li><a>glbsrsLoadBalancers</a> - An array of LoadBalancer objects
--   describing your load balancers.</li>
--   <li><a>glbsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getLoadBalancersResponse :: Int -> GetLoadBalancersResponse

-- | <i>See:</i> <a>getLoadBalancersResponse</a> smart constructor.
data GetLoadBalancersResponse

-- | A token used for advancing to the next page of results from your
--   GetLoadBalancers request.
glbsrsNextPageToken :: Lens' GetLoadBalancersResponse (Maybe Text)

-- | An array of LoadBalancer objects describing your load balancers.
glbsrsLoadBalancers :: Lens' GetLoadBalancersResponse [LoadBalancer]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
glbsrsResponseStatus :: Lens' GetLoadBalancersResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancersResponse
instance Data.Data.Data Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancersResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancersResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancersResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancersResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancers
instance Data.Data.Data Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancers
instance GHC.Show.Show Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancers
instance GHC.Read.Read Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancers
instance GHC.Classes.Eq Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancers
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancers
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancersResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancers
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancers
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancers
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancers
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancers
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetLoadBalancers.GetLoadBalancers


-- | Returns information about the TLS certificates that are associated
--   with the specified Lightsail load balancer.
--   
--   TLS is just an updated, more secure version of Secure Socket Layer
--   (SSL).
--   
--   You can have a maximum of 2 certificates associated with a Lightsail
--   load balancer. One is active and the other is inactive.
module Network.AWS.Lightsail.GetLoadBalancerTLSCertificates

-- | Creates a value of <a>GetLoadBalancerTLSCertificates</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glbtcLoadBalancerName</a> - The name of the load balancer you
--   associated with your SSL/TLS certificate.</li>
--   </ul>
getLoadBalancerTLSCertificates :: Text -> GetLoadBalancerTLSCertificates

-- | <i>See:</i> <a>getLoadBalancerTLSCertificates</a> smart constructor.
data GetLoadBalancerTLSCertificates

-- | The name of the load balancer you associated with your SSL/TLS
--   certificate.
glbtcLoadBalancerName :: Lens' GetLoadBalancerTLSCertificates Text

-- | Creates a value of <a>GetLoadBalancerTLSCertificatesResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glbtcrsTlsCertificates</a> - An array of
--   LoadBalancerTlsCertificate objects describing your SSL/TLS
--   certificates.</li>
--   <li><a>glbtcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getLoadBalancerTLSCertificatesResponse :: Int -> GetLoadBalancerTLSCertificatesResponse

-- | <i>See:</i> <a>getLoadBalancerTLSCertificatesResponse</a> smart
--   constructor.
data GetLoadBalancerTLSCertificatesResponse

-- | An array of LoadBalancerTlsCertificate objects describing your SSL/TLS
--   certificates.
glbtcrsTlsCertificates :: Lens' GetLoadBalancerTLSCertificatesResponse [LoadBalancerTLSCertificate]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
glbtcrsResponseStatus :: Lens' GetLoadBalancerTLSCertificatesResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificatesResponse
instance Data.Data.Data Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificatesResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificatesResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificatesResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificatesResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificates
instance Data.Data.Data Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificates
instance GHC.Show.Show Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificates
instance GHC.Read.Read Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificates
instance GHC.Classes.Eq Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificates
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificates
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificatesResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificates
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificates
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificates
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificates
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificates
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetLoadBalancerTLSCertificates.GetLoadBalancerTLSCertificates


-- | Returns information about health metrics for your Lightsail load
--   balancer.
module Network.AWS.Lightsail.GetLoadBalancerMetricData

-- | Creates a value of <a>GetLoadBalancerMetricData</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glbmdLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>glbmdMetricName</a> - The metric about which you want to return
--   information. Valid values are listed below, along with the most useful
--   <tt>statistics</tt> to include in your request. *
--   <b><tt>ClientTLSNegotiationErrorCount</tt> </b> - The number of TLS
--   connections initiated by the client that did not establish a session
--   with the load balancer. Possible causes include a mismatch of ciphers
--   or protocols. <tt>Statistics</tt> : The most useful statistic is
--   <tt>Sum</tt> . * <b><tt>HealthyHostCount</tt> </b> - The number of
--   target instances that are considered healthy. <tt>Statistics</tt> :
--   The most useful statistic are <tt>Average</tt> , <tt>Minimum</tt> ,
--   and <tt>Maximum</tt> . * <b><tt>UnhealthyHostCount</tt> </b> - The
--   number of target instances that are considered unhealthy.
--   <tt>Statistics</tt> : The most useful statistic are <tt>Average</tt> ,
--   <tt>Minimum</tt> , and <tt>Maximum</tt> . *
--   <b><tt>HTTPCode_LB_4XX_Count</tt> </b> - The number of HTTP 4XX client
--   error codes that originate from the load balancer. Client errors are
--   generated when requests are malformed or incomplete. These requests
--   have not been received by the target instance. This count does not
--   include any response codes generated by the target instances.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . Note
--   that <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> all
--   return <tt>1</tt> . * <b><tt>HTTPCode_LB_5XX_Count</tt> </b> - The
--   number of HTTP 5XX server error codes that originate from the load
--   balancer. This count does not include any response codes generated by
--   the target instances. <tt>Statistics</tt> : The most useful statistic
--   is <tt>Sum</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> , and
--   <tt>Average</tt> all return <tt>1</tt> . Note that <tt>Minimum</tt> ,
--   <tt>Maximum</tt> , and <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>HTTPCode_Instance_2XX_Count</tt> </b> - The number of HTTP
--   response codes generated by the target instances. This does not
--   include any response codes generated by the load balancer.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . Note
--   that <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> all
--   return <tt>1</tt> . * <b><tt>HTTPCode_Instance_3XX_Count</tt> </b> -
--   The number of HTTP response codes generated by the target instances.
--   This does not include any response codes generated by the load
--   balancer. <tt>Statistics</tt> : The most useful statistic is
--   <tt>Sum</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> , and
--   <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>HTTPCode_Instance_4XX_Count</tt> </b> - The number of HTTP
--   response codes generated by the target instances. This does not
--   include any response codes generated by the load balancer.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . Note
--   that <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> all
--   return <tt>1</tt> . * <b><tt>HTTPCode_Instance_5XX_Count</tt> </b> -
--   The number of HTTP response codes generated by the target instances.
--   This does not include any response codes generated by the load
--   balancer. <tt>Statistics</tt> : The most useful statistic is
--   <tt>Sum</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> , and
--   <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>InstanceResponseTime</tt> </b> - The time elapsed, in seconds,
--   after the request leaves the load balancer until a response from the
--   target instance is received. <tt>Statistics</tt> : The most useful
--   statistic is <tt>Average</tt> . * <b><tt>RejectedConnectionCount</tt>
--   </b> - The number of connections that were rejected because the load
--   balancer had reached its maximum number of connections.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . *
--   <b><tt>RequestCount</tt> </b> - The number of requests processed over
--   IPv4. This count includes only the requests with a response generated
--   by a target instance of the load balancer. <tt>Statistics</tt> : The
--   most useful statistic is <tt>Sum</tt> . Note that <tt>Minimum</tt> ,
--   <tt>Maximum</tt> , and <tt>Average</tt> all return <tt>1</tt> .</li>
--   <li><a>glbmdPeriod</a> - The time period duration for your health data
--   request.</li>
--   <li><a>glbmdStartTime</a> - The start time of the period.</li>
--   <li><a>glbmdEndTime</a> - The end time of the period.</li>
--   <li><a>glbmdUnit</a> - The unit for the time period request. Valid
--   values are listed below.</li>
--   <li><a>glbmdStatistics</a> - An array of statistics that you want to
--   request metrics for. Valid values are listed below. *
--   <b><tt>SampleCount</tt> </b> - The count (number) of data points used
--   for the statistical calculation. * <b><tt>Average</tt> </b> - The
--   value of Sum / SampleCount during the specified period. By comparing
--   this statistic with the Minimum and Maximum, you can determine the
--   full scope of a metric and how close the average use is to the Minimum
--   and Maximum. This comparison helps you to know when to increase or
--   decrease your resources as needed. * <b><tt>Sum</tt> </b> - All values
--   submitted for the matching metric added together. This statistic can
--   be useful for determining the total volume of a metric. *
--   <b><tt>Minimum</tt> </b> - The lowest value observed during the
--   specified period. You can use this value to determine low volumes of
--   activity for your application. * <b><tt>Maximum</tt> </b> - The
--   highest value observed during the specified period. You can use this
--   value to determine high volumes of activity for your application.</li>
--   </ul>
getLoadBalancerMetricData :: Text -> LoadBalancerMetricName -> Natural -> UTCTime -> UTCTime -> MetricUnit -> GetLoadBalancerMetricData

-- | <i>See:</i> <a>getLoadBalancerMetricData</a> smart constructor.
data GetLoadBalancerMetricData

-- | The name of the load balancer.
glbmdLoadBalancerName :: Lens' GetLoadBalancerMetricData Text

-- | The metric about which you want to return information. Valid values
--   are listed below, along with the most useful <tt>statistics</tt> to
--   include in your request. * <b><tt>ClientTLSNegotiationErrorCount</tt>
--   </b> - The number of TLS connections initiated by the client that did
--   not establish a session with the load balancer. Possible causes
--   include a mismatch of ciphers or protocols. <tt>Statistics</tt> : The
--   most useful statistic is <tt>Sum</tt> . * <b><tt>HealthyHostCount</tt>
--   </b> - The number of target instances that are considered healthy.
--   <tt>Statistics</tt> : The most useful statistic are <tt>Average</tt> ,
--   <tt>Minimum</tt> , and <tt>Maximum</tt> . *
--   <b><tt>UnhealthyHostCount</tt> </b> - The number of target instances
--   that are considered unhealthy. <tt>Statistics</tt> : The most useful
--   statistic are <tt>Average</tt> , <tt>Minimum</tt> , and
--   <tt>Maximum</tt> . * <b><tt>HTTPCode_LB_4XX_Count</tt> </b> - The
--   number of HTTP 4XX client error codes that originate from the load
--   balancer. Client errors are generated when requests are malformed or
--   incomplete. These requests have not been received by the target
--   instance. This count does not include any response codes generated by
--   the target instances. <tt>Statistics</tt> : The most useful statistic
--   is <tt>Sum</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> , and
--   <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>HTTPCode_LB_5XX_Count</tt> </b> - The number of HTTP 5XX server
--   error codes that originate from the load balancer. This count does not
--   include any response codes generated by the target instances.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . Note
--   that <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> all
--   return <tt>1</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> ,
--   and <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>HTTPCode_Instance_2XX_Count</tt> </b> - The number of HTTP
--   response codes generated by the target instances. This does not
--   include any response codes generated by the load balancer.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . Note
--   that <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> all
--   return <tt>1</tt> . * <b><tt>HTTPCode_Instance_3XX_Count</tt> </b> -
--   The number of HTTP response codes generated by the target instances.
--   This does not include any response codes generated by the load
--   balancer. <tt>Statistics</tt> : The most useful statistic is
--   <tt>Sum</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> , and
--   <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>HTTPCode_Instance_4XX_Count</tt> </b> - The number of HTTP
--   response codes generated by the target instances. This does not
--   include any response codes generated by the load balancer.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . Note
--   that <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> all
--   return <tt>1</tt> . * <b><tt>HTTPCode_Instance_5XX_Count</tt> </b> -
--   The number of HTTP response codes generated by the target instances.
--   This does not include any response codes generated by the load
--   balancer. <tt>Statistics</tt> : The most useful statistic is
--   <tt>Sum</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> , and
--   <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>InstanceResponseTime</tt> </b> - The time elapsed, in seconds,
--   after the request leaves the load balancer until a response from the
--   target instance is received. <tt>Statistics</tt> : The most useful
--   statistic is <tt>Average</tt> . * <b><tt>RejectedConnectionCount</tt>
--   </b> - The number of connections that were rejected because the load
--   balancer had reached its maximum number of connections.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . *
--   <b><tt>RequestCount</tt> </b> - The number of requests processed over
--   IPv4. This count includes only the requests with a response generated
--   by a target instance of the load balancer. <tt>Statistics</tt> : The
--   most useful statistic is <tt>Sum</tt> . Note that <tt>Minimum</tt> ,
--   <tt>Maximum</tt> , and <tt>Average</tt> all return <tt>1</tt> .
glbmdMetricName :: Lens' GetLoadBalancerMetricData LoadBalancerMetricName

-- | The time period duration for your health data request.
glbmdPeriod :: Lens' GetLoadBalancerMetricData Natural

-- | The start time of the period.
glbmdStartTime :: Lens' GetLoadBalancerMetricData UTCTime

-- | The end time of the period.
glbmdEndTime :: Lens' GetLoadBalancerMetricData UTCTime

-- | The unit for the time period request. Valid values are listed below.
glbmdUnit :: Lens' GetLoadBalancerMetricData MetricUnit

-- | An array of statistics that you want to request metrics for. Valid
--   values are listed below. * <b><tt>SampleCount</tt> </b> - The count
--   (number) of data points used for the statistical calculation. *
--   <b><tt>Average</tt> </b> - The value of Sum / SampleCount during the
--   specified period. By comparing this statistic with the Minimum and
--   Maximum, you can determine the full scope of a metric and how close
--   the average use is to the Minimum and Maximum. This comparison helps
--   you to know when to increase or decrease your resources as needed. *
--   <b><tt>Sum</tt> </b> - All values submitted for the matching metric
--   added together. This statistic can be useful for determining the total
--   volume of a metric. * <b><tt>Minimum</tt> </b> - The lowest value
--   observed during the specified period. You can use this value to
--   determine low volumes of activity for your application. *
--   <b><tt>Maximum</tt> </b> - The highest value observed during the
--   specified period. You can use this value to determine high volumes of
--   activity for your application.
glbmdStatistics :: Lens' GetLoadBalancerMetricData [MetricStatistic]

-- | Creates a value of <a>GetLoadBalancerMetricDataResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glbmdrsMetricName</a> - The metric about which you are
--   receiving information. Valid values are listed below, along with the
--   most useful <tt>statistics</tt> to include in your request. *
--   <b><tt>ClientTLSNegotiationErrorCount</tt> </b> - The number of TLS
--   connections initiated by the client that did not establish a session
--   with the load balancer. Possible causes include a mismatch of ciphers
--   or protocols. <tt>Statistics</tt> : The most useful statistic is
--   <tt>Sum</tt> . * <b><tt>HealthyHostCount</tt> </b> - The number of
--   target instances that are considered healthy. <tt>Statistics</tt> :
--   The most useful statistic are <tt>Average</tt> , <tt>Minimum</tt> ,
--   and <tt>Maximum</tt> . * <b><tt>UnhealthyHostCount</tt> </b> - The
--   number of target instances that are considered unhealthy.
--   <tt>Statistics</tt> : The most useful statistic are <tt>Average</tt> ,
--   <tt>Minimum</tt> , and <tt>Maximum</tt> . *
--   <b><tt>HTTPCode_LB_4XX_Count</tt> </b> - The number of HTTP 4XX client
--   error codes that originate from the load balancer. Client errors are
--   generated when requests are malformed or incomplete. These requests
--   have not been received by the target instance. This count does not
--   include any response codes generated by the target instances.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . Note
--   that <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> all
--   return <tt>1</tt> . * <b><tt>HTTPCode_LB_5XX_Count</tt> </b> - The
--   number of HTTP 5XX server error codes that originate from the load
--   balancer. This count does not include any response codes generated by
--   the target instances. <tt>Statistics</tt> : The most useful statistic
--   is <tt>Sum</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> , and
--   <tt>Average</tt> all return <tt>1</tt> . Note that <tt>Minimum</tt> ,
--   <tt>Maximum</tt> , and <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>HTTPCode_Instance_2XX_Count</tt> </b> - The number of HTTP
--   response codes generated by the target instances. This does not
--   include any response codes generated by the load balancer.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . Note
--   that <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> all
--   return <tt>1</tt> . * <b><tt>HTTPCode_Instance_3XX_Count</tt> </b> -
--   The number of HTTP response codes generated by the target instances.
--   This does not include any response codes generated by the load
--   balancer. <tt>Statistics</tt> : The most useful statistic is
--   <tt>Sum</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> , and
--   <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>HTTPCode_Instance_4XX_Count</tt> </b> - The number of HTTP
--   response codes generated by the target instances. This does not
--   include any response codes generated by the load balancer.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . Note
--   that <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> all
--   return <tt>1</tt> . * <b><tt>HTTPCode_Instance_5XX_Count</tt> </b> -
--   The number of HTTP response codes generated by the target instances.
--   This does not include any response codes generated by the load
--   balancer. <tt>Statistics</tt> : The most useful statistic is
--   <tt>Sum</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> , and
--   <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>InstanceResponseTime</tt> </b> - The time elapsed, in seconds,
--   after the request leaves the load balancer until a response from the
--   target instance is received. <tt>Statistics</tt> : The most useful
--   statistic is <tt>Average</tt> . * <b><tt>RejectedConnectionCount</tt>
--   </b> - The number of connections that were rejected because the load
--   balancer had reached its maximum number of connections.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . *
--   <b><tt>RequestCount</tt> </b> - The number of requests processed over
--   IPv4. This count includes only the requests with a response generated
--   by a target instance of the load balancer. <tt>Statistics</tt> : The
--   most useful statistic is <tt>Sum</tt> . Note that <tt>Minimum</tt> ,
--   <tt>Maximum</tt> , and <tt>Average</tt> all return <tt>1</tt> .</li>
--   <li><a>glbmdrsMetricData</a> - An array of metric datapoint
--   objects.</li>
--   <li><a>glbmdrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getLoadBalancerMetricDataResponse :: Int -> GetLoadBalancerMetricDataResponse

-- | <i>See:</i> <a>getLoadBalancerMetricDataResponse</a> smart
--   constructor.
data GetLoadBalancerMetricDataResponse

-- | The metric about which you are receiving information. Valid values are
--   listed below, along with the most useful <tt>statistics</tt> to
--   include in your request. * <b><tt>ClientTLSNegotiationErrorCount</tt>
--   </b> - The number of TLS connections initiated by the client that did
--   not establish a session with the load balancer. Possible causes
--   include a mismatch of ciphers or protocols. <tt>Statistics</tt> : The
--   most useful statistic is <tt>Sum</tt> . * <b><tt>HealthyHostCount</tt>
--   </b> - The number of target instances that are considered healthy.
--   <tt>Statistics</tt> : The most useful statistic are <tt>Average</tt> ,
--   <tt>Minimum</tt> , and <tt>Maximum</tt> . *
--   <b><tt>UnhealthyHostCount</tt> </b> - The number of target instances
--   that are considered unhealthy. <tt>Statistics</tt> : The most useful
--   statistic are <tt>Average</tt> , <tt>Minimum</tt> , and
--   <tt>Maximum</tt> . * <b><tt>HTTPCode_LB_4XX_Count</tt> </b> - The
--   number of HTTP 4XX client error codes that originate from the load
--   balancer. Client errors are generated when requests are malformed or
--   incomplete. These requests have not been received by the target
--   instance. This count does not include any response codes generated by
--   the target instances. <tt>Statistics</tt> : The most useful statistic
--   is <tt>Sum</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> , and
--   <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>HTTPCode_LB_5XX_Count</tt> </b> - The number of HTTP 5XX server
--   error codes that originate from the load balancer. This count does not
--   include any response codes generated by the target instances.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . Note
--   that <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> all
--   return <tt>1</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> ,
--   and <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>HTTPCode_Instance_2XX_Count</tt> </b> - The number of HTTP
--   response codes generated by the target instances. This does not
--   include any response codes generated by the load balancer.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . Note
--   that <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> all
--   return <tt>1</tt> . * <b><tt>HTTPCode_Instance_3XX_Count</tt> </b> -
--   The number of HTTP response codes generated by the target instances.
--   This does not include any response codes generated by the load
--   balancer. <tt>Statistics</tt> : The most useful statistic is
--   <tt>Sum</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> , and
--   <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>HTTPCode_Instance_4XX_Count</tt> </b> - The number of HTTP
--   response codes generated by the target instances. This does not
--   include any response codes generated by the load balancer.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . Note
--   that <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> all
--   return <tt>1</tt> . * <b><tt>HTTPCode_Instance_5XX_Count</tt> </b> -
--   The number of HTTP response codes generated by the target instances.
--   This does not include any response codes generated by the load
--   balancer. <tt>Statistics</tt> : The most useful statistic is
--   <tt>Sum</tt> . Note that <tt>Minimum</tt> , <tt>Maximum</tt> , and
--   <tt>Average</tt> all return <tt>1</tt> . *
--   <b><tt>InstanceResponseTime</tt> </b> - The time elapsed, in seconds,
--   after the request leaves the load balancer until a response from the
--   target instance is received. <tt>Statistics</tt> : The most useful
--   statistic is <tt>Average</tt> . * <b><tt>RejectedConnectionCount</tt>
--   </b> - The number of connections that were rejected because the load
--   balancer had reached its maximum number of connections.
--   <tt>Statistics</tt> : The most useful statistic is <tt>Sum</tt> . *
--   <b><tt>RequestCount</tt> </b> - The number of requests processed over
--   IPv4. This count includes only the requests with a response generated
--   by a target instance of the load balancer. <tt>Statistics</tt> : The
--   most useful statistic is <tt>Sum</tt> . Note that <tt>Minimum</tt> ,
--   <tt>Maximum</tt> , and <tt>Average</tt> all return <tt>1</tt> .
glbmdrsMetricName :: Lens' GetLoadBalancerMetricDataResponse (Maybe LoadBalancerMetricName)

-- | An array of metric datapoint objects.
glbmdrsMetricData :: Lens' GetLoadBalancerMetricDataResponse [MetricDatapoint]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
glbmdrsResponseStatus :: Lens' GetLoadBalancerMetricDataResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricDataResponse
instance Data.Data.Data Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricDataResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricDataResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricDataResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricDataResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricData
instance Data.Data.Data Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricData
instance GHC.Show.Show Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricData
instance GHC.Read.Read Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricData
instance GHC.Classes.Eq Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricData
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricData
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricDataResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricData
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricData
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricData
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricData
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricData
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetLoadBalancerMetricData.GetLoadBalancerMetricData


-- | Returns information about the specified Lightsail load balancer.
module Network.AWS.Lightsail.GetLoadBalancer

-- | Creates a value of <a>GetLoadBalancer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glbLoadBalancerName</a> - The name of the load balancer.</li>
--   </ul>
getLoadBalancer :: Text -> GetLoadBalancer

-- | <i>See:</i> <a>getLoadBalancer</a> smart constructor.
data GetLoadBalancer

-- | The name of the load balancer.
glbLoadBalancerName :: Lens' GetLoadBalancer Text

-- | Creates a value of <a>GetLoadBalancerResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glbrsLoadBalancer</a> - An object containing information about
--   your load balancer.</li>
--   <li><a>glbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getLoadBalancerResponse :: Int -> GetLoadBalancerResponse

-- | <i>See:</i> <a>getLoadBalancerResponse</a> smart constructor.
data GetLoadBalancerResponse

-- | An object containing information about your load balancer.
glbrsLoadBalancer :: Lens' GetLoadBalancerResponse (Maybe LoadBalancer)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
glbrsResponseStatus :: Lens' GetLoadBalancerResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancerResponse
instance Data.Data.Data Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancerResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancerResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancerResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancerResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancer
instance Data.Data.Data Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancer
instance GHC.Show.Show Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancer
instance GHC.Read.Read Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancer
instance GHC.Classes.Eq Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancer
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancerResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancer
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancer
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetLoadBalancer.GetLoadBalancer


-- | Returns information about all key pairs in the user's account.
--   
--   This operation returns paginated results.
module Network.AWS.Lightsail.GetKeyPairs

-- | Creates a value of <a>GetKeyPairs</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gkpPageToken</a> - A token used for advancing to the next page
--   of results from your get key pairs request.</li>
--   </ul>
getKeyPairs :: GetKeyPairs

-- | <i>See:</i> <a>getKeyPairs</a> smart constructor.
data GetKeyPairs

-- | A token used for advancing to the next page of results from your get
--   key pairs request.
gkpPageToken :: Lens' GetKeyPairs (Maybe Text)

-- | Creates a value of <a>GetKeyPairsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gkpsrsNextPageToken</a> - A token used for advancing to the
--   next page of results from your get key pairs request.</li>
--   <li><a>gkpsrsKeyPairs</a> - An array of key-value pairs containing
--   information about the key pairs.</li>
--   <li><a>gkpsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getKeyPairsResponse :: Int -> GetKeyPairsResponse

-- | <i>See:</i> <a>getKeyPairsResponse</a> smart constructor.
data GetKeyPairsResponse

-- | A token used for advancing to the next page of results from your get
--   key pairs request.
gkpsrsNextPageToken :: Lens' GetKeyPairsResponse (Maybe Text)

-- | An array of key-value pairs containing information about the key
--   pairs.
gkpsrsKeyPairs :: Lens' GetKeyPairsResponse [KeyPair]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gkpsrsResponseStatus :: Lens' GetKeyPairsResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetKeyPairs.GetKeyPairsResponse
instance Data.Data.Data Network.AWS.Lightsail.GetKeyPairs.GetKeyPairsResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetKeyPairs.GetKeyPairsResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetKeyPairs.GetKeyPairsResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetKeyPairs.GetKeyPairsResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetKeyPairs.GetKeyPairs
instance Data.Data.Data Network.AWS.Lightsail.GetKeyPairs.GetKeyPairs
instance GHC.Show.Show Network.AWS.Lightsail.GetKeyPairs.GetKeyPairs
instance GHC.Read.Read Network.AWS.Lightsail.GetKeyPairs.GetKeyPairs
instance GHC.Classes.Eq Network.AWS.Lightsail.GetKeyPairs.GetKeyPairs
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetKeyPairs.GetKeyPairs
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetKeyPairs.GetKeyPairsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.Lightsail.GetKeyPairs.GetKeyPairs
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetKeyPairs.GetKeyPairs
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetKeyPairs.GetKeyPairs
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetKeyPairs.GetKeyPairs
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetKeyPairs.GetKeyPairs
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetKeyPairs.GetKeyPairs
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetKeyPairs.GetKeyPairs


-- | Returns information about a specific key pair.
module Network.AWS.Lightsail.GetKeyPair

-- | Creates a value of <a>GetKeyPair</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gkpKeyPairName</a> - The name of the key pair for which you are
--   requesting information.</li>
--   </ul>
getKeyPair :: Text -> GetKeyPair

-- | <i>See:</i> <a>getKeyPair</a> smart constructor.
data GetKeyPair

-- | The name of the key pair for which you are requesting information.
gkpKeyPairName :: Lens' GetKeyPair Text

-- | Creates a value of <a>GetKeyPairResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gkprsKeyPair</a> - An array of key-value pairs containing
--   information about the key pair.</li>
--   <li><a>gkprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getKeyPairResponse :: Int -> GetKeyPairResponse

-- | <i>See:</i> <a>getKeyPairResponse</a> smart constructor.
data GetKeyPairResponse

-- | An array of key-value pairs containing information about the key pair.
gkprsKeyPair :: Lens' GetKeyPairResponse (Maybe KeyPair)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gkprsResponseStatus :: Lens' GetKeyPairResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetKeyPair.GetKeyPairResponse
instance Data.Data.Data Network.AWS.Lightsail.GetKeyPair.GetKeyPairResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetKeyPair.GetKeyPairResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetKeyPair.GetKeyPairResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetKeyPair.GetKeyPairResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetKeyPair.GetKeyPair
instance Data.Data.Data Network.AWS.Lightsail.GetKeyPair.GetKeyPair
instance GHC.Show.Show Network.AWS.Lightsail.GetKeyPair.GetKeyPair
instance GHC.Read.Read Network.AWS.Lightsail.GetKeyPair.GetKeyPair
instance GHC.Classes.Eq Network.AWS.Lightsail.GetKeyPair.GetKeyPair
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetKeyPair.GetKeyPair
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetKeyPair.GetKeyPairResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetKeyPair.GetKeyPair
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetKeyPair.GetKeyPair
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetKeyPair.GetKeyPair
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetKeyPair.GetKeyPair
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetKeyPair.GetKeyPair
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetKeyPair.GetKeyPair


-- | Returns information about all Amazon Lightsail virtual private
--   servers, or <i>instances</i> .
--   
--   This operation returns paginated results.
module Network.AWS.Lightsail.GetInstances

-- | Creates a value of <a>GetInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>giPageToken</a> - A token used for advancing to the next page
--   of results from your get instances request.</li>
--   </ul>
getInstances :: GetInstances

-- | <i>See:</i> <a>getInstances</a> smart constructor.
data GetInstances

-- | A token used for advancing to the next page of results from your get
--   instances request.
giPageToken :: Lens' GetInstances (Maybe Text)

-- | Creates a value of <a>GetInstancesResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grsNextPageToken</a> - A token used for advancing to the next
--   page of results from your get instances request.</li>
--   <li><a>grsInstances</a> - An array of key-value pairs containing
--   information about your instances.</li>
--   <li><a>grsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getInstancesResponse :: Int -> GetInstancesResponse

-- | <i>See:</i> <a>getInstancesResponse</a> smart constructor.
data GetInstancesResponse

-- | A token used for advancing to the next page of results from your get
--   instances request.
grsNextPageToken :: Lens' GetInstancesResponse (Maybe Text)

-- | An array of key-value pairs containing information about your
--   instances.
grsInstances :: Lens' GetInstancesResponse [Instance]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
grsResponseStatus :: Lens' GetInstancesResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstances.GetInstancesResponse
instance Data.Data.Data Network.AWS.Lightsail.GetInstances.GetInstancesResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetInstances.GetInstancesResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetInstances.GetInstancesResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstances.GetInstancesResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstances.GetInstances
instance Data.Data.Data Network.AWS.Lightsail.GetInstances.GetInstances
instance GHC.Show.Show Network.AWS.Lightsail.GetInstances.GetInstances
instance GHC.Read.Read Network.AWS.Lightsail.GetInstances.GetInstances
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstances.GetInstances
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetInstances.GetInstances
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstances.GetInstancesResponse
instance Network.AWS.Pager.AWSPager Network.AWS.Lightsail.GetInstances.GetInstances
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetInstances.GetInstances
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstances.GetInstances
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetInstances.GetInstances
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetInstances.GetInstances
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetInstances.GetInstances
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetInstances.GetInstances


-- | Returns the state of a specific instance. Works on one instance at a
--   time.
module Network.AWS.Lightsail.GetInstanceState

-- | Creates a value of <a>GetInstanceState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gisInstanceName</a> - The name of the instance to get state
--   information about.</li>
--   </ul>
getInstanceState :: Text -> GetInstanceState

-- | <i>See:</i> <a>getInstanceState</a> smart constructor.
data GetInstanceState

-- | The name of the instance to get state information about.
gisInstanceName :: Lens' GetInstanceState Text

-- | Creates a value of <a>GetInstanceStateResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gisirsState</a> - The state of the instance.</li>
--   <li><a>gisirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getInstanceStateResponse :: Int -> GetInstanceStateResponse

-- | <i>See:</i> <a>getInstanceStateResponse</a> smart constructor.
data GetInstanceStateResponse

-- | The state of the instance.
gisirsState :: Lens' GetInstanceStateResponse (Maybe InstanceState)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gisirsResponseStatus :: Lens' GetInstanceStateResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstanceState.GetInstanceStateResponse
instance Data.Data.Data Network.AWS.Lightsail.GetInstanceState.GetInstanceStateResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetInstanceState.GetInstanceStateResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetInstanceState.GetInstanceStateResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstanceState.GetInstanceStateResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstanceState.GetInstanceState
instance Data.Data.Data Network.AWS.Lightsail.GetInstanceState.GetInstanceState
instance GHC.Show.Show Network.AWS.Lightsail.GetInstanceState.GetInstanceState
instance GHC.Read.Read Network.AWS.Lightsail.GetInstanceState.GetInstanceState
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstanceState.GetInstanceState
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetInstanceState.GetInstanceState
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceState.GetInstanceStateResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetInstanceState.GetInstanceState
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceState.GetInstanceState
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetInstanceState.GetInstanceState
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetInstanceState.GetInstanceState
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetInstanceState.GetInstanceState
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetInstanceState.GetInstanceState


-- | Returns all instance snapshots for the user's account.
--   
--   This operation returns paginated results.
module Network.AWS.Lightsail.GetInstanceSnapshots

-- | Creates a value of <a>GetInstanceSnapshots</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gisPageToken</a> - A token used for advancing to the next page
--   of results from your get instance snapshots request.</li>
--   </ul>
getInstanceSnapshots :: GetInstanceSnapshots

-- | <i>See:</i> <a>getInstanceSnapshots</a> smart constructor.
data GetInstanceSnapshots

-- | A token used for advancing to the next page of results from your get
--   instance snapshots request.
gisPageToken :: Lens' GetInstanceSnapshots (Maybe Text)

-- | Creates a value of <a>GetInstanceSnapshotsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gissrsNextPageToken</a> - A token used for advancing to the
--   next page of results from your get instance snapshots request.</li>
--   <li><a>gissrsInstanceSnapshots</a> - An array of key-value pairs
--   containing information about the results of your get instance
--   snapshots request.</li>
--   <li><a>gissrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getInstanceSnapshotsResponse :: Int -> GetInstanceSnapshotsResponse

-- | <i>See:</i> <a>getInstanceSnapshotsResponse</a> smart constructor.
data GetInstanceSnapshotsResponse

-- | A token used for advancing to the next page of results from your get
--   instance snapshots request.
gissrsNextPageToken :: Lens' GetInstanceSnapshotsResponse (Maybe Text)

-- | An array of key-value pairs containing information about the results
--   of your get instance snapshots request.
gissrsInstanceSnapshots :: Lens' GetInstanceSnapshotsResponse [InstanceSnapshot]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gissrsResponseStatus :: Lens' GetInstanceSnapshotsResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshotsResponse
instance Data.Data.Data Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshotsResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshotsResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshotsResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshotsResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshots
instance Data.Data.Data Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshots
instance GHC.Show.Show Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshots
instance GHC.Read.Read Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshots
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshots
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshots
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshotsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshots
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshots
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshots
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshots
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshots
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshots
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshots


-- | Returns information about a specific instance snapshot.
module Network.AWS.Lightsail.GetInstanceSnapshot

-- | Creates a value of <a>GetInstanceSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gisInstanceSnapshotName</a> - The name of the snapshot for
--   which you are requesting information.</li>
--   </ul>
getInstanceSnapshot :: Text -> GetInstanceSnapshot

-- | <i>See:</i> <a>getInstanceSnapshot</a> smart constructor.
data GetInstanceSnapshot

-- | The name of the snapshot for which you are requesting information.
gisInstanceSnapshotName :: Lens' GetInstanceSnapshot Text

-- | Creates a value of <a>GetInstanceSnapshotResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gisrsInstanceSnapshot</a> - An array of key-value pairs
--   containing information about the results of your get instance snapshot
--   request.</li>
--   <li><a>gisrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getInstanceSnapshotResponse :: Int -> GetInstanceSnapshotResponse

-- | <i>See:</i> <a>getInstanceSnapshotResponse</a> smart constructor.
data GetInstanceSnapshotResponse

-- | An array of key-value pairs containing information about the results
--   of your get instance snapshot request.
gisrsInstanceSnapshot :: Lens' GetInstanceSnapshotResponse (Maybe InstanceSnapshot)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gisrsResponseStatus :: Lens' GetInstanceSnapshotResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshotResponse
instance Data.Data.Data Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshotResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshotResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshotResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshotResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshot
instance Data.Data.Data Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshot
instance GHC.Show.Show Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshot
instance GHC.Read.Read Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshot
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshot
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshotResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshot
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshot
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshot
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshot
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshot


-- | Returns the port states for a specific virtual private server, or
--   <i>instance</i> .
module Network.AWS.Lightsail.GetInstancePortStates

-- | Creates a value of <a>GetInstancePortStates</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gipsInstanceName</a> - The name of the instance.</li>
--   </ul>
getInstancePortStates :: Text -> GetInstancePortStates

-- | <i>See:</i> <a>getInstancePortStates</a> smart constructor.
data GetInstancePortStates

-- | The name of the instance.
gipsInstanceName :: Lens' GetInstancePortStates Text

-- | Creates a value of <a>GetInstancePortStatesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gipsrsPortStates</a> - Information about the port states
--   resulting from your request.</li>
--   <li><a>gipsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getInstancePortStatesResponse :: Int -> GetInstancePortStatesResponse

-- | <i>See:</i> <a>getInstancePortStatesResponse</a> smart constructor.
data GetInstancePortStatesResponse

-- | Information about the port states resulting from your request.
gipsrsPortStates :: Lens' GetInstancePortStatesResponse [InstancePortState]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gipsrsResponseStatus :: Lens' GetInstancePortStatesResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStatesResponse
instance Data.Data.Data Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStatesResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStatesResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStatesResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStatesResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStates
instance Data.Data.Data Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStates
instance GHC.Show.Show Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStates
instance GHC.Read.Read Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStates
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStates
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStates
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStatesResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStates
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStates
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStates
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStates
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStates
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStates


-- | Returns the data points for the specified Amazon Lightsail instance
--   metric, given an instance name.
module Network.AWS.Lightsail.GetInstanceMetricData

-- | Creates a value of <a>GetInstanceMetricData</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gimdInstanceName</a> - The name of the instance for which you
--   want to get metrics data.</li>
--   <li><a>gimdMetricName</a> - The metric name to get data about.</li>
--   <li><a>gimdPeriod</a> - The time period for which you are requesting
--   data.</li>
--   <li><a>gimdStartTime</a> - The start time of the time period.</li>
--   <li><a>gimdEndTime</a> - The end time of the time period.</li>
--   <li><a>gimdUnit</a> - The unit. The list of valid values is
--   below.</li>
--   <li><a>gimdStatistics</a> - The instance statistics.</li>
--   </ul>
getInstanceMetricData :: Text -> InstanceMetricName -> Natural -> UTCTime -> UTCTime -> MetricUnit -> GetInstanceMetricData

-- | <i>See:</i> <a>getInstanceMetricData</a> smart constructor.
data GetInstanceMetricData

-- | The name of the instance for which you want to get metrics data.
gimdInstanceName :: Lens' GetInstanceMetricData Text

-- | The metric name to get data about.
gimdMetricName :: Lens' GetInstanceMetricData InstanceMetricName

-- | The time period for which you are requesting data.
gimdPeriod :: Lens' GetInstanceMetricData Natural

-- | The start time of the time period.
gimdStartTime :: Lens' GetInstanceMetricData UTCTime

-- | The end time of the time period.
gimdEndTime :: Lens' GetInstanceMetricData UTCTime

-- | The unit. The list of valid values is below.
gimdUnit :: Lens' GetInstanceMetricData MetricUnit

-- | The instance statistics.
gimdStatistics :: Lens' GetInstanceMetricData [MetricStatistic]

-- | Creates a value of <a>GetInstanceMetricDataResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gimdrsMetricName</a> - The metric name to return data for.</li>
--   <li><a>gimdrsMetricData</a> - An array of key-value pairs containing
--   information about the results of your get instance metric data
--   request.</li>
--   <li><a>gimdrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getInstanceMetricDataResponse :: Int -> GetInstanceMetricDataResponse

-- | <i>See:</i> <a>getInstanceMetricDataResponse</a> smart constructor.
data GetInstanceMetricDataResponse

-- | The metric name to return data for.
gimdrsMetricName :: Lens' GetInstanceMetricDataResponse (Maybe InstanceMetricName)

-- | An array of key-value pairs containing information about the results
--   of your get instance metric data request.
gimdrsMetricData :: Lens' GetInstanceMetricDataResponse [MetricDatapoint]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gimdrsResponseStatus :: Lens' GetInstanceMetricDataResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricDataResponse
instance Data.Data.Data Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricDataResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricDataResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricDataResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricDataResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricData
instance Data.Data.Data Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricData
instance GHC.Show.Show Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricData
instance GHC.Read.Read Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricData
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricData
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricData
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricDataResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricData
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricData
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricData
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricData
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricData
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricData


-- | Returns temporary SSH keys you can use to connect to a specific
--   virtual private server, or <i>instance</i> .
module Network.AWS.Lightsail.GetInstanceAccessDetails

-- | Creates a value of <a>GetInstanceAccessDetails</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>giadProtocol</a> - The protocol to use to connect to your
--   instance. Defaults to <tt>ssh</tt> .</li>
--   <li><a>giadInstanceName</a> - The name of the instance to access.</li>
--   </ul>
getInstanceAccessDetails :: Text -> GetInstanceAccessDetails

-- | <i>See:</i> <a>getInstanceAccessDetails</a> smart constructor.
data GetInstanceAccessDetails

-- | The protocol to use to connect to your instance. Defaults to
--   <tt>ssh</tt> .
giadProtocol :: Lens' GetInstanceAccessDetails (Maybe InstanceAccessProtocol)

-- | The name of the instance to access.
giadInstanceName :: Lens' GetInstanceAccessDetails Text

-- | Creates a value of <a>GetInstanceAccessDetailsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>giadrsAccessDetails</a> - An array of key-value pairs
--   containing information about a get instance access request.</li>
--   <li><a>giadrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getInstanceAccessDetailsResponse :: Int -> GetInstanceAccessDetailsResponse

-- | <i>See:</i> <a>getInstanceAccessDetailsResponse</a> smart constructor.
data GetInstanceAccessDetailsResponse

-- | An array of key-value pairs containing information about a get
--   instance access request.
giadrsAccessDetails :: Lens' GetInstanceAccessDetailsResponse (Maybe InstanceAccessDetails)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
giadrsResponseStatus :: Lens' GetInstanceAccessDetailsResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetailsResponse
instance Data.Data.Data Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetailsResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetailsResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetailsResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetailsResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetails
instance Data.Data.Data Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetails
instance GHC.Show.Show Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetails
instance GHC.Read.Read Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetails
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetails
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetails
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetailsResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetails
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetails
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetails
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetails
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetails
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetails


-- | Returns information about a specific Amazon Lightsail instance, which
--   is a virtual private server.
module Network.AWS.Lightsail.GetInstance

-- | Creates a value of <a>GetInstance</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>giInstanceName</a> - The name of the instance.</li>
--   </ul>
getInstance :: Text -> GetInstance

-- | <i>See:</i> <a>getInstance</a> smart constructor.
data GetInstance

-- | The name of the instance.
giInstanceName :: Lens' GetInstance Text

-- | Creates a value of <a>GetInstanceResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>girsInstance</a> - An array of key-value pairs containing
--   information about the specified instance.</li>
--   <li><a>girsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getInstanceResponse :: Int -> GetInstanceResponse

-- | <i>See:</i> <a>getInstanceResponse</a> smart constructor.
data GetInstanceResponse

-- | An array of key-value pairs containing information about the specified
--   instance.
girsInstance :: Lens' GetInstanceResponse (Maybe Instance)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
girsResponseStatus :: Lens' GetInstanceResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstance.GetInstanceResponse
instance Data.Data.Data Network.AWS.Lightsail.GetInstance.GetInstanceResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetInstance.GetInstanceResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetInstance.GetInstanceResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstance.GetInstanceResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetInstance.GetInstance
instance Data.Data.Data Network.AWS.Lightsail.GetInstance.GetInstance
instance GHC.Show.Show Network.AWS.Lightsail.GetInstance.GetInstance
instance GHC.Read.Read Network.AWS.Lightsail.GetInstance.GetInstance
instance GHC.Classes.Eq Network.AWS.Lightsail.GetInstance.GetInstance
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetInstance.GetInstance
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstance.GetInstanceResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetInstance.GetInstance
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstance.GetInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetInstance.GetInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetInstance.GetInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetInstance.GetInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetInstance.GetInstance


-- | Returns a list of all domains in the user's account.
--   
--   This operation returns paginated results.
module Network.AWS.Lightsail.GetDomains

-- | Creates a value of <a>GetDomains</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdPageToken</a> - A token used for advancing to the next page
--   of results from your get domains request.</li>
--   </ul>
getDomains :: GetDomains

-- | <i>See:</i> <a>getDomains</a> smart constructor.
data GetDomains

-- | A token used for advancing to the next page of results from your get
--   domains request.
gdPageToken :: Lens' GetDomains (Maybe Text)

-- | Creates a value of <a>GetDomainsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ggrsNextPageToken</a> - A token used for advancing to the next
--   page of results from your get active names request.</li>
--   <li><a>ggrsDomains</a> - An array of key-value pairs containing
--   information about each of the domain entries in the user's
--   account.</li>
--   <li><a>ggrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getDomainsResponse :: Int -> GetDomainsResponse

-- | <i>See:</i> <a>getDomainsResponse</a> smart constructor.
data GetDomainsResponse

-- | A token used for advancing to the next page of results from your get
--   active names request.
ggrsNextPageToken :: Lens' GetDomainsResponse (Maybe Text)

-- | An array of key-value pairs containing information about each of the
--   domain entries in the user's account.
ggrsDomains :: Lens' GetDomainsResponse [Domain]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ggrsResponseStatus :: Lens' GetDomainsResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetDomains.GetDomainsResponse
instance Data.Data.Data Network.AWS.Lightsail.GetDomains.GetDomainsResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetDomains.GetDomainsResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetDomains.GetDomainsResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetDomains.GetDomainsResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetDomains.GetDomains
instance Data.Data.Data Network.AWS.Lightsail.GetDomains.GetDomains
instance GHC.Show.Show Network.AWS.Lightsail.GetDomains.GetDomains
instance GHC.Read.Read Network.AWS.Lightsail.GetDomains.GetDomains
instance GHC.Classes.Eq Network.AWS.Lightsail.GetDomains.GetDomains
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetDomains.GetDomains
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDomains.GetDomainsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.Lightsail.GetDomains.GetDomains
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetDomains.GetDomains
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDomains.GetDomains
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetDomains.GetDomains
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetDomains.GetDomains
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetDomains.GetDomains
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetDomains.GetDomains


-- | Returns information about a specific domain recordset.
module Network.AWS.Lightsail.GetDomain

-- | Creates a value of <a>GetDomain</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdDomainName</a> - The domain name for which your want to
--   return information about.</li>
--   </ul>
getDomain :: Text -> GetDomain

-- | <i>See:</i> <a>getDomain</a> smart constructor.
data GetDomain

-- | The domain name for which your want to return information about.
gdDomainName :: Lens' GetDomain Text

-- | Creates a value of <a>GetDomainResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdrsDomain</a> - An array of key-value pairs containing
--   information about your get domain request.</li>
--   <li><a>gdrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getDomainResponse :: Int -> GetDomainResponse

-- | <i>See:</i> <a>getDomainResponse</a> smart constructor.
data GetDomainResponse

-- | An array of key-value pairs containing information about your get
--   domain request.
gdrsDomain :: Lens' GetDomainResponse (Maybe Domain)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gdrsResponseStatus :: Lens' GetDomainResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetDomain.GetDomainResponse
instance Data.Data.Data Network.AWS.Lightsail.GetDomain.GetDomainResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetDomain.GetDomainResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetDomain.GetDomainResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetDomain.GetDomainResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetDomain.GetDomain
instance Data.Data.Data Network.AWS.Lightsail.GetDomain.GetDomain
instance GHC.Show.Show Network.AWS.Lightsail.GetDomain.GetDomain
instance GHC.Read.Read Network.AWS.Lightsail.GetDomain.GetDomain
instance GHC.Classes.Eq Network.AWS.Lightsail.GetDomain.GetDomain
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetDomain.GetDomain
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDomain.GetDomainResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetDomain.GetDomain
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDomain.GetDomain
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetDomain.GetDomain
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetDomain.GetDomain
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetDomain.GetDomain
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetDomain.GetDomain


-- | Returns information about all block storage disks in your AWS account
--   and region.
--   
--   If you are describing a long list of disks, you can paginate the
--   output to make the list more manageable. You can use the pageToken and
--   nextPageToken values to retrieve the next items in the list.
module Network.AWS.Lightsail.GetDisks

-- | Creates a value of <a>GetDisks</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gPageToken</a> - A token used for advancing to the next page of
--   results from your GetDisks request.</li>
--   </ul>
getDisks :: GetDisks

-- | <i>See:</i> <a>getDisks</a> smart constructor.
data GetDisks

-- | A token used for advancing to the next page of results from your
--   GetDisks request.
gPageToken :: Lens' GetDisks (Maybe Text)

-- | Creates a value of <a>GetDisksResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gddrsNextPageToken</a> - A token used for advancing to the next
--   page of results from your GetDisks request.</li>
--   <li><a>gddrsDisks</a> - An array of objects containing information
--   about all block storage disks.</li>
--   <li><a>gddrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getDisksResponse :: Int -> GetDisksResponse

-- | <i>See:</i> <a>getDisksResponse</a> smart constructor.
data GetDisksResponse

-- | A token used for advancing to the next page of results from your
--   GetDisks request.
gddrsNextPageToken :: Lens' GetDisksResponse (Maybe Text)

-- | An array of objects containing information about all block storage
--   disks.
gddrsDisks :: Lens' GetDisksResponse [Disk]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gddrsResponseStatus :: Lens' GetDisksResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetDisks.GetDisksResponse
instance Data.Data.Data Network.AWS.Lightsail.GetDisks.GetDisksResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetDisks.GetDisksResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetDisks.GetDisksResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetDisks.GetDisksResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetDisks.GetDisks
instance Data.Data.Data Network.AWS.Lightsail.GetDisks.GetDisks
instance GHC.Show.Show Network.AWS.Lightsail.GetDisks.GetDisks
instance GHC.Read.Read Network.AWS.Lightsail.GetDisks.GetDisks
instance GHC.Classes.Eq Network.AWS.Lightsail.GetDisks.GetDisks
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetDisks.GetDisks
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDisks.GetDisksResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetDisks.GetDisks
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDisks.GetDisks
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetDisks.GetDisks
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetDisks.GetDisks
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetDisks.GetDisks
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetDisks.GetDisks


-- | Returns information about all block storage disk snapshots in your AWS
--   account and region.
--   
--   If you are describing a long list of disk snapshots, you can paginate
--   the output to make the list more manageable. You can use the pageToken
--   and nextPageToken values to retrieve the next items in the list.
module Network.AWS.Lightsail.GetDiskSnapshots

-- | Creates a value of <a>GetDiskSnapshots</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdsPageToken</a> - A token used for advancing to the next page
--   of results from your GetDiskSnapshots request.</li>
--   </ul>
getDiskSnapshots :: GetDiskSnapshots

-- | <i>See:</i> <a>getDiskSnapshots</a> smart constructor.
data GetDiskSnapshots

-- | A token used for advancing to the next page of results from your
--   GetDiskSnapshots request.
gdsPageToken :: Lens' GetDiskSnapshots (Maybe Text)

-- | Creates a value of <a>GetDiskSnapshotsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdssrsNextPageToken</a> - A token used for advancing to the
--   next page of results from your GetDiskSnapshots request.</li>
--   <li><a>gdssrsDiskSnapshots</a> - An array of objects containing
--   information about all block storage disk snapshots.</li>
--   <li><a>gdssrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getDiskSnapshotsResponse :: Int -> GetDiskSnapshotsResponse

-- | <i>See:</i> <a>getDiskSnapshotsResponse</a> smart constructor.
data GetDiskSnapshotsResponse

-- | A token used for advancing to the next page of results from your
--   GetDiskSnapshots request.
gdssrsNextPageToken :: Lens' GetDiskSnapshotsResponse (Maybe Text)

-- | An array of objects containing information about all block storage
--   disk snapshots.
gdssrsDiskSnapshots :: Lens' GetDiskSnapshotsResponse [DiskSnapshot]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gdssrsResponseStatus :: Lens' GetDiskSnapshotsResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshotsResponse
instance Data.Data.Data Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshotsResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshotsResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshotsResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshotsResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshots
instance Data.Data.Data Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshots
instance GHC.Show.Show Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshots
instance GHC.Read.Read Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshots
instance GHC.Classes.Eq Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshots
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshots
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshotsResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshots
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshots
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshots
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshots
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshots
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetDiskSnapshots.GetDiskSnapshots


-- | Returns information about a specific block storage disk snapshot.
module Network.AWS.Lightsail.GetDiskSnapshot

-- | Creates a value of <a>GetDiskSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdsDiskSnapshotName</a> - The name of the disk snapshot (e.g.,
--   <tt>my-disk-snapshot</tt> ).</li>
--   </ul>
getDiskSnapshot :: Text -> GetDiskSnapshot

-- | <i>See:</i> <a>getDiskSnapshot</a> smart constructor.
data GetDiskSnapshot

-- | The name of the disk snapshot (e.g., <tt>my-disk-snapshot</tt> ).
gdsDiskSnapshotName :: Lens' GetDiskSnapshot Text

-- | Creates a value of <a>GetDiskSnapshotResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdsrsDiskSnapshot</a> - An object containing information about
--   the disk snapshot.</li>
--   <li><a>gdsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getDiskSnapshotResponse :: Int -> GetDiskSnapshotResponse

-- | <i>See:</i> <a>getDiskSnapshotResponse</a> smart constructor.
data GetDiskSnapshotResponse

-- | An object containing information about the disk snapshot.
gdsrsDiskSnapshot :: Lens' GetDiskSnapshotResponse (Maybe DiskSnapshot)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gdsrsResponseStatus :: Lens' GetDiskSnapshotResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshotResponse
instance Data.Data.Data Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshotResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshotResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshotResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshotResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshot
instance Data.Data.Data Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshot
instance GHC.Show.Show Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshot
instance GHC.Read.Read Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshot
instance GHC.Classes.Eq Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshot
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshotResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshot
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshot
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshot
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshot
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetDiskSnapshot.GetDiskSnapshot


-- | Returns information about a specific block storage disk.
module Network.AWS.Lightsail.GetDisk

-- | Creates a value of <a>GetDisk</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdDiskName</a> - The name of the disk (e.g., <tt>my-disk</tt>
--   ).</li>
--   </ul>
getDisk :: Text -> GetDisk

-- | <i>See:</i> <a>getDisk</a> smart constructor.
data GetDisk

-- | The name of the disk (e.g., <tt>my-disk</tt> ).
gdDiskName :: Lens' GetDisk Text

-- | Creates a value of <a>GetDiskResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>getrsDisk</a> - An object containing information about the
--   disk.</li>
--   <li><a>getrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getDiskResponse :: Int -> GetDiskResponse

-- | <i>See:</i> <a>getDiskResponse</a> smart constructor.
data GetDiskResponse

-- | An object containing information about the disk.
getrsDisk :: Lens' GetDiskResponse (Maybe Disk)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
getrsResponseStatus :: Lens' GetDiskResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetDisk.GetDiskResponse
instance Data.Data.Data Network.AWS.Lightsail.GetDisk.GetDiskResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetDisk.GetDiskResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetDisk.GetDiskResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetDisk.GetDiskResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetDisk.GetDisk
instance Data.Data.Data Network.AWS.Lightsail.GetDisk.GetDisk
instance GHC.Show.Show Network.AWS.Lightsail.GetDisk.GetDisk
instance GHC.Read.Read Network.AWS.Lightsail.GetDisk.GetDisk
instance GHC.Classes.Eq Network.AWS.Lightsail.GetDisk.GetDisk
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetDisk.GetDisk
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDisk.GetDiskResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetDisk.GetDisk
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDisk.GetDisk
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetDisk.GetDisk
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetDisk.GetDisk
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetDisk.GetDisk
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetDisk.GetDisk


-- | Returns the list of bundles that are available for purchase. A bundle
--   describes the specs for your virtual private server (or
--   <i>instance</i> ).
--   
--   This operation returns paginated results.
module Network.AWS.Lightsail.GetBundles

-- | Creates a value of <a>GetBundles</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbsIncludeInactive</a> - A Boolean value that indicates whether
--   to include inactive bundle results in your request.</li>
--   <li><a>gbsPageToken</a> - A token used for advancing to the next page
--   of results from your get bundles request.</li>
--   </ul>
getBundles :: GetBundles

-- | <i>See:</i> <a>getBundles</a> smart constructor.
data GetBundles

-- | A Boolean value that indicates whether to include inactive bundle
--   results in your request.
gbsIncludeInactive :: Lens' GetBundles (Maybe Bool)

-- | A token used for advancing to the next page of results from your get
--   bundles request.
gbsPageToken :: Lens' GetBundles (Maybe Text)

-- | Creates a value of <a>GetBundlesResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbrsNextPageToken</a> - A token used for advancing to the next
--   page of results from your get active names request.</li>
--   <li><a>gbrsBundles</a> - An array of key-value pairs that contains
--   information about the available bundles.</li>
--   <li><a>gbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBundlesResponse :: Int -> GetBundlesResponse

-- | <i>See:</i> <a>getBundlesResponse</a> smart constructor.
data GetBundlesResponse

-- | A token used for advancing to the next page of results from your get
--   active names request.
gbrsNextPageToken :: Lens' GetBundlesResponse (Maybe Text)

-- | An array of key-value pairs that contains information about the
--   available bundles.
gbrsBundles :: Lens' GetBundlesResponse [Bundle]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbrsResponseStatus :: Lens' GetBundlesResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetBundles.GetBundlesResponse
instance Data.Data.Data Network.AWS.Lightsail.GetBundles.GetBundlesResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetBundles.GetBundlesResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetBundles.GetBundlesResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetBundles.GetBundlesResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetBundles.GetBundles
instance Data.Data.Data Network.AWS.Lightsail.GetBundles.GetBundles
instance GHC.Show.Show Network.AWS.Lightsail.GetBundles.GetBundles
instance GHC.Read.Read Network.AWS.Lightsail.GetBundles.GetBundles
instance GHC.Classes.Eq Network.AWS.Lightsail.GetBundles.GetBundles
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetBundles.GetBundles
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetBundles.GetBundlesResponse
instance Network.AWS.Pager.AWSPager Network.AWS.Lightsail.GetBundles.GetBundles
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetBundles.GetBundles
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetBundles.GetBundles
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetBundles.GetBundles
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetBundles.GetBundles
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetBundles.GetBundles
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetBundles.GetBundles


-- | Returns the list of available instance images, or <i>blueprints</i> .
--   You can use a blueprint to create a new virtual private server already
--   running a specific operating system, as well as a preinstalled app or
--   development stack. The software each instance is running depends on
--   the blueprint image you choose.
--   
--   This operation returns paginated results.
module Network.AWS.Lightsail.GetBlueprints

-- | Creates a value of <a>GetBlueprints</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbIncludeInactive</a> - A Boolean value indicating whether to
--   include inactive results in your request.</li>
--   <li><a>gbPageToken</a> - A token used for advancing to the next page
--   of results from your get blueprints request.</li>
--   </ul>
getBlueprints :: GetBlueprints

-- | <i>See:</i> <a>getBlueprints</a> smart constructor.
data GetBlueprints

-- | A Boolean value indicating whether to include inactive results in your
--   request.
gbIncludeInactive :: Lens' GetBlueprints (Maybe Bool)

-- | A token used for advancing to the next page of results from your get
--   blueprints request.
gbPageToken :: Lens' GetBlueprints (Maybe Text)

-- | Creates a value of <a>GetBlueprintsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbsrsBlueprints</a> - An array of key-value pairs that contains
--   information about the available blueprints.</li>
--   <li><a>gbsrsNextPageToken</a> - A token used for advancing to the next
--   page of results from your get blueprints request.</li>
--   <li><a>gbsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBlueprintsResponse :: Int -> GetBlueprintsResponse

-- | <i>See:</i> <a>getBlueprintsResponse</a> smart constructor.
data GetBlueprintsResponse

-- | An array of key-value pairs that contains information about the
--   available blueprints.
gbsrsBlueprints :: Lens' GetBlueprintsResponse [Blueprint]

-- | A token used for advancing to the next page of results from your get
--   blueprints request.
gbsrsNextPageToken :: Lens' GetBlueprintsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbsrsResponseStatus :: Lens' GetBlueprintsResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetBlueprints.GetBlueprintsResponse
instance Data.Data.Data Network.AWS.Lightsail.GetBlueprints.GetBlueprintsResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetBlueprints.GetBlueprintsResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetBlueprints.GetBlueprintsResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetBlueprints.GetBlueprintsResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetBlueprints.GetBlueprints
instance Data.Data.Data Network.AWS.Lightsail.GetBlueprints.GetBlueprints
instance GHC.Show.Show Network.AWS.Lightsail.GetBlueprints.GetBlueprints
instance GHC.Read.Read Network.AWS.Lightsail.GetBlueprints.GetBlueprints
instance GHC.Classes.Eq Network.AWS.Lightsail.GetBlueprints.GetBlueprints
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetBlueprints.GetBlueprints
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetBlueprints.GetBlueprintsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.Lightsail.GetBlueprints.GetBlueprints
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetBlueprints.GetBlueprints
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetBlueprints.GetBlueprints
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetBlueprints.GetBlueprints
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetBlueprints.GetBlueprints
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetBlueprints.GetBlueprints
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetBlueprints.GetBlueprints


-- | Returns the names of all active (not deleted) resources.
--   
--   This operation returns paginated results.
module Network.AWS.Lightsail.GetActiveNames

-- | Creates a value of <a>GetActiveNames</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ganPageToken</a> - A token used for paginating results from
--   your get active names request.</li>
--   </ul>
getActiveNames :: GetActiveNames

-- | <i>See:</i> <a>getActiveNames</a> smart constructor.
data GetActiveNames

-- | A token used for paginating results from your get active names
--   request.
ganPageToken :: Lens' GetActiveNames (Maybe Text)

-- | Creates a value of <a>GetActiveNamesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ganrsNextPageToken</a> - A token used for advancing to the next
--   page of results from your get active names request.</li>
--   <li><a>ganrsActiveNames</a> - The list of active names returned by the
--   get active names request.</li>
--   <li><a>ganrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getActiveNamesResponse :: Int -> GetActiveNamesResponse

-- | <i>See:</i> <a>getActiveNamesResponse</a> smart constructor.
data GetActiveNamesResponse

-- | A token used for advancing to the next page of results from your get
--   active names request.
ganrsNextPageToken :: Lens' GetActiveNamesResponse (Maybe Text)

-- | The list of active names returned by the get active names request.
ganrsActiveNames :: Lens' GetActiveNamesResponse [Text]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ganrsResponseStatus :: Lens' GetActiveNamesResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.GetActiveNames.GetActiveNamesResponse
instance Data.Data.Data Network.AWS.Lightsail.GetActiveNames.GetActiveNamesResponse
instance GHC.Show.Show Network.AWS.Lightsail.GetActiveNames.GetActiveNamesResponse
instance GHC.Read.Read Network.AWS.Lightsail.GetActiveNames.GetActiveNamesResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.GetActiveNames.GetActiveNamesResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.GetActiveNames.GetActiveNames
instance Data.Data.Data Network.AWS.Lightsail.GetActiveNames.GetActiveNames
instance GHC.Show.Show Network.AWS.Lightsail.GetActiveNames.GetActiveNames
instance GHC.Read.Read Network.AWS.Lightsail.GetActiveNames.GetActiveNames
instance GHC.Classes.Eq Network.AWS.Lightsail.GetActiveNames.GetActiveNames
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.GetActiveNames.GetActiveNames
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetActiveNames.GetActiveNamesResponse
instance Network.AWS.Pager.AWSPager Network.AWS.Lightsail.GetActiveNames.GetActiveNames
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.GetActiveNames.GetActiveNames
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetActiveNames.GetActiveNames
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.GetActiveNames.GetActiveNames
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.GetActiveNames.GetActiveNames
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.GetActiveNames.GetActiveNames
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.GetActiveNames.GetActiveNames


-- | Downloads the default SSH key pair from the user's account.
module Network.AWS.Lightsail.DownloadDefaultKeyPair

-- | Creates a value of <a>DownloadDefaultKeyPair</a> with the minimum
--   fields required to make a request.
downloadDefaultKeyPair :: DownloadDefaultKeyPair

-- | <i>See:</i> <a>downloadDefaultKeyPair</a> smart constructor.
data DownloadDefaultKeyPair

-- | Creates a value of <a>DownloadDefaultKeyPairResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddkprsPublicKeyBase64</a> - A base64-encoded public key of the
--   <tt>ssh-rsa</tt> type.</li>
--   <li><a>ddkprsPrivateKeyBase64</a> - A base64-encoded RSA private
--   key.</li>
--   <li><a>ddkprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
downloadDefaultKeyPairResponse :: Int -> DownloadDefaultKeyPairResponse

-- | <i>See:</i> <a>downloadDefaultKeyPairResponse</a> smart constructor.
data DownloadDefaultKeyPairResponse

-- | A base64-encoded public key of the <tt>ssh-rsa</tt> type.
ddkprsPublicKeyBase64 :: Lens' DownloadDefaultKeyPairResponse (Maybe Text)

-- | A base64-encoded RSA private key.
ddkprsPrivateKeyBase64 :: Lens' DownloadDefaultKeyPairResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ddkprsResponseStatus :: Lens' DownloadDefaultKeyPairResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPairResponse
instance Data.Data.Data Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPairResponse
instance GHC.Show.Show Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPairResponse
instance GHC.Read.Read Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPairResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPairResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPair
instance Data.Data.Data Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPair
instance GHC.Show.Show Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPair
instance GHC.Read.Read Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPair
instance GHC.Classes.Eq Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPair
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPair
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPairResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPair
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPair
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPair
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPair
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPair
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPair


-- | Detaches a static IP from the Amazon Lightsail instance to which it is
--   attached.
module Network.AWS.Lightsail.DetachStaticIP

-- | Creates a value of <a>DetachStaticIP</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsiStaticIPName</a> - The name of the static IP to detach from
--   the instance.</li>
--   </ul>
detachStaticIP :: Text -> DetachStaticIP

-- | <i>See:</i> <a>detachStaticIP</a> smart constructor.
data DetachStaticIP

-- | The name of the static IP to detach from the instance.
dsiStaticIPName :: Lens' DetachStaticIP Text

-- | Creates a value of <a>DetachStaticIPResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsirsOperations</a> - An array of key-value pairs containing
--   information about the results of your detach static IP request.</li>
--   <li><a>dsirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
detachStaticIPResponse :: Int -> DetachStaticIPResponse

-- | <i>See:</i> <a>detachStaticIPResponse</a> smart constructor.
data DetachStaticIPResponse

-- | An array of key-value pairs containing information about the results
--   of your detach static IP request.
dsirsOperations :: Lens' DetachStaticIPResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsirsResponseStatus :: Lens' DetachStaticIPResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.DetachStaticIP.DetachStaticIPResponse
instance Data.Data.Data Network.AWS.Lightsail.DetachStaticIP.DetachStaticIPResponse
instance GHC.Show.Show Network.AWS.Lightsail.DetachStaticIP.DetachStaticIPResponse
instance GHC.Read.Read Network.AWS.Lightsail.DetachStaticIP.DetachStaticIPResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.DetachStaticIP.DetachStaticIPResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.DetachStaticIP.DetachStaticIP
instance Data.Data.Data Network.AWS.Lightsail.DetachStaticIP.DetachStaticIP
instance GHC.Show.Show Network.AWS.Lightsail.DetachStaticIP.DetachStaticIP
instance GHC.Read.Read Network.AWS.Lightsail.DetachStaticIP.DetachStaticIP
instance GHC.Classes.Eq Network.AWS.Lightsail.DetachStaticIP.DetachStaticIP
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.DetachStaticIP.DetachStaticIP
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DetachStaticIP.DetachStaticIPResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.DetachStaticIP.DetachStaticIP
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DetachStaticIP.DetachStaticIP
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.DetachStaticIP.DetachStaticIP
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.DetachStaticIP.DetachStaticIP
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.DetachStaticIP.DetachStaticIP
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.DetachStaticIP.DetachStaticIP


-- | Detaches the specified instances from a Lightsail load balancer.
--   
--   This operation waits until the instances are no longer needed before
--   they are detached from the load balancer.
module Network.AWS.Lightsail.DetachInstancesFromLoadBalancer

-- | Creates a value of <a>DetachInstancesFromLoadBalancer</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diflbLoadBalancerName</a> - The name of the Lightsail load
--   balancer.</li>
--   <li><a>diflbInstanceNames</a> - An array of strings containing the
--   names of the instances you want to detach from the load balancer.</li>
--   </ul>
detachInstancesFromLoadBalancer :: Text -> DetachInstancesFromLoadBalancer

-- | <i>See:</i> <a>detachInstancesFromLoadBalancer</a> smart constructor.
data DetachInstancesFromLoadBalancer

-- | The name of the Lightsail load balancer.
diflbLoadBalancerName :: Lens' DetachInstancesFromLoadBalancer Text

-- | An array of strings containing the names of the instances you want to
--   detach from the load balancer.
diflbInstanceNames :: Lens' DetachInstancesFromLoadBalancer [Text]

-- | Creates a value of <a>DetachInstancesFromLoadBalancerResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diflbrsOperations</a> - An object describing the API
--   operations.</li>
--   <li><a>diflbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
detachInstancesFromLoadBalancerResponse :: Int -> DetachInstancesFromLoadBalancerResponse

-- | <i>See:</i> <a>detachInstancesFromLoadBalancerResponse</a> smart
--   constructor.
data DetachInstancesFromLoadBalancerResponse

-- | An object describing the API operations.
diflbrsOperations :: Lens' DetachInstancesFromLoadBalancerResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
diflbrsResponseStatus :: Lens' DetachInstancesFromLoadBalancerResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancerResponse
instance Data.Data.Data Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancerResponse
instance GHC.Show.Show Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancerResponse
instance GHC.Read.Read Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancerResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancerResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancer
instance Data.Data.Data Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancer
instance GHC.Show.Show Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancer
instance GHC.Read.Read Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancer
instance GHC.Classes.Eq Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancer
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancerResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancer
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancer
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.DetachInstancesFromLoadBalancer.DetachInstancesFromLoadBalancer


-- | Detaches a stopped block storage disk from a Lightsail instance. Make
--   sure to unmount any file systems on the device within your operating
--   system before stopping the instance and detaching the disk.
module Network.AWS.Lightsail.DetachDisk

-- | Creates a value of <a>DetachDisk</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddDiskName</a> - The unique name of the disk you want to detach
--   from your instance (e.g., <tt>my-disk</tt> ).</li>
--   </ul>
detachDisk :: Text -> DetachDisk

-- | <i>See:</i> <a>detachDisk</a> smart constructor.
data DetachDisk

-- | The unique name of the disk you want to detach from your instance
--   (e.g., <tt>my-disk</tt> ).
ddDiskName :: Lens' DetachDisk Text

-- | Creates a value of <a>DetachDiskResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddrsOperations</a> - An object describing the API
--   operations.</li>
--   <li><a>ddrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
detachDiskResponse :: Int -> DetachDiskResponse

-- | <i>See:</i> <a>detachDiskResponse</a> smart constructor.
data DetachDiskResponse

-- | An object describing the API operations.
ddrsOperations :: Lens' DetachDiskResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ddrsResponseStatus :: Lens' DetachDiskResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.DetachDisk.DetachDiskResponse
instance Data.Data.Data Network.AWS.Lightsail.DetachDisk.DetachDiskResponse
instance GHC.Show.Show Network.AWS.Lightsail.DetachDisk.DetachDiskResponse
instance GHC.Read.Read Network.AWS.Lightsail.DetachDisk.DetachDiskResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.DetachDisk.DetachDiskResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.DetachDisk.DetachDisk
instance Data.Data.Data Network.AWS.Lightsail.DetachDisk.DetachDisk
instance GHC.Show.Show Network.AWS.Lightsail.DetachDisk.DetachDisk
instance GHC.Read.Read Network.AWS.Lightsail.DetachDisk.DetachDisk
instance GHC.Classes.Eq Network.AWS.Lightsail.DetachDisk.DetachDisk
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.DetachDisk.DetachDisk
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DetachDisk.DetachDiskResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.DetachDisk.DetachDisk
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DetachDisk.DetachDisk
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.DetachDisk.DetachDisk
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.DetachDisk.DetachDisk
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.DetachDisk.DetachDisk
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.DetachDisk.DetachDisk


-- | Deletes an SSL/TLS certificate associated with a Lightsail load
--   balancer.
module Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate

-- | Creates a value of <a>DeleteLoadBalancerTLSCertificate</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbtcForce</a> - When <tt>true</tt> , forces the deletion of an
--   SSL<i>TLS certificate. There can be two certificates associated with a
--   Lightsail load balancer: the primary and the backup. The force
--   parameter is required when the primary SSL</i>TLS certificate is in
--   use by an instance attached to the load balancer.</li>
--   <li><a>dlbtcLoadBalancerName</a> - The load balancer name.</li>
--   <li><a>dlbtcCertificateName</a> - The SSL/TLS certificate name.</li>
--   </ul>
deleteLoadBalancerTLSCertificate :: Text -> Text -> DeleteLoadBalancerTLSCertificate

-- | <i>See:</i> <a>deleteLoadBalancerTLSCertificate</a> smart constructor.
data DeleteLoadBalancerTLSCertificate

-- | When <tt>true</tt> , forces the deletion of an SSL<i>TLS certificate.
--   There can be two certificates associated with a Lightsail load
--   balancer: the primary and the backup. The force parameter is required
--   when the primary SSL</i>TLS certificate is in use by an instance
--   attached to the load balancer.
dlbtcForce :: Lens' DeleteLoadBalancerTLSCertificate (Maybe Bool)

-- | The load balancer name.
dlbtcLoadBalancerName :: Lens' DeleteLoadBalancerTLSCertificate Text

-- | The SSL/TLS certificate name.
dlbtcCertificateName :: Lens' DeleteLoadBalancerTLSCertificate Text

-- | Creates a value of <a>DeleteLoadBalancerTLSCertificateResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbtcrsOperations</a> - An object describing the API
--   operations.</li>
--   <li><a>dlbtcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteLoadBalancerTLSCertificateResponse :: Int -> DeleteLoadBalancerTLSCertificateResponse

-- | <i>See:</i> <a>deleteLoadBalancerTLSCertificateResponse</a> smart
--   constructor.
data DeleteLoadBalancerTLSCertificateResponse

-- | An object describing the API operations.
dlbtcrsOperations :: Lens' DeleteLoadBalancerTLSCertificateResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dlbtcrsResponseStatus :: Lens' DeleteLoadBalancerTLSCertificateResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificateResponse
instance Data.Data.Data Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificateResponse
instance GHC.Show.Show Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificateResponse
instance GHC.Read.Read Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificateResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificateResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificate
instance Data.Data.Data Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificate
instance GHC.Show.Show Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificate
instance GHC.Read.Read Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificate
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificate
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificate
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificateResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificate
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificate
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificate
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificate
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificate
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.DeleteLoadBalancerTLSCertificate.DeleteLoadBalancerTLSCertificate


-- | Deletes a Lightsail load balancer and all its associated SSL/TLS
--   certificates. Once the load balancer is deleted, you will need to
--   create a new load balancer, create a new certificate, and verify
--   domain ownership again.
module Network.AWS.Lightsail.DeleteLoadBalancer

-- | Creates a value of <a>DeleteLoadBalancer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbLoadBalancerName</a> - The name of the load balancer you
--   want to delete.</li>
--   </ul>
deleteLoadBalancer :: Text -> DeleteLoadBalancer

-- | <i>See:</i> <a>deleteLoadBalancer</a> smart constructor.
data DeleteLoadBalancer

-- | The name of the load balancer you want to delete.
dlbLoadBalancerName :: Lens' DeleteLoadBalancer Text

-- | Creates a value of <a>DeleteLoadBalancerResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbrsOperations</a> - An object describing the API
--   operations.</li>
--   <li><a>dlbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteLoadBalancerResponse :: Int -> DeleteLoadBalancerResponse

-- | <i>See:</i> <a>deleteLoadBalancerResponse</a> smart constructor.
data DeleteLoadBalancerResponse

-- | An object describing the API operations.
dlbrsOperations :: Lens' DeleteLoadBalancerResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dlbrsResponseStatus :: Lens' DeleteLoadBalancerResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancerResponse
instance Data.Data.Data Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancerResponse
instance GHC.Show.Show Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancerResponse
instance GHC.Read.Read Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancerResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancerResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancer
instance Data.Data.Data Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancer
instance GHC.Show.Show Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancer
instance GHC.Read.Read Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancer
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancer
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancerResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancer
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancer
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.DeleteLoadBalancer.DeleteLoadBalancer


-- | Deletes a specific SSH key pair.
module Network.AWS.Lightsail.DeleteKeyPair

-- | Creates a value of <a>DeleteKeyPair</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dkpKeyPairName</a> - The name of the key pair to delete.</li>
--   </ul>
deleteKeyPair :: Text -> DeleteKeyPair

-- | <i>See:</i> <a>deleteKeyPair</a> smart constructor.
data DeleteKeyPair

-- | The name of the key pair to delete.
dkpKeyPairName :: Lens' DeleteKeyPair Text

-- | Creates a value of <a>DeleteKeyPairResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dkprsOperation</a> - An array of key-value pairs containing
--   information about the results of your delete key pair request.</li>
--   <li><a>dkprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteKeyPairResponse :: Int -> DeleteKeyPairResponse

-- | <i>See:</i> <a>deleteKeyPairResponse</a> smart constructor.
data DeleteKeyPairResponse

-- | An array of key-value pairs containing information about the results
--   of your delete key pair request.
dkprsOperation :: Lens' DeleteKeyPairResponse (Maybe Operation)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dkprsResponseStatus :: Lens' DeleteKeyPairResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPairResponse
instance Data.Data.Data Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPairResponse
instance GHC.Show.Show Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPairResponse
instance GHC.Read.Read Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPairResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPairResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPair
instance Data.Data.Data Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPair
instance GHC.Show.Show Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPair
instance GHC.Read.Read Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPair
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPair
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPair
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPairResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPair
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPair
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPair
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPair
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPair
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPair


-- | Deletes a specific snapshot of a virtual private server (or
--   <i>instance</i> ).
module Network.AWS.Lightsail.DeleteInstanceSnapshot

-- | Creates a value of <a>DeleteInstanceSnapshot</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>disInstanceSnapshotName</a> - The name of the snapshot to
--   delete.</li>
--   </ul>
deleteInstanceSnapshot :: Text -> DeleteInstanceSnapshot

-- | <i>See:</i> <a>deleteInstanceSnapshot</a> smart constructor.
data DeleteInstanceSnapshot

-- | The name of the snapshot to delete.
disInstanceSnapshotName :: Lens' DeleteInstanceSnapshot Text

-- | Creates a value of <a>DeleteInstanceSnapshotResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>disrsOperations</a> - An array of key-value pairs containing
--   information about the results of your delete instance snapshot
--   request.</li>
--   <li><a>disrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteInstanceSnapshotResponse :: Int -> DeleteInstanceSnapshotResponse

-- | <i>See:</i> <a>deleteInstanceSnapshotResponse</a> smart constructor.
data DeleteInstanceSnapshotResponse

-- | An array of key-value pairs containing information about the results
--   of your delete instance snapshot request.
disrsOperations :: Lens' DeleteInstanceSnapshotResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
disrsResponseStatus :: Lens' DeleteInstanceSnapshotResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshotResponse
instance Data.Data.Data Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshotResponse
instance GHC.Show.Show Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshotResponse
instance GHC.Read.Read Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshotResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshotResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshot
instance Data.Data.Data Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshot
instance GHC.Show.Show Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshot
instance GHC.Read.Read Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshot
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshot
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshotResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshot
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshot
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshot
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshot
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshot


-- | Deletes a specific Amazon Lightsail virtual private server, or
--   <i>instance</i> .
module Network.AWS.Lightsail.DeleteInstance

-- | Creates a value of <a>DeleteInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diInstanceName</a> - The name of the instance to delete.</li>
--   </ul>
deleteInstance :: Text -> DeleteInstance

-- | <i>See:</i> <a>deleteInstance</a> smart constructor.
data DeleteInstance

-- | The name of the instance to delete.
diInstanceName :: Lens' DeleteInstance Text

-- | Creates a value of <a>DeleteInstanceResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dirsOperations</a> - An array of key-value pairs containing
--   information about the results of your delete instance request.</li>
--   <li><a>dirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteInstanceResponse :: Int -> DeleteInstanceResponse

-- | <i>See:</i> <a>deleteInstanceResponse</a> smart constructor.
data DeleteInstanceResponse

-- | An array of key-value pairs containing information about the results
--   of your delete instance request.
dirsOperations :: Lens' DeleteInstanceResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dirsResponseStatus :: Lens' DeleteInstanceResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteInstance.DeleteInstanceResponse
instance Data.Data.Data Network.AWS.Lightsail.DeleteInstance.DeleteInstanceResponse
instance GHC.Show.Show Network.AWS.Lightsail.DeleteInstance.DeleteInstanceResponse
instance GHC.Read.Read Network.AWS.Lightsail.DeleteInstance.DeleteInstanceResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteInstance.DeleteInstanceResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteInstance.DeleteInstance
instance Data.Data.Data Network.AWS.Lightsail.DeleteInstance.DeleteInstance
instance GHC.Show.Show Network.AWS.Lightsail.DeleteInstance.DeleteInstance
instance GHC.Read.Read Network.AWS.Lightsail.DeleteInstance.DeleteInstance
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteInstance.DeleteInstance
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.DeleteInstance.DeleteInstance
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteInstance.DeleteInstanceResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.DeleteInstance.DeleteInstance
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteInstance.DeleteInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.DeleteInstance.DeleteInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.DeleteInstance.DeleteInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.DeleteInstance.DeleteInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.DeleteInstance.DeleteInstance


-- | Deletes a specific domain entry.
module Network.AWS.Lightsail.DeleteDomainEntry

-- | Creates a value of <a>DeleteDomainEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddeDomainName</a> - The name of the domain entry to
--   delete.</li>
--   <li><a>ddeDomainEntry</a> - An array of key-value pairs containing
--   information about your domain entries.</li>
--   </ul>
deleteDomainEntry :: Text -> DomainEntry -> DeleteDomainEntry

-- | <i>See:</i> <a>deleteDomainEntry</a> smart constructor.
data DeleteDomainEntry

-- | The name of the domain entry to delete.
ddeDomainName :: Lens' DeleteDomainEntry Text

-- | An array of key-value pairs containing information about your domain
--   entries.
ddeDomainEntry :: Lens' DeleteDomainEntry DomainEntry

-- | Creates a value of <a>DeleteDomainEntryResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddersOperation</a> - An array of key-value pairs containing
--   information about the results of your delete domain entry
--   request.</li>
--   <li><a>ddersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteDomainEntryResponse :: Int -> DeleteDomainEntryResponse

-- | <i>See:</i> <a>deleteDomainEntryResponse</a> smart constructor.
data DeleteDomainEntryResponse

-- | An array of key-value pairs containing information about the results
--   of your delete domain entry request.
ddersOperation :: Lens' DeleteDomainEntryResponse (Maybe Operation)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ddersResponseStatus :: Lens' DeleteDomainEntryResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntryResponse
instance Data.Data.Data Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntryResponse
instance GHC.Show.Show Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntryResponse
instance GHC.Read.Read Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntryResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntryResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntry
instance Data.Data.Data Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntry
instance GHC.Show.Show Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntry
instance GHC.Read.Read Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntry
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntry
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntry
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntryResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntry
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntry
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntry
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntry
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntry
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntry


-- | Deletes the specified domain recordset and all of its domain records.
module Network.AWS.Lightsail.DeleteDomain

-- | Creates a value of <a>DeleteDomain</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddDomainName</a> - The specific domain name to delete.</li>
--   </ul>
deleteDomain :: Text -> DeleteDomain

-- | <i>See:</i> <a>deleteDomain</a> smart constructor.
data DeleteDomain

-- | The specific domain name to delete.
ddDomainName :: Lens' DeleteDomain Text

-- | Creates a value of <a>DeleteDomainResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>delrsOperation</a> - An array of key-value pairs containing
--   information about the results of your delete domain request.</li>
--   <li><a>delrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteDomainResponse :: Int -> DeleteDomainResponse

-- | <i>See:</i> <a>deleteDomainResponse</a> smart constructor.
data DeleteDomainResponse

-- | An array of key-value pairs containing information about the results
--   of your delete domain request.
delrsOperation :: Lens' DeleteDomainResponse (Maybe Operation)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
delrsResponseStatus :: Lens' DeleteDomainResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteDomain.DeleteDomainResponse
instance Data.Data.Data Network.AWS.Lightsail.DeleteDomain.DeleteDomainResponse
instance GHC.Show.Show Network.AWS.Lightsail.DeleteDomain.DeleteDomainResponse
instance GHC.Read.Read Network.AWS.Lightsail.DeleteDomain.DeleteDomainResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteDomain.DeleteDomainResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteDomain.DeleteDomain
instance Data.Data.Data Network.AWS.Lightsail.DeleteDomain.DeleteDomain
instance GHC.Show.Show Network.AWS.Lightsail.DeleteDomain.DeleteDomain
instance GHC.Read.Read Network.AWS.Lightsail.DeleteDomain.DeleteDomain
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteDomain.DeleteDomain
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.DeleteDomain.DeleteDomain
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteDomain.DeleteDomainResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.DeleteDomain.DeleteDomain
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteDomain.DeleteDomain
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.DeleteDomain.DeleteDomain
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.DeleteDomain.DeleteDomain
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.DeleteDomain.DeleteDomain
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.DeleteDomain.DeleteDomain


-- | Deletes the specified disk snapshot.
--   
--   When you make periodic snapshots of a disk, the snapshots are
--   incremental, and only the blocks on the device that have changed since
--   your last snapshot are saved in the new snapshot. When you delete a
--   snapshot, only the data not needed for any other snapshot is removed.
--   So regardless of which prior snapshots have been deleted, all active
--   snapshots will have access to all the information needed to restore
--   the disk.
module Network.AWS.Lightsail.DeleteDiskSnapshot

-- | Creates a value of <a>DeleteDiskSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddsDiskSnapshotName</a> - The name of the disk snapshot you
--   want to delete (e.g., <tt>my-disk-snapshot</tt> ).</li>
--   </ul>
deleteDiskSnapshot :: Text -> DeleteDiskSnapshot

-- | <i>See:</i> <a>deleteDiskSnapshot</a> smart constructor.
data DeleteDiskSnapshot

-- | The name of the disk snapshot you want to delete (e.g.,
--   <tt>my-disk-snapshot</tt> ).
ddsDiskSnapshotName :: Lens' DeleteDiskSnapshot Text

-- | Creates a value of <a>DeleteDiskSnapshotResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddsrsOperations</a> - An object describing the API
--   operations.</li>
--   <li><a>ddsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteDiskSnapshotResponse :: Int -> DeleteDiskSnapshotResponse

-- | <i>See:</i> <a>deleteDiskSnapshotResponse</a> smart constructor.
data DeleteDiskSnapshotResponse

-- | An object describing the API operations.
ddsrsOperations :: Lens' DeleteDiskSnapshotResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ddsrsResponseStatus :: Lens' DeleteDiskSnapshotResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshotResponse
instance Data.Data.Data Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshotResponse
instance GHC.Show.Show Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshotResponse
instance GHC.Read.Read Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshotResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshotResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshot
instance Data.Data.Data Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshot
instance GHC.Show.Show Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshot
instance GHC.Read.Read Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshot
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshot
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshotResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshot
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshot
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshot
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshot
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.DeleteDiskSnapshot.DeleteDiskSnapshot


-- | Deletes the specified block storage disk. The disk must be in the
--   <tt>available</tt> state (not attached to a Lightsail instance).
module Network.AWS.Lightsail.DeleteDisk

-- | Creates a value of <a>DeleteDisk</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dDiskName</a> - The unique name of the disk you want to delete
--   (e.g., <tt>my-disk</tt> ).</li>
--   </ul>
deleteDisk :: Text -> DeleteDisk

-- | <i>See:</i> <a>deleteDisk</a> smart constructor.
data DeleteDisk

-- | The unique name of the disk you want to delete (e.g., <tt>my-disk</tt>
--   ).
dDiskName :: Lens' DeleteDisk Text

-- | Creates a value of <a>DeleteDiskResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsOperations</a> - An object describing the API
--   operations.</li>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteDiskResponse :: Int -> DeleteDiskResponse

-- | <i>See:</i> <a>deleteDiskResponse</a> smart constructor.
data DeleteDiskResponse

-- | An object describing the API operations.
drsOperations :: Lens' DeleteDiskResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drsResponseStatus :: Lens' DeleteDiskResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteDisk.DeleteDiskResponse
instance Data.Data.Data Network.AWS.Lightsail.DeleteDisk.DeleteDiskResponse
instance GHC.Show.Show Network.AWS.Lightsail.DeleteDisk.DeleteDiskResponse
instance GHC.Read.Read Network.AWS.Lightsail.DeleteDisk.DeleteDiskResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteDisk.DeleteDiskResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.DeleteDisk.DeleteDisk
instance Data.Data.Data Network.AWS.Lightsail.DeleteDisk.DeleteDisk
instance GHC.Show.Show Network.AWS.Lightsail.DeleteDisk.DeleteDisk
instance GHC.Read.Read Network.AWS.Lightsail.DeleteDisk.DeleteDisk
instance GHC.Classes.Eq Network.AWS.Lightsail.DeleteDisk.DeleteDisk
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.DeleteDisk.DeleteDisk
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteDisk.DeleteDiskResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.DeleteDisk.DeleteDisk
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteDisk.DeleteDisk
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.DeleteDisk.DeleteDisk
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.DeleteDisk.DeleteDisk
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.DeleteDisk.DeleteDisk
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.DeleteDisk.DeleteDisk


-- | Creates a Lightsail load balancer TLS certificate.
--   
--   TLS is just an updated, more secure version of Secure Socket Layer
--   (SSL).
module Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate

-- | Creates a value of <a>CreateLoadBalancerTLSCertificate</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clbtcCertificateAlternativeNames</a> - An array of strings
--   listing alternative domains and subdomains for your SSL/TLS
--   certificate. Lightsail will de-dupe the names for you. You can have a
--   maximum of 9 alternative names (in addition to the 1 primary domain).
--   We do not support wildcards (e.g., <tt>*.example.com</tt> ).</li>
--   <li><a>clbtcLoadBalancerName</a> - The load balancer name where you
--   want to create the SSL/TLS certificate.</li>
--   <li><a>clbtcCertificateName</a> - The SSL<i>TLS certificate name. You
--   can have up to 10 certificates in your account at one time. Each
--   Lightsail load balancer can have up to 2 certificates associated with
--   it at one time. There is also an overall limit to the number of
--   certificates that can be issue in a 365-day period. For more
--   information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>acm<i>latest</i>userguide/acm-limits.html
--   Limits&gt; .</li>
--   <li><a>clbtcCertificateDomainName</a> - The domain name (e.g.,
--   <tt>example.com</tt> ) for your SSL/TLS certificate.</li>
--   </ul>
createLoadBalancerTLSCertificate :: Text -> Text -> Text -> CreateLoadBalancerTLSCertificate

-- | <i>See:</i> <a>createLoadBalancerTLSCertificate</a> smart constructor.
data CreateLoadBalancerTLSCertificate

-- | An array of strings listing alternative domains and subdomains for
--   your SSL/TLS certificate. Lightsail will de-dupe the names for you.
--   You can have a maximum of 9 alternative names (in addition to the 1
--   primary domain). We do not support wildcards (e.g.,
--   <tt>*.example.com</tt> ).
clbtcCertificateAlternativeNames :: Lens' CreateLoadBalancerTLSCertificate [Text]

-- | The load balancer name where you want to create the SSL/TLS
--   certificate.
clbtcLoadBalancerName :: Lens' CreateLoadBalancerTLSCertificate Text

-- | The SSL<i>TLS certificate name. You can have up to 10 certificates in
--   your account at one time. Each Lightsail load balancer can have up to
--   2 certificates associated with it at one time. There is also an
--   overall limit to the number of certificates that can be issue in a
--   365-day period. For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>acm<i>latest</i>userguide/acm-limits.html
--   Limits&gt; .
clbtcCertificateName :: Lens' CreateLoadBalancerTLSCertificate Text

-- | The domain name (e.g., <tt>example.com</tt> ) for your SSL/TLS
--   certificate.
clbtcCertificateDomainName :: Lens' CreateLoadBalancerTLSCertificate Text

-- | Creates a value of <a>CreateLoadBalancerTLSCertificateResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clbtcrsOperations</a> - An object containing information about
--   the API operations.</li>
--   <li><a>clbtcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createLoadBalancerTLSCertificateResponse :: Int -> CreateLoadBalancerTLSCertificateResponse

-- | <i>See:</i> <a>createLoadBalancerTLSCertificateResponse</a> smart
--   constructor.
data CreateLoadBalancerTLSCertificateResponse

-- | An object containing information about the API operations.
clbtcrsOperations :: Lens' CreateLoadBalancerTLSCertificateResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
clbtcrsResponseStatus :: Lens' CreateLoadBalancerTLSCertificateResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificateResponse
instance Data.Data.Data Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificateResponse
instance GHC.Show.Show Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificateResponse
instance GHC.Read.Read Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificateResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificateResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificate
instance Data.Data.Data Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificate
instance GHC.Show.Show Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificate
instance GHC.Read.Read Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificate
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificate
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificate
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificateResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificate
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificate
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificate
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificate
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificate
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.CreateLoadBalancerTLSCertificate.CreateLoadBalancerTLSCertificate


-- | Creates a Lightsail load balancer. To learn more about deciding
--   whether to load balance your application, see <a>Configure your
--   Lightsail instances for load balancing</a> . You can create up to 5
--   load balancers per AWS Region in your account.
--   
--   When you create a load balancer, you can specify a unique name and
--   port settings. To change additional load balancer settings, use the
--   <tt>UpdateLoadBalancerAttribute</tt> operation.
module Network.AWS.Lightsail.CreateLoadBalancer

-- | Creates a value of <a>CreateLoadBalancer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clbHealthCheckPath</a> - The path you provided to perform the
--   load balancer health check. If you didn't specify a health check path,
--   Lightsail uses the root path of your website (e.g., <tt>"/"</tt> ).
--   You may want to specify a custom health check path other than the root
--   of your application if your home page loads slowly or has a lot of
--   media or scripting on it.</li>
--   <li><a>clbCertificateName</a> - The name of the SSL/TLS certificate.
--   If you specify <tt>certificateName</tt> , then
--   <tt>certificateDomainName</tt> is required (and vice-versa).</li>
--   <li><a>clbCertificateDomainName</a> - The domain name with which your
--   certificate is associated (e.g., <tt>example.com</tt> ). If you
--   specify <tt>certificateDomainName</tt> , then <tt>certificateName</tt>
--   is required (and vice-versa).</li>
--   <li><a>clbCertificateAlternativeNames</a> - The optional alternative
--   domains and subdomains to use with your SSL/TLS certificate (e.g.,
--   <tt>www.example.com</tt> , <tt>example.com</tt> ,
--   <tt>m.example.com</tt> , <tt>blog.example.com</tt> ).</li>
--   <li><a>clbLoadBalancerName</a> - The name of your load balancer.</li>
--   <li><a>clbInstancePort</a> - The instance port where you're creating
--   your load balancer.</li>
--   </ul>
createLoadBalancer :: Text -> Natural -> CreateLoadBalancer

-- | <i>See:</i> <a>createLoadBalancer</a> smart constructor.
data CreateLoadBalancer

-- | The path you provided to perform the load balancer health check. If
--   you didn't specify a health check path, Lightsail uses the root path
--   of your website (e.g., <tt>"/"</tt> ). You may want to specify a
--   custom health check path other than the root of your application if
--   your home page loads slowly or has a lot of media or scripting on it.
clbHealthCheckPath :: Lens' CreateLoadBalancer (Maybe Text)

-- | The name of the SSL/TLS certificate. If you specify
--   <tt>certificateName</tt> , then <tt>certificateDomainName</tt> is
--   required (and vice-versa).
clbCertificateName :: Lens' CreateLoadBalancer (Maybe Text)

-- | The domain name with which your certificate is associated (e.g.,
--   <tt>example.com</tt> ). If you specify <tt>certificateDomainName</tt>
--   , then <tt>certificateName</tt> is required (and vice-versa).
clbCertificateDomainName :: Lens' CreateLoadBalancer (Maybe Text)

-- | The optional alternative domains and subdomains to use with your
--   SSL/TLS certificate (e.g., <tt>www.example.com</tt> ,
--   <tt>example.com</tt> , <tt>m.example.com</tt> ,
--   <tt>blog.example.com</tt> ).
clbCertificateAlternativeNames :: Lens' CreateLoadBalancer [Text]

-- | The name of your load balancer.
clbLoadBalancerName :: Lens' CreateLoadBalancer Text

-- | The instance port where you're creating your load balancer.
clbInstancePort :: Lens' CreateLoadBalancer Natural

-- | Creates a value of <a>CreateLoadBalancerResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clbrsOperations</a> - An object containing information about
--   the API operations.</li>
--   <li><a>clbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createLoadBalancerResponse :: Int -> CreateLoadBalancerResponse

-- | <i>See:</i> <a>createLoadBalancerResponse</a> smart constructor.
data CreateLoadBalancerResponse

-- | An object containing information about the API operations.
clbrsOperations :: Lens' CreateLoadBalancerResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
clbrsResponseStatus :: Lens' CreateLoadBalancerResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancerResponse
instance Data.Data.Data Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancerResponse
instance GHC.Show.Show Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancerResponse
instance GHC.Read.Read Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancerResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancerResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancer
instance Data.Data.Data Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancer
instance GHC.Show.Show Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancer
instance GHC.Read.Read Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancer
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancer
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancerResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancer
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancer
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.CreateLoadBalancer.CreateLoadBalancer


-- | Creates sn SSH key pair.
module Network.AWS.Lightsail.CreateKeyPair

-- | Creates a value of <a>CreateKeyPair</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ckpKeyPairName</a> - The name for your new key pair.</li>
--   </ul>
createKeyPair :: Text -> CreateKeyPair

-- | <i>See:</i> <a>createKeyPair</a> smart constructor.
data CreateKeyPair

-- | The name for your new key pair.
ckpKeyPairName :: Lens' CreateKeyPair Text

-- | Creates a value of <a>CreateKeyPairResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ckprsKeyPair</a> - An array of key-value pairs containing
--   information about the new key pair you just created.</li>
--   <li><a>ckprsOperation</a> - An array of key-value pairs containing
--   information about the results of your create key pair request.</li>
--   <li><a>ckprsPublicKeyBase64</a> - A base64-encoded public key of the
--   <tt>ssh-rsa</tt> type.</li>
--   <li><a>ckprsPrivateKeyBase64</a> - A base64-encoded RSA private
--   key.</li>
--   <li><a>ckprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createKeyPairResponse :: Int -> CreateKeyPairResponse

-- | <i>See:</i> <a>createKeyPairResponse</a> smart constructor.
data CreateKeyPairResponse

-- | An array of key-value pairs containing information about the new key
--   pair you just created.
ckprsKeyPair :: Lens' CreateKeyPairResponse (Maybe KeyPair)

-- | An array of key-value pairs containing information about the results
--   of your create key pair request.
ckprsOperation :: Lens' CreateKeyPairResponse (Maybe Operation)

-- | A base64-encoded public key of the <tt>ssh-rsa</tt> type.
ckprsPublicKeyBase64 :: Lens' CreateKeyPairResponse (Maybe Text)

-- | A base64-encoded RSA private key.
ckprsPrivateKeyBase64 :: Lens' CreateKeyPairResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ckprsResponseStatus :: Lens' CreateKeyPairResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateKeyPair.CreateKeyPairResponse
instance Data.Data.Data Network.AWS.Lightsail.CreateKeyPair.CreateKeyPairResponse
instance GHC.Show.Show Network.AWS.Lightsail.CreateKeyPair.CreateKeyPairResponse
instance GHC.Read.Read Network.AWS.Lightsail.CreateKeyPair.CreateKeyPairResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateKeyPair.CreateKeyPairResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateKeyPair.CreateKeyPair
instance Data.Data.Data Network.AWS.Lightsail.CreateKeyPair.CreateKeyPair
instance GHC.Show.Show Network.AWS.Lightsail.CreateKeyPair.CreateKeyPair
instance GHC.Read.Read Network.AWS.Lightsail.CreateKeyPair.CreateKeyPair
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateKeyPair.CreateKeyPair
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.CreateKeyPair.CreateKeyPair
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateKeyPair.CreateKeyPairResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.CreateKeyPair.CreateKeyPair
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateKeyPair.CreateKeyPair
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.CreateKeyPair.CreateKeyPair
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.CreateKeyPair.CreateKeyPair
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.CreateKeyPair.CreateKeyPair
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.CreateKeyPair.CreateKeyPair


-- | Uses a specific snapshot as a blueprint for creating one or more new
--   instances that are based on that identical configuration.
module Network.AWS.Lightsail.CreateInstancesFromSnapshot

-- | Creates a value of <a>CreateInstancesFromSnapshot</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cifsUserData</a> - You can create a launch script that
--   configures a server with additional user data. For example,
--   <tt>apt-get -y update</tt> .</li>
--   <li><a>cifsKeyPairName</a> - The name for your key pair.</li>
--   <li><a>cifsAttachedDiskMapping</a> - An object containing information
--   about one or more disk mappings.</li>
--   <li><a>cifsInstanceNames</a> - The names for your new instances.</li>
--   <li><a>cifsAvailabilityZone</a> - The Availability Zone where you want
--   to create your instances. Use the following formatting:
--   <tt>us-east-2a</tt> (case sensitive). You can get a list of
--   availability zones by using the <a>get regions</a> operation. Be sure
--   to add the <tt>include availability zones</tt> parameter to your
--   request.</li>
--   <li><a>cifsInstanceSnapshotName</a> - The name of the instance
--   snapshot on which you are basing your new instances. Use the get
--   instance snapshots operation to return information about your existing
--   snapshots.</li>
--   <li><a>cifsBundleId</a> - The bundle of specification information for
--   your virtual private server (or <i>instance</i> ), including the
--   pricing plan (e.g., <tt>micro_1_0</tt> ).</li>
--   </ul>
createInstancesFromSnapshot :: Text -> Text -> Text -> CreateInstancesFromSnapshot

-- | <i>See:</i> <a>createInstancesFromSnapshot</a> smart constructor.
data CreateInstancesFromSnapshot

-- | You can create a launch script that configures a server with
--   additional user data. For example, <tt>apt-get -y update</tt> .
cifsUserData :: Lens' CreateInstancesFromSnapshot (Maybe Text)

-- | The name for your key pair.
cifsKeyPairName :: Lens' CreateInstancesFromSnapshot (Maybe Text)

-- | An object containing information about one or more disk mappings.
cifsAttachedDiskMapping :: Lens' CreateInstancesFromSnapshot (HashMap Text [DiskMap])

-- | The names for your new instances.
cifsInstanceNames :: Lens' CreateInstancesFromSnapshot [Text]

-- | The Availability Zone where you want to create your instances. Use the
--   following formatting: <tt>us-east-2a</tt> (case sensitive). You can
--   get a list of availability zones by using the <a>get regions</a>
--   operation. Be sure to add the <tt>include availability zones</tt>
--   parameter to your request.
cifsAvailabilityZone :: Lens' CreateInstancesFromSnapshot Text

-- | The name of the instance snapshot on which you are basing your new
--   instances. Use the get instance snapshots operation to return
--   information about your existing snapshots.
cifsInstanceSnapshotName :: Lens' CreateInstancesFromSnapshot Text

-- | The bundle of specification information for your virtual private
--   server (or <i>instance</i> ), including the pricing plan (e.g.,
--   <tt>micro_1_0</tt> ).
cifsBundleId :: Lens' CreateInstancesFromSnapshot Text

-- | Creates a value of <a>CreateInstancesFromSnapshotResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cifsrsOperations</a> - An array of key-value pairs containing
--   information about the results of your create instances from snapshot
--   request.</li>
--   <li><a>cifsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createInstancesFromSnapshotResponse :: Int -> CreateInstancesFromSnapshotResponse

-- | <i>See:</i> <a>createInstancesFromSnapshotResponse</a> smart
--   constructor.
data CreateInstancesFromSnapshotResponse

-- | An array of key-value pairs containing information about the results
--   of your create instances from snapshot request.
cifsrsOperations :: Lens' CreateInstancesFromSnapshotResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cifsrsResponseStatus :: Lens' CreateInstancesFromSnapshotResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshotResponse
instance Data.Data.Data Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshotResponse
instance GHC.Show.Show Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshotResponse
instance GHC.Read.Read Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshotResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshotResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshot
instance Data.Data.Data Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshot
instance GHC.Show.Show Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshot
instance GHC.Read.Read Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshot
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshot
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshotResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshot
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshot
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshot
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshot
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshot


-- | Creates one or more Amazon Lightsail virtual private servers, or
--   <i>instances</i> .
module Network.AWS.Lightsail.CreateInstances

-- | Creates a value of <a>CreateInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ciCustomImageName</a> - (Deprecated) The name for your custom
--   image.</li>
--   <li><a>ciUserData</a> - A launch script you can create that configures
--   a server with additional user data. For example, you might want to run
--   <tt>apt-get -y update</tt> .</li>
--   <li><a>ciKeyPairName</a> - The name of your key pair.</li>
--   <li><a>ciInstanceNames</a> - The names to use for your new Lightsail
--   instances. Separate multiple values using quotation marks and commas,
--   for example:
--   <tt>[<a>MyFirstInstance</a>,<a>MySecondInstance</a>]</tt></li>
--   <li><a>ciAvailabilityZone</a> - The Availability Zone in which to
--   create your instance. Use the following format: <tt>us-east-2a</tt>
--   (case sensitive). You can get a list of availability zones by using
--   the <a>get regions</a> operation. Be sure to add the <tt>include
--   availability zones</tt> parameter to your request.</li>
--   <li><a>ciBlueprintId</a> - The ID for a virtual private server image
--   (e.g., <tt>app_wordpress_4_4</tt> or <tt>app_lamp_7_0</tt> ). Use the
--   get blueprints operation to return a list of available images (or
--   <i>blueprints</i> ).</li>
--   <li><a>ciBundleId</a> - The bundle of specification information for
--   your virtual private server (or <i>instance</i> ), including the
--   pricing plan (e.g., <tt>micro_1_0</tt> ).</li>
--   </ul>
createInstances :: Text -> Text -> Text -> CreateInstances

-- | <i>See:</i> <a>createInstances</a> smart constructor.
data CreateInstances

-- | (Deprecated) The name for your custom image.
ciCustomImageName :: Lens' CreateInstances (Maybe Text)

-- | A launch script you can create that configures a server with
--   additional user data. For example, you might want to run <tt>apt-get
--   -y update</tt> .
ciUserData :: Lens' CreateInstances (Maybe Text)

-- | The name of your key pair.
ciKeyPairName :: Lens' CreateInstances (Maybe Text)

-- | The names to use for your new Lightsail instances. Separate multiple
--   values using quotation marks and commas, for example:
--   <tt>[<a>MyFirstInstance</a>,<a>MySecondInstance</a>]</tt>
ciInstanceNames :: Lens' CreateInstances [Text]

-- | The Availability Zone in which to create your instance. Use the
--   following format: <tt>us-east-2a</tt> (case sensitive). You can get a
--   list of availability zones by using the <a>get regions</a> operation.
--   Be sure to add the <tt>include availability zones</tt> parameter to
--   your request.
ciAvailabilityZone :: Lens' CreateInstances Text

-- | The ID for a virtual private server image (e.g.,
--   <tt>app_wordpress_4_4</tt> or <tt>app_lamp_7_0</tt> ). Use the get
--   blueprints operation to return a list of available images (or
--   <i>blueprints</i> ).
ciBlueprintId :: Lens' CreateInstances Text

-- | The bundle of specification information for your virtual private
--   server (or <i>instance</i> ), including the pricing plan (e.g.,
--   <tt>micro_1_0</tt> ).
ciBundleId :: Lens' CreateInstances Text

-- | Creates a value of <a>CreateInstancesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cirsOperations</a> - An array of key-value pairs containing
--   information about the results of your create instances request.</li>
--   <li><a>cirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createInstancesResponse :: Int -> CreateInstancesResponse

-- | <i>See:</i> <a>createInstancesResponse</a> smart constructor.
data CreateInstancesResponse

-- | An array of key-value pairs containing information about the results
--   of your create instances request.
cirsOperations :: Lens' CreateInstancesResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cirsResponseStatus :: Lens' CreateInstancesResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateInstances.CreateInstancesResponse
instance Data.Data.Data Network.AWS.Lightsail.CreateInstances.CreateInstancesResponse
instance GHC.Show.Show Network.AWS.Lightsail.CreateInstances.CreateInstancesResponse
instance GHC.Read.Read Network.AWS.Lightsail.CreateInstances.CreateInstancesResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateInstances.CreateInstancesResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateInstances.CreateInstances
instance Data.Data.Data Network.AWS.Lightsail.CreateInstances.CreateInstances
instance GHC.Show.Show Network.AWS.Lightsail.CreateInstances.CreateInstances
instance GHC.Read.Read Network.AWS.Lightsail.CreateInstances.CreateInstances
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateInstances.CreateInstances
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.CreateInstances.CreateInstances
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateInstances.CreateInstancesResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.CreateInstances.CreateInstances
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateInstances.CreateInstances
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.CreateInstances.CreateInstances
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.CreateInstances.CreateInstances
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.CreateInstances.CreateInstances
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.CreateInstances.CreateInstances


-- | Creates a snapshot of a specific virtual private server, or
--   <i>instance</i> . You can use a snapshot to create a new instance that
--   is based on that snapshot.
module Network.AWS.Lightsail.CreateInstanceSnapshot

-- | Creates a value of <a>CreateInstanceSnapshot</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cisInstanceSnapshotName</a> - The name for your new
--   snapshot.</li>
--   <li><a>cisInstanceName</a> - The Lightsail instance on which to base
--   your snapshot.</li>
--   </ul>
createInstanceSnapshot :: Text -> Text -> CreateInstanceSnapshot

-- | <i>See:</i> <a>createInstanceSnapshot</a> smart constructor.
data CreateInstanceSnapshot

-- | The name for your new snapshot.
cisInstanceSnapshotName :: Lens' CreateInstanceSnapshot Text

-- | The Lightsail instance on which to base your snapshot.
cisInstanceName :: Lens' CreateInstanceSnapshot Text

-- | Creates a value of <a>CreateInstanceSnapshotResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cisrsOperations</a> - An array of key-value pairs containing
--   information about the results of your create instances snapshot
--   request.</li>
--   <li><a>cisrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createInstanceSnapshotResponse :: Int -> CreateInstanceSnapshotResponse

-- | <i>See:</i> <a>createInstanceSnapshotResponse</a> smart constructor.
data CreateInstanceSnapshotResponse

-- | An array of key-value pairs containing information about the results
--   of your create instances snapshot request.
cisrsOperations :: Lens' CreateInstanceSnapshotResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cisrsResponseStatus :: Lens' CreateInstanceSnapshotResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshotResponse
instance Data.Data.Data Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshotResponse
instance GHC.Show.Show Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshotResponse
instance GHC.Read.Read Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshotResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshotResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshot
instance Data.Data.Data Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshot
instance GHC.Show.Show Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshot
instance GHC.Read.Read Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshot
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshot
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshotResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshot
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshot
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshot
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshot
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshot


-- | Creates one of the following entry records associated with the domain:
--   A record, CNAME record, TXT record, or MX record.
module Network.AWS.Lightsail.CreateDomainEntry

-- | Creates a value of <a>CreateDomainEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdeDomainName</a> - The domain name (e.g., <tt>example.com</tt>
--   ) for which you want to create the domain entry.</li>
--   <li><a>cdeDomainEntry</a> - An array of key-value pairs containing
--   information about the domain entry request.</li>
--   </ul>
createDomainEntry :: Text -> DomainEntry -> CreateDomainEntry

-- | <i>See:</i> <a>createDomainEntry</a> smart constructor.
data CreateDomainEntry

-- | The domain name (e.g., <tt>example.com</tt> ) for which you want to
--   create the domain entry.
cdeDomainName :: Lens' CreateDomainEntry Text

-- | An array of key-value pairs containing information about the domain
--   entry request.
cdeDomainEntry :: Lens' CreateDomainEntry DomainEntry

-- | Creates a value of <a>CreateDomainEntryResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdersOperation</a> - An array of key-value pairs containing
--   information about the operation.</li>
--   <li><a>cdersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createDomainEntryResponse :: Int -> CreateDomainEntryResponse

-- | <i>See:</i> <a>createDomainEntryResponse</a> smart constructor.
data CreateDomainEntryResponse

-- | An array of key-value pairs containing information about the
--   operation.
cdersOperation :: Lens' CreateDomainEntryResponse (Maybe Operation)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cdersResponseStatus :: Lens' CreateDomainEntryResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntryResponse
instance Data.Data.Data Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntryResponse
instance GHC.Show.Show Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntryResponse
instance GHC.Read.Read Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntryResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntryResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntry
instance Data.Data.Data Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntry
instance GHC.Show.Show Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntry
instance GHC.Read.Read Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntry
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntry
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntry
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntryResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntry
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntry
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntry
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntry
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntry
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntry


-- | Creates a domain resource for the specified domain (e.g.,
--   example.com).
module Network.AWS.Lightsail.CreateDomain

-- | Creates a value of <a>CreateDomain</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdDomainName</a> - The domain name to manage (e.g.,
--   <tt>example.com</tt> ).</li>
--   </ul>
createDomain :: Text -> CreateDomain

-- | <i>See:</i> <a>createDomain</a> smart constructor.
data CreateDomain

-- | The domain name to manage (e.g., <tt>example.com</tt> ).
cdDomainName :: Lens' CreateDomain Text

-- | Creates a value of <a>CreateDomainResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdrsOperation</a> - An array of key-value pairs containing
--   information about the domain resource you created.</li>
--   <li><a>cdrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createDomainResponse :: Int -> CreateDomainResponse

-- | <i>See:</i> <a>createDomainResponse</a> smart constructor.
data CreateDomainResponse

-- | An array of key-value pairs containing information about the domain
--   resource you created.
cdrsOperation :: Lens' CreateDomainResponse (Maybe Operation)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cdrsResponseStatus :: Lens' CreateDomainResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateDomain.CreateDomainResponse
instance Data.Data.Data Network.AWS.Lightsail.CreateDomain.CreateDomainResponse
instance GHC.Show.Show Network.AWS.Lightsail.CreateDomain.CreateDomainResponse
instance GHC.Read.Read Network.AWS.Lightsail.CreateDomain.CreateDomainResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateDomain.CreateDomainResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateDomain.CreateDomain
instance Data.Data.Data Network.AWS.Lightsail.CreateDomain.CreateDomain
instance GHC.Show.Show Network.AWS.Lightsail.CreateDomain.CreateDomain
instance GHC.Read.Read Network.AWS.Lightsail.CreateDomain.CreateDomain
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateDomain.CreateDomain
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.CreateDomain.CreateDomain
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateDomain.CreateDomainResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.CreateDomain.CreateDomain
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateDomain.CreateDomain
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.CreateDomain.CreateDomain
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.CreateDomain.CreateDomain
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.CreateDomain.CreateDomain
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.CreateDomain.CreateDomain


-- | Creates a snapshot of a block storage disk. You can use snapshots for
--   backups, to make copies of disks, and to save data before shutting
--   down a Lightsail instance.
--   
--   You can take a snapshot of an attached disk that is in use; however,
--   snapshots only capture data that has been written to your disk at the
--   time the snapshot command is issued. This may exclude any data that
--   has been cached by any applications or the operating system. If you
--   can pause any file systems on the disk long enough to take a snapshot,
--   your snapshot should be complete. Nevertheless, if you cannot pause
--   all file writes to the disk, you should unmount the disk from within
--   the Lightsail instance, issue the create disk snapshot command, and
--   then remount the disk to ensure a consistent and complete snapshot.
--   You may remount and use your disk while the snapshot status is
--   pending.
module Network.AWS.Lightsail.CreateDiskSnapshot

-- | Creates a value of <a>CreateDiskSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdsDiskName</a> - The unique name of the source disk (e.g.,
--   <tt>my-source-disk</tt> ).</li>
--   <li><a>cdsDiskSnapshotName</a> - The name of the destination disk
--   snapshot (e.g., <tt>my-disk-snapshot</tt> ) based on the source
--   disk.</li>
--   </ul>
createDiskSnapshot :: Text -> Text -> CreateDiskSnapshot

-- | <i>See:</i> <a>createDiskSnapshot</a> smart constructor.
data CreateDiskSnapshot

-- | The unique name of the source disk (e.g., <tt>my-source-disk</tt> ).
cdsDiskName :: Lens' CreateDiskSnapshot Text

-- | The name of the destination disk snapshot (e.g.,
--   <tt>my-disk-snapshot</tt> ) based on the source disk.
cdsDiskSnapshotName :: Lens' CreateDiskSnapshot Text

-- | Creates a value of <a>CreateDiskSnapshotResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdsrsOperations</a> - An object describing the API
--   operations.</li>
--   <li><a>cdsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createDiskSnapshotResponse :: Int -> CreateDiskSnapshotResponse

-- | <i>See:</i> <a>createDiskSnapshotResponse</a> smart constructor.
data CreateDiskSnapshotResponse

-- | An object describing the API operations.
cdsrsOperations :: Lens' CreateDiskSnapshotResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cdsrsResponseStatus :: Lens' CreateDiskSnapshotResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshotResponse
instance Data.Data.Data Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshotResponse
instance GHC.Show.Show Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshotResponse
instance GHC.Read.Read Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshotResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshotResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshot
instance Data.Data.Data Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshot
instance GHC.Show.Show Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshot
instance GHC.Read.Read Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshot
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshot
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshotResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshot
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshot
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshot
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshot
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.CreateDiskSnapshot.CreateDiskSnapshot


-- | Creates a block storage disk from a disk snapshot that can be attached
--   to a Lightsail instance in the same Availability Zone (e.g.,
--   <tt>us-east-2a</tt> ). The disk is created in the regional endpoint
--   that you send the HTTP request to. For more information, see
--   <a>Regions and Availability Zones in Lightsail</a> .
module Network.AWS.Lightsail.CreateDiskFromSnapshot

-- | Creates a value of <a>CreateDiskFromSnapshot</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdfsDiskName</a> - The unique Lightsail disk name (e.g.,
--   <tt>my-disk</tt> ).</li>
--   <li><a>cdfsDiskSnapshotName</a> - The name of the disk snapshot (e.g.,
--   <tt>my-snapshot</tt> ) from which to create the new storage disk.</li>
--   <li><a>cdfsAvailabilityZone</a> - The Availability Zone where you want
--   to create the disk (e.g., <tt>us-east-2a</tt> ). Choose the same
--   Availability Zone as the Lightsail instance where you want to create
--   the disk. Use the GetRegions operation to list the Availability Zones
--   where Lightsail is currently available.</li>
--   <li><a>cdfsSizeInGb</a> - The size of the disk in GB (e.g.,
--   <tt>32</tt> ).</li>
--   </ul>
createDiskFromSnapshot :: Text -> Text -> Text -> Int -> CreateDiskFromSnapshot

-- | <i>See:</i> <a>createDiskFromSnapshot</a> smart constructor.
data CreateDiskFromSnapshot

-- | The unique Lightsail disk name (e.g., <tt>my-disk</tt> ).
cdfsDiskName :: Lens' CreateDiskFromSnapshot Text

-- | The name of the disk snapshot (e.g., <tt>my-snapshot</tt> ) from which
--   to create the new storage disk.
cdfsDiskSnapshotName :: Lens' CreateDiskFromSnapshot Text

-- | The Availability Zone where you want to create the disk (e.g.,
--   <tt>us-east-2a</tt> ). Choose the same Availability Zone as the
--   Lightsail instance where you want to create the disk. Use the
--   GetRegions operation to list the Availability Zones where Lightsail is
--   currently available.
cdfsAvailabilityZone :: Lens' CreateDiskFromSnapshot Text

-- | The size of the disk in GB (e.g., <tt>32</tt> ).
cdfsSizeInGb :: Lens' CreateDiskFromSnapshot Int

-- | Creates a value of <a>CreateDiskFromSnapshotResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdfsrsOperations</a> - An object describing the API
--   operations.</li>
--   <li><a>cdfsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createDiskFromSnapshotResponse :: Int -> CreateDiskFromSnapshotResponse

-- | <i>See:</i> <a>createDiskFromSnapshotResponse</a> smart constructor.
data CreateDiskFromSnapshotResponse

-- | An object describing the API operations.
cdfsrsOperations :: Lens' CreateDiskFromSnapshotResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cdfsrsResponseStatus :: Lens' CreateDiskFromSnapshotResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshotResponse
instance Data.Data.Data Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshotResponse
instance GHC.Show.Show Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshotResponse
instance GHC.Read.Read Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshotResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshotResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshot
instance Data.Data.Data Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshot
instance GHC.Show.Show Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshot
instance GHC.Read.Read Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshot
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshot
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshotResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshot
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshot
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshot
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshot
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshot
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.CreateDiskFromSnapshot.CreateDiskFromSnapshot


-- | Creates a block storage disk that can be attached to a Lightsail
--   instance in the same Availability Zone (e.g., <tt>us-east-2a</tt> ).
--   The disk is created in the regional endpoint that you send the HTTP
--   request to. For more information, see <a>Regions and Availability
--   Zones in Lightsail</a> .
module Network.AWS.Lightsail.CreateDisk

-- | Creates a value of <a>CreateDisk</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdDiskName</a> - The unique Lightsail disk name (e.g.,
--   <tt>my-disk</tt> ).</li>
--   <li><a>cdAvailabilityZone</a> - The Availability Zone where you want
--   to create the disk (e.g., <tt>us-east-2a</tt> ). Choose the same
--   Availability Zone as the Lightsail instance where you want to create
--   the disk. Use the GetRegions operation to list the Availability Zones
--   where Lightsail is currently available.</li>
--   <li><a>cdSizeInGb</a> - The size of the disk in GB (e.g., <tt>32</tt>
--   ).</li>
--   </ul>
createDisk :: Text -> Text -> Int -> CreateDisk

-- | <i>See:</i> <a>createDisk</a> smart constructor.
data CreateDisk

-- | The unique Lightsail disk name (e.g., <tt>my-disk</tt> ).
cdDiskName :: Lens' CreateDisk Text

-- | The Availability Zone where you want to create the disk (e.g.,
--   <tt>us-east-2a</tt> ). Choose the same Availability Zone as the
--   Lightsail instance where you want to create the disk. Use the
--   GetRegions operation to list the Availability Zones where Lightsail is
--   currently available.
cdAvailabilityZone :: Lens' CreateDisk Text

-- | The size of the disk in GB (e.g., <tt>32</tt> ).
cdSizeInGb :: Lens' CreateDisk Int

-- | Creates a value of <a>CreateDiskResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crsOperations</a> - An object describing the API
--   operations.</li>
--   <li><a>crsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createDiskResponse :: Int -> CreateDiskResponse

-- | <i>See:</i> <a>createDiskResponse</a> smart constructor.
data CreateDiskResponse

-- | An object describing the API operations.
crsOperations :: Lens' CreateDiskResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
crsResponseStatus :: Lens' CreateDiskResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateDisk.CreateDiskResponse
instance Data.Data.Data Network.AWS.Lightsail.CreateDisk.CreateDiskResponse
instance GHC.Show.Show Network.AWS.Lightsail.CreateDisk.CreateDiskResponse
instance GHC.Read.Read Network.AWS.Lightsail.CreateDisk.CreateDiskResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateDisk.CreateDiskResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.CreateDisk.CreateDisk
instance Data.Data.Data Network.AWS.Lightsail.CreateDisk.CreateDisk
instance GHC.Show.Show Network.AWS.Lightsail.CreateDisk.CreateDisk
instance GHC.Read.Read Network.AWS.Lightsail.CreateDisk.CreateDisk
instance GHC.Classes.Eq Network.AWS.Lightsail.CreateDisk.CreateDisk
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.CreateDisk.CreateDisk
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateDisk.CreateDiskResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.CreateDisk.CreateDisk
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateDisk.CreateDisk
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.CreateDisk.CreateDisk
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.CreateDisk.CreateDisk
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.CreateDisk.CreateDisk
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.CreateDisk.CreateDisk


-- | Closes the public ports on a specific Amazon Lightsail instance.
module Network.AWS.Lightsail.CloseInstancePublicPorts

-- | Creates a value of <a>CloseInstancePublicPorts</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cippPortInfo</a> - Information about the public port you are
--   trying to close.</li>
--   <li><a>cippInstanceName</a> - The name of the instance on which you're
--   attempting to close the public ports.</li>
--   </ul>
closeInstancePublicPorts :: PortInfo -> Text -> CloseInstancePublicPorts

-- | <i>See:</i> <a>closeInstancePublicPorts</a> smart constructor.
data CloseInstancePublicPorts

-- | Information about the public port you are trying to close.
cippPortInfo :: Lens' CloseInstancePublicPorts PortInfo

-- | The name of the instance on which you're attempting to close the
--   public ports.
cippInstanceName :: Lens' CloseInstancePublicPorts Text

-- | Creates a value of <a>CloseInstancePublicPortsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cipprsOperation</a> - An array of key-value pairs that contains
--   information about the operation.</li>
--   <li><a>cipprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
closeInstancePublicPortsResponse :: Int -> CloseInstancePublicPortsResponse

-- | <i>See:</i> <a>closeInstancePublicPortsResponse</a> smart constructor.
data CloseInstancePublicPortsResponse

-- | An array of key-value pairs that contains information about the
--   operation.
cipprsOperation :: Lens' CloseInstancePublicPortsResponse (Maybe Operation)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cipprsResponseStatus :: Lens' CloseInstancePublicPortsResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPortsResponse
instance Data.Data.Data Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPortsResponse
instance GHC.Show.Show Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPortsResponse
instance GHC.Read.Read Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPortsResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPortsResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPorts
instance Data.Data.Data Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPorts
instance GHC.Show.Show Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPorts
instance GHC.Read.Read Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPorts
instance GHC.Classes.Eq Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPorts
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPorts
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPortsResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPorts
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPorts
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPorts
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPorts
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPorts
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPorts


-- | Attaches a static IP address to a specific Amazon Lightsail instance.
module Network.AWS.Lightsail.AttachStaticIP

-- | Creates a value of <a>AttachStaticIP</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asipStaticIPName</a> - The name of the static IP.</li>
--   <li><a>asipInstanceName</a> - The instance name to which you want to
--   attach the static IP address.</li>
--   </ul>
attachStaticIP :: Text -> Text -> AttachStaticIP

-- | <i>See:</i> <a>attachStaticIP</a> smart constructor.
data AttachStaticIP

-- | The name of the static IP.
asipStaticIPName :: Lens' AttachStaticIP Text

-- | The instance name to which you want to attach the static IP address.
asipInstanceName :: Lens' AttachStaticIP Text

-- | Creates a value of <a>AttachStaticIPResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asiprsOperations</a> - An array of key-value pairs containing
--   information about your API operations.</li>
--   <li><a>asiprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
attachStaticIPResponse :: Int -> AttachStaticIPResponse

-- | <i>See:</i> <a>attachStaticIPResponse</a> smart constructor.
data AttachStaticIPResponse

-- | An array of key-value pairs containing information about your API
--   operations.
asiprsOperations :: Lens' AttachStaticIPResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
asiprsResponseStatus :: Lens' AttachStaticIPResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.AttachStaticIP.AttachStaticIPResponse
instance Data.Data.Data Network.AWS.Lightsail.AttachStaticIP.AttachStaticIPResponse
instance GHC.Show.Show Network.AWS.Lightsail.AttachStaticIP.AttachStaticIPResponse
instance GHC.Read.Read Network.AWS.Lightsail.AttachStaticIP.AttachStaticIPResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.AttachStaticIP.AttachStaticIPResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.AttachStaticIP.AttachStaticIP
instance Data.Data.Data Network.AWS.Lightsail.AttachStaticIP.AttachStaticIP
instance GHC.Show.Show Network.AWS.Lightsail.AttachStaticIP.AttachStaticIP
instance GHC.Read.Read Network.AWS.Lightsail.AttachStaticIP.AttachStaticIP
instance GHC.Classes.Eq Network.AWS.Lightsail.AttachStaticIP.AttachStaticIP
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.AttachStaticIP.AttachStaticIP
instance Control.DeepSeq.NFData Network.AWS.Lightsail.AttachStaticIP.AttachStaticIPResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.AttachStaticIP.AttachStaticIP
instance Control.DeepSeq.NFData Network.AWS.Lightsail.AttachStaticIP.AttachStaticIP
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.AttachStaticIP.AttachStaticIP
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.AttachStaticIP.AttachStaticIP
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.AttachStaticIP.AttachStaticIP
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.AttachStaticIP.AttachStaticIP


-- | Attaches a Transport Layer Security (TLS) certificate to your load
--   balancer. TLS is just an updated, more secure version of Secure Socket
--   Layer (SSL).
--   
--   Once you create and validate your certificate, you can attach it to
--   your load balancer. You can also use this API to rotate the
--   certificates on your account. Use the
--   <tt>AttachLoadBalancerTlsCertificate</tt> operation with the
--   non-attached certificate, and it will replace the existing one and
--   become the attached certificate.
module Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate

-- | Creates a value of <a>AttachLoadBalancerTLSCertificate</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>albtcLoadBalancerName</a> - The name of the load balancer to
--   which you want to associate the SSL/TLS certificate.</li>
--   <li><a>albtcCertificateName</a> - The name of your SSL/TLS
--   certificate.</li>
--   </ul>
attachLoadBalancerTLSCertificate :: Text -> Text -> AttachLoadBalancerTLSCertificate

-- | <i>See:</i> <a>attachLoadBalancerTLSCertificate</a> smart constructor.
data AttachLoadBalancerTLSCertificate

-- | The name of the load balancer to which you want to associate the
--   SSL/TLS certificate.
albtcLoadBalancerName :: Lens' AttachLoadBalancerTLSCertificate Text

-- | The name of your SSL/TLS certificate.
albtcCertificateName :: Lens' AttachLoadBalancerTLSCertificate Text

-- | Creates a value of <a>AttachLoadBalancerTLSCertificateResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>albtcrsOperations</a> - An object representing the API
--   operations. These SSL/TLS certificates are only usable by Lightsail
--   load balancers. You can't get the certificate and use it for another
--   purpose.</li>
--   <li><a>albtcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
attachLoadBalancerTLSCertificateResponse :: Int -> AttachLoadBalancerTLSCertificateResponse

-- | <i>See:</i> <a>attachLoadBalancerTLSCertificateResponse</a> smart
--   constructor.
data AttachLoadBalancerTLSCertificateResponse

-- | An object representing the API operations. These SSL/TLS certificates
--   are only usable by Lightsail load balancers. You can't get the
--   certificate and use it for another purpose.
albtcrsOperations :: Lens' AttachLoadBalancerTLSCertificateResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
albtcrsResponseStatus :: Lens' AttachLoadBalancerTLSCertificateResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificateResponse
instance Data.Data.Data Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificateResponse
instance GHC.Show.Show Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificateResponse
instance GHC.Read.Read Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificateResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificateResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificate
instance Data.Data.Data Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificate
instance GHC.Show.Show Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificate
instance GHC.Read.Read Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificate
instance GHC.Classes.Eq Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificate
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificate
instance Control.DeepSeq.NFData Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificateResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificate
instance Control.DeepSeq.NFData Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificate
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificate
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificate
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificate
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.AttachLoadBalancerTLSCertificate.AttachLoadBalancerTLSCertificate


-- | Attaches one or more Lightsail instances to a load balancer.
--   
--   After some time, the instances are attached to the load balancer and
--   the health check status is available.
module Network.AWS.Lightsail.AttachInstancesToLoadBalancer

-- | Creates a value of <a>AttachInstancesToLoadBalancer</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aitlbLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>aitlbInstanceNames</a> - An array of strings representing the
--   instance name(s) you want to attach to your load balancer. An instance
--   must be <tt>running</tt> before you can attach it to your load
--   balancer. There are no additional limits on the number of instances
--   you can attach to your load balancer, aside from the limit of
--   Lightsail instances you can create in your account (20).</li>
--   </ul>
attachInstancesToLoadBalancer :: Text -> AttachInstancesToLoadBalancer

-- | <i>See:</i> <a>attachInstancesToLoadBalancer</a> smart constructor.
data AttachInstancesToLoadBalancer

-- | The name of the load balancer.
aitlbLoadBalancerName :: Lens' AttachInstancesToLoadBalancer Text

-- | An array of strings representing the instance name(s) you want to
--   attach to your load balancer. An instance must be <tt>running</tt>
--   before you can attach it to your load balancer. There are no
--   additional limits on the number of instances you can attach to your
--   load balancer, aside from the limit of Lightsail instances you can
--   create in your account (20).
aitlbInstanceNames :: Lens' AttachInstancesToLoadBalancer [Text]

-- | Creates a value of <a>AttachInstancesToLoadBalancerResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aitlbrsOperations</a> - An object representing the API
--   operations.</li>
--   <li><a>aitlbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
attachInstancesToLoadBalancerResponse :: Int -> AttachInstancesToLoadBalancerResponse

-- | <i>See:</i> <a>attachInstancesToLoadBalancerResponse</a> smart
--   constructor.
data AttachInstancesToLoadBalancerResponse

-- | An object representing the API operations.
aitlbrsOperations :: Lens' AttachInstancesToLoadBalancerResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
aitlbrsResponseStatus :: Lens' AttachInstancesToLoadBalancerResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancerResponse
instance Data.Data.Data Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancerResponse
instance GHC.Show.Show Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancerResponse
instance GHC.Read.Read Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancerResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancerResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancer
instance Data.Data.Data Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancer
instance GHC.Show.Show Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancer
instance GHC.Read.Read Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancer
instance GHC.Classes.Eq Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancer
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancerResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancer
instance Control.DeepSeq.NFData Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancer
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancer
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.AttachInstancesToLoadBalancer.AttachInstancesToLoadBalancer


-- | Attaches a block storage disk to a running or stopped Lightsail
--   instance and exposes it to the instance with the specified disk name.
module Network.AWS.Lightsail.AttachDisk

-- | Creates a value of <a>AttachDisk</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>adDiskName</a> - The unique Lightsail disk name (e.g.,
--   <tt>my-disk</tt> ).</li>
--   <li><a>adInstanceName</a> - The name of the Lightsail instance where
--   you want to utilize the storage disk.</li>
--   <li><a>adDiskPath</a> - The disk path to expose to the instance (e.g.,
--   <tt><i>dev</i>xvdf</tt> ).</li>
--   </ul>
attachDisk :: Text -> Text -> Text -> AttachDisk

-- | <i>See:</i> <a>attachDisk</a> smart constructor.
data AttachDisk

-- | The unique Lightsail disk name (e.g., <tt>my-disk</tt> ).
adDiskName :: Lens' AttachDisk Text

-- | The name of the Lightsail instance where you want to utilize the
--   storage disk.
adInstanceName :: Lens' AttachDisk Text

-- | The disk path to expose to the instance (e.g., <tt><i>dev</i>xvdf</tt>
--   ).
adDiskPath :: Lens' AttachDisk Text

-- | Creates a value of <a>AttachDiskResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>adrsOperations</a> - An object describing the API
--   operations.</li>
--   <li><a>adrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
attachDiskResponse :: Int -> AttachDiskResponse

-- | <i>See:</i> <a>attachDiskResponse</a> smart constructor.
data AttachDiskResponse

-- | An object describing the API operations.
adrsOperations :: Lens' AttachDiskResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
adrsResponseStatus :: Lens' AttachDiskResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.AttachDisk.AttachDiskResponse
instance Data.Data.Data Network.AWS.Lightsail.AttachDisk.AttachDiskResponse
instance GHC.Show.Show Network.AWS.Lightsail.AttachDisk.AttachDiskResponse
instance GHC.Read.Read Network.AWS.Lightsail.AttachDisk.AttachDiskResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.AttachDisk.AttachDiskResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.AttachDisk.AttachDisk
instance Data.Data.Data Network.AWS.Lightsail.AttachDisk.AttachDisk
instance GHC.Show.Show Network.AWS.Lightsail.AttachDisk.AttachDisk
instance GHC.Read.Read Network.AWS.Lightsail.AttachDisk.AttachDisk
instance GHC.Classes.Eq Network.AWS.Lightsail.AttachDisk.AttachDisk
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.AttachDisk.AttachDisk
instance Control.DeepSeq.NFData Network.AWS.Lightsail.AttachDisk.AttachDiskResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.AttachDisk.AttachDisk
instance Control.DeepSeq.NFData Network.AWS.Lightsail.AttachDisk.AttachDisk
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.AttachDisk.AttachDisk
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.AttachDisk.AttachDisk
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.AttachDisk.AttachDisk
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.AttachDisk.AttachDisk


-- | Allocates a static IP address.
module Network.AWS.Lightsail.AllocateStaticIP

-- | Creates a value of <a>AllocateStaticIP</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asiStaticIPName</a> - The name of the static IP address.</li>
--   </ul>
allocateStaticIP :: Text -> AllocateStaticIP

-- | <i>See:</i> <a>allocateStaticIP</a> smart constructor.
data AllocateStaticIP

-- | The name of the static IP address.
asiStaticIPName :: Lens' AllocateStaticIP Text

-- | Creates a value of <a>AllocateStaticIPResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asirsOperations</a> - An array of key-value pairs containing
--   information about the static IP address you allocated.</li>
--   <li><a>asirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
allocateStaticIPResponse :: Int -> AllocateStaticIPResponse

-- | <i>See:</i> <a>allocateStaticIPResponse</a> smart constructor.
data AllocateStaticIPResponse

-- | An array of key-value pairs containing information about the static IP
--   address you allocated.
asirsOperations :: Lens' AllocateStaticIPResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
asirsResponseStatus :: Lens' AllocateStaticIPResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIPResponse
instance Data.Data.Data Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIPResponse
instance GHC.Show.Show Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIPResponse
instance GHC.Read.Read Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIPResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIPResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIP
instance Data.Data.Data Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIP
instance GHC.Show.Show Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIP
instance GHC.Read.Read Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIP
instance GHC.Classes.Eq Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIP
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIP
instance Control.DeepSeq.NFData Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIPResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIP
instance Control.DeepSeq.NFData Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIP
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIP
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIP
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIP
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIP


-- | Attempts to unpeer the Lightsail VPC from the user's default VPC.
module Network.AWS.Lightsail.UnpeerVPC

-- | Creates a value of <a>UnpeerVPC</a> with the minimum fields required
--   to make a request.
unpeerVPC :: UnpeerVPC

-- | <i>See:</i> <a>unpeerVPC</a> smart constructor.
data UnpeerVPC

-- | Creates a value of <a>UnpeerVPCResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uvrsOperation</a> - An array of key-value pairs containing
--   information about the request operation.</li>
--   <li><a>uvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
unpeerVPCResponse :: Int -> UnpeerVPCResponse

-- | <i>See:</i> <a>unpeerVPCResponse</a> smart constructor.
data UnpeerVPCResponse

-- | An array of key-value pairs containing information about the request
--   operation.
uvrsOperation :: Lens' UnpeerVPCResponse (Maybe Operation)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
uvrsResponseStatus :: Lens' UnpeerVPCResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.UnpeerVPC.UnpeerVPCResponse
instance Data.Data.Data Network.AWS.Lightsail.UnpeerVPC.UnpeerVPCResponse
instance GHC.Show.Show Network.AWS.Lightsail.UnpeerVPC.UnpeerVPCResponse
instance GHC.Read.Read Network.AWS.Lightsail.UnpeerVPC.UnpeerVPCResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.UnpeerVPC.UnpeerVPCResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.UnpeerVPC.UnpeerVPC
instance Data.Data.Data Network.AWS.Lightsail.UnpeerVPC.UnpeerVPC
instance GHC.Show.Show Network.AWS.Lightsail.UnpeerVPC.UnpeerVPC
instance GHC.Read.Read Network.AWS.Lightsail.UnpeerVPC.UnpeerVPC
instance GHC.Classes.Eq Network.AWS.Lightsail.UnpeerVPC.UnpeerVPC
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.UnpeerVPC.UnpeerVPC
instance Control.DeepSeq.NFData Network.AWS.Lightsail.UnpeerVPC.UnpeerVPCResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.UnpeerVPC.UnpeerVPC
instance Control.DeepSeq.NFData Network.AWS.Lightsail.UnpeerVPC.UnpeerVPC
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.UnpeerVPC.UnpeerVPC
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.UnpeerVPC.UnpeerVPC
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.UnpeerVPC.UnpeerVPC
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.UnpeerVPC.UnpeerVPC


-- | Updates a domain recordset after it is created.
module Network.AWS.Lightsail.UpdateDomainEntry

-- | Creates a value of <a>UpdateDomainEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udeDomainName</a> - The name of the domain recordset to
--   update.</li>
--   <li><a>udeDomainEntry</a> - An array of key-value pairs containing
--   information about the domain entry.</li>
--   </ul>
updateDomainEntry :: Text -> DomainEntry -> UpdateDomainEntry

-- | <i>See:</i> <a>updateDomainEntry</a> smart constructor.
data UpdateDomainEntry

-- | The name of the domain recordset to update.
udeDomainName :: Lens' UpdateDomainEntry Text

-- | An array of key-value pairs containing information about the domain
--   entry.
udeDomainEntry :: Lens' UpdateDomainEntry DomainEntry

-- | Creates a value of <a>UpdateDomainEntryResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udersOperations</a> - An array of key-value pairs containing
--   information about the request operation.</li>
--   <li><a>udersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateDomainEntryResponse :: Int -> UpdateDomainEntryResponse

-- | <i>See:</i> <a>updateDomainEntryResponse</a> smart constructor.
data UpdateDomainEntryResponse

-- | An array of key-value pairs containing information about the request
--   operation.
udersOperations :: Lens' UpdateDomainEntryResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
udersResponseStatus :: Lens' UpdateDomainEntryResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntryResponse
instance Data.Data.Data Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntryResponse
instance GHC.Show.Show Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntryResponse
instance GHC.Read.Read Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntryResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntryResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntry
instance Data.Data.Data Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntry
instance GHC.Show.Show Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntry
instance GHC.Read.Read Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntry
instance GHC.Classes.Eq Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntry
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntry
instance Control.DeepSeq.NFData Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntryResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntry
instance Control.DeepSeq.NFData Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntry
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntry
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntry
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntry
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntry


-- | Updates the specified attribute for a load balancer. You can only
--   update one attribute at a time.
module Network.AWS.Lightsail.UpdateLoadBalancerAttribute

-- | Creates a value of <a>UpdateLoadBalancerAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ulbaLoadBalancerName</a> - The name of the load balancer that
--   you want to modify (e.g., <tt>my-load-balancer</tt> .</li>
--   <li><a>ulbaAttributeName</a> - The name of the attribute you want to
--   update. Valid values are below.</li>
--   <li><a>ulbaAttributeValue</a> - The value that you want to specify for
--   the attribute name.</li>
--   </ul>
updateLoadBalancerAttribute :: Text -> LoadBalancerAttributeName -> Text -> UpdateLoadBalancerAttribute

-- | <i>See:</i> <a>updateLoadBalancerAttribute</a> smart constructor.
data UpdateLoadBalancerAttribute

-- | The name of the load balancer that you want to modify (e.g.,
--   <tt>my-load-balancer</tt> .
ulbaLoadBalancerName :: Lens' UpdateLoadBalancerAttribute Text

-- | The name of the attribute you want to update. Valid values are below.
ulbaAttributeName :: Lens' UpdateLoadBalancerAttribute LoadBalancerAttributeName

-- | The value that you want to specify for the attribute name.
ulbaAttributeValue :: Lens' UpdateLoadBalancerAttribute Text

-- | Creates a value of <a>UpdateLoadBalancerAttributeResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ulbarsOperations</a> - An object describing the API
--   operations.</li>
--   <li><a>ulbarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateLoadBalancerAttributeResponse :: Int -> UpdateLoadBalancerAttributeResponse

-- | <i>See:</i> <a>updateLoadBalancerAttributeResponse</a> smart
--   constructor.
data UpdateLoadBalancerAttributeResponse

-- | An object describing the API operations.
ulbarsOperations :: Lens' UpdateLoadBalancerAttributeResponse [Operation]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ulbarsResponseStatus :: Lens' UpdateLoadBalancerAttributeResponse Int
instance GHC.Generics.Generic Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttributeResponse
instance Data.Data.Data Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttributeResponse
instance GHC.Show.Show Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttributeResponse
instance GHC.Read.Read Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttributeResponse
instance GHC.Classes.Eq Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttributeResponse
instance GHC.Generics.Generic Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttribute
instance Data.Data.Data Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttribute
instance GHC.Show.Show Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttribute
instance GHC.Read.Read Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttribute
instance GHC.Classes.Eq Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttribute
instance Network.AWS.Types.AWSRequest Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttribute
instance Control.DeepSeq.NFData Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttributeResponse
instance Data.Hashable.Class.Hashable Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttribute
instance Control.DeepSeq.NFData Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttribute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttribute
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttribute
instance Network.AWS.Data.Path.ToPath Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttribute
instance Network.AWS.Data.Query.ToQuery Network.AWS.Lightsail.UpdateLoadBalancerAttribute.UpdateLoadBalancerAttribute


module Network.AWS.Lightsail.Waiters


-- | Amazon Lightsail is the easiest way to get started with AWS for
--   developers who just need virtual private servers. Lightsail includes
--   everything you need to launch your project quickly - a virtual
--   machine, SSD-based storage, data transfer, DNS management, and a
--   static IP - for a low, predictable price. You manage those Lightsail
--   servers through the Lightsail console or by using the API or
--   command-line interface (CLI).
--   
--   For more information about Lightsail concepts and tasks, see the
--   <a>Lightsail Dev Guide</a> .
--   
--   To use the Lightsail API or the CLI, you will need to use AWS Identity
--   and Access Management (IAM) to generate access keys. For details about
--   how to set this up, see the <a>Lightsail Dev Guide</a> .
module Network.AWS.Lightsail

-- | API version <tt>2016-11-28</tt> of the Amazon Lightsail SDK
--   configuration.
lightsail :: Service

-- | Lightsail throws this exception when the user cannot be authenticated
--   or uses invalid credentials to access a resource.
_AccessDeniedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Lightsail throws this exception when an account is still in the setup
--   in progress state.
_AccountSetupInProgressException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Lightsail throws this exception when it cannot find a resource.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Lightsail throws this exception when an operation fails to execute.
_OperationFailureException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A general service exception.
_ServiceException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Lightsail throws this exception when the user has not been
--   authenticated.
_UnauthenticatedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Lightsail throws this exception when user input does not conform to
--   the validation rules of an input field.
_InvalidInputException :: AsError a => Getting (First ServiceError) a ServiceError
data AccessDirection
Inbound :: AccessDirection
Outbound :: AccessDirection
data BlueprintType
App :: BlueprintType
OS :: BlueprintType
data DiskSnapshotState
DSSCompleted :: DiskSnapshotState
DSSError' :: DiskSnapshotState
DSSPending :: DiskSnapshotState
DSSUnknown :: DiskSnapshotState
data DiskState
Available :: DiskState
Error' :: DiskState
InUse :: DiskState
Pending :: DiskState
Unknown :: DiskState
data InstanceAccessProtocol
Rdp :: InstanceAccessProtocol
SSH :: InstanceAccessProtocol
data InstanceHealthReason
Instance_DeregistrationInProgress :: InstanceHealthReason
Instance_FailedHealthChecks :: InstanceHealthReason
Instance_IPUnusable :: InstanceHealthReason
Instance_InvalidState :: InstanceHealthReason
Instance_NotInUse :: InstanceHealthReason
Instance_NotRegistered :: InstanceHealthReason
Instance_ResponseCodeMismatch :: InstanceHealthReason
Instance_Timeout :: InstanceHealthReason
Lb_InitialHealthChecking :: InstanceHealthReason
Lb_InternalError :: InstanceHealthReason
Lb_RegistrationInProgress :: InstanceHealthReason
data InstanceHealthState
Draining :: InstanceHealthState
Healthy :: InstanceHealthState
Initial :: InstanceHealthState
Unavailable :: InstanceHealthState
Unhealthy :: InstanceHealthState
Unused :: InstanceHealthState
data InstanceMetricName
CPUUtilization :: InstanceMetricName
NetworkIn :: InstanceMetricName
NetworkOut :: InstanceMetricName
StatusCheckFailed :: InstanceMetricName
StatusCheckFailedInstance :: InstanceMetricName
StatusCheckFailedSystem :: InstanceMetricName
data InstancePlatform
LinuxUnix :: InstancePlatform
Windows :: InstancePlatform
data InstanceSnapshotState
ISSAvailable :: InstanceSnapshotState
ISSError' :: InstanceSnapshotState
ISSPending :: InstanceSnapshotState
data LoadBalancerAttributeName
HealthCheckPath :: LoadBalancerAttributeName
SessionStickinessEnabled :: LoadBalancerAttributeName
SessionStickinessLbCookieDurationSeconds :: LoadBalancerAttributeName
data LoadBalancerMetricName
ClientTLSNegotiationErrorCount :: LoadBalancerMetricName
HTTPCodeInstance2XXCount :: LoadBalancerMetricName
HTTPCodeInstance3XXCount :: LoadBalancerMetricName
HTTPCodeInstance4XXCount :: LoadBalancerMetricName
HTTPCodeInstance5XXCount :: LoadBalancerMetricName
HTTPCodeLb4XXCount :: LoadBalancerMetricName
HTTPCodeLb5XXCount :: LoadBalancerMetricName
HealthyHostCount :: LoadBalancerMetricName
InstanceResponseTime :: LoadBalancerMetricName
RejectedConnectionCount :: LoadBalancerMetricName
RequestCount :: LoadBalancerMetricName
UnhealthyHostCount :: LoadBalancerMetricName
data LoadBalancerProtocol
HTTP :: LoadBalancerProtocol
HTTPHTTPS :: LoadBalancerProtocol
data LoadBalancerState
LBSActive :: LoadBalancerState
LBSActiveImpaired :: LoadBalancerState
LBSFailed :: LoadBalancerState
LBSProvisioning :: LoadBalancerState
LBSUnknown :: LoadBalancerState
data LoadBalancerTLSCertificateDomainStatus
LBTCDSFailed :: LoadBalancerTLSCertificateDomainStatus
LBTCDSPendingValidation :: LoadBalancerTLSCertificateDomainStatus
LBTCDSSuccess :: LoadBalancerTLSCertificateDomainStatus
data LoadBalancerTLSCertificateFailureReason
AdditionalVerificationRequired :: LoadBalancerTLSCertificateFailureReason
DomainNotAllowed :: LoadBalancerTLSCertificateFailureReason
InvalidPublicDomain :: LoadBalancerTLSCertificateFailureReason
NoAvailableContacts :: LoadBalancerTLSCertificateFailureReason
Other :: LoadBalancerTLSCertificateFailureReason
data LoadBalancerTLSCertificateRenewalStatus
LBTCRSFailed :: LoadBalancerTLSCertificateRenewalStatus
LBTCRSPendingAutoRenewal :: LoadBalancerTLSCertificateRenewalStatus
LBTCRSPendingValidation :: LoadBalancerTLSCertificateRenewalStatus
LBTCRSSuccess :: LoadBalancerTLSCertificateRenewalStatus
data LoadBalancerTLSCertificateRevocationReason
AACompromise :: LoadBalancerTLSCertificateRevocationReason
AffiliationChanged :: LoadBalancerTLSCertificateRevocationReason
CaCompromise :: LoadBalancerTLSCertificateRevocationReason
CertificateHold :: LoadBalancerTLSCertificateRevocationReason
CessationOfOperation :: LoadBalancerTLSCertificateRevocationReason
KeyCompromise :: LoadBalancerTLSCertificateRevocationReason
PrivilegeWithdrawn :: LoadBalancerTLSCertificateRevocationReason
RemoveFromCrl :: LoadBalancerTLSCertificateRevocationReason
Superceded :: LoadBalancerTLSCertificateRevocationReason
Unspecified :: LoadBalancerTLSCertificateRevocationReason
data LoadBalancerTLSCertificateStatus
LBTCSExpired :: LoadBalancerTLSCertificateStatus
LBTCSFailed :: LoadBalancerTLSCertificateStatus
LBTCSInactive :: LoadBalancerTLSCertificateStatus
LBTCSIssued :: LoadBalancerTLSCertificateStatus
LBTCSPendingValidation :: LoadBalancerTLSCertificateStatus
LBTCSRevoked :: LoadBalancerTLSCertificateStatus
LBTCSUnknown :: LoadBalancerTLSCertificateStatus
LBTCSValidationTimedOut :: LoadBalancerTLSCertificateStatus
data MetricStatistic
Average :: MetricStatistic
Maximum :: MetricStatistic
Minimum :: MetricStatistic
SampleCount :: MetricStatistic
Sum :: MetricStatistic
data MetricUnit
Bits :: MetricUnit
BitsSecond :: MetricUnit
Bytes :: MetricUnit
BytesSecond :: MetricUnit
Count :: MetricUnit
CountSecond :: MetricUnit
Gigabits :: MetricUnit
GigabitsSecond :: MetricUnit
Gigabytes :: MetricUnit
GigabytesSecond :: MetricUnit
Kilobits :: MetricUnit
KilobitsSecond :: MetricUnit
Kilobytes :: MetricUnit
KilobytesSecond :: MetricUnit
Megabits :: MetricUnit
MegabitsSecond :: MetricUnit
Megabytes :: MetricUnit
MegabytesSecond :: MetricUnit
Microseconds :: MetricUnit
Milliseconds :: MetricUnit
None :: MetricUnit
Percent :: MetricUnit
Seconds :: MetricUnit
Terabits :: MetricUnit
TerabitsSecond :: MetricUnit
Terabytes :: MetricUnit
TerabytesSecond :: MetricUnit
data NetworkProtocol
All :: NetworkProtocol
TCP :: NetworkProtocol
Udp :: NetworkProtocol
data OperationStatus
Completed :: OperationStatus
Failed :: OperationStatus
NotStarted :: OperationStatus
Started :: OperationStatus
Succeeded :: OperationStatus
data OperationType
AllocateStaticIP :: OperationType
AttachDisk :: OperationType
AttachInstancesToLoadBalancer :: OperationType
AttachLoadBalancerTLSCertificate :: OperationType
AttachStaticIP :: OperationType
CloseInstancePublicPorts :: OperationType
CreateDisk :: OperationType
CreateDiskFromSnapshot :: OperationType
CreateDiskSnapshot :: OperationType
CreateDomain :: OperationType
CreateInstance :: OperationType
CreateInstanceSnapshot :: OperationType
CreateInstancesFromSnapshot :: OperationType
CreateLoadBalancer :: OperationType
CreateLoadBalancerTLSCertificate :: OperationType
DeleteDisk :: OperationType
DeleteDiskSnapshot :: OperationType
DeleteDomain :: OperationType
DeleteDomainEntry :: OperationType
DeleteInstance :: OperationType
DeleteInstanceSnapshot :: OperationType
DeleteLoadBalancer :: OperationType
DeleteLoadBalancerTLSCertificate :: OperationType
DetachDisk :: OperationType
DetachInstancesFromLoadBalancer :: OperationType
DetachStaticIP :: OperationType
OpenInstancePublicPorts :: OperationType
PutInstancePublicPorts :: OperationType
RebootInstance :: OperationType
ReleaseStaticIP :: OperationType
StartInstance :: OperationType
StopInstance :: OperationType
UpdateDomainEntry :: OperationType
UpdateLoadBalancerAttribute :: OperationType
data PortAccessType
Private :: PortAccessType
Public :: PortAccessType
data PortState
Closed :: PortState
Open :: PortState
data RegionName
ApNortheast1 :: RegionName
ApNortheast2 :: RegionName
ApSouth1 :: RegionName
ApSoutheast1 :: RegionName
ApSoutheast2 :: RegionName
EuCentral1 :: RegionName
EuWest1 :: RegionName
EuWest2 :: RegionName
UsEast1 :: RegionName
UsEast2 :: RegionName
UsWest1 :: RegionName
UsWest2 :: RegionName
data ResourceType
Disk :: ResourceType
DiskSnapshot :: ResourceType
Domain :: ResourceType
Instance :: ResourceType
InstanceSnapshot :: ResourceType
KeyPair :: ResourceType
LoadBalancer :: ResourceType
LoadBalancerTLSCertificate :: ResourceType
PeeredVPC :: ResourceType
StaticIP :: ResourceType

-- | Describes an Availability Zone.
--   
--   <i>See:</i> <a>availabilityZone</a> smart constructor.
data AvailabilityZone

-- | Creates a value of <a>AvailabilityZone</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>azState</a> - The state of the Availability Zone.</li>
--   <li><a>azZoneName</a> - The name of the Availability Zone. The format
--   is <tt>us-east-2a</tt> (case-sensitive).</li>
--   </ul>
availabilityZone :: AvailabilityZone

-- | The state of the Availability Zone.
azState :: Lens' AvailabilityZone (Maybe Text)

-- | The name of the Availability Zone. The format is <tt>us-east-2a</tt>
--   (case-sensitive).
azZoneName :: Lens' AvailabilityZone (Maybe Text)

-- | Describes a blueprint (a virtual private server image).
--   
--   <i>See:</i> <a>blueprint</a> smart constructor.
data Blueprint

-- | Creates a value of <a>Blueprint</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bVersionCode</a> - The version code.</li>
--   <li><a>bPlatform</a> - The operating system platform (either
--   Linux/Unix-based or Windows Server-based) of the blueprint.</li>
--   <li><a>bGroup</a> - The group name of the blueprint (e.g.,
--   <tt>amazon-linux</tt> ).</li>
--   <li><a>bMinPower</a> - The minimum bundle power required to run this
--   blueprint. For example, you need a bundle with a power value of 500 or
--   more to create an instance that uses a blueprint with a minimum power
--   value of 500. <tt>0</tt> indicates that the blueprint runs on all
--   instance sizes.</li>
--   <li><a>bProductURL</a> - The product URL to learn more about the image
--   or blueprint.</li>
--   <li><a>bLicenseURL</a> - The end-user license agreement URL for the
--   image or blueprint.</li>
--   <li><a>bName</a> - The friendly name of the blueprint (e.g.,
--   <tt>Amazon Linux</tt> ).</li>
--   <li><a>bVersion</a> - The version number of the operating system,
--   application, or stack (e.g., <tt>2016.03.0</tt> ).</li>
--   <li><a>bBlueprintId</a> - The ID for the virtual private server image
--   (e.g., <tt>app_wordpress_4_4</tt> or <tt>app_lamp_7_0</tt> ).</li>
--   <li><a>bType</a> - The type of the blueprint (e.g., <tt>os</tt> or
--   <tt>app</tt> ).</li>
--   <li><a>bIsActive</a> - A Boolean value indicating whether the
--   blueprint is active. When you update your blueprints, you will
--   inactivate old blueprints and keep the most recent versions
--   active.</li>
--   <li><a>bDescription</a> - The description of the blueprint.</li>
--   </ul>
blueprint :: Blueprint

-- | The version code.
bVersionCode :: Lens' Blueprint (Maybe Text)

-- | The operating system platform (either Linux/Unix-based or Windows
--   Server-based) of the blueprint.
bPlatform :: Lens' Blueprint (Maybe InstancePlatform)

-- | The group name of the blueprint (e.g., <tt>amazon-linux</tt> ).
bGroup :: Lens' Blueprint (Maybe Text)

-- | The minimum bundle power required to run this blueprint. For example,
--   you need a bundle with a power value of 500 or more to create an
--   instance that uses a blueprint with a minimum power value of 500.
--   <tt>0</tt> indicates that the blueprint runs on all instance sizes.
bMinPower :: Lens' Blueprint (Maybe Int)

-- | The product URL to learn more about the image or blueprint.
bProductURL :: Lens' Blueprint (Maybe Text)

-- | The end-user license agreement URL for the image or blueprint.
bLicenseURL :: Lens' Blueprint (Maybe Text)

-- | The friendly name of the blueprint (e.g., <tt>Amazon Linux</tt> ).
bName :: Lens' Blueprint (Maybe Text)

-- | The version number of the operating system, application, or stack
--   (e.g., <tt>2016.03.0</tt> ).
bVersion :: Lens' Blueprint (Maybe Text)

-- | The ID for the virtual private server image (e.g.,
--   <tt>app_wordpress_4_4</tt> or <tt>app_lamp_7_0</tt> ).
bBlueprintId :: Lens' Blueprint (Maybe Text)

-- | The type of the blueprint (e.g., <tt>os</tt> or <tt>app</tt> ).
bType :: Lens' Blueprint (Maybe BlueprintType)

-- | A Boolean value indicating whether the blueprint is active. When you
--   update your blueprints, you will inactivate old blueprints and keep
--   the most recent versions active.
bIsActive :: Lens' Blueprint (Maybe Bool)

-- | The description of the blueprint.
bDescription :: Lens' Blueprint (Maybe Text)

-- | Describes a bundle, which is a set of specs describing your virtual
--   private server (or <i>instance</i> ).
--   
--   <i>See:</i> <a>bundle</a> smart constructor.
data Bundle

-- | Creates a value of <a>Bundle</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bunCpuCount</a> - The number of vCPUs included in the bundle
--   (e.g., <tt>2</tt> ).</li>
--   <li><a>bunTransferPerMonthInGb</a> - The data transfer rate per month
--   in GB (e.g., <tt>2000</tt> ).</li>
--   <li><a>bunBundleId</a> - The bundle ID (e.g., <tt>micro_1_0</tt>
--   ).</li>
--   <li><a>bunInstanceType</a> - The Amazon EC2 instance type (e.g.,
--   <tt>t2.micro</tt> ).</li>
--   <li><a>bunName</a> - A friendly name for the bundle (e.g.,
--   <tt>Micro</tt> ).</li>
--   <li><a>bunPower</a> - A numeric value that represents the power of the
--   bundle (e.g., <tt>500</tt> ). You can use the bundle's power value in
--   conjunction with a blueprint's minimum power value to determine
--   whether the blueprint will run on the bundle. For example, you need a
--   bundle with a power value of 500 or more to create an instance that
--   uses a blueprint with a minimum power value of 500.</li>
--   <li><a>bunDiskSizeInGb</a> - The size of the SSD (e.g., <tt>30</tt>
--   ).</li>
--   <li><a>bunSupportedPlatforms</a> - The operating system platform
--   (Linux/Unix-based or Windows Server-based) that the bundle supports.
--   You can only launch a <tt>WINDOWS</tt> bundle on a blueprint that
--   supports the <tt>WINDOWS</tt> platform. <tt>LINUX_UNIX</tt> blueprints
--   require a <tt>LINUX_UNIX</tt> bundle.</li>
--   <li><a>bunPrice</a> - The price in US dollars (e.g., <tt>5.0</tt>
--   ).</li>
--   <li><a>bunIsActive</a> - A Boolean value indicating whether the bundle
--   is active.</li>
--   <li><a>bunRamSizeInGb</a> - The amount of RAM in GB (e.g.,
--   <tt>2.0</tt> ).</li>
--   </ul>
bundle :: Bundle

-- | The number of vCPUs included in the bundle (e.g., <tt>2</tt> ).
bunCpuCount :: Lens' Bundle (Maybe Int)

-- | The data transfer rate per month in GB (e.g., <tt>2000</tt> ).
bunTransferPerMonthInGb :: Lens' Bundle (Maybe Int)

-- | The bundle ID (e.g., <tt>micro_1_0</tt> ).
bunBundleId :: Lens' Bundle (Maybe Text)

-- | The Amazon EC2 instance type (e.g., <tt>t2.micro</tt> ).
bunInstanceType :: Lens' Bundle (Maybe Text)

-- | A friendly name for the bundle (e.g., <tt>Micro</tt> ).
bunName :: Lens' Bundle (Maybe Text)

-- | A numeric value that represents the power of the bundle (e.g.,
--   <tt>500</tt> ). You can use the bundle's power value in conjunction
--   with a blueprint's minimum power value to determine whether the
--   blueprint will run on the bundle. For example, you need a bundle with
--   a power value of 500 or more to create an instance that uses a
--   blueprint with a minimum power value of 500.
bunPower :: Lens' Bundle (Maybe Int)

-- | The size of the SSD (e.g., <tt>30</tt> ).
bunDiskSizeInGb :: Lens' Bundle (Maybe Int)

-- | The operating system platform (Linux/Unix-based or Windows
--   Server-based) that the bundle supports. You can only launch a
--   <tt>WINDOWS</tt> bundle on a blueprint that supports the
--   <tt>WINDOWS</tt> platform. <tt>LINUX_UNIX</tt> blueprints require a
--   <tt>LINUX_UNIX</tt> bundle.
bunSupportedPlatforms :: Lens' Bundle [InstancePlatform]

-- | The price in US dollars (e.g., <tt>5.0</tt> ).
bunPrice :: Lens' Bundle (Maybe Double)

-- | A Boolean value indicating whether the bundle is active.
bunIsActive :: Lens' Bundle (Maybe Bool)

-- | The amount of RAM in GB (e.g., <tt>2.0</tt> ).
bunRamSizeInGb :: Lens' Bundle (Maybe Double)

-- | Describes a system disk or an block storage disk.
--   
--   <i>See:</i> <a>disk</a> smart constructor.
data Disk

-- | Creates a value of <a>Disk</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dState</a> - Describes the status of the disk.</li>
--   <li><a>dResourceType</a> - The Lightsail resource type (e.g.,
--   <tt>Disk</tt> ).</li>
--   <li><a>dArn</a> - The Amazon Resource Name (ARN) of the disk.</li>
--   <li><a>dPath</a> - The disk path.</li>
--   <li><a>dCreatedAt</a> - The date when the disk was created.</li>
--   <li><a>dLocation</a> - The AWS Region and Availability Zone where the
--   disk is located.</li>
--   <li><a>dIops</a> - The input/output operations per second (IOPS) of
--   the disk.</li>
--   <li><a>dIsAttached</a> - A Boolean value indicating whether the disk
--   is attached.</li>
--   <li><a>dAttachmentState</a> - (Deprecated) The attachment state of the
--   disk.</li>
--   <li><a>dName</a> - The unique name of the disk.</li>
--   <li><a>dSizeInGb</a> - The size of the disk in GB.</li>
--   <li><a>dSupportCode</a> - The support code. Include this code in your
--   email to support when you have questions about an instance or another
--   resource in Lightsail. This code enables our support team to look up
--   your Lightsail information more easily.</li>
--   <li><a>dIsSystemDisk</a> - A Boolean value indicating whether this
--   disk is a system disk (has an operating system loaded on it).</li>
--   <li><a>dAttachedTo</a> - The resources to which the disk is
--   attached.</li>
--   <li><a>dGbInUse</a> - (Deprecated) The number of GB in use by the
--   disk.</li>
--   </ul>
disk :: Disk

-- | Describes the status of the disk.
dState :: Lens' Disk (Maybe DiskState)

-- | The Lightsail resource type (e.g., <tt>Disk</tt> ).
dResourceType :: Lens' Disk (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the disk.
dArn :: Lens' Disk (Maybe Text)

-- | The disk path.
dPath :: Lens' Disk (Maybe Text)

-- | The date when the disk was created.
dCreatedAt :: Lens' Disk (Maybe UTCTime)

-- | The AWS Region and Availability Zone where the disk is located.
dLocation :: Lens' Disk (Maybe ResourceLocation)

-- | The input/output operations per second (IOPS) of the disk.
dIops :: Lens' Disk (Maybe Int)

-- | A Boolean value indicating whether the disk is attached.
dIsAttached :: Lens' Disk (Maybe Bool)

-- | (Deprecated) The attachment state of the disk.
dAttachmentState :: Lens' Disk (Maybe Text)

-- | The unique name of the disk.
dName :: Lens' Disk (Maybe Text)

-- | The size of the disk in GB.
dSizeInGb :: Lens' Disk (Maybe Int)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
dSupportCode :: Lens' Disk (Maybe Text)

-- | A Boolean value indicating whether this disk is a system disk (has an
--   operating system loaded on it).
dIsSystemDisk :: Lens' Disk (Maybe Bool)

-- | The resources to which the disk is attached.
dAttachedTo :: Lens' Disk (Maybe Text)

-- | (Deprecated) The number of GB in use by the disk.
dGbInUse :: Lens' Disk (Maybe Int)

-- | Describes a block storage disk mapping.
--   
--   <i>See:</i> <a>diskMap</a> smart constructor.
data DiskMap

-- | Creates a value of <a>DiskMap</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmNewDiskName</a> - The new disk name (e.g.,
--   <tt>my-new-disk</tt> ).</li>
--   <li><a>dmOriginalDiskPath</a> - The original disk path exposed to the
--   instance (for example, <tt><i>dev</i>sdh</tt> ).</li>
--   </ul>
diskMap :: DiskMap

-- | The new disk name (e.g., <tt>my-new-disk</tt> ).
dmNewDiskName :: Lens' DiskMap (Maybe Text)

-- | The original disk path exposed to the instance (for example,
--   <tt><i>dev</i>sdh</tt> ).
dmOriginalDiskPath :: Lens' DiskMap (Maybe Text)

-- | Describes a block storage disk snapshot.
--   
--   <i>See:</i> <a>diskSnapshot</a> smart constructor.
data DiskSnapshot

-- | Creates a value of <a>DiskSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsFromDiskName</a> - The unique name of the source disk from
--   which you are creating the disk snapshot.</li>
--   <li><a>dsState</a> - The status of the disk snapshot operation.</li>
--   <li><a>dsResourceType</a> - The Lightsail resource type (e.g.,
--   <tt>DiskSnapshot</tt> ).</li>
--   <li><a>dsArn</a> - The Amazon Resource Name (ARN) of the disk
--   snapshot.</li>
--   <li><a>dsCreatedAt</a> - The date when the disk snapshot was
--   created.</li>
--   <li><a>dsLocation</a> - The AWS Region and Availability Zone where the
--   disk snapshot was created.</li>
--   <li><a>dsProgress</a> - The progress of the disk snapshot
--   operation.</li>
--   <li><a>dsName</a> - The name of the disk snapshot (e.g.,
--   <tt>my-disk-snapshot</tt> ).</li>
--   <li><a>dsSizeInGb</a> - The size of the disk in GB.</li>
--   <li><a>dsSupportCode</a> - The support code. Include this code in your
--   email to support when you have questions about an instance or another
--   resource in Lightsail. This code enables our support team to look up
--   your Lightsail information more easily.</li>
--   <li><a>dsFromDiskARN</a> - The Amazon Resource Name (ARN) of the
--   source disk from which you are creating the disk snapshot.</li>
--   </ul>
diskSnapshot :: DiskSnapshot

-- | The unique name of the source disk from which you are creating the
--   disk snapshot.
dsFromDiskName :: Lens' DiskSnapshot (Maybe Text)

-- | The status of the disk snapshot operation.
dsState :: Lens' DiskSnapshot (Maybe DiskSnapshotState)

-- | The Lightsail resource type (e.g., <tt>DiskSnapshot</tt> ).
dsResourceType :: Lens' DiskSnapshot (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the disk snapshot.
dsArn :: Lens' DiskSnapshot (Maybe Text)

-- | The date when the disk snapshot was created.
dsCreatedAt :: Lens' DiskSnapshot (Maybe UTCTime)

-- | The AWS Region and Availability Zone where the disk snapshot was
--   created.
dsLocation :: Lens' DiskSnapshot (Maybe ResourceLocation)

-- | The progress of the disk snapshot operation.
dsProgress :: Lens' DiskSnapshot (Maybe Text)

-- | The name of the disk snapshot (e.g., <tt>my-disk-snapshot</tt> ).
dsName :: Lens' DiskSnapshot (Maybe Text)

-- | The size of the disk in GB.
dsSizeInGb :: Lens' DiskSnapshot (Maybe Int)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
dsSupportCode :: Lens' DiskSnapshot (Maybe Text)

-- | The Amazon Resource Name (ARN) of the source disk from which you are
--   creating the disk snapshot.
dsFromDiskARN :: Lens' DiskSnapshot (Maybe Text)

-- | Describes a domain where you are storing recordsets in Lightsail.
--   
--   <i>See:</i> <a>domain</a> smart constructor.
data Domain

-- | Creates a value of <a>Domain</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>domResourceType</a> - The resource type.</li>
--   <li><a>domDomainEntries</a> - An array of key-value pairs containing
--   information about the domain entries.</li>
--   <li><a>domArn</a> - The Amazon Resource Name (ARN) of the domain
--   recordset (e.g.,
--   <tt>arn:aws:lightsail:global:123456789101:Domain/824cede0-abc7-4f84-8dbc-12345EXAMPLE</tt>
--   ).</li>
--   <li><a>domCreatedAt</a> - The date when the domain recordset was
--   created.</li>
--   <li><a>domLocation</a> - The AWS Region and Availability Zones where
--   the domain recordset was created.</li>
--   <li><a>domName</a> - The name of the domain.</li>
--   <li><a>domSupportCode</a> - The support code. Include this code in
--   your email to support when you have questions about an instance or
--   another resource in Lightsail. This code enables our support team to
--   look up your Lightsail information more easily.</li>
--   </ul>
domain :: Domain

-- | The resource type.
domResourceType :: Lens' Domain (Maybe ResourceType)

-- | An array of key-value pairs containing information about the domain
--   entries.
domDomainEntries :: Lens' Domain [DomainEntry]

-- | The Amazon Resource Name (ARN) of the domain recordset (e.g.,
--   <tt>arn:aws:lightsail:global:123456789101:Domain/824cede0-abc7-4f84-8dbc-12345EXAMPLE</tt>
--   ).
domArn :: Lens' Domain (Maybe Text)

-- | The date when the domain recordset was created.
domCreatedAt :: Lens' Domain (Maybe UTCTime)

-- | The AWS Region and Availability Zones where the domain recordset was
--   created.
domLocation :: Lens' Domain (Maybe ResourceLocation)

-- | The name of the domain.
domName :: Lens' Domain (Maybe Text)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
domSupportCode :: Lens' Domain (Maybe Text)

-- | Describes a domain recordset entry.
--   
--   <i>See:</i> <a>domainEntry</a> smart constructor.
data DomainEntry

-- | Creates a value of <a>DomainEntry</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deIsAlias</a> - When <tt>true</tt> , specifies whether the
--   domain entry is an alias used by the Lightsail load balancer. You can
--   include an alias (A type) record in your request, which points to a
--   load balancer DNS name and routes traffic to your load balancer</li>
--   <li><a>deName</a> - The name of the domain.</li>
--   <li><a>deId</a> - The ID of the domain recordset entry.</li>
--   <li><a>deOptions</a> - (Deprecated) The options for the domain
--   entry.</li>
--   <li><a>deType</a> - The type of domain entry (e.g., <tt>SOA</tt> or
--   <tt>NS</tt> ).</li>
--   <li><a>deTarget</a> - The target AWS name server (e.g.,
--   <tt>ns-111.awsdns-22.com.</tt> ). For Lightsail load balancers, the
--   value looks like
--   <tt>ab1234c56789c6b86aba6fb203d443bc-123456789.us-east-2.elb.amazonaws.com</tt>
--   . Be sure to also set <tt>isAlias</tt> to <tt>true</tt> when setting
--   up an A record for a load balancer.</li>
--   </ul>
domainEntry :: DomainEntry

-- | When <tt>true</tt> , specifies whether the domain entry is an alias
--   used by the Lightsail load balancer. You can include an alias (A type)
--   record in your request, which points to a load balancer DNS name and
--   routes traffic to your load balancer
deIsAlias :: Lens' DomainEntry (Maybe Bool)

-- | The name of the domain.
deName :: Lens' DomainEntry (Maybe Text)

-- | The ID of the domain recordset entry.
deId :: Lens' DomainEntry (Maybe Text)

-- | (Deprecated) The options for the domain entry.
deOptions :: Lens' DomainEntry (HashMap Text Text)

-- | The type of domain entry (e.g., <tt>SOA</tt> or <tt>NS</tt> ).
deType :: Lens' DomainEntry (Maybe Text)

-- | The target AWS name server (e.g., <tt>ns-111.awsdns-22.com.</tt> ).
--   For Lightsail load balancers, the value looks like
--   <tt>ab1234c56789c6b86aba6fb203d443bc-123456789.us-east-2.elb.amazonaws.com</tt>
--   . Be sure to also set <tt>isAlias</tt> to <tt>true</tt> when setting
--   up an A record for a load balancer.
deTarget :: Lens' DomainEntry (Maybe Text)

-- | Describes an instance (a virtual private server).
--   
--   <i>See:</i> <a>instance'</a> smart constructor.
data Instance

-- | Creates a value of <a>Instance</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iState</a> - The status code and the state (e.g.,
--   <tt>running</tt> ) for the instance.</li>
--   <li><a>iIpv6Address</a> - The IPv6 address of the instance.</li>
--   <li><a>iResourceType</a> - The type of resource (usually
--   <tt>Instance</tt> ).</li>
--   <li><a>iArn</a> - The Amazon Resource Name (ARN) of the instance
--   (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:Instance/244ad76f-8aad-4741-809f-12345EXAMPLE</tt>
--   ).</li>
--   <li><a>iCreatedAt</a> - The timestamp when the instance was created
--   (e.g., <tt>1479734909.17</tt> ).</li>
--   <li><a>iLocation</a> - The region name and availability zone where the
--   instance is located.</li>
--   <li><a>iSshKeyName</a> - The name of the SSH key being used to connect
--   to the instance (e.g., <tt>LightsailDefaultKeyPair</tt> ).</li>
--   <li><a>iUsername</a> - The user name for connecting to the instance
--   (e.g., <tt>ec2-user</tt> ).</li>
--   <li><a>iNetworking</a> - Information about the public ports and
--   monthly data transfer rates for the instance.</li>
--   <li><a>iBundleId</a> - The bundle for the instance (e.g.,
--   <tt>micro_1_0</tt> ).</li>
--   <li><a>iName</a> - The name the user gave the instance (e.g.,
--   <tt>Amazon_Linux-1GB-Ohio-1</tt> ).</li>
--   <li><a>iSupportCode</a> - The support code. Include this code in your
--   email to support when you have questions about an instance or another
--   resource in Lightsail. This code enables our support team to look up
--   your Lightsail information more easily.</li>
--   <li><a>iBlueprintId</a> - The blueprint ID (e.g.,
--   <tt>os_amlinux_2016_03</tt> ).</li>
--   <li><a>iPrivateIPAddress</a> - The private IP address of the
--   instance.</li>
--   <li><a>iBlueprintName</a> - The friendly name of the blueprint (e.g.,
--   <tt>Amazon Linux</tt> ).</li>
--   <li><a>iIsStaticIP</a> - A Boolean value indicating whether this
--   instance has a static IP assigned to it.</li>
--   <li><a>iPublicIPAddress</a> - The public IP address of the
--   instance.</li>
--   <li><a>iHardware</a> - The size of the vCPU and the amount of RAM for
--   the instance.</li>
--   </ul>
instance' :: Instance

-- | The status code and the state (e.g., <tt>running</tt> ) for the
--   instance.
iState :: Lens' Instance (Maybe InstanceState)

-- | The IPv6 address of the instance.
iIpv6Address :: Lens' Instance (Maybe Text)

-- | The type of resource (usually <tt>Instance</tt> ).
iResourceType :: Lens' Instance (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the instance (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:Instance/244ad76f-8aad-4741-809f-12345EXAMPLE</tt>
--   ).
iArn :: Lens' Instance (Maybe Text)

-- | The timestamp when the instance was created (e.g.,
--   <tt>1479734909.17</tt> ).
iCreatedAt :: Lens' Instance (Maybe UTCTime)

-- | The region name and availability zone where the instance is located.
iLocation :: Lens' Instance (Maybe ResourceLocation)

-- | The name of the SSH key being used to connect to the instance (e.g.,
--   <tt>LightsailDefaultKeyPair</tt> ).
iSshKeyName :: Lens' Instance (Maybe Text)

-- | The user name for connecting to the instance (e.g., <tt>ec2-user</tt>
--   ).
iUsername :: Lens' Instance (Maybe Text)

-- | Information about the public ports and monthly data transfer rates for
--   the instance.
iNetworking :: Lens' Instance (Maybe InstanceNetworking)

-- | The bundle for the instance (e.g., <tt>micro_1_0</tt> ).
iBundleId :: Lens' Instance (Maybe Text)

-- | The name the user gave the instance (e.g.,
--   <tt>Amazon_Linux-1GB-Ohio-1</tt> ).
iName :: Lens' Instance (Maybe Text)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
iSupportCode :: Lens' Instance (Maybe Text)

-- | The blueprint ID (e.g., <tt>os_amlinux_2016_03</tt> ).
iBlueprintId :: Lens' Instance (Maybe Text)

-- | The private IP address of the instance.
iPrivateIPAddress :: Lens' Instance (Maybe Text)

-- | The friendly name of the blueprint (e.g., <tt>Amazon Linux</tt> ).
iBlueprintName :: Lens' Instance (Maybe Text)

-- | A Boolean value indicating whether this instance has a static IP
--   assigned to it.
iIsStaticIP :: Lens' Instance (Maybe Bool)

-- | The public IP address of the instance.
iPublicIPAddress :: Lens' Instance (Maybe Text)

-- | The size of the vCPU and the amount of RAM for the instance.
iHardware :: Lens' Instance (Maybe InstanceHardware)

-- | The parameters for gaining temporary access to one of your Amazon
--   Lightsail instances.
--   
--   <i>See:</i> <a>instanceAccessDetails</a> smart constructor.
data InstanceAccessDetails

-- | Creates a value of <a>InstanceAccessDetails</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iadCertKey</a> - For SSH access, the public key to use when
--   accessing your instance For OpenSSH clients (e.g., command line SSH),
--   you should save this value to <tt>tempkey-cert.pub</tt> .</li>
--   <li><a>iadIpAddress</a> - The public IP address of the Amazon
--   Lightsail instance.</li>
--   <li><a>iadPrivateKey</a> - For SSH access, the temporary private key.
--   For OpenSSH clients (e.g., command line SSH), you should save this
--   value to <tt>tempkey</tt> ).</li>
--   <li><a>iadExpiresAt</a> - For SSH access, the date on which the
--   temporary keys expire.</li>
--   <li><a>iadUsername</a> - The user name to use when logging in to the
--   Amazon Lightsail instance.</li>
--   <li><a>iadProtocol</a> - The protocol for these Amazon Lightsail
--   instance access details.</li>
--   <li><a>iadPasswordData</a> - For a Windows Server-based instance, an
--   object with the data you can use to retrieve your password. This is
--   only needed if <tt>password</tt> is empty and the instance is not new
--   (and therefore the password is not ready yet). When you create an
--   instance, it can take up to 15 minutes for the instance to be
--   ready.</li>
--   <li><a>iadPassword</a> - For RDP access, the password for your Amazon
--   Lightsail instance. Password will be an empty string if the password
--   for your new instance is not ready yet. When you create an instance,
--   it can take up to 15 minutes for the instance to be ready.</li>
--   <li><a>iadInstanceName</a> - The name of this Amazon Lightsail
--   instance.</li>
--   </ul>
instanceAccessDetails :: InstanceAccessDetails

-- | For SSH access, the public key to use when accessing your instance For
--   OpenSSH clients (e.g., command line SSH), you should save this value
--   to <tt>tempkey-cert.pub</tt> .
iadCertKey :: Lens' InstanceAccessDetails (Maybe Text)

-- | The public IP address of the Amazon Lightsail instance.
iadIpAddress :: Lens' InstanceAccessDetails (Maybe Text)

-- | For SSH access, the temporary private key. For OpenSSH clients (e.g.,
--   command line SSH), you should save this value to <tt>tempkey</tt> ).
iadPrivateKey :: Lens' InstanceAccessDetails (Maybe Text)

-- | For SSH access, the date on which the temporary keys expire.
iadExpiresAt :: Lens' InstanceAccessDetails (Maybe UTCTime)

-- | The user name to use when logging in to the Amazon Lightsail instance.
iadUsername :: Lens' InstanceAccessDetails (Maybe Text)

-- | The protocol for these Amazon Lightsail instance access details.
iadProtocol :: Lens' InstanceAccessDetails (Maybe InstanceAccessProtocol)

-- | For a Windows Server-based instance, an object with the data you can
--   use to retrieve your password. This is only needed if
--   <tt>password</tt> is empty and the instance is not new (and therefore
--   the password is not ready yet). When you create an instance, it can
--   take up to 15 minutes for the instance to be ready.
iadPasswordData :: Lens' InstanceAccessDetails (Maybe PasswordData)

-- | For RDP access, the password for your Amazon Lightsail instance.
--   Password will be an empty string if the password for your new instance
--   is not ready yet. When you create an instance, it can take up to 15
--   minutes for the instance to be ready.
iadPassword :: Lens' InstanceAccessDetails (Maybe Text)

-- | The name of this Amazon Lightsail instance.
iadInstanceName :: Lens' InstanceAccessDetails (Maybe Text)

-- | Describes the hardware for the instance.
--   
--   <i>See:</i> <a>instanceHardware</a> smart constructor.
data InstanceHardware

-- | Creates a value of <a>InstanceHardware</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ihCpuCount</a> - The number of vCPUs the instance has.</li>
--   <li><a>ihDisks</a> - The disks attached to the instance.</li>
--   <li><a>ihRamSizeInGb</a> - The amount of RAM in GB on the instance
--   (e.g., <tt>1.0</tt> ).</li>
--   </ul>
instanceHardware :: InstanceHardware

-- | The number of vCPUs the instance has.
ihCpuCount :: Lens' InstanceHardware (Maybe Int)

-- | The disks attached to the instance.
ihDisks :: Lens' InstanceHardware [Disk]

-- | The amount of RAM in GB on the instance (e.g., <tt>1.0</tt> ).
ihRamSizeInGb :: Lens' InstanceHardware (Maybe Double)

-- | Describes information about the health of the instance.
--   
--   <i>See:</i> <a>instanceHealthSummary</a> smart constructor.
data InstanceHealthSummary

-- | Creates a value of <a>InstanceHealthSummary</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ihsInstanceHealth</a> - Describes the overall instance health.
--   Valid values are below.</li>
--   <li><a>ihsInstanceName</a> - The name of the Lightsail instance for
--   which you are requesting health check data.</li>
--   <li><a>ihsInstanceHealthReason</a> - More information about the
--   instance health. If the <tt>instanceHealth</tt> is <tt>healthy</tt> ,
--   then an <tt>instanceHealthReason</tt> value is not provided. If
--   <b><tt>instanceHealth</tt> </b> is <tt>initial</tt> , the
--   <b><tt>instanceHealthReason</tt> </b> value can be one of the
--   following: * <b><tt>Lb.RegistrationInProgress</tt> </b> - The target
--   instance is in the process of being registered with the load balancer.
--   * <b><tt>Lb.InitialHealthChecking</tt> </b> - The Lightsail load
--   balancer is still sending the target instance the minimum number of
--   health checks required to determine its health status. If
--   <b><tt>instanceHealth</tt> </b> is <tt>unhealthy</tt> , the
--   <b><tt>instanceHealthReason</tt> </b> value can be one of the
--   following: * <b><tt>Instance.ResponseCodeMismatch</tt> </b> - The
--   health checks did not return an expected HTTP code. *
--   <b><tt>Instance.Timeout</tt> </b> - The health check requests timed
--   out. * <b><tt>Instance.FailedHealthChecks</tt> </b> - The health
--   checks failed because the connection to the target instance timed out,
--   the target instance response was malformed, or the target instance
--   failed the health check for an unknown reason. *
--   <b><tt>Lb.InternalError</tt> </b> - The health checks failed due to an
--   internal error. If <b><tt>instanceHealth</tt> </b> is <tt>unused</tt>
--   , the <b><tt>instanceHealthReason</tt> </b> value can be one of the
--   following: * <b><tt>Instance.NotRegistered</tt> </b> - The target
--   instance is not registered with the target group. *
--   <b><tt>Instance.NotInUse</tt> </b> - The target group is not used by
--   any load balancer, or the target instance is in an Availability Zone
--   that is not enabled for its load balancer. *
--   <b><tt>Instance.IpUnusable</tt> </b> - The target IP address is
--   reserved for use by a Lightsail load balancer. *
--   <b><tt>Instance.InvalidState</tt> </b> - The target is in the stopped
--   or terminated state. If <b><tt>instanceHealth</tt> </b> is
--   <tt>draining</tt> , the <b><tt>instanceHealthReason</tt> </b> value
--   can be one of the following: *
--   <b><tt>Instance.DeregistrationInProgress</tt> </b> - The target
--   instance is in the process of being deregistered and the
--   deregistration delay period has not expired.</li>
--   </ul>
instanceHealthSummary :: InstanceHealthSummary

-- | Describes the overall instance health. Valid values are below.
ihsInstanceHealth :: Lens' InstanceHealthSummary (Maybe InstanceHealthState)

-- | The name of the Lightsail instance for which you are requesting health
--   check data.
ihsInstanceName :: Lens' InstanceHealthSummary (Maybe Text)

-- | More information about the instance health. If the
--   <tt>instanceHealth</tt> is <tt>healthy</tt> , then an
--   <tt>instanceHealthReason</tt> value is not provided. If
--   <b><tt>instanceHealth</tt> </b> is <tt>initial</tt> , the
--   <b><tt>instanceHealthReason</tt> </b> value can be one of the
--   following: * <b><tt>Lb.RegistrationInProgress</tt> </b> - The target
--   instance is in the process of being registered with the load balancer.
--   * <b><tt>Lb.InitialHealthChecking</tt> </b> - The Lightsail load
--   balancer is still sending the target instance the minimum number of
--   health checks required to determine its health status. If
--   <b><tt>instanceHealth</tt> </b> is <tt>unhealthy</tt> , the
--   <b><tt>instanceHealthReason</tt> </b> value can be one of the
--   following: * <b><tt>Instance.ResponseCodeMismatch</tt> </b> - The
--   health checks did not return an expected HTTP code. *
--   <b><tt>Instance.Timeout</tt> </b> - The health check requests timed
--   out. * <b><tt>Instance.FailedHealthChecks</tt> </b> - The health
--   checks failed because the connection to the target instance timed out,
--   the target instance response was malformed, or the target instance
--   failed the health check for an unknown reason. *
--   <b><tt>Lb.InternalError</tt> </b> - The health checks failed due to an
--   internal error. If <b><tt>instanceHealth</tt> </b> is <tt>unused</tt>
--   , the <b><tt>instanceHealthReason</tt> </b> value can be one of the
--   following: * <b><tt>Instance.NotRegistered</tt> </b> - The target
--   instance is not registered with the target group. *
--   <b><tt>Instance.NotInUse</tt> </b> - The target group is not used by
--   any load balancer, or the target instance is in an Availability Zone
--   that is not enabled for its load balancer. *
--   <b><tt>Instance.IpUnusable</tt> </b> - The target IP address is
--   reserved for use by a Lightsail load balancer. *
--   <b><tt>Instance.InvalidState</tt> </b> - The target is in the stopped
--   or terminated state. If <b><tt>instanceHealth</tt> </b> is
--   <tt>draining</tt> , the <b><tt>instanceHealthReason</tt> </b> value
--   can be one of the following: *
--   <b><tt>Instance.DeregistrationInProgress</tt> </b> - The target
--   instance is in the process of being deregistered and the
--   deregistration delay period has not expired.
ihsInstanceHealthReason :: Lens' InstanceHealthSummary (Maybe InstanceHealthReason)

-- | Describes monthly data transfer rates and port information for an
--   instance.
--   
--   <i>See:</i> <a>instanceNetworking</a> smart constructor.
data InstanceNetworking

-- | Creates a value of <a>InstanceNetworking</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>inMonthlyTransfer</a> - The amount of data in GB allocated for
--   monthly data transfers.</li>
--   <li><a>inPorts</a> - An array of key-value pairs containing
--   information about the ports on the instance.</li>
--   </ul>
instanceNetworking :: InstanceNetworking

-- | The amount of data in GB allocated for monthly data transfers.
inMonthlyTransfer :: Lens' InstanceNetworking (Maybe MonthlyTransfer)

-- | An array of key-value pairs containing information about the ports on
--   the instance.
inPorts :: Lens' InstanceNetworking [InstancePortInfo]

-- | Describes information about the instance ports.
--   
--   <i>See:</i> <a>instancePortInfo</a> smart constructor.
data InstancePortInfo

-- | Creates a value of <a>InstancePortInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ipiFromPort</a> - The first port in the range.</li>
--   <li><a>ipiCommonName</a> - The common name.</li>
--   <li><a>ipiProtocol</a> - The protocol being used. Can be one of the
--   following. * <tt>tcp</tt> - Transmission Control Protocol (TCP)
--   provides reliable, ordered, and error-checked delivery of streamed
--   data between applications running on hosts communicating by an IP
--   network. If you have an application that doesn't require reliable data
--   stream service, use UDP instead. * <tt>all</tt> - All transport layer
--   protocol types. For more general information, see <a>Transport
--   layer</a> on Wikipedia. * <tt>udp</tt> - With User Datagram Protocol
--   (UDP), computer applications can send messages (or datagrams) to other
--   hosts on an Internet Protocol (IP) network. Prior communications are
--   not required to set up transmission channels or data paths.
--   Applications that don't require reliable data stream service can use
--   UDP, which provides a connectionless datagram service that emphasizes
--   reduced latency over reliability. If you do require reliable data
--   stream service, use TCP instead.</li>
--   <li><a>ipiAccessDirection</a> - The access direction (<tt>inbound</tt>
--   or <tt>outbound</tt> ).</li>
--   <li><a>ipiAccessType</a> - The type of access (<tt>Public</tt> or
--   <tt>Private</tt> ).</li>
--   <li><a>ipiToPort</a> - The last port in the range.</li>
--   <li><a>ipiAccessFrom</a> - The location from which access is allowed
--   (e.g., <tt>Anywhere (0.0.0.0/0)</tt> ).</li>
--   </ul>
instancePortInfo :: InstancePortInfo

-- | The first port in the range.
ipiFromPort :: Lens' InstancePortInfo (Maybe Natural)

-- | The common name.
ipiCommonName :: Lens' InstancePortInfo (Maybe Text)

-- | The protocol being used. Can be one of the following. * <tt>tcp</tt> -
--   Transmission Control Protocol (TCP) provides reliable, ordered, and
--   error-checked delivery of streamed data between applications running
--   on hosts communicating by an IP network. If you have an application
--   that doesn't require reliable data stream service, use UDP instead. *
--   <tt>all</tt> - All transport layer protocol types. For more general
--   information, see <a>Transport layer</a> on Wikipedia. * <tt>udp</tt> -
--   With User Datagram Protocol (UDP), computer applications can send
--   messages (or datagrams) to other hosts on an Internet Protocol (IP)
--   network. Prior communications are not required to set up transmission
--   channels or data paths. Applications that don't require reliable data
--   stream service can use UDP, which provides a connectionless datagram
--   service that emphasizes reduced latency over reliability. If you do
--   require reliable data stream service, use TCP instead.
ipiProtocol :: Lens' InstancePortInfo (Maybe NetworkProtocol)

-- | The access direction (<tt>inbound</tt> or <tt>outbound</tt> ).
ipiAccessDirection :: Lens' InstancePortInfo (Maybe AccessDirection)

-- | The type of access (<tt>Public</tt> or <tt>Private</tt> ).
ipiAccessType :: Lens' InstancePortInfo (Maybe PortAccessType)

-- | The last port in the range.
ipiToPort :: Lens' InstancePortInfo (Maybe Natural)

-- | The location from which access is allowed (e.g., <tt>Anywhere
--   (0.0.0.0/0)</tt> ).
ipiAccessFrom :: Lens' InstancePortInfo (Maybe Text)

-- | Describes the port state.
--   
--   <i>See:</i> <a>instancePortState</a> smart constructor.
data InstancePortState

-- | Creates a value of <a>InstancePortState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ipsFromPort</a> - The first port in the range.</li>
--   <li><a>ipsState</a> - Specifies whether the instance port is
--   <tt>open</tt> or <tt>closed</tt> .</li>
--   <li><a>ipsProtocol</a> - The protocol being used. Can be one of the
--   following. * <tt>tcp</tt> - Transmission Control Protocol (TCP)
--   provides reliable, ordered, and error-checked delivery of streamed
--   data between applications running on hosts communicating by an IP
--   network. If you have an application that doesn't require reliable data
--   stream service, use UDP instead. * <tt>all</tt> - All transport layer
--   protocol types. For more general information, see <a>Transport
--   layer</a> on Wikipedia. * <tt>udp</tt> - With User Datagram Protocol
--   (UDP), computer applications can send messages (or datagrams) to other
--   hosts on an Internet Protocol (IP) network. Prior communications are
--   not required to set up transmission channels or data paths.
--   Applications that don't require reliable data stream service can use
--   UDP, which provides a connectionless datagram service that emphasizes
--   reduced latency over reliability. If you do require reliable data
--   stream service, use TCP instead.</li>
--   <li><a>ipsToPort</a> - The last port in the range.</li>
--   </ul>
instancePortState :: InstancePortState

-- | The first port in the range.
ipsFromPort :: Lens' InstancePortState (Maybe Natural)

-- | Specifies whether the instance port is <tt>open</tt> or
--   <tt>closed</tt> .
ipsState :: Lens' InstancePortState (Maybe PortState)

-- | The protocol being used. Can be one of the following. * <tt>tcp</tt> -
--   Transmission Control Protocol (TCP) provides reliable, ordered, and
--   error-checked delivery of streamed data between applications running
--   on hosts communicating by an IP network. If you have an application
--   that doesn't require reliable data stream service, use UDP instead. *
--   <tt>all</tt> - All transport layer protocol types. For more general
--   information, see <a>Transport layer</a> on Wikipedia. * <tt>udp</tt> -
--   With User Datagram Protocol (UDP), computer applications can send
--   messages (or datagrams) to other hosts on an Internet Protocol (IP)
--   network. Prior communications are not required to set up transmission
--   channels or data paths. Applications that don't require reliable data
--   stream service can use UDP, which provides a connectionless datagram
--   service that emphasizes reduced latency over reliability. If you do
--   require reliable data stream service, use TCP instead.
ipsProtocol :: Lens' InstancePortState (Maybe NetworkProtocol)

-- | The last port in the range.
ipsToPort :: Lens' InstancePortState (Maybe Natural)

-- | Describes the snapshot of the virtual private server, or
--   <i>instance</i> .
--   
--   <i>See:</i> <a>instanceSnapshot</a> smart constructor.
data InstanceSnapshot

-- | Creates a value of <a>InstanceSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>insFromBlueprintId</a> - The blueprint ID from which you
--   created the snapshot (e.g., <tt>os_debian_8_3</tt> ). A blueprint is a
--   virtual private server (or <i>instance</i> ) image used to create
--   instances quickly.</li>
--   <li><a>insState</a> - The state the snapshot is in.</li>
--   <li><a>insResourceType</a> - The type of resource (usually
--   <tt>InstanceSnapshot</tt> ).</li>
--   <li><a>insFromAttachedDisks</a> - An array of disk objects containing
--   information about all block storage disks.</li>
--   <li><a>insArn</a> - The Amazon Resource Name (ARN) of the snapshot
--   (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:InstanceSnapshot/d23b5706-3322-4d83-81e5-12345EXAMPLE</tt>
--   ).</li>
--   <li><a>insCreatedAt</a> - The timestamp when the snapshot was created
--   (e.g., <tt>1479907467.024</tt> ).</li>
--   <li><a>insLocation</a> - The region name and availability zone where
--   you created the snapshot.</li>
--   <li><a>insProgress</a> - The progress of the snapshot.</li>
--   <li><a>insName</a> - The name of the snapshot.</li>
--   <li><a>insFromBundleId</a> - The bundle ID from which you created the
--   snapshot (e.g., <tt>micro_1_0</tt> ).</li>
--   <li><a>insSizeInGb</a> - The size in GB of the SSD.</li>
--   <li><a>insSupportCode</a> - The support code. Include this code in
--   your email to support when you have questions about an instance or
--   another resource in Lightsail. This code enables our support team to
--   look up your Lightsail information more easily.</li>
--   <li><a>insFromInstanceARN</a> - The Amazon Resource Name (ARN) of the
--   instance from which the snapshot was created (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:Instance/64b8404c-ccb1-430b-8daf-12345EXAMPLE</tt>
--   ).</li>
--   <li><a>insFromInstanceName</a> - The instance from which the snapshot
--   was created.</li>
--   </ul>
instanceSnapshot :: InstanceSnapshot

-- | The blueprint ID from which you created the snapshot (e.g.,
--   <tt>os_debian_8_3</tt> ). A blueprint is a virtual private server (or
--   <i>instance</i> ) image used to create instances quickly.
insFromBlueprintId :: Lens' InstanceSnapshot (Maybe Text)

-- | The state the snapshot is in.
insState :: Lens' InstanceSnapshot (Maybe InstanceSnapshotState)

-- | The type of resource (usually <tt>InstanceSnapshot</tt> ).
insResourceType :: Lens' InstanceSnapshot (Maybe ResourceType)

-- | An array of disk objects containing information about all block
--   storage disks.
insFromAttachedDisks :: Lens' InstanceSnapshot [Disk]

-- | The Amazon Resource Name (ARN) of the snapshot (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:InstanceSnapshot/d23b5706-3322-4d83-81e5-12345EXAMPLE</tt>
--   ).
insArn :: Lens' InstanceSnapshot (Maybe Text)

-- | The timestamp when the snapshot was created (e.g.,
--   <tt>1479907467.024</tt> ).
insCreatedAt :: Lens' InstanceSnapshot (Maybe UTCTime)

-- | The region name and availability zone where you created the snapshot.
insLocation :: Lens' InstanceSnapshot (Maybe ResourceLocation)

-- | The progress of the snapshot.
insProgress :: Lens' InstanceSnapshot (Maybe Text)

-- | The name of the snapshot.
insName :: Lens' InstanceSnapshot (Maybe Text)

-- | The bundle ID from which you created the snapshot (e.g.,
--   <tt>micro_1_0</tt> ).
insFromBundleId :: Lens' InstanceSnapshot (Maybe Text)

-- | The size in GB of the SSD.
insSizeInGb :: Lens' InstanceSnapshot (Maybe Int)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
insSupportCode :: Lens' InstanceSnapshot (Maybe Text)

-- | The Amazon Resource Name (ARN) of the instance from which the snapshot
--   was created (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:Instance/64b8404c-ccb1-430b-8daf-12345EXAMPLE</tt>
--   ).
insFromInstanceARN :: Lens' InstanceSnapshot (Maybe Text)

-- | The instance from which the snapshot was created.
insFromInstanceName :: Lens' InstanceSnapshot (Maybe Text)

-- | Describes the virtual private server (or <i>instance</i> ) status.
--   
--   <i>See:</i> <a>instanceState</a> smart constructor.
data InstanceState

-- | Creates a value of <a>InstanceState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isName</a> - The state of the instance (e.g., <tt>running</tt>
--   or <tt>pending</tt> ).</li>
--   <li><a>isCode</a> - The status code for the instance.</li>
--   </ul>
instanceState :: InstanceState

-- | The state of the instance (e.g., <tt>running</tt> or <tt>pending</tt>
--   ).
isName :: Lens' InstanceState (Maybe Text)

-- | The status code for the instance.
isCode :: Lens' InstanceState (Maybe Int)

-- | Describes the SSH key pair.
--   
--   <i>See:</i> <a>keyPair</a> smart constructor.
data KeyPair

-- | Creates a value of <a>KeyPair</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>kpResourceType</a> - The resource type (usually
--   <tt>KeyPair</tt> ).</li>
--   <li><a>kpArn</a> - The Amazon Resource Name (ARN) of the key pair
--   (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:KeyPair/05859e3d-331d-48ba-9034-12345EXAMPLE</tt>
--   ).</li>
--   <li><a>kpCreatedAt</a> - The timestamp when the key pair was created
--   (e.g., <tt>1479816991.349</tt> ).</li>
--   <li><a>kpLocation</a> - The region name and Availability Zone where
--   the key pair was created.</li>
--   <li><a>kpFingerprint</a> - The RSA fingerprint of the key pair.</li>
--   <li><a>kpName</a> - The friendly name of the SSH key pair.</li>
--   <li><a>kpSupportCode</a> - The support code. Include this code in your
--   email to support when you have questions about an instance or another
--   resource in Lightsail. This code enables our support team to look up
--   your Lightsail information more easily.</li>
--   </ul>
keyPair :: KeyPair

-- | The resource type (usually <tt>KeyPair</tt> ).
kpResourceType :: Lens' KeyPair (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the key pair (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:KeyPair/05859e3d-331d-48ba-9034-12345EXAMPLE</tt>
--   ).
kpArn :: Lens' KeyPair (Maybe Text)

-- | The timestamp when the key pair was created (e.g.,
--   <tt>1479816991.349</tt> ).
kpCreatedAt :: Lens' KeyPair (Maybe UTCTime)

-- | The region name and Availability Zone where the key pair was created.
kpLocation :: Lens' KeyPair (Maybe ResourceLocation)

-- | The RSA fingerprint of the key pair.
kpFingerprint :: Lens' KeyPair (Maybe Text)

-- | The friendly name of the SSH key pair.
kpName :: Lens' KeyPair (Maybe Text)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
kpSupportCode :: Lens' KeyPair (Maybe Text)

-- | Describes the Lightsail load balancer.
--   
--   <i>See:</i> <a>loadBalancer</a> smart constructor.
data LoadBalancer

-- | Creates a value of <a>LoadBalancer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbHealthCheckPath</a> - The path you specified to perform your
--   health checks. If no path is specified, the load balancer tries to
--   make a request to the default (root) page.</li>
--   <li><a>lbState</a> - The status of your load balancer. Valid values
--   are below.</li>
--   <li><a>lbResourceType</a> - The resource type (e.g.,
--   <tt>LoadBalancer</tt> .</li>
--   <li><a>lbArn</a> - The Amazon Resource Name (ARN) of the load
--   balancer.</li>
--   <li><a>lbCreatedAt</a> - The date when your load balancer was
--   created.</li>
--   <li><a>lbLocation</a> - The AWS Region where your load balancer was
--   created (e.g., <tt>us-east-2a</tt> ). Lightsail automatically creates
--   your load balancer across Availability Zones.</li>
--   <li><a>lbInstancePort</a> - The port where the load balancer will
--   direct traffic to your Lightsail instances. For HTTP traffic, it's
--   port 80. For HTTPS traffic, it's port 443.</li>
--   <li><a>lbConfigurationOptions</a> - A string to string map of the
--   configuration options for your load balancer. Valid values are listed
--   below.</li>
--   <li><a>lbProtocol</a> - The protocol you have enabled for your load
--   balancer. Valid values are below. You can't just have
--   <tt>HTTP_HTTPS</tt> , but you can have just <tt>HTTP</tt> .</li>
--   <li><a>lbTlsCertificateSummaries</a> - An array of
--   LoadBalancerTlsCertificateSummary objects that provide additional
--   information about the SSL/TLS certificates. For example, if
--   <tt>true</tt> , the certificate is attached to the load balancer.</li>
--   <li><a>lbName</a> - The name of the load balancer (e.g.,
--   <tt>my-load-balancer</tt> ).</li>
--   <li><a>lbSupportCode</a> - The support code. Include this code in your
--   email to support when you have questions about your Lightsail load
--   balancer. This code enables our support team to look up your Lightsail
--   information more easily.</li>
--   <li><a>lbPublicPorts</a> - An array of public port settings for your
--   load balancer. For HTTP, use port 80. For HTTPS, use port 443.</li>
--   <li><a>lbDnsName</a> - The DNS name of your Lightsail load
--   balancer.</li>
--   <li><a>lbInstanceHealthSummary</a> - An array of InstanceHealthSummary
--   objects describing the health of the load balancer.</li>
--   </ul>
loadBalancer :: LoadBalancer

-- | The path you specified to perform your health checks. If no path is
--   specified, the load balancer tries to make a request to the default
--   (root) page.
lbHealthCheckPath :: Lens' LoadBalancer (Maybe Text)

-- | The status of your load balancer. Valid values are below.
lbState :: Lens' LoadBalancer (Maybe LoadBalancerState)

-- | The resource type (e.g., <tt>LoadBalancer</tt> .
lbResourceType :: Lens' LoadBalancer (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the load balancer.
lbArn :: Lens' LoadBalancer (Maybe Text)

-- | The date when your load balancer was created.
lbCreatedAt :: Lens' LoadBalancer (Maybe UTCTime)

-- | The AWS Region where your load balancer was created (e.g.,
--   <tt>us-east-2a</tt> ). Lightsail automatically creates your load
--   balancer across Availability Zones.
lbLocation :: Lens' LoadBalancer (Maybe ResourceLocation)

-- | The port where the load balancer will direct traffic to your Lightsail
--   instances. For HTTP traffic, it's port 80. For HTTPS traffic, it's
--   port 443.
lbInstancePort :: Lens' LoadBalancer (Maybe Int)

-- | A string to string map of the configuration options for your load
--   balancer. Valid values are listed below.
lbConfigurationOptions :: Lens' LoadBalancer (HashMap LoadBalancerAttributeName Text)

-- | The protocol you have enabled for your load balancer. Valid values are
--   below. You can't just have <tt>HTTP_HTTPS</tt> , but you can have just
--   <tt>HTTP</tt> .
lbProtocol :: Lens' LoadBalancer (Maybe LoadBalancerProtocol)

-- | An array of LoadBalancerTlsCertificateSummary objects that provide
--   additional information about the SSL/TLS certificates. For example, if
--   <tt>true</tt> , the certificate is attached to the load balancer.
lbTlsCertificateSummaries :: Lens' LoadBalancer [LoadBalancerTLSCertificateSummary]

-- | The name of the load balancer (e.g., <tt>my-load-balancer</tt> ).
lbName :: Lens' LoadBalancer (Maybe Text)

-- | The support code. Include this code in your email to support when you
--   have questions about your Lightsail load balancer. This code enables
--   our support team to look up your Lightsail information more easily.
lbSupportCode :: Lens' LoadBalancer (Maybe Text)

-- | An array of public port settings for your load balancer. For HTTP, use
--   port 80. For HTTPS, use port 443.
lbPublicPorts :: Lens' LoadBalancer [Natural]

-- | The DNS name of your Lightsail load balancer.
lbDnsName :: Lens' LoadBalancer (Maybe Text)

-- | An array of InstanceHealthSummary objects describing the health of the
--   load balancer.
lbInstanceHealthSummary :: Lens' LoadBalancer [InstanceHealthSummary]

-- | Describes a load balancer SSL/TLS certificate.
--   
--   TLS is just an updated, more secure version of Secure Socket Layer
--   (SSL).
--   
--   <i>See:</i> <a>loadBalancerTLSCertificate</a> smart constructor.
data LoadBalancerTLSCertificate

-- | Creates a value of <a>LoadBalancerTLSCertificate</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbtcFailureReason</a> - The reason for the SSL/TLS certificate
--   validation failure.</li>
--   <li><a>lbtcSubject</a> - The name of the entity that is associated
--   with the public key contained in the certificate.</li>
--   <li><a>lbtcStatus</a> - The status of the SSL/TLS certificate. Valid
--   values are below.</li>
--   <li><a>lbtcSubjectAlternativeNames</a> - One or more domains or
--   subdomains included in the certificate. This list contains the domain
--   names that are bound to the public key that is contained in the
--   certificate. The subject alternative names include the canonical
--   domain name (CNAME) of the certificate and additional domain names
--   that can be used to connect to the website, such as
--   <tt>example.com</tt> , <tt>www.example.com</tt> , or
--   <tt>m.example.com</tt> .</li>
--   <li><a>lbtcResourceType</a> - The resource type (e.g.,
--   <tt>LoadBalancerTlsCertificate</tt> ). * <b><tt>Instance</tt> </b> - A
--   Lightsail instance (a virtual private server) * <b><tt>StaticIp</tt>
--   </b> - A static IP address * <b><tt>KeyPair</tt> </b> - The key pair
--   used to connect to a Lightsail instance * <b><tt>InstanceSnapshot</tt>
--   </b> - A Lightsail instance snapshot * <b><tt>Domain</tt> </b> - A DNS
--   zone * <b><tt>PeeredVpc</tt> </b> - A peered VPC *
--   <b><tt>LoadBalancer</tt> </b> - A Lightsail load balancer *
--   <b><tt>LoadBalancerTlsCertificate</tt> </b> - An SSL/TLS certificate
--   associated with a Lightsail load balancer * <b><tt>Disk</tt> </b> - A
--   Lightsail block storage disk * <b><tt>DiskSnapshot</tt> </b> - A block
--   storage disk snapshot</li>
--   <li><a>lbtcArn</a> - The Amazon Resource Name (ARN) of the SSL/TLS
--   certificate.</li>
--   <li><a>lbtcCreatedAt</a> - The time when you created your SSL/TLS
--   certificate.</li>
--   <li><a>lbtcLocation</a> - The AWS Region and Availability Zone where
--   you created your certificate.</li>
--   <li><a>lbtcLoadBalancerName</a> - The load balancer name where your
--   SSL/TLS certificate is attached.</li>
--   <li><a>lbtcSerial</a> - The serial number of the certificate.</li>
--   <li><a>lbtcIsAttached</a> - When <tt>true</tt> , the SSL/TLS
--   certificate is attached to the Lightsail load balancer.</li>
--   <li><a>lbtcRevokedAt</a> - The timestamp when the SSL/TLS certificate
--   was revoked.</li>
--   <li><a>lbtcNotBefore</a> - The timestamp when the SSL/TLS certificate
--   is first valid.</li>
--   <li><a>lbtcRevocationReason</a> - The reason the certificate was
--   revoked. Valid values are below.</li>
--   <li><a>lbtcDomainName</a> - The domain name for your SSL/TLS
--   certificate.</li>
--   <li><a>lbtcName</a> - The name of the SSL/TLS certificate (e.g.,
--   <tt>my-certificate</tt> ).</li>
--   <li><a>lbtcRenewalSummary</a> - An object containing information about
--   the status of Lightsail's managed renewal for the certificate.</li>
--   <li><a>lbtcSupportCode</a> - The support code. Include this code in
--   your email to support when you have questions about your Lightsail
--   load balancer or SSL/TLS certificate. This code enables our support
--   team to look up your Lightsail information more easily.</li>
--   <li><a>lbtcDomainValidationRecords</a> - An array of
--   LoadBalancerTlsCertificateDomainValidationRecord objects describing
--   the records.</li>
--   <li><a>lbtcIssuedAt</a> - The time when the SSL/TLS certificate was
--   issued.</li>
--   <li><a>lbtcKeyAlgorithm</a> - The algorithm that was used to generate
--   the key pair (the public and private key).</li>
--   <li><a>lbtcSignatureAlgorithm</a> - The algorithm that was used to
--   sign the certificate.</li>
--   <li><a>lbtcIssuer</a> - The issuer of the certificate.</li>
--   <li><a>lbtcNotAfter</a> - The timestamp when the SSL/TLS certificate
--   expires.</li>
--   </ul>
loadBalancerTLSCertificate :: LoadBalancerTLSCertificate

-- | The reason for the SSL/TLS certificate validation failure.
lbtcFailureReason :: Lens' LoadBalancerTLSCertificate (Maybe LoadBalancerTLSCertificateFailureReason)

-- | The name of the entity that is associated with the public key
--   contained in the certificate.
lbtcSubject :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The status of the SSL/TLS certificate. Valid values are below.
lbtcStatus :: Lens' LoadBalancerTLSCertificate (Maybe LoadBalancerTLSCertificateStatus)

-- | One or more domains or subdomains included in the certificate. This
--   list contains the domain names that are bound to the public key that
--   is contained in the certificate. The subject alternative names include
--   the canonical domain name (CNAME) of the certificate and additional
--   domain names that can be used to connect to the website, such as
--   <tt>example.com</tt> , <tt>www.example.com</tt> , or
--   <tt>m.example.com</tt> .
lbtcSubjectAlternativeNames :: Lens' LoadBalancerTLSCertificate [Text]

-- | The resource type (e.g., <tt>LoadBalancerTlsCertificate</tt> ). *
--   <b><tt>Instance</tt> </b> - A Lightsail instance (a virtual private
--   server) * <b><tt>StaticIp</tt> </b> - A static IP address *
--   <b><tt>KeyPair</tt> </b> - The key pair used to connect to a Lightsail
--   instance * <b><tt>InstanceSnapshot</tt> </b> - A Lightsail instance
--   snapshot * <b><tt>Domain</tt> </b> - A DNS zone *
--   <b><tt>PeeredVpc</tt> </b> - A peered VPC * <b><tt>LoadBalancer</tt>
--   </b> - A Lightsail load balancer *
--   <b><tt>LoadBalancerTlsCertificate</tt> </b> - An SSL/TLS certificate
--   associated with a Lightsail load balancer * <b><tt>Disk</tt> </b> - A
--   Lightsail block storage disk * <b><tt>DiskSnapshot</tt> </b> - A block
--   storage disk snapshot
lbtcResourceType :: Lens' LoadBalancerTLSCertificate (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the SSL/TLS certificate.
lbtcArn :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The time when you created your SSL/TLS certificate.
lbtcCreatedAt :: Lens' LoadBalancerTLSCertificate (Maybe UTCTime)

-- | The AWS Region and Availability Zone where you created your
--   certificate.
lbtcLocation :: Lens' LoadBalancerTLSCertificate (Maybe ResourceLocation)

-- | The load balancer name where your SSL/TLS certificate is attached.
lbtcLoadBalancerName :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The serial number of the certificate.
lbtcSerial :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | When <tt>true</tt> , the SSL/TLS certificate is attached to the
--   Lightsail load balancer.
lbtcIsAttached :: Lens' LoadBalancerTLSCertificate (Maybe Bool)

-- | The timestamp when the SSL/TLS certificate was revoked.
lbtcRevokedAt :: Lens' LoadBalancerTLSCertificate (Maybe UTCTime)

-- | The timestamp when the SSL/TLS certificate is first valid.
lbtcNotBefore :: Lens' LoadBalancerTLSCertificate (Maybe UTCTime)

-- | The reason the certificate was revoked. Valid values are below.
lbtcRevocationReason :: Lens' LoadBalancerTLSCertificate (Maybe LoadBalancerTLSCertificateRevocationReason)

-- | The domain name for your SSL/TLS certificate.
lbtcDomainName :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The name of the SSL/TLS certificate (e.g., <tt>my-certificate</tt> ).
lbtcName :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | An object containing information about the status of Lightsail's
--   managed renewal for the certificate.
lbtcRenewalSummary :: Lens' LoadBalancerTLSCertificate (Maybe LoadBalancerTLSCertificateRenewalSummary)

-- | The support code. Include this code in your email to support when you
--   have questions about your Lightsail load balancer or SSL/TLS
--   certificate. This code enables our support team to look up your
--   Lightsail information more easily.
lbtcSupportCode :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | An array of LoadBalancerTlsCertificateDomainValidationRecord objects
--   describing the records.
lbtcDomainValidationRecords :: Lens' LoadBalancerTLSCertificate [LoadBalancerTLSCertificateDomainValidationRecord]

-- | The time when the SSL/TLS certificate was issued.
lbtcIssuedAt :: Lens' LoadBalancerTLSCertificate (Maybe UTCTime)

-- | The algorithm that was used to generate the key pair (the public and
--   private key).
lbtcKeyAlgorithm :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The algorithm that was used to sign the certificate.
lbtcSignatureAlgorithm :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The issuer of the certificate.
lbtcIssuer :: Lens' LoadBalancerTLSCertificate (Maybe Text)

-- | The timestamp when the SSL/TLS certificate expires.
lbtcNotAfter :: Lens' LoadBalancerTLSCertificate (Maybe UTCTime)

-- | Contains information about the domain names on an SSL/TLS certificate
--   that you will use to validate domain ownership.
--   
--   <i>See:</i> <a>loadBalancerTLSCertificateDomainValidationOption</a>
--   smart constructor.
data LoadBalancerTLSCertificateDomainValidationOption

-- | Creates a value of
--   <a>LoadBalancerTLSCertificateDomainValidationOption</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbtcdvoDomainName</a> - The fully qualified domain name in the
--   certificate request.</li>
--   <li><a>lbtcdvoValidationStatus</a> - The status of the domain
--   validation. Valid values are listed below.</li>
--   </ul>
loadBalancerTLSCertificateDomainValidationOption :: LoadBalancerTLSCertificateDomainValidationOption

-- | The fully qualified domain name in the certificate request.
lbtcdvoDomainName :: Lens' LoadBalancerTLSCertificateDomainValidationOption (Maybe Text)

-- | The status of the domain validation. Valid values are listed below.
lbtcdvoValidationStatus :: Lens' LoadBalancerTLSCertificateDomainValidationOption (Maybe LoadBalancerTLSCertificateDomainStatus)

-- | Describes the validation record of each domain name in the SSL/TLS
--   certificate.
--   
--   <i>See:</i> <a>loadBalancerTLSCertificateDomainValidationRecord</a>
--   smart constructor.
data LoadBalancerTLSCertificateDomainValidationRecord

-- | Creates a value of
--   <a>LoadBalancerTLSCertificateDomainValidationRecord</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbtcdvrValue</a> - The value for that type.</li>
--   <li><a>lbtcdvrDomainName</a> - The domain name against which your
--   SSL/TLS certificate was validated.</li>
--   <li><a>lbtcdvrName</a> - A fully qualified domain name in the
--   certificate. For example, <tt>example.com</tt> .</li>
--   <li><a>lbtcdvrValidationStatus</a> - The validation status. Valid
--   values are listed below.</li>
--   <li><a>lbtcdvrType</a> - The type of validation record. For example,
--   <tt>CNAME</tt> for domain validation.</li>
--   </ul>
loadBalancerTLSCertificateDomainValidationRecord :: LoadBalancerTLSCertificateDomainValidationRecord

-- | The value for that type.
lbtcdvrValue :: Lens' LoadBalancerTLSCertificateDomainValidationRecord (Maybe Text)

-- | The domain name against which your SSL/TLS certificate was validated.
lbtcdvrDomainName :: Lens' LoadBalancerTLSCertificateDomainValidationRecord (Maybe Text)

-- | A fully qualified domain name in the certificate. For example,
--   <tt>example.com</tt> .
lbtcdvrName :: Lens' LoadBalancerTLSCertificateDomainValidationRecord (Maybe Text)

-- | The validation status. Valid values are listed below.
lbtcdvrValidationStatus :: Lens' LoadBalancerTLSCertificateDomainValidationRecord (Maybe LoadBalancerTLSCertificateDomainStatus)

-- | The type of validation record. For example, <tt>CNAME</tt> for domain
--   validation.
lbtcdvrType :: Lens' LoadBalancerTLSCertificateDomainValidationRecord (Maybe Text)

-- | Contains information about the status of Lightsail's managed renewal
--   for the certificate.
--   
--   <i>See:</i> <a>loadBalancerTLSCertificateRenewalSummary</a> smart
--   constructor.
data LoadBalancerTLSCertificateRenewalSummary

-- | Creates a value of <a>LoadBalancerTLSCertificateRenewalSummary</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbtcrsRenewalStatus</a> - The status of Lightsail's managed
--   renewal of the certificate. Valid values are listed below.</li>
--   <li><a>lbtcrsDomainValidationOptions</a> - Contains information about
--   the validation of each domain name in the certificate, as it pertains
--   to Lightsail's managed renewal. This is different from the initial
--   validation that occurs as a result of the RequestCertificate
--   request.</li>
--   </ul>
loadBalancerTLSCertificateRenewalSummary :: LoadBalancerTLSCertificateRenewalSummary

-- | The status of Lightsail's managed renewal of the certificate. Valid
--   values are listed below.
lbtcrsRenewalStatus :: Lens' LoadBalancerTLSCertificateRenewalSummary (Maybe LoadBalancerTLSCertificateRenewalStatus)

-- | Contains information about the validation of each domain name in the
--   certificate, as it pertains to Lightsail's managed renewal. This is
--   different from the initial validation that occurs as a result of the
--   RequestCertificate request.
lbtcrsDomainValidationOptions :: Lens' LoadBalancerTLSCertificateRenewalSummary [LoadBalancerTLSCertificateDomainValidationOption]

-- | Provides a summary of SSL/TLS certificate metadata.
--   
--   <i>See:</i> <a>loadBalancerTLSCertificateSummary</a> smart
--   constructor.
data LoadBalancerTLSCertificateSummary

-- | Creates a value of <a>LoadBalancerTLSCertificateSummary</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbtcsIsAttached</a> - When <tt>true</tt> , the SSL/TLS
--   certificate is attached to the Lightsail load balancer.</li>
--   <li><a>lbtcsName</a> - The name of the SSL/TLS certificate.</li>
--   </ul>
loadBalancerTLSCertificateSummary :: LoadBalancerTLSCertificateSummary

-- | When <tt>true</tt> , the SSL/TLS certificate is attached to the
--   Lightsail load balancer.
lbtcsIsAttached :: Lens' LoadBalancerTLSCertificateSummary (Maybe Bool)

-- | The name of the SSL/TLS certificate.
lbtcsName :: Lens' LoadBalancerTLSCertificateSummary (Maybe Text)

-- | Describes the metric data point.
--   
--   <i>See:</i> <a>metricDatapoint</a> smart constructor.
data MetricDatapoint

-- | Creates a value of <a>MetricDatapoint</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mdSampleCount</a> - The sample count.</li>
--   <li><a>mdMaximum</a> - The maximum.</li>
--   <li><a>mdAverage</a> - The average.</li>
--   <li><a>mdMinimum</a> - The minimum.</li>
--   <li><a>mdSum</a> - The sum.</li>
--   <li><a>mdTimestamp</a> - The timestamp (e.g., <tt>1479816991.349</tt>
--   ).</li>
--   <li><a>mdUnit</a> - The unit.</li>
--   </ul>
metricDatapoint :: MetricDatapoint

-- | The sample count.
mdSampleCount :: Lens' MetricDatapoint (Maybe Double)

-- | The maximum.
mdMaximum :: Lens' MetricDatapoint (Maybe Double)

-- | The average.
mdAverage :: Lens' MetricDatapoint (Maybe Double)

-- | The minimum.
mdMinimum :: Lens' MetricDatapoint (Maybe Double)

-- | The sum.
mdSum :: Lens' MetricDatapoint (Maybe Double)

-- | The timestamp (e.g., <tt>1479816991.349</tt> ).
mdTimestamp :: Lens' MetricDatapoint (Maybe UTCTime)

-- | The unit.
mdUnit :: Lens' MetricDatapoint (Maybe MetricUnit)

-- | Describes the monthly data transfer in and out of your virtual private
--   server (or <i>instance</i> ).
--   
--   <i>See:</i> <a>monthlyTransfer</a> smart constructor.
data MonthlyTransfer

-- | Creates a value of <a>MonthlyTransfer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mtGbPerMonthAllocated</a> - The amount allocated per month (in
--   GB).</li>
--   </ul>
monthlyTransfer :: MonthlyTransfer

-- | The amount allocated per month (in GB).
mtGbPerMonthAllocated :: Lens' MonthlyTransfer (Maybe Int)

-- | Describes the API operation.
--   
--   <i>See:</i> <a>operation</a> smart constructor.
data Operation

-- | Creates a value of <a>Operation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oStatus</a> - The status of the operation.</li>
--   <li><a>oOperationDetails</a> - Details about the operation (e.g.,
--   <tt>Debian-1GB-Ohio-1</tt> ).</li>
--   <li><a>oResourceType</a> - The resource type.</li>
--   <li><a>oCreatedAt</a> - The timestamp when the operation was
--   initialized (e.g., <tt>1479816991.349</tt> ).</li>
--   <li><a>oResourceName</a> - The resource name.</li>
--   <li><a>oLocation</a> - The region and Availability Zone.</li>
--   <li><a>oStatusChangedAt</a> - The timestamp when the status was
--   changed (e.g., <tt>1479816991.349</tt> ).</li>
--   <li><a>oErrorDetails</a> - The error details.</li>
--   <li><a>oErrorCode</a> - The error code.</li>
--   <li><a>oId</a> - The ID of the operation.</li>
--   <li><a>oOperationType</a> - The type of operation.</li>
--   <li><a>oIsTerminal</a> - A Boolean value indicating whether the
--   operation is terminal.</li>
--   </ul>
operation :: Operation

-- | The status of the operation.
oStatus :: Lens' Operation (Maybe OperationStatus)

-- | Details about the operation (e.g., <tt>Debian-1GB-Ohio-1</tt> ).
oOperationDetails :: Lens' Operation (Maybe Text)

-- | The resource type.
oResourceType :: Lens' Operation (Maybe ResourceType)

-- | The timestamp when the operation was initialized (e.g.,
--   <tt>1479816991.349</tt> ).
oCreatedAt :: Lens' Operation (Maybe UTCTime)

-- | The resource name.
oResourceName :: Lens' Operation (Maybe Text)

-- | The region and Availability Zone.
oLocation :: Lens' Operation (Maybe ResourceLocation)

-- | The timestamp when the status was changed (e.g.,
--   <tt>1479816991.349</tt> ).
oStatusChangedAt :: Lens' Operation (Maybe UTCTime)

-- | The error details.
oErrorDetails :: Lens' Operation (Maybe Text)

-- | The error code.
oErrorCode :: Lens' Operation (Maybe Text)

-- | The ID of the operation.
oId :: Lens' Operation (Maybe Text)

-- | The type of operation.
oOperationType :: Lens' Operation (Maybe OperationType)

-- | A Boolean value indicating whether the operation is terminal.
oIsTerminal :: Lens' Operation (Maybe Bool)

-- | The password data for the Windows Server-based instance, including the
--   ciphertext and the key pair name.
--   
--   <i>See:</i> <a>passwordData</a> smart constructor.
data PasswordData

-- | Creates a value of <a>PasswordData</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdKeyPairName</a> - The name of the key pair that you used when
--   creating your instance. If no key pair name was specified when
--   creating the instance, Lightsail uses the default key pair
--   (<tt>LightsailDefaultKeyPair</tt> ). If you are using a custom key
--   pair, you need to use your own means of decrypting your password using
--   the <tt>ciphertext</tt> . Lightsail creates the ciphertext by
--   encrypting your password with the public key part of this key
--   pair.</li>
--   <li><a>pdCiphertext</a> - The encrypted password. Ciphertext will be
--   an empty string if access to your new instance is not ready yet. When
--   you create an instance, it can take up to 15 minutes for the instance
--   to be ready.</li>
--   </ul>
passwordData :: PasswordData

-- | The name of the key pair that you used when creating your instance. If
--   no key pair name was specified when creating the instance, Lightsail
--   uses the default key pair (<tt>LightsailDefaultKeyPair</tt> ). If you
--   are using a custom key pair, you need to use your own means of
--   decrypting your password using the <tt>ciphertext</tt> . Lightsail
--   creates the ciphertext by encrypting your password with the public key
--   part of this key pair.
pdKeyPairName :: Lens' PasswordData (Maybe Text)

-- | The encrypted password. Ciphertext will be an empty string if access
--   to your new instance is not ready yet. When you create an instance, it
--   can take up to 15 minutes for the instance to be ready.
pdCiphertext :: Lens' PasswordData (Maybe Text)

-- | Describes information about the ports on your virtual private server
--   (or <i>instance</i> ).
--   
--   <i>See:</i> <a>portInfo</a> smart constructor.
data PortInfo

-- | Creates a value of <a>PortInfo</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>piFromPort</a> - The first port in the range.</li>
--   <li><a>piProtocol</a> - The protocol.</li>
--   <li><a>piToPort</a> - The last port in the range.</li>
--   </ul>
portInfo :: PortInfo

-- | The first port in the range.
piFromPort :: Lens' PortInfo (Maybe Natural)

-- | The protocol.
piProtocol :: Lens' PortInfo (Maybe NetworkProtocol)

-- | The last port in the range.
piToPort :: Lens' PortInfo (Maybe Natural)

-- | Describes the AWS Region.
--   
--   <i>See:</i> <a>regionInfo</a> smart constructor.
data RegionInfo

-- | Creates a value of <a>RegionInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riAvailabilityZones</a> - The Availability Zones. Follows the
--   format <tt>us-east-2a</tt> (case-sensitive).</li>
--   <li><a>riName</a> - The region name (e.g., <tt>us-east-2</tt> ).</li>
--   <li><a>riDisplayName</a> - The display name (e.g., <tt>Ohio</tt>
--   ).</li>
--   <li><a>riContinentCode</a> - The continent code (e.g., <tt>NA</tt> ,
--   meaning North America).</li>
--   <li><a>riDescription</a> - The description of the AWS Region (e.g.,
--   <tt>This region is recommended to serve users in the eastern United
--   States and eastern Canada</tt> ).</li>
--   </ul>
regionInfo :: RegionInfo

-- | The Availability Zones. Follows the format <tt>us-east-2a</tt>
--   (case-sensitive).
riAvailabilityZones :: Lens' RegionInfo [AvailabilityZone]

-- | The region name (e.g., <tt>us-east-2</tt> ).
riName :: Lens' RegionInfo (Maybe RegionName)

-- | The display name (e.g., <tt>Ohio</tt> ).
riDisplayName :: Lens' RegionInfo (Maybe Text)

-- | The continent code (e.g., <tt>NA</tt> , meaning North America).
riContinentCode :: Lens' RegionInfo (Maybe Text)

-- | The description of the AWS Region (e.g., <tt>This region is
--   recommended to serve users in the eastern United States and eastern
--   Canada</tt> ).
riDescription :: Lens' RegionInfo (Maybe Text)

-- | Describes the resource location.
--   
--   <i>See:</i> <a>resourceLocation</a> smart constructor.
data ResourceLocation

-- | Creates a value of <a>ResourceLocation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rlRegionName</a> - The AWS Region name.</li>
--   <li><a>rlAvailabilityZone</a> - The Availability Zone. Follows the
--   format <tt>us-east-2a</tt> (case-sensitive).</li>
--   </ul>
resourceLocation :: ResourceLocation

-- | The AWS Region name.
rlRegionName :: Lens' ResourceLocation (Maybe RegionName)

-- | The Availability Zone. Follows the format <tt>us-east-2a</tt>
--   (case-sensitive).
rlAvailabilityZone :: Lens' ResourceLocation (Maybe Text)

-- | Describes the static IP.
--   
--   <i>See:</i> <a>staticIP</a> smart constructor.
data StaticIP

-- | Creates a value of <a>StaticIP</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siIpAddress</a> - The static IP address.</li>
--   <li><a>siResourceType</a> - The resource type (usually
--   <tt>StaticIp</tt> ).</li>
--   <li><a>siArn</a> - The Amazon Resource Name (ARN) of the static IP
--   (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:StaticIp/9cbb4a9e-f8e3-4dfe-b57e-12345EXAMPLE</tt>
--   ).</li>
--   <li><a>siCreatedAt</a> - The timestamp when the static IP was created
--   (e.g., <tt>1479735304.222</tt> ).</li>
--   <li><a>siLocation</a> - The region and Availability Zone where the
--   static IP was created.</li>
--   <li><a>siIsAttached</a> - A Boolean value indicating whether the
--   static IP is attached.</li>
--   <li><a>siName</a> - The name of the static IP (e.g.,
--   <tt>StaticIP-Ohio-EXAMPLE</tt> ).</li>
--   <li><a>siSupportCode</a> - The support code. Include this code in your
--   email to support when you have questions about an instance or another
--   resource in Lightsail. This code enables our support team to look up
--   your Lightsail information more easily.</li>
--   <li><a>siAttachedTo</a> - The instance where the static IP is attached
--   (e.g., <tt>Amazon_Linux-1GB-Ohio-1</tt> ).</li>
--   </ul>
staticIP :: StaticIP

-- | The static IP address.
siIpAddress :: Lens' StaticIP (Maybe Text)

-- | The resource type (usually <tt>StaticIp</tt> ).
siResourceType :: Lens' StaticIP (Maybe ResourceType)

-- | The Amazon Resource Name (ARN) of the static IP (e.g.,
--   <tt>arn:aws:lightsail:us-east-2:123456789101:StaticIp/9cbb4a9e-f8e3-4dfe-b57e-12345EXAMPLE</tt>
--   ).
siArn :: Lens' StaticIP (Maybe Text)

-- | The timestamp when the static IP was created (e.g.,
--   <tt>1479735304.222</tt> ).
siCreatedAt :: Lens' StaticIP (Maybe UTCTime)

-- | The region and Availability Zone where the static IP was created.
siLocation :: Lens' StaticIP (Maybe ResourceLocation)

-- | A Boolean value indicating whether the static IP is attached.
siIsAttached :: Lens' StaticIP (Maybe Bool)

-- | The name of the static IP (e.g., <tt>StaticIP-Ohio-EXAMPLE</tt> ).
siName :: Lens' StaticIP (Maybe Text)

-- | The support code. Include this code in your email to support when you
--   have questions about an instance or another resource in Lightsail.
--   This code enables our support team to look up your Lightsail
--   information more easily.
siSupportCode :: Lens' StaticIP (Maybe Text)

-- | The instance where the static IP is attached (e.g.,
--   <tt>Amazon_Linux-1GB-Ohio-1</tt> ).
siAttachedTo :: Lens' StaticIP (Maybe Text)
