-- 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.4.5


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 InstanceAccessProtocol
Rdp :: InstanceAccessProtocol
SSH :: InstanceAccessProtocol
data InstanceMetricName
CPUUtilization :: InstanceMetricName
NetworkIn :: InstanceMetricName
NetworkOut :: InstanceMetricName
StatusCheckFailed :: InstanceMetricName
StatusCheckFailedInstance :: InstanceMetricName
StatusCheckFailedSystem :: InstanceMetricName
data InstanceSnapshotState
Available :: InstanceSnapshotState
Error' :: InstanceSnapshotState
Pending :: InstanceSnapshotState
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
data OperationType
AllocateStaticIP :: OperationType
AttachStaticIP :: OperationType
CloseInstancePublicPorts :: OperationType
CreateDomain :: OperationType
CreateInstance :: OperationType
CreateInstanceSnapshot :: OperationType
CreateInstancesFromSnapshot :: OperationType
DeleteDomain :: OperationType
DeleteDomainEntry :: OperationType
DeleteInstance :: OperationType
DeleteInstanceSnapshot :: OperationType
DetachStaticIP :: OperationType
OpenInstancePublicPorts :: OperationType
RebootInstance :: OperationType
ReleaseStaticIP :: OperationType
StartInstance :: OperationType
StopInstance :: OperationType
UpdateDomainEntry :: 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
UsEast1 :: RegionName
UsWest1 :: RegionName
UsWest2 :: RegionName
data ResourceType
Domain :: ResourceType
Instance :: ResourceType
InstanceSnapshot :: ResourceType
KeyPair :: 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.</li>
--   </ul>
availabilityZone :: AvailabilityZone

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

-- | The name of the Availability Zone.
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>bGroup</a> - The group name of the blueprint (e.g.,
--   <tt>amazon-linux</tt> ).</li>
--   <li><a>bMinPower</a> - The minimum machine size required to run this
--   blueprint. <tt>0</tt> indicates that the blueprint runs on all
--   instances.</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 group name of the blueprint (e.g., <tt>amazon-linux</tt> ).
bGroup :: Lens' Blueprint (Maybe Text)

-- | The minimum machine size required to run this blueprint. <tt>0</tt>
--   indicates that the blueprint runs on all instances.
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> - The power of the bundle (e.g., <tt>500</tt>
--   ).</li>
--   <li><a>bunDiskSizeInGb</a> - The size of the SSD (e.g., <tt>30</tt>
--   ).</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)

-- | The power of the bundle (e.g., <tt>500</tt> ).
bunPower :: Lens' Bundle (Maybe Int)

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

-- | 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 the hard disk (an SSD).
--   
--   <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>dResourceType</a> - The resource type of the disk.</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 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> - The attachment state of the disk.</li>
--   <li><a>dName</a> - The 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> - The number of GB in use by the disk.</li>
--   </ul>
disk :: Disk

-- | The resource type of the disk.
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 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)

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

-- | The 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)

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

-- | 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>deName</a> - The name of the domain.</li>
--   <li><a>deId</a> - The ID of the domain recordset entry.</li>
--   <li><a>deOptions</a> - 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> ).</li>
--   </ul>
domainEntry :: DomainEntry

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

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

-- | 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> ).
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-1: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-Virginia-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-1: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-Virginia-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>iadPassword</a> - For RDP access, the temporary password of the
--   Amazon EC2 instance.</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 RDP access, the temporary password of the Amazon EC2 instance.
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 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.</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.
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 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>insArn</a> - The Amazon Resource Name (ARN) of the snapshot
--   (e.g.,
--   <tt>arn:aws:lightsail:us-east-1: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-1: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)

-- | The Amazon Resource Name (ARN) of the snapshot (e.g.,
--   <tt>arn:aws:lightsail:us-east-1: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-1: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-1: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-1: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 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-Virginia-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-Virginia-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)

-- | 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.</li>
--   <li><a>riName</a> - The region name (e.g., <tt>us-east-1</tt> ).</li>
--   <li><a>riDisplayName</a> - The display name (e.g., <tt>Virginia</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.
riAvailabilityZones :: Lens' RegionInfo [AvailabilityZone]

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

-- | The display name (e.g., <tt>Virginia</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.</li>
--   </ul>
resourceLocation :: ResourceLocation

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

-- | The Availability Zone.
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-1: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-Virginia-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-Virginia-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-1: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-Virginia-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-Virginia-1</tt> ).
siAttachedTo :: Lens' StaticIP (Maybe Text)


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.UnpeerVPC.UnpeerVPCResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.UpdateDomainEntry.UpdateDomainEntryResponse


module Network.AWS.Lightsail.Waiters


-- | 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>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

-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.StopInstance.StopInstanceResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.StartInstance.StartInstanceResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.ReleaseStaticIP.ReleaseStaticIPResponse


-- | 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 operation.</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
--   operation.
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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.RebootInstance.RebootInstanceResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.PeerVPC.PeerVPCResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.OpenInstancePublicPorts.OpenInstancePublicPortsResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.IsVPCPeered.IsVPCPeeredResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.ImportKeyPair.ImportKeyPairResponse


-- | Returns information about all static IPs in the user's account.
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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetStaticIPs.GetStaticIPsResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetStaticIP.GetStaticIPResponse


-- | Returns a list of all valid regions for Amazon Lightsail.
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-1a</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-1a</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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetRegions.GetRegionsResponse


-- | 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> - Returns the number of pages of
--   results that remain.</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

-- | Returns the number of pages of results that remain.
gofrrsNextPageCount :: 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetOperationsForResource.GetOperationsForResourceResponse


-- | 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.
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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetOperations.GetOperationsResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetOperation.GetOperationResponse


-- | Returns information about all key pairs in the user's account.
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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetKeyPairs.GetKeyPairsResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetKeyPair.GetKeyPairResponse


-- | Returns information about all Amazon Lightsail virtual private
--   servers, or <i>instances</i> .
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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstances.GetInstancesResponse


-- | 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>getrsState</a> - The state of the instance.</li>
--   <li><a>getrsResponseStatus</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.
getrsState :: Lens' GetInstanceStateResponse (Maybe InstanceState)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
getrsResponseStatus :: 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceState.GetInstanceStateResponse


-- | Returns all instance snapshots for the user's account.
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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceSnapshots.GetInstanceSnapshotsResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceSnapshot.GetInstanceSnapshotResponse


-- | 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 [PortState]

-- | <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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstancePortStates.GetInstancePortStatesResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceMetricData.GetInstanceMetricDataResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstanceAccessDetails.GetInstanceAccessDetailsResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetInstance.GetInstanceResponse


-- | Returns a list of all domains in the user's account.
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>gdsrsNextPageToken</a> - A token used for advancing to the next
--   page of results from your get active names request.</li>
--   <li><a>gdsrsDomains</a> - An array of key-value pairs containing
--   information about each of the domain entries in the user's
--   account.</li>
--   <li><a>gdsrsResponseStatus</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.
gdsrsNextPageToken :: Lens' GetDomainsResponse (Maybe Text)

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

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gdsrsResponseStatus :: 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDomains.GetDomainsResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetDomain.GetDomainResponse


-- | Returns the list of bundles that are available for purchase. A bundle
--   describes the specs for your virtual private server (or
--   <i>instance</i> ).
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>gIncludeInactive</a> - A Boolean value that indicates whether
--   to include inactive bundle results in your request.</li>
--   <li><a>gPageToken</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.
gIncludeInactive :: Lens' GetBundles (Maybe Bool)

-- | A token used for advancing to the next page of results from your get
--   bundles request.
gPageToken :: 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetBundles.GetBundlesResponse


-- | 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.
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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetBlueprints.GetBlueprintsResponse


-- | Returns the names of all active (not deleted) resources.
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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.GetActiveNames.GetActiveNamesResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DownloadDefaultKeyPair.DownloadDefaultKeyPairResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DetachStaticIP.DetachStaticIPResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteKeyPair.DeleteKeyPairResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteInstanceSnapshot.DeleteInstanceSnapshotResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteInstance.DeleteInstanceResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteDomainEntry.DeleteDomainEntryResponse


-- | 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>ddrsOperation</a> - An array of key-value pairs containing
--   information about the results of your delete domain request.</li>
--   <li><a>ddrsResponseStatus</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.
ddrsOperation :: Lens' DeleteDomainResponse (Maybe Operation)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ddrsResponseStatus :: 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.DeleteDomain.DeleteDomainResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateKeyPair.CreateKeyPairResponse


-- | 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>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-1a</tt> (case sensitive).</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)

-- | 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-1a</tt> (case sensitive).
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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateInstancesFromSnapshot.CreateInstancesFromSnapshotResponse


-- | 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> - 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-1a</tt>
--   (case sensitive).</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

-- | 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-1a</tt> (case sensitive).
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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateInstances.CreateInstancesResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateInstanceSnapshot.CreateInstanceSnapshotResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateDomainEntry.CreateDomainEntryResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CreateDomain.CreateDomainResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.CloseInstancePublicPorts.CloseInstancePublicPortsResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.AttachStaticIP.AttachStaticIPResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.Lightsail.AllocateStaticIP.AllocateStaticIPResponse


-- | 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 InstanceAccessProtocol
Rdp :: InstanceAccessProtocol
SSH :: InstanceAccessProtocol
data InstanceMetricName
CPUUtilization :: InstanceMetricName
NetworkIn :: InstanceMetricName
NetworkOut :: InstanceMetricName
StatusCheckFailed :: InstanceMetricName
StatusCheckFailedInstance :: InstanceMetricName
StatusCheckFailedSystem :: InstanceMetricName
data InstanceSnapshotState
Available :: InstanceSnapshotState
Error' :: InstanceSnapshotState
Pending :: InstanceSnapshotState
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
data OperationType
AllocateStaticIP :: OperationType
AttachStaticIP :: OperationType
CloseInstancePublicPorts :: OperationType
CreateDomain :: OperationType
CreateInstance :: OperationType
CreateInstanceSnapshot :: OperationType
CreateInstancesFromSnapshot :: OperationType
DeleteDomain :: OperationType
DeleteDomainEntry :: OperationType
DeleteInstance :: OperationType
DeleteInstanceSnapshot :: OperationType
DetachStaticIP :: OperationType
OpenInstancePublicPorts :: OperationType
RebootInstance :: OperationType
ReleaseStaticIP :: OperationType
StartInstance :: OperationType
StopInstance :: OperationType
UpdateDomainEntry :: 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
UsEast1 :: RegionName
UsWest1 :: RegionName
UsWest2 :: RegionName
data ResourceType
Domain :: ResourceType
Instance :: ResourceType
InstanceSnapshot :: ResourceType
KeyPair :: 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.</li>
--   </ul>
availabilityZone :: AvailabilityZone

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

-- | The name of the Availability Zone.
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>bGroup</a> - The group name of the blueprint (e.g.,
--   <tt>amazon-linux</tt> ).</li>
--   <li><a>bMinPower</a> - The minimum machine size required to run this
--   blueprint. <tt>0</tt> indicates that the blueprint runs on all
--   instances.</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 group name of the blueprint (e.g., <tt>amazon-linux</tt> ).
bGroup :: Lens' Blueprint (Maybe Text)

-- | The minimum machine size required to run this blueprint. <tt>0</tt>
--   indicates that the blueprint runs on all instances.
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> - The power of the bundle (e.g., <tt>500</tt>
--   ).</li>
--   <li><a>bunDiskSizeInGb</a> - The size of the SSD (e.g., <tt>30</tt>
--   ).</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)

-- | The power of the bundle (e.g., <tt>500</tt> ).
bunPower :: Lens' Bundle (Maybe Int)

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

-- | 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 the hard disk (an SSD).
--   
--   <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>dResourceType</a> - The resource type of the disk.</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 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> - The attachment state of the disk.</li>
--   <li><a>dName</a> - The 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> - The number of GB in use by the disk.</li>
--   </ul>
disk :: Disk

-- | The resource type of the disk.
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 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)

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

-- | The 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)

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

-- | 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>deName</a> - The name of the domain.</li>
--   <li><a>deId</a> - The ID of the domain recordset entry.</li>
--   <li><a>deOptions</a> - 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> ).</li>
--   </ul>
domainEntry :: DomainEntry

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

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

-- | 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> ).
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-1: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-Virginia-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-1: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-Virginia-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>iadPassword</a> - For RDP access, the temporary password of the
--   Amazon EC2 instance.</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 RDP access, the temporary password of the Amazon EC2 instance.
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 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.</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.
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 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>insArn</a> - The Amazon Resource Name (ARN) of the snapshot
--   (e.g.,
--   <tt>arn:aws:lightsail:us-east-1: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-1: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)

-- | The Amazon Resource Name (ARN) of the snapshot (e.g.,
--   <tt>arn:aws:lightsail:us-east-1: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-1: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-1: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-1: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 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-Virginia-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-Virginia-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)

-- | 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.</li>
--   <li><a>riName</a> - The region name (e.g., <tt>us-east-1</tt> ).</li>
--   <li><a>riDisplayName</a> - The display name (e.g., <tt>Virginia</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.
riAvailabilityZones :: Lens' RegionInfo [AvailabilityZone]

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

-- | The display name (e.g., <tt>Virginia</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.</li>
--   </ul>
resourceLocation :: ResourceLocation

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

-- | The Availability Zone.
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-1: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-Virginia-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-Virginia-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-1: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-Virginia-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-Virginia-1</tt> ).
siAttachedTo :: Lens' StaticIP (Maybe Text)
