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


-- | Amazon Elastic Compute Cloud 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.EC2</a> or <a>the AWS documentation</a> to get
--   started.
@package amazonka-ec2
@version 1.4.5


module Network.AWS.EC2.Types

-- | API version <tt>2016-11-15</tt> of the Amazon Elastic Compute Cloud
--   SDK configuration.
ec2 :: Service

-- | Custom <tt>Tag</tt> type which has an optional value component.
--   
--   <i>See:</i> <tt>tag</tt> smart constructor.
data DeleteTag
DeleteTag :: !Text -> !(Maybe Text) -> DeleteTag
[_deleteTagKey] :: DeleteTag -> !Text
[_deleteTagValue] :: DeleteTag -> !(Maybe Text)
deleteTag :: Text -> DeleteTag

-- | The key of the tag to delete.
--   
--   Constraints: Tag keys are case-sensitive and accept a maximum of 127
--   Unicode characters. May not begin with 'aws:'
deleteTagKey :: Lens' DeleteTag Text

-- | The optional value of the tag to delete.
--   
--   Constraints: Tag values are case-sensitive and accept a maximum of 255
--   Unicode characters.
deleteTagValue :: Lens' DeleteTag (Maybe Text)
data AccountAttributeName
DefaultVPC :: AccountAttributeName
SupportedPlatforms :: AccountAttributeName
data ActivityStatus
Error' :: ActivityStatus
Fulfilled :: ActivityStatus
PendingFulfillment :: ActivityStatus
PendingTermination :: ActivityStatus
data AddressStatus
InClassic :: AddressStatus
InVPC :: AddressStatus
MoveInProgress :: AddressStatus
data Affinity
ADefault :: Affinity
AHost :: Affinity
data AllocationState
ASAvailable :: AllocationState
ASPermanentFailure :: AllocationState
ASReleased :: AllocationState
ASReleasedPermanentFailure :: AllocationState
ASUnderAssessment :: AllocationState
data AllocationStrategy
Diversified :: AllocationStrategy
LowestPrice :: AllocationStrategy
data ArchitectureValues
I386 :: ArchitectureValues
X86_64 :: ArchitectureValues
data AttachmentStatus
AAttached :: AttachmentStatus
AAttaching :: AttachmentStatus
AAvailable :: AttachmentStatus
ABusy :: AttachmentStatus
ADetached :: AttachmentStatus
ADetaching :: AttachmentStatus
data AutoPlacement
ON :: AutoPlacement
Off :: AutoPlacement
data AvailabilityZoneState
AZSAvailable :: AvailabilityZoneState
AZSImpaired :: AvailabilityZoneState
AZSInformation :: AvailabilityZoneState
AZSUnavailable :: AvailabilityZoneState
data BatchState
BSActive :: BatchState
BSCancelled :: BatchState
BSCancelledRunning :: BatchState
BSCancelledTerminating :: BatchState
BSFailed :: BatchState
BSModifying :: BatchState
BSSubmitted :: BatchState
data BundleTaskState
BTSBundling :: BundleTaskState
BTSCancelling :: BundleTaskState
BTSComplete :: BundleTaskState
BTSFailed :: BundleTaskState
BTSPending :: BundleTaskState
BTSStoring :: BundleTaskState
BTSWaitingForShutdown :: BundleTaskState
data CancelBatchErrorCode
FleetRequestIdDoesNotExist :: CancelBatchErrorCode
FleetRequestIdMalformed :: CancelBatchErrorCode
FleetRequestNotInCancellableState :: CancelBatchErrorCode
UnexpectedError :: CancelBatchErrorCode
data CancelSpotInstanceRequestState
CSIRSActive :: CancelSpotInstanceRequestState
CSIRSCancelled :: CancelSpotInstanceRequestState
CSIRSClosed :: CancelSpotInstanceRequestState
CSIRSCompleted :: CancelSpotInstanceRequestState
CSIRSOpen :: CancelSpotInstanceRequestState
data ContainerFormat
Ova :: ContainerFormat
data ConversionTaskState
CTSActive :: ConversionTaskState
CTSCancelled :: ConversionTaskState
CTSCancelling :: ConversionTaskState
CTSCompleted :: ConversionTaskState
data CurrencyCodeValues
Usd :: CurrencyCodeValues
data DatafeedSubscriptionState
DSSActive :: DatafeedSubscriptionState
DSSInactive :: DatafeedSubscriptionState
data DeviceType
EBS :: DeviceType
InstanceStore :: DeviceType
data DiskImageFormat
Raw :: DiskImageFormat
VHD :: DiskImageFormat
VMDK :: DiskImageFormat
data DomainType
DTStandard :: DomainType
DTVPC :: DomainType
data EventCode
InstanceReboot :: EventCode
InstanceRetirement :: EventCode
InstanceStop :: EventCode
SystemMaintenance :: EventCode
SystemReboot :: EventCode
data EventType
ETError' :: EventType
ETFleetRequestChange :: EventType
ETInstanceChange :: EventType
data ExcessCapacityTerminationPolicy
ECTPDefault :: ExcessCapacityTerminationPolicy
ECTPNoTermination :: ExcessCapacityTerminationPolicy
data ExportEnvironment
Citrix :: ExportEnvironment
Microsoft :: ExportEnvironment
VMware :: ExportEnvironment
data ExportTaskState
ETSActive :: ExportTaskState
ETSCancelled :: ExportTaskState
ETSCancelling :: ExportTaskState
ETSCompleted :: ExportTaskState
data FleetType
FTMaintain :: FleetType
FTRequest :: FleetType
data FlowLogsResourceType
FLRTNetworkInterface :: FlowLogsResourceType
FLRTSubnet :: FlowLogsResourceType
FLRTVPC :: FlowLogsResourceType
data GatewayType
IPsec_1 :: GatewayType
data HostTenancy
HTDedicated :: HostTenancy
HTHost :: HostTenancy
data HypervisorType
Ovm :: HypervisorType
Xen :: HypervisorType
data ImageAttributeName
BlockDeviceMapping :: ImageAttributeName
Description :: ImageAttributeName
Kernel :: ImageAttributeName
LaunchPermission :: ImageAttributeName
ProductCodes :: ImageAttributeName
RAMDisk :: ImageAttributeName
SRIOVNetSupport :: ImageAttributeName
data ImageState
ISAvailable :: ImageState
ISDeregistered :: ImageState
ISError' :: ImageState
ISFailed :: ImageState
ISInvalid :: ImageState
ISPending :: ImageState
ISTransient :: ImageState
data ImageTypeValues
ITVKernel :: ImageTypeValues
ITVMachine :: ImageTypeValues
ITVRAMDisk :: ImageTypeValues
data InstanceAttributeName
IANBlockDeviceMapping :: InstanceAttributeName
IANDisableAPITermination :: InstanceAttributeName
IANEBSOptimized :: InstanceAttributeName
IANEnaSupport :: InstanceAttributeName
IANGroupSet :: InstanceAttributeName
IANInstanceInitiatedShutdownBehavior :: InstanceAttributeName
IANInstanceType :: InstanceAttributeName
IANKernel :: InstanceAttributeName
IANProductCodes :: InstanceAttributeName
IANRAMDisk :: InstanceAttributeName
IANRootDeviceName :: InstanceAttributeName
IANSRIOVNetSupport :: InstanceAttributeName
IANSourceDestCheck :: InstanceAttributeName
IANUserData :: InstanceAttributeName
data InstanceLifecycleType
Scheduled :: InstanceLifecycleType
Spot :: InstanceLifecycleType
data InstanceStateName
ISNPending :: InstanceStateName
ISNRunning :: InstanceStateName
ISNShuttingDown :: InstanceStateName
ISNStopped :: InstanceStateName
ISNStopping :: InstanceStateName
ISNTerminated :: InstanceStateName
data InstanceType
C1_Medium :: InstanceType
C1_XLarge :: InstanceType
C3_2XLarge :: InstanceType
C3_4XLarge :: InstanceType
C3_8XLarge :: InstanceType
C3_Large :: InstanceType
C3_XLarge :: InstanceType
C4_2XLarge :: InstanceType
C4_4XLarge :: InstanceType
C4_8XLarge :: InstanceType
C4_Large :: InstanceType
C4_XLarge :: InstanceType
CC1_4XLarge :: InstanceType
CC2_8XLarge :: InstanceType
CG1_4XLarge :: InstanceType
CR1_8XLarge :: InstanceType
D2_2XLarge :: InstanceType
D2_4XLarge :: InstanceType
D2_8XLarge :: InstanceType
D2_XLarge :: InstanceType
F1_16XLarge :: InstanceType
F1_2XLarge :: InstanceType
G2_2XLarge :: InstanceType
G2_8XLarge :: InstanceType
HI1_4XLarge :: InstanceType
HS1_8XLarge :: InstanceType
I2_2XLarge :: InstanceType
I2_4XLarge :: InstanceType
I2_8XLarge :: InstanceType
I2_XLarge :: InstanceType
M1_Large :: InstanceType
M1_Medium :: InstanceType
M1_Small :: InstanceType
M1_XLarge :: InstanceType
M2_2XLarge :: InstanceType
M2_4XLarge :: InstanceType
M2_XLarge :: InstanceType
M3_2XLarge :: InstanceType
M3_Large :: InstanceType
M3_Medium :: InstanceType
M3_XLarge :: InstanceType
M4_10XLarge :: InstanceType
M4_16XLarge :: InstanceType
M4_2XLarge :: InstanceType
M4_4XLarge :: InstanceType
M4_Large :: InstanceType
M4_XLarge :: InstanceType
P2_16XLarge :: InstanceType
P2_8XLarge :: InstanceType
P2_XLarge :: InstanceType
R3_2XLarge :: InstanceType
R3_4XLarge :: InstanceType
R3_8XLarge :: InstanceType
R3_Large :: InstanceType
R3_XLarge :: InstanceType
T1_Micro :: InstanceType
T2_Large :: InstanceType
T2_Medium :: InstanceType
T2_Micro :: InstanceType
T2_Nano :: InstanceType
T2_Small :: InstanceType
X1_16XLarge :: InstanceType
X1_32XLarge :: InstanceType
data ListingState
LAvailable :: ListingState
LCancelled :: ListingState
LPending :: ListingState
LSold :: ListingState
data ListingStatus
LSActive :: ListingStatus
LSCancelled :: ListingStatus
LSClosed :: ListingStatus
LSPending :: ListingStatus
data MonitoringState
MSDisabled :: MonitoringState
MSDisabling :: MonitoringState
MSEnabled :: MonitoringState
MSPending :: MonitoringState
data MoveStatus
MovingToVPC :: MoveStatus
RestoringToClassic :: MoveStatus
data NatGatewayState
NGSAvailable :: NatGatewayState
NGSDeleted :: NatGatewayState
NGSDeleting :: NatGatewayState
NGSFailed :: NatGatewayState
NGSPending :: NatGatewayState
data NetworkInterfaceAttribute
NIAAttachment :: NetworkInterfaceAttribute
NIADescription :: NetworkInterfaceAttribute
NIAGroupSet :: NetworkInterfaceAttribute
NIASourceDestCheck :: NetworkInterfaceAttribute
data NetworkInterfaceStatus
NISAttaching :: NetworkInterfaceStatus
NISAvailable :: NetworkInterfaceStatus
NISDetaching :: NetworkInterfaceStatus
NISInUse :: NetworkInterfaceStatus
data NetworkInterfaceType
Interface :: NetworkInterfaceType
NatGateway :: NetworkInterfaceType
data OfferingClassType
Convertible :: OfferingClassType
Standard :: OfferingClassType
data OfferingTypeValues
AllUpfront :: OfferingTypeValues
HeavyUtilization :: OfferingTypeValues
LightUtilization :: OfferingTypeValues
MediumUtilization :: OfferingTypeValues
NoUpfront :: OfferingTypeValues
PartialUpfront :: OfferingTypeValues
data OperationType
Add :: OperationType
Remove :: OperationType
data PaymentOption
POAllUpfront :: PaymentOption
PONoUpfront :: PaymentOption
POPartialUpfront :: PaymentOption
data PermissionGroup
All :: PermissionGroup
data PlacementGroupState
Available :: PlacementGroupState
Deleted :: PlacementGroupState
Deleting :: PlacementGroupState
Pending :: PlacementGroupState
data PlacementStrategy
Cluster :: PlacementStrategy
data PlatformValues
Windows :: PlatformValues
data ProductCodeValues
Devpay :: ProductCodeValues
Marketplace :: ProductCodeValues
data RIProductDescription
RIDLinuxUnix :: RIProductDescription
RIDLinuxUnixAmazonVPC :: RIProductDescription
RIDWindows :: RIProductDescription
RIDWindowsAmazonVPC :: RIProductDescription
data RecurringChargeFrequency
Hourly :: RecurringChargeFrequency
data ReportInstanceReasonCodes
InstanceStuckInState :: ReportInstanceReasonCodes
NotAcceptingCredentials :: ReportInstanceReasonCodes
Other :: ReportInstanceReasonCodes
PasswordNotAvailable :: ReportInstanceReasonCodes
PerformanceEBSVolume :: ReportInstanceReasonCodes
PerformanceInstanceStore :: ReportInstanceReasonCodes
PerformanceNetwork :: ReportInstanceReasonCodes
PerformanceOther :: ReportInstanceReasonCodes
Unresponsive :: ReportInstanceReasonCodes
data ReportStatusType
RSTImpaired :: ReportStatusType
RSTOK :: ReportStatusType
data ReservationState
RSActive :: ReservationState
RSPaymentFailed :: ReservationState
RSPaymentPending :: ReservationState
RSRetired :: ReservationState
data ReservedInstanceState
Active :: ReservedInstanceState
PaymentFailed :: ReservedInstanceState
PaymentPending :: ReservedInstanceState
Retired :: ReservedInstanceState
data ResetImageAttributeName
RIANLaunchPermission :: ResetImageAttributeName
data ResourceType
CustomerGateway :: ResourceType
DHCPOptions :: ResourceType
Image :: ResourceType
Instance :: ResourceType
InternetGateway :: ResourceType
NetworkACL :: ResourceType
NetworkInterface :: ResourceType
ReservedInstances :: ResourceType
RouteTable :: ResourceType
SecurityGroup :: ResourceType
Snapshot :: ResourceType
SpotInstancesRequest :: ResourceType
Subnet :: ResourceType
VPC :: ResourceType
VPNConnection :: ResourceType
VPNGateway :: ResourceType
Volume :: ResourceType
data RouteOrigin
CreateRoute :: RouteOrigin
CreateRouteTable :: RouteOrigin
EnableVGWRoutePropagation :: RouteOrigin
data RouteState
RActive :: RouteState
RBlackhole :: RouteState
data RuleAction
Allow :: RuleAction
Deny :: RuleAction
data Scope
AvailabilityZone :: Scope
Region :: Scope
data ShutdownBehavior
Stop :: ShutdownBehavior
Terminate :: ShutdownBehavior
data SnapshotAttributeName
SANCreateVolumePermission :: SnapshotAttributeName
SANProductCodes :: SnapshotAttributeName
data SnapshotState
SSCompleted :: SnapshotState
SSError' :: SnapshotState
SSPending :: SnapshotState
data SpotInstanceState
SISActive :: SpotInstanceState
SISCancelled :: SpotInstanceState
SISClosed :: SpotInstanceState
SISFailed :: SpotInstanceState
SISOpen :: SpotInstanceState
data SpotInstanceType
OneTime :: SpotInstanceType
Persistent :: SpotInstanceType
data State
SAvailable :: State
SDeleted :: State
SDeleting :: State
SPending :: State
data StatusName
Reachability :: StatusName
data StatusType
STFailed :: StatusType
STInitializing :: StatusType
STInsufficientData :: StatusType
STPassed :: StatusType
data SubnetCidrBlockStateCode
Associated :: SubnetCidrBlockStateCode
Associating :: SubnetCidrBlockStateCode
Disassociated :: SubnetCidrBlockStateCode
Disassociating :: SubnetCidrBlockStateCode
Failed :: SubnetCidrBlockStateCode
Failing :: SubnetCidrBlockStateCode
data SubnetState
SubAvailable :: SubnetState
SubPending :: SubnetState
data SummaryStatus
SSImpaired :: SummaryStatus
SSInitializing :: SummaryStatus
SSInsufficientData :: SummaryStatus
SSNotApplicable :: SummaryStatus
SSOK :: SummaryStatus
data TelemetryStatus
Down :: TelemetryStatus
UP :: TelemetryStatus
data Tenancy
Dedicated :: Tenancy
Default :: Tenancy
Host :: Tenancy
data TrafficType
TTAccept :: TrafficType
TTAll :: TrafficType
TTReject :: TrafficType
data VPCAttributeName
EnableDNSHostnames :: VPCAttributeName
EnableDNSSupport :: VPCAttributeName
data VPCCidrBlockStateCode
VCBSCAssociated :: VPCCidrBlockStateCode
VCBSCAssociating :: VPCCidrBlockStateCode
VCBSCDisassociated :: VPCCidrBlockStateCode
VCBSCDisassociating :: VPCCidrBlockStateCode
VCBSCFailed :: VPCCidrBlockStateCode
VCBSCFailing :: VPCCidrBlockStateCode
data VPCPeeringConnectionStateReasonCode
VPCSRCActive :: VPCPeeringConnectionStateReasonCode
VPCSRCDeleted :: VPCPeeringConnectionStateReasonCode
VPCSRCDeleting :: VPCPeeringConnectionStateReasonCode
VPCSRCExpired :: VPCPeeringConnectionStateReasonCode
VPCSRCFailed :: VPCPeeringConnectionStateReasonCode
VPCSRCInitiatingRequest :: VPCPeeringConnectionStateReasonCode
VPCSRCPendingAcceptance :: VPCPeeringConnectionStateReasonCode
VPCSRCProvisioning :: VPCPeeringConnectionStateReasonCode
VPCSRCRejected :: VPCPeeringConnectionStateReasonCode
data VPCState
VPCSAvailable :: VPCState
VPCSPending :: VPCState
data VPNState
VSAvailable :: VPNState
VSDeleted :: VPNState
VSDeleting :: VPNState
VSPending :: VPNState
data VPNStaticRouteSource
Static :: VPNStaticRouteSource
data VirtualizationType
HVM :: VirtualizationType
Paravirtual :: VirtualizationType
data VolumeAttachmentState
VAttached :: VolumeAttachmentState
VAttaching :: VolumeAttachmentState
VBusy :: VolumeAttachmentState
VDetached :: VolumeAttachmentState
VDetaching :: VolumeAttachmentState
data VolumeAttributeName
VANAutoEnableIO :: VolumeAttributeName
VANProductCodes :: VolumeAttributeName
data VolumeState
VAvailable :: VolumeState
VCreating :: VolumeState
VDeleted :: VolumeState
VDeleting :: VolumeState
VError' :: VolumeState
VInUse :: VolumeState
data VolumeStatusInfoStatus
Impaired :: VolumeStatusInfoStatus
InsufficientData :: VolumeStatusInfoStatus
OK :: VolumeStatusInfoStatus
data VolumeStatusName
IOEnabled :: VolumeStatusName
IOPerformance :: VolumeStatusName
data VolumeType
VTGP2 :: VolumeType
VTIO1 :: VolumeType
VTSC1 :: VolumeType
VTST1 :: VolumeType
VTStandard :: VolumeType

-- | Describes an account attribute.
--   
--   <i>See:</i> <a>accountAttribute</a> smart constructor.
data AccountAttribute

-- | Creates a value of <a>AccountAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aaAttributeValues</a> - One or more values for the account
--   attribute.</li>
--   <li><a>aaAttributeName</a> - The name of the account attribute.</li>
--   </ul>
accountAttribute :: AccountAttribute

-- | One or more values for the account attribute.
aaAttributeValues :: Lens' AccountAttribute [AccountAttributeValue]

-- | The name of the account attribute.
aaAttributeName :: Lens' AccountAttribute (Maybe Text)

-- | Describes a value of an account attribute.
--   
--   <i>See:</i> <a>accountAttributeValue</a> smart constructor.
data AccountAttributeValue

-- | Creates a value of <a>AccountAttributeValue</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aavAttributeValue</a> - The value of the attribute.</li>
--   </ul>
accountAttributeValue :: AccountAttributeValue

-- | The value of the attribute.
aavAttributeValue :: Lens' AccountAttributeValue (Maybe Text)

-- | Describes a running instance in a Spot fleet.
--   
--   <i>See:</i> <a>activeInstance</a> smart constructor.
data ActiveInstance

-- | Creates a value of <a>ActiveInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aiInstanceId</a> - The ID of the instance.</li>
--   <li><a>aiInstanceType</a> - The instance type.</li>
--   <li><a>aiSpotInstanceRequestId</a> - The ID of the Spot instance
--   request.</li>
--   </ul>
activeInstance :: ActiveInstance

-- | The ID of the instance.
aiInstanceId :: Lens' ActiveInstance (Maybe Text)

-- | The instance type.
aiInstanceType :: Lens' ActiveInstance (Maybe Text)

-- | The ID of the Spot instance request.
aiSpotInstanceRequestId :: Lens' ActiveInstance (Maybe Text)

-- | Describes an Elastic IP address.
--   
--   <i>See:</i> <a>address</a> smart constructor.
data Address

-- | Creates a value of <a>Address</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aAssociationId</a> - The ID representing the association of the
--   address with an instance in a VPC.</li>
--   <li><a>aInstanceId</a> - The ID of the instance that the address is
--   associated with (if any).</li>
--   <li><a>aNetworkInterfaceOwnerId</a> - The ID of the AWS account that
--   owns the network interface.</li>
--   <li><a>aAllocationId</a> - The ID representing the allocation of the
--   address for use with EC2-VPC.</li>
--   <li><a>aDomain</a> - Indicates whether this Elastic IP address is for
--   use with instances in EC2-Classic (<tt>standard</tt> ) or instances in
--   a VPC (<tt>vpc</tt> ).</li>
--   <li><a>aNetworkInterfaceId</a> - The ID of the network interface.</li>
--   <li><a>aPrivateIPAddress</a> - The private IP address associated with
--   the Elastic IP address.</li>
--   <li><a>aPublicIP</a> - The Elastic IP address.</li>
--   </ul>
address :: Address

-- | The ID representing the association of the address with an instance in
--   a VPC.
aAssociationId :: Lens' Address (Maybe Text)

-- | The ID of the instance that the address is associated with (if any).
aInstanceId :: Lens' Address (Maybe Text)

-- | The ID of the AWS account that owns the network interface.
aNetworkInterfaceOwnerId :: Lens' Address (Maybe Text)

-- | The ID representing the allocation of the address for use with
--   EC2-VPC.
aAllocationId :: Lens' Address (Maybe Text)

-- | Indicates whether this Elastic IP address is for use with instances in
--   EC2-Classic (<tt>standard</tt> ) or instances in a VPC (<tt>vpc</tt>
--   ).
aDomain :: Lens' Address (Maybe DomainType)

-- | The ID of the network interface.
aNetworkInterfaceId :: Lens' Address (Maybe Text)

-- | The private IP address associated with the Elastic IP address.
aPrivateIPAddress :: Lens' Address (Maybe Text)

-- | The Elastic IP address.
aPublicIP :: Lens' Address (Maybe Text)

-- | Describes a value for a resource attribute that is a Boolean value.
--   
--   <i>See:</i> <a>attributeBooleanValue</a> smart constructor.
data AttributeBooleanValue

-- | Creates a value of <a>AttributeBooleanValue</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>abvValue</a> - The attribute value. The valid values are
--   <tt>true</tt> or <tt>false</tt> .</li>
--   </ul>
attributeBooleanValue :: AttributeBooleanValue

-- | The attribute value. The valid values are <tt>true</tt> or
--   <tt>false</tt> .
abvValue :: Lens' AttributeBooleanValue (Maybe Bool)

-- | Describes a value for a resource attribute that is a String.
--   
--   <i>See:</i> <a>attributeValue</a> smart constructor.
data AttributeValue

-- | Creates a value of <a>AttributeValue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avValue</a> - The attribute value. Note that the value is
--   case-sensitive.</li>
--   </ul>
attributeValue :: AttributeValue

-- | The attribute value. Note that the value is case-sensitive.
avValue :: Lens' AttributeValue (Maybe Text)

-- | 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>azRegionName</a> - The name of the region.</li>
--   <li><a>azZoneName</a> - The name of the Availability Zone.</li>
--   <li><a>azMessages</a> - Any messages about the Availability Zone.</li>
--   </ul>
availabilityZone :: AvailabilityZone

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

-- | The name of the region.
azRegionName :: Lens' AvailabilityZone (Maybe Text)

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

-- | Any messages about the Availability Zone.
azMessages :: Lens' AvailabilityZone [AvailabilityZoneMessage]

-- | Describes a message about an Availability Zone.
--   
--   <i>See:</i> <a>availabilityZoneMessage</a> smart constructor.
data AvailabilityZoneMessage

-- | Creates a value of <a>AvailabilityZoneMessage</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>azmMessage</a> - The message about the Availability Zone.</li>
--   </ul>
availabilityZoneMessage :: AvailabilityZoneMessage

-- | The message about the Availability Zone.
azmMessage :: Lens' AvailabilityZoneMessage (Maybe Text)

-- | The capacity information for instances launched onto the Dedicated
--   Host.
--   
--   <i>See:</i> <a>availableCapacity</a> smart constructor.
data AvailableCapacity

-- | Creates a value of <a>AvailableCapacity</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acAvailableInstanceCapacity</a> - The total number of instances
--   that the Dedicated Host supports.</li>
--   <li><a>acAvailableVCPUs</a> - The number of vCPUs available on the
--   Dedicated Host.</li>
--   </ul>
availableCapacity :: AvailableCapacity

-- | The total number of instances that the Dedicated Host supports.
acAvailableInstanceCapacity :: Lens' AvailableCapacity [InstanceCapacity]

-- | The number of vCPUs available on the Dedicated Host.
acAvailableVCPUs :: Lens' AvailableCapacity (Maybe Int)

-- | <i>See:</i> <a>blobAttributeValue</a> smart constructor.
data BlobAttributeValue

-- | Creates a value of <a>BlobAttributeValue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bavValue</a> - Undocumented member.-- <i>Note:</i> This
--   <tt>Lens</tt> automatically encodes and decodes Base64 data. The
--   underlying isomorphism will encode to Base64 representation during
--   serialisation, and decode from Base64 representation during
--   deserialisation. This <tt>Lens</tt> accepts and returns only raw
--   unencoded data.</li>
--   </ul>
blobAttributeValue :: BlobAttributeValue

-- | Undocumented member.-- <i>Note:</i> This <tt>Lens</tt> automatically
--   encodes and decodes Base64 data. The underlying isomorphism will
--   encode to Base64 representation during serialisation, and decode from
--   Base64 representation during deserialisation. This <tt>Lens</tt>
--   accepts and returns only raw unencoded data.
bavValue :: Lens' BlobAttributeValue (Maybe ByteString)

-- | Describes a block device mapping.
--   
--   <i>See:</i> <a>blockDeviceMapping</a> smart constructor.
data BlockDeviceMapping

-- | Creates a value of <a>BlockDeviceMapping</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bdmVirtualName</a> - The virtual device name
--   (<tt>ephemeral</tt> N). Instance store volumes are numbered starting
--   from 0. An instance type with 2 available instance store volumes can
--   specify mappings for <tt>ephemeral0</tt> and <tt>ephemeral1</tt> .The
--   number of available instance store volumes depends on the instance
--   type. After you connect to the instance, you must mount the volume.
--   Constraints: For M3 instances, you must specify instance store volumes
--   in the block device mapping for the instance. When you launch an M3
--   instance, we ignore any instance store volumes specified in the block
--   device mapping for the AMI.</li>
--   <li><a>bdmNoDevice</a> - Suppresses the specified device included in
--   the block device mapping of the AMI.</li>
--   <li><a>bdmEBS</a> - Parameters used to automatically set up EBS
--   volumes when the instance is launched.</li>
--   <li><a>bdmDeviceName</a> - The device name exposed to the instance
--   (for example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).</li>
--   </ul>
blockDeviceMapping :: Text -> BlockDeviceMapping

-- | The virtual device name (<tt>ephemeral</tt> N). Instance store volumes
--   are numbered starting from 0. An instance type with 2 available
--   instance store volumes can specify mappings for <tt>ephemeral0</tt>
--   and <tt>ephemeral1</tt> .The number of available instance store
--   volumes depends on the instance type. After you connect to the
--   instance, you must mount the volume. Constraints: For M3 instances,
--   you must specify instance store volumes in the block device mapping
--   for the instance. When you launch an M3 instance, we ignore any
--   instance store volumes specified in the block device mapping for the
--   AMI.
bdmVirtualName :: Lens' BlockDeviceMapping (Maybe Text)

-- | Suppresses the specified device included in the block device mapping
--   of the AMI.
bdmNoDevice :: Lens' BlockDeviceMapping (Maybe Text)

-- | Parameters used to automatically set up EBS volumes when the instance
--   is launched.
bdmEBS :: Lens' BlockDeviceMapping (Maybe EBSBlockDevice)

-- | The device name exposed to the instance (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).
bdmDeviceName :: Lens' BlockDeviceMapping Text

-- | Describes a bundle task.
--   
--   <i>See:</i> <a>bundleTask</a> smart constructor.
data BundleTask

-- | Creates a value of <a>BundleTask</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>btBundleTaskError</a> - If the task fails, a description of the
--   error.</li>
--   <li><a>btBundleId</a> - The ID of the bundle task.</li>
--   <li><a>btInstanceId</a> - The ID of the instance associated with this
--   bundle task.</li>
--   <li><a>btProgress</a> - The level of task completion, as a percent
--   (for example, 20%).</li>
--   <li><a>btStartTime</a> - The time this task started.</li>
--   <li><a>btState</a> - The state of the task.</li>
--   <li><a>btStorage</a> - The Amazon S3 storage locations.</li>
--   <li><a>btUpdateTime</a> - The time of the most recent update for the
--   task.</li>
--   </ul>
bundleTask :: Text -> Text -> Text -> UTCTime -> BundleTaskState -> Storage -> UTCTime -> BundleTask

-- | If the task fails, a description of the error.
btBundleTaskError :: Lens' BundleTask (Maybe BundleTaskError)

-- | The ID of the bundle task.
btBundleId :: Lens' BundleTask Text

-- | The ID of the instance associated with this bundle task.
btInstanceId :: Lens' BundleTask Text

-- | The level of task completion, as a percent (for example, 20%).
btProgress :: Lens' BundleTask Text

-- | The time this task started.
btStartTime :: Lens' BundleTask UTCTime

-- | The state of the task.
btState :: Lens' BundleTask BundleTaskState

-- | The Amazon S3 storage locations.
btStorage :: Lens' BundleTask Storage

-- | The time of the most recent update for the task.
btUpdateTime :: Lens' BundleTask UTCTime

-- | Describes an error for <tt>BundleInstance</tt> .
--   
--   <i>See:</i> <a>bundleTaskError</a> smart constructor.
data BundleTaskError

-- | Creates a value of <a>BundleTaskError</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bteCode</a> - The error code.</li>
--   <li><a>bteMessage</a> - The error message.</li>
--   </ul>
bundleTaskError :: BundleTaskError

-- | The error code.
bteCode :: Lens' BundleTaskError (Maybe Text)

-- | The error message.
bteMessage :: Lens' BundleTaskError (Maybe Text)

-- | Describes a Spot fleet error.
--   
--   <i>See:</i> <a>cancelSpotFleetRequestsError</a> smart constructor.
data CancelSpotFleetRequestsError

-- | Creates a value of <a>CancelSpotFleetRequestsError</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csfreCode</a> - The error code.</li>
--   <li><a>csfreMessage</a> - The description for the error code.</li>
--   </ul>
cancelSpotFleetRequestsError :: CancelBatchErrorCode -> Text -> CancelSpotFleetRequestsError

-- | The error code.
csfreCode :: Lens' CancelSpotFleetRequestsError CancelBatchErrorCode

-- | The description for the error code.
csfreMessage :: Lens' CancelSpotFleetRequestsError Text

-- | Describes a Spot fleet request that was not successfully canceled.
--   
--   <i>See:</i> <a>cancelSpotFleetRequestsErrorItem</a> smart constructor.
data CancelSpotFleetRequestsErrorItem

-- | Creates a value of <a>CancelSpotFleetRequestsErrorItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csfreiSpotFleetRequestId</a> - The ID of the Spot fleet
--   request.</li>
--   <li><a>csfreiError</a> - The error.</li>
--   </ul>
cancelSpotFleetRequestsErrorItem :: Text -> CancelSpotFleetRequestsError -> CancelSpotFleetRequestsErrorItem

-- | The ID of the Spot fleet request.
csfreiSpotFleetRequestId :: Lens' CancelSpotFleetRequestsErrorItem Text

-- | The error.
csfreiError :: Lens' CancelSpotFleetRequestsErrorItem CancelSpotFleetRequestsError

-- | Describes a Spot fleet request that was successfully canceled.
--   
--   <i>See:</i> <a>cancelSpotFleetRequestsSuccessItem</a> smart
--   constructor.
data CancelSpotFleetRequestsSuccessItem

-- | Creates a value of <a>CancelSpotFleetRequestsSuccessItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csfrsiSpotFleetRequestId</a> - The ID of the Spot fleet
--   request.</li>
--   <li><a>csfrsiCurrentSpotFleetRequestState</a> - The current state of
--   the Spot fleet request.</li>
--   <li><a>csfrsiPreviousSpotFleetRequestState</a> - The previous state of
--   the Spot fleet request.</li>
--   </ul>
cancelSpotFleetRequestsSuccessItem :: Text -> BatchState -> BatchState -> CancelSpotFleetRequestsSuccessItem

-- | The ID of the Spot fleet request.
csfrsiSpotFleetRequestId :: Lens' CancelSpotFleetRequestsSuccessItem Text

-- | The current state of the Spot fleet request.
csfrsiCurrentSpotFleetRequestState :: Lens' CancelSpotFleetRequestsSuccessItem BatchState

-- | The previous state of the Spot fleet request.
csfrsiPreviousSpotFleetRequestState :: Lens' CancelSpotFleetRequestsSuccessItem BatchState

-- | Describes a request to cancel a Spot instance.
--   
--   <i>See:</i> <a>cancelledSpotInstanceRequest</a> smart constructor.
data CancelledSpotInstanceRequest

-- | Creates a value of <a>CancelledSpotInstanceRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csirState</a> - The state of the Spot instance request.</li>
--   <li><a>csirSpotInstanceRequestId</a> - The ID of the Spot instance
--   request.</li>
--   </ul>
cancelledSpotInstanceRequest :: CancelledSpotInstanceRequest

-- | The state of the Spot instance request.
csirState :: Lens' CancelledSpotInstanceRequest (Maybe CancelSpotInstanceRequestState)

-- | The ID of the Spot instance request.
csirSpotInstanceRequestId :: Lens' CancelledSpotInstanceRequest (Maybe Text)

-- | Describes the ClassicLink DNS support status of a VPC.
--   
--   <i>See:</i> <a>classicLinkDNSSupport</a> smart constructor.
data ClassicLinkDNSSupport

-- | Creates a value of <a>ClassicLinkDNSSupport</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cldsVPCId</a> - The ID of the VPC.</li>
--   <li><a>cldsClassicLinkDNSSupported</a> - Indicates whether ClassicLink
--   DNS support is enabled for the VPC.</li>
--   </ul>
classicLinkDNSSupport :: ClassicLinkDNSSupport

-- | The ID of the VPC.
cldsVPCId :: Lens' ClassicLinkDNSSupport (Maybe Text)

-- | Indicates whether ClassicLink DNS support is enabled for the VPC.
cldsClassicLinkDNSSupported :: Lens' ClassicLinkDNSSupport (Maybe Bool)

-- | Describes a linked EC2-Classic instance.
--   
--   <i>See:</i> <a>classicLinkInstance</a> smart constructor.
data ClassicLinkInstance

-- | Creates a value of <a>ClassicLinkInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cliInstanceId</a> - The ID of the instance.</li>
--   <li><a>cliGroups</a> - A list of security groups.</li>
--   <li><a>cliVPCId</a> - The ID of the VPC.</li>
--   <li><a>cliTags</a> - Any tags assigned to the instance.</li>
--   </ul>
classicLinkInstance :: ClassicLinkInstance

-- | The ID of the instance.
cliInstanceId :: Lens' ClassicLinkInstance (Maybe Text)

-- | A list of security groups.
cliGroups :: Lens' ClassicLinkInstance [GroupIdentifier]

-- | The ID of the VPC.
cliVPCId :: Lens' ClassicLinkInstance (Maybe Text)

-- | Any tags assigned to the instance.
cliTags :: Lens' ClassicLinkInstance [Tag]

-- | Describes the client-specific data.
--   
--   <i>See:</i> <a>clientData</a> smart constructor.
data ClientData

-- | Creates a value of <a>ClientData</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdUploadStart</a> - The time that the disk upload starts.</li>
--   <li><a>cdUploadSize</a> - The size of the uploaded disk image, in
--   GiB.</li>
--   <li><a>cdUploadEnd</a> - The time that the disk upload ends.</li>
--   <li><a>cdComment</a> - A user-defined comment about the disk
--   upload.</li>
--   </ul>
clientData :: ClientData

-- | The time that the disk upload starts.
cdUploadStart :: Lens' ClientData (Maybe UTCTime)

-- | The size of the uploaded disk image, in GiB.
cdUploadSize :: Lens' ClientData (Maybe Double)

-- | The time that the disk upload ends.
cdUploadEnd :: Lens' ClientData (Maybe UTCTime)

-- | A user-defined comment about the disk upload.
cdComment :: Lens' ClientData (Maybe Text)

-- | Describes a conversion task.
--   
--   <i>See:</i> <a>conversionTask</a> smart constructor.
data ConversionTask

-- | Creates a value of <a>ConversionTask</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ctImportInstance</a> - If the task is for importing an
--   instance, this contains information about the import instance
--   task.</li>
--   <li><a>ctStatusMessage</a> - The status message related to the
--   conversion task.</li>
--   <li><a>ctImportVolume</a> - If the task is for importing a volume,
--   this contains information about the import volume task.</li>
--   <li><a>ctExpirationTime</a> - The time when the task expires. If the
--   upload isn't complete before the expiration time, we automatically
--   cancel the task.</li>
--   <li><a>ctTags</a> - Any tags assigned to the task.</li>
--   <li><a>ctConversionTaskId</a> - The ID of the conversion task.</li>
--   <li><a>ctState</a> - The state of the conversion task.</li>
--   </ul>
conversionTask :: Text -> ConversionTaskState -> ConversionTask

-- | If the task is for importing an instance, this contains information
--   about the import instance task.
ctImportInstance :: Lens' ConversionTask (Maybe ImportInstanceTaskDetails)

-- | The status message related to the conversion task.
ctStatusMessage :: Lens' ConversionTask (Maybe Text)

-- | If the task is for importing a volume, this contains information about
--   the import volume task.
ctImportVolume :: Lens' ConversionTask (Maybe ImportVolumeTaskDetails)

-- | The time when the task expires. If the upload isn't complete before
--   the expiration time, we automatically cancel the task.
ctExpirationTime :: Lens' ConversionTask (Maybe Text)

-- | Any tags assigned to the task.
ctTags :: Lens' ConversionTask [Tag]

-- | The ID of the conversion task.
ctConversionTaskId :: Lens' ConversionTask Text

-- | The state of the conversion task.
ctState :: Lens' ConversionTask ConversionTaskState

-- | Describes the user or group to be added or removed from the
--   permissions for a volume.
--   
--   <i>See:</i> <a>createVolumePermission</a> smart constructor.
data CreateVolumePermission

-- | Creates a value of <a>CreateVolumePermission</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvpGroup</a> - The specific group that is to be added or
--   removed from a volume's list of create volume permissions.</li>
--   <li><a>cvpUserId</a> - The specific AWS account ID that is to be added
--   or removed from a volume's list of create volume permissions.</li>
--   </ul>
createVolumePermission :: CreateVolumePermission

-- | The specific group that is to be added or removed from a volume's list
--   of create volume permissions.
cvpGroup :: Lens' CreateVolumePermission (Maybe PermissionGroup)

-- | The specific AWS account ID that is to be added or removed from a
--   volume's list of create volume permissions.
cvpUserId :: Lens' CreateVolumePermission (Maybe Text)

-- | Describes modifications to the permissions for a volume.
--   
--   <i>See:</i> <a>createVolumePermissionModifications</a> smart
--   constructor.
data CreateVolumePermissionModifications

-- | Creates a value of <a>CreateVolumePermissionModifications</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvpmRemove</a> - Removes a specific AWS account ID or group
--   from a volume's list of create volume permissions.</li>
--   <li><a>cvpmAdd</a> - Adds a specific AWS account ID or group to a
--   volume's list of create volume permissions.</li>
--   </ul>
createVolumePermissionModifications :: CreateVolumePermissionModifications

-- | Removes a specific AWS account ID or group from a volume's list of
--   create volume permissions.
cvpmRemove :: Lens' CreateVolumePermissionModifications [CreateVolumePermission]

-- | Adds a specific AWS account ID or group to a volume's list of create
--   volume permissions.
cvpmAdd :: Lens' CreateVolumePermissionModifications [CreateVolumePermission]

-- | Describes a customer gateway.
--   
--   <i>See:</i> <a>customerGateway</a> smart constructor.
data CustomerGateway

-- | Creates a value of <a>CustomerGateway</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cgTags</a> - Any tags assigned to the customer gateway.</li>
--   <li><a>cgBGPASN</a> - The customer gateway's Border Gateway Protocol
--   (BGP) Autonomous System Number (ASN).</li>
--   <li><a>cgCustomerGatewayId</a> - The ID of the customer gateway.</li>
--   <li><a>cgIPAddress</a> - The Internet-routable IP address of the
--   customer gateway's outside interface.</li>
--   <li><a>cgState</a> - The current state of the customer gateway
--   (<tt>pending | available | deleting | deleted</tt> ).</li>
--   <li><a>cgType</a> - The type of VPN connection the customer gateway
--   supports (<tt>ipsec.1</tt> ).</li>
--   </ul>
customerGateway :: Text -> Text -> Text -> Text -> Text -> CustomerGateway

-- | Any tags assigned to the customer gateway.
cgTags :: Lens' CustomerGateway [Tag]

-- | The customer gateway's Border Gateway Protocol (BGP) Autonomous System
--   Number (ASN).
cgBGPASN :: Lens' CustomerGateway Text

-- | The ID of the customer gateway.
cgCustomerGatewayId :: Lens' CustomerGateway Text

-- | The Internet-routable IP address of the customer gateway's outside
--   interface.
cgIPAddress :: Lens' CustomerGateway Text

-- | The current state of the customer gateway (<tt>pending | available |
--   deleting | deleted</tt> ).
cgState :: Lens' CustomerGateway Text

-- | The type of VPN connection the customer gateway supports
--   (<tt>ipsec.1</tt> ).
cgType :: Lens' CustomerGateway Text

-- | Describes a DHCP configuration option.
--   
--   <i>See:</i> <a>dhcpConfiguration</a> smart constructor.
data DHCPConfiguration

-- | Creates a value of <a>DHCPConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcValues</a> - One or more values for the DHCP option.</li>
--   <li><a>dcKey</a> - The name of a DHCP option.</li>
--   </ul>
dhcpConfiguration :: DHCPConfiguration

-- | One or more values for the DHCP option.
dcValues :: Lens' DHCPConfiguration [AttributeValue]

-- | The name of a DHCP option.
dcKey :: Lens' DHCPConfiguration (Maybe Text)

-- | Describes a set of DHCP options.
--   
--   <i>See:</i> <a>dhcpOptions</a> smart constructor.
data DHCPOptions

-- | Creates a value of <a>DHCPOptions</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>doDHCPConfigurations</a> - One or more DHCP options in the
--   set.</li>
--   <li><a>doDHCPOptionsId</a> - The ID of the set of DHCP options.</li>
--   <li><a>doTags</a> - Any tags assigned to the DHCP options set.</li>
--   </ul>
dhcpOptions :: DHCPOptions

-- | One or more DHCP options in the set.
doDHCPConfigurations :: Lens' DHCPOptions [DHCPConfiguration]

-- | The ID of the set of DHCP options.
doDHCPOptionsId :: Lens' DHCPOptions (Maybe Text)

-- | Any tags assigned to the DHCP options set.
doTags :: Lens' DHCPOptions [Tag]

-- | Describes a disk image.
--   
--   <i>See:</i> <a>diskImage</a> smart constructor.
data DiskImage

-- | Creates a value of <a>DiskImage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diImage</a> - Information about the disk image.</li>
--   <li><a>diVolume</a> - Information about the volume.</li>
--   <li><a>diDescription</a> - A description of the disk image.</li>
--   </ul>
diskImage :: DiskImage

-- | Information about the disk image.
diImage :: Lens' DiskImage (Maybe DiskImageDetail)

-- | Information about the volume.
diVolume :: Lens' DiskImage (Maybe VolumeDetail)

-- | A description of the disk image.
diDescription :: Lens' DiskImage (Maybe Text)

-- | Describes a disk image.
--   
--   <i>See:</i> <a>diskImageDescription</a> smart constructor.
data DiskImageDescription

-- | Creates a value of <a>DiskImageDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dChecksum</a> - The checksum computed for the disk image.</li>
--   <li><a>dFormat</a> - The disk image format.</li>
--   <li><a>dSize</a> - The size of the disk image, in GiB.</li>
--   <li><a>dImportManifestURL</a> - A presigned URL for the import
--   manifest stored in Amazon S3. For information about creating a
--   presigned URL for an Amazon S3 object, read the "Query String Request
--   Authentication Alternative" section of the <a>Authenticating REST
--   Requests</a> topic in the <i>Amazon Simple Storage Service Developer
--   Guide</i> . For information about the import manifest referenced by
--   this API action, see <a>VM Import Manifest</a> .</li>
--   </ul>
diskImageDescription :: DiskImageFormat -> Integer -> Text -> DiskImageDescription

-- | The checksum computed for the disk image.
dChecksum :: Lens' DiskImageDescription (Maybe Text)

-- | The disk image format.
dFormat :: Lens' DiskImageDescription DiskImageFormat

-- | The size of the disk image, in GiB.
dSize :: Lens' DiskImageDescription Integer

-- | A presigned URL for the import manifest stored in Amazon S3. For
--   information about creating a presigned URL for an Amazon S3 object,
--   read the "Query String Request Authentication Alternative" section of
--   the <a>Authenticating REST Requests</a> topic in the <i>Amazon Simple
--   Storage Service Developer Guide</i> . For information about the import
--   manifest referenced by this API action, see <a>VM Import Manifest</a>
--   .
dImportManifestURL :: Lens' DiskImageDescription Text

-- | Describes a disk image.
--   
--   <i>See:</i> <a>diskImageDetail</a> smart constructor.
data DiskImageDetail

-- | Creates a value of <a>DiskImageDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>didFormat</a> - The disk image format.</li>
--   <li><a>didBytes</a> - The size of the disk image, in GiB.</li>
--   <li><a>didImportManifestURL</a> - A presigned URL for the import
--   manifest stored in Amazon S3 and presented here as an Amazon S3
--   presigned URL. For information about creating a presigned URL for an
--   Amazon S3 object, read the "Query String Request Authentication
--   Alternative" section of the <a>Authenticating REST Requests</a> topic
--   in the <i>Amazon Simple Storage Service Developer Guide</i> . For
--   information about the import manifest referenced by this API action,
--   see <a>VM Import Manifest</a> .</li>
--   </ul>
diskImageDetail :: DiskImageFormat -> Integer -> Text -> DiskImageDetail

-- | The disk image format.
didFormat :: Lens' DiskImageDetail DiskImageFormat

-- | The size of the disk image, in GiB.
didBytes :: Lens' DiskImageDetail Integer

-- | A presigned URL for the import manifest stored in Amazon S3 and
--   presented here as an Amazon S3 presigned URL. For information about
--   creating a presigned URL for an Amazon S3 object, read the "Query
--   String Request Authentication Alternative" section of the
--   <a>Authenticating REST Requests</a> topic in the <i>Amazon Simple
--   Storage Service Developer Guide</i> . For information about the import
--   manifest referenced by this API action, see <a>VM Import Manifest</a>
--   .
didImportManifestURL :: Lens' DiskImageDetail Text

-- | Describes a disk image volume.
--   
--   <i>See:</i> <a>diskImageVolumeDescription</a> smart constructor.
data DiskImageVolumeDescription

-- | Creates a value of <a>DiskImageVolumeDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>divdSize</a> - The size of the volume, in GiB.</li>
--   <li><a>divdId</a> - The volume identifier.</li>
--   </ul>
diskImageVolumeDescription :: Text -> DiskImageVolumeDescription

-- | The size of the volume, in GiB.
divdSize :: Lens' DiskImageVolumeDescription (Maybe Integer)

-- | The volume identifier.
divdId :: Lens' DiskImageVolumeDescription Text

-- | Describes a block device for an EBS volume.
--   
--   <i>See:</i> <a>ebsBlockDevice</a> smart constructor.
data EBSBlockDevice

-- | Creates a value of <a>EBSBlockDevice</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ebdDeleteOnTermination</a> - Indicates whether the EBS volume
--   is deleted on instance termination.</li>
--   <li><a>ebdVolumeSize</a> - The size of the volume, in GiB.
--   Constraints: 1-16384 for General Purpose SSD (<tt>gp2</tt> ), 4-16384
--   for Provisioned IOPS SSD (<tt>io1</tt> ), 500-16384 for Throughput
--   Optimized HDD (<tt>st1</tt> ), 500-16384 for Cold HDD (<tt>sc1</tt> ),
--   and 1-1024 for Magnetic (<tt>standard</tt> ) volumes. If you specify a
--   snapshot, the volume size must be equal to or larger than the snapshot
--   size. Default: If you're creating the volume from a snapshot and don't
--   specify a volume size, the default is the snapshot size.</li>
--   <li><a>ebdIOPS</a> - The number of I<i>O operations per second (IOPS)
--   that the volume supports. For <tt>io1</tt> , this represents the
--   number of IOPS that are provisioned for the volume. For <tt>gp2</tt> ,
--   this represents the baseline performance of the volume and the rate at
--   which the volume accumulates I</i>O credits for bursting. For more
--   information about General Purpose SSD baseline performance, I<i>O
--   credits, and bursting, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for <tt>io1</tt>
--   volumes and 100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This
--   parameter is required for requests to create <tt>io1</tt> volumes; it
--   is not used in requests to create <tt>gp2</tt> , <tt>st1</tt> ,
--   <tt>sc1</tt> , or <tt>standard</tt> volumes.</li>
--   <li><a>ebdEncrypted</a> - Indicates whether the EBS volume is
--   encrypted. Encrypted Amazon EBS volumes may only be attached to
--   instances that support Amazon EBS encryption.</li>
--   <li><a>ebdVolumeType</a> - The volume type: <tt>gp2</tt> ,
--   <tt>io1</tt> , <tt>st1</tt> , <tt>sc1</tt> , or <tt>standard</tt> .
--   Default: <tt>standard</tt></li>
--   <li><a>ebdSnapshotId</a> - The ID of the snapshot.</li>
--   </ul>
ebsBlockDevice :: EBSBlockDevice

-- | Indicates whether the EBS volume is deleted on instance termination.
ebdDeleteOnTermination :: Lens' EBSBlockDevice (Maybe Bool)

-- | The size of the volume, in GiB. Constraints: 1-16384 for General
--   Purpose SSD (<tt>gp2</tt> ), 4-16384 for Provisioned IOPS SSD
--   (<tt>io1</tt> ), 500-16384 for Throughput Optimized HDD (<tt>st1</tt>
--   ), 500-16384 for Cold HDD (<tt>sc1</tt> ), and 1-1024 for Magnetic
--   (<tt>standard</tt> ) volumes. If you specify a snapshot, the volume
--   size must be equal to or larger than the snapshot size. Default: If
--   you're creating the volume from a snapshot and don't specify a volume
--   size, the default is the snapshot size.
ebdVolumeSize :: Lens' EBSBlockDevice (Maybe Int)

-- | The number of I<i>O operations per second (IOPS) that the volume
--   supports. For <tt>io1</tt> , this represents the number of IOPS that
--   are provisioned for the volume. For <tt>gp2</tt> , this represents the
--   baseline performance of the volume and the rate at which the volume
--   accumulates I</i>O credits for bursting. For more information about
--   General Purpose SSD baseline performance, I<i>O credits, and bursting,
--   see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for <tt>io1</tt>
--   volumes and 100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This
--   parameter is required for requests to create <tt>io1</tt> volumes; it
--   is not used in requests to create <tt>gp2</tt> , <tt>st1</tt> ,
--   <tt>sc1</tt> , or <tt>standard</tt> volumes.
ebdIOPS :: Lens' EBSBlockDevice (Maybe Int)

-- | Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS
--   volumes may only be attached to instances that support Amazon EBS
--   encryption.
ebdEncrypted :: Lens' EBSBlockDevice (Maybe Bool)

-- | The volume type: <tt>gp2</tt> , <tt>io1</tt> , <tt>st1</tt> ,
--   <tt>sc1</tt> , or <tt>standard</tt> . Default: <tt>standard</tt>
ebdVolumeType :: Lens' EBSBlockDevice (Maybe VolumeType)

-- | The ID of the snapshot.
ebdSnapshotId :: Lens' EBSBlockDevice (Maybe Text)

-- | Describes a parameter used to set up an EBS volume in a block device
--   mapping.
--   
--   <i>See:</i> <a>ebsInstanceBlockDevice</a> smart constructor.
data EBSInstanceBlockDevice

-- | Creates a value of <a>EBSInstanceBlockDevice</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eibdStatus</a> - The attachment state.</li>
--   <li><a>eibdDeleteOnTermination</a> - Indicates whether the volume is
--   deleted on instance termination.</li>
--   <li><a>eibdVolumeId</a> - The ID of the EBS volume.</li>
--   <li><a>eibdAttachTime</a> - The time stamp when the attachment
--   initiated.</li>
--   </ul>
ebsInstanceBlockDevice :: EBSInstanceBlockDevice

-- | The attachment state.
eibdStatus :: Lens' EBSInstanceBlockDevice (Maybe AttachmentStatus)

-- | Indicates whether the volume is deleted on instance termination.
eibdDeleteOnTermination :: Lens' EBSInstanceBlockDevice (Maybe Bool)

-- | The ID of the EBS volume.
eibdVolumeId :: Lens' EBSInstanceBlockDevice (Maybe Text)

-- | The time stamp when the attachment initiated.
eibdAttachTime :: Lens' EBSInstanceBlockDevice (Maybe UTCTime)

-- | Describes information used to set up an EBS volume specified in a
--   block device mapping.
--   
--   <i>See:</i> <a>ebsInstanceBlockDeviceSpecification</a> smart
--   constructor.
data EBSInstanceBlockDeviceSpecification

-- | Creates a value of <a>EBSInstanceBlockDeviceSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eibdsDeleteOnTermination</a> - Indicates whether the volume is
--   deleted on instance termination.</li>
--   <li><a>eibdsVolumeId</a> - The ID of the EBS volume.</li>
--   </ul>
ebsInstanceBlockDeviceSpecification :: EBSInstanceBlockDeviceSpecification

-- | Indicates whether the volume is deleted on instance termination.
eibdsDeleteOnTermination :: Lens' EBSInstanceBlockDeviceSpecification (Maybe Bool)

-- | The ID of the EBS volume.
eibdsVolumeId :: Lens' EBSInstanceBlockDeviceSpecification (Maybe Text)

-- | Describes an egress-only Internet gateway.
--   
--   <i>See:</i> <a>egressOnlyInternetGateway</a> smart constructor.
data EgressOnlyInternetGateway

-- | Creates a value of <a>EgressOnlyInternetGateway</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eoigEgressOnlyInternetGatewayId</a> - The ID of the egress-only
--   Internet gateway.</li>
--   <li><a>eoigAttachments</a> - Information about the attachment of the
--   egress-only Internet gateway.</li>
--   </ul>
egressOnlyInternetGateway :: EgressOnlyInternetGateway

-- | The ID of the egress-only Internet gateway.
eoigEgressOnlyInternetGatewayId :: Lens' EgressOnlyInternetGateway (Maybe Text)

-- | Information about the attachment of the egress-only Internet gateway.
eoigAttachments :: Lens' EgressOnlyInternetGateway [InternetGatewayAttachment]

-- | Describes a Spot fleet event.
--   
--   <i>See:</i> <a>eventInformation</a> smart constructor.
data EventInformation

-- | Creates a value of <a>EventInformation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eiInstanceId</a> - The ID of the instance. This information is
--   available only for <tt>instanceChange</tt> events.</li>
--   <li><a>eiEventDescription</a> - The description of the event.</li>
--   <li><a>eiEventSubType</a> - The event. The following are the
--   <tt>error</tt> events. * <tt>iamFleetRoleInvalid</tt> - The Spot fleet
--   did not have the required permissions either to launch or terminate an
--   instance. * <tt>launchSpecTemporarilyBlacklisted</tt> - The
--   configuration is not valid and several attempts to launch instances
--   have failed. For more information, see the description of the event. *
--   <tt>spotFleetRequestConfigurationInvalid</tt> - The configuration is
--   not valid. For more information, see the description of the event. *
--   <tt>spotInstanceCountLimitExceeded</tt> - You've reached the limit on
--   the number of Spot instances that you can launch. The following are
--   the <tt>fleetRequestChange</tt> events. * <tt>active</tt> - The Spot
--   fleet has been validated and Amazon EC2 is attempting to maintain the
--   target number of running Spot instances. * <tt>cancelled</tt> - The
--   Spot fleet is canceled and has no running Spot instances. The Spot
--   fleet will be deleted two days after its instances were terminated. *
--   <tt>cancelled_running</tt> - The Spot fleet is canceled and will not
--   launch additional Spot instances, but its existing Spot instances
--   continue to run until they are interrupted or terminated. *
--   <tt>cancelled_terminating</tt> - The Spot fleet is canceled and its
--   Spot instances are terminating. * <tt>expired</tt> - The Spot fleet
--   request has expired. A subsequent event indicates that the instances
--   were terminated, if the request was created with
--   <tt>TerminateInstancesWithExpiration</tt> set. *
--   <tt>modify_in_progress</tt> - A request to modify the Spot fleet
--   request was accepted and is in progress. * <tt>modify_successful</tt>
--   - The Spot fleet request was modified. * <tt>price_update</tt> - The
--   bid price for a launch configuration was adjusted because it was too
--   high. This change is permanent. * <tt>submitted</tt> - The Spot fleet
--   request is being evaluated and Amazon EC2 is preparing to launch the
--   target number of Spot instances. The following are the
--   <tt>instanceChange</tt> events. * <tt>launched</tt> - A bid was
--   fulfilled and a new instance was launched. * <tt>terminated</tt> - An
--   instance was terminated by the user.</li>
--   </ul>
eventInformation :: EventInformation

-- | The ID of the instance. This information is available only for
--   <tt>instanceChange</tt> events.
eiInstanceId :: Lens' EventInformation (Maybe Text)

-- | The description of the event.
eiEventDescription :: Lens' EventInformation (Maybe Text)

-- | The event. The following are the <tt>error</tt> events. *
--   <tt>iamFleetRoleInvalid</tt> - The Spot fleet did not have the
--   required permissions either to launch or terminate an instance. *
--   <tt>launchSpecTemporarilyBlacklisted</tt> - The configuration is not
--   valid and several attempts to launch instances have failed. For more
--   information, see the description of the event. *
--   <tt>spotFleetRequestConfigurationInvalid</tt> - The configuration is
--   not valid. For more information, see the description of the event. *
--   <tt>spotInstanceCountLimitExceeded</tt> - You've reached the limit on
--   the number of Spot instances that you can launch. The following are
--   the <tt>fleetRequestChange</tt> events. * <tt>active</tt> - The Spot
--   fleet has been validated and Amazon EC2 is attempting to maintain the
--   target number of running Spot instances. * <tt>cancelled</tt> - The
--   Spot fleet is canceled and has no running Spot instances. The Spot
--   fleet will be deleted two days after its instances were terminated. *
--   <tt>cancelled_running</tt> - The Spot fleet is canceled and will not
--   launch additional Spot instances, but its existing Spot instances
--   continue to run until they are interrupted or terminated. *
--   <tt>cancelled_terminating</tt> - The Spot fleet is canceled and its
--   Spot instances are terminating. * <tt>expired</tt> - The Spot fleet
--   request has expired. A subsequent event indicates that the instances
--   were terminated, if the request was created with
--   <tt>TerminateInstancesWithExpiration</tt> set. *
--   <tt>modify_in_progress</tt> - A request to modify the Spot fleet
--   request was accepted and is in progress. * <tt>modify_successful</tt>
--   - The Spot fleet request was modified. * <tt>price_update</tt> - The
--   bid price for a launch configuration was adjusted because it was too
--   high. This change is permanent. * <tt>submitted</tt> - The Spot fleet
--   request is being evaluated and Amazon EC2 is preparing to launch the
--   target number of Spot instances. The following are the
--   <tt>instanceChange</tt> events. * <tt>launched</tt> - A bid was
--   fulfilled and a new instance was launched. * <tt>terminated</tt> - An
--   instance was terminated by the user.
eiEventSubType :: Lens' EventInformation (Maybe Text)

-- | Describes an instance export task.
--   
--   <i>See:</i> <a>exportTask</a> smart constructor.
data ExportTask

-- | Creates a value of <a>ExportTask</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etDescription</a> - A description of the resource being
--   exported.</li>
--   <li><a>etExportTaskId</a> - The ID of the export task.</li>
--   <li><a>etExportToS3Task</a> - Information about the export task.</li>
--   <li><a>etInstanceExportDetails</a> - Information about the instance to
--   export.</li>
--   <li><a>etState</a> - The state of the export task.</li>
--   <li><a>etStatusMessage</a> - The status message related to the export
--   task.</li>
--   </ul>
exportTask :: Text -> Text -> ExportToS3Task -> InstanceExportDetails -> ExportTaskState -> Text -> ExportTask

-- | A description of the resource being exported.
etDescription :: Lens' ExportTask Text

-- | The ID of the export task.
etExportTaskId :: Lens' ExportTask Text

-- | Information about the export task.
etExportToS3Task :: Lens' ExportTask ExportToS3Task

-- | Information about the instance to export.
etInstanceExportDetails :: Lens' ExportTask InstanceExportDetails

-- | The state of the export task.
etState :: Lens' ExportTask ExportTaskState

-- | The status message related to the export task.
etStatusMessage :: Lens' ExportTask Text

-- | Describes the format and location for an instance export task.
--   
--   <i>See:</i> <a>exportToS3Task</a> smart constructor.
data ExportToS3Task

-- | Creates a value of <a>ExportToS3Task</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etstS3Key</a> - The encryption key for your S3 bucket.</li>
--   <li><a>etstContainerFormat</a> - The container format used to combine
--   disk images with metadata (such as OVF). If absent, only the disk
--   image is exported.</li>
--   <li><a>etstS3Bucket</a> - The S3 bucket for the destination image. The
--   destination bucket must exist and grant WRITE and READ_ACP permissions
--   to the AWS account <tt>vm-import-export</tt>amazon.com@ .</li>
--   <li><a>etstDiskImageFormat</a> - The format for the exported
--   image.</li>
--   </ul>
exportToS3Task :: ExportToS3Task

-- | The encryption key for your S3 bucket.
etstS3Key :: Lens' ExportToS3Task (Maybe Text)

-- | The container format used to combine disk images with metadata (such
--   as OVF). If absent, only the disk image is exported.
etstContainerFormat :: Lens' ExportToS3Task (Maybe ContainerFormat)

-- | The S3 bucket for the destination image. The destination bucket must
--   exist and grant WRITE and READ_ACP permissions to the AWS account
--   <tt>vm-import-export</tt>amazon.com@ .
etstS3Bucket :: Lens' ExportToS3Task (Maybe Text)

-- | The format for the exported image.
etstDiskImageFormat :: Lens' ExportToS3Task (Maybe DiskImageFormat)

-- | Describes an instance export task.
--   
--   <i>See:</i> <a>exportToS3TaskSpecification</a> smart constructor.
data ExportToS3TaskSpecification

-- | Creates a value of <a>ExportToS3TaskSpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etstsContainerFormat</a> - The container format used to combine
--   disk images with metadata (such as OVF). If absent, only the disk
--   image is exported.</li>
--   <li><a>etstsS3Prefix</a> - The image is written to a single object in
--   the S3 bucket at the S3 key s3prefix + exportTaskId + <a>.</a> +
--   diskImageFormat.</li>
--   <li><a>etstsS3Bucket</a> - The S3 bucket for the destination image.
--   The destination bucket must exist and grant WRITE and READ_ACP
--   permissions to the AWS account <tt>vm-import-export</tt>amazon.com@
--   .</li>
--   <li><a>etstsDiskImageFormat</a> - The format for the exported
--   image.</li>
--   </ul>
exportToS3TaskSpecification :: ExportToS3TaskSpecification

-- | The container format used to combine disk images with metadata (such
--   as OVF). If absent, only the disk image is exported.
etstsContainerFormat :: Lens' ExportToS3TaskSpecification (Maybe ContainerFormat)

-- | The image is written to a single object in the S3 bucket at the S3 key
--   s3prefix + exportTaskId + <a>.</a> + diskImageFormat.
etstsS3Prefix :: Lens' ExportToS3TaskSpecification (Maybe Text)

-- | The S3 bucket for the destination image. The destination bucket must
--   exist and grant WRITE and READ_ACP permissions to the AWS account
--   <tt>vm-import-export</tt>amazon.com@ .
etstsS3Bucket :: Lens' ExportToS3TaskSpecification (Maybe Text)

-- | The format for the exported image.
etstsDiskImageFormat :: Lens' ExportToS3TaskSpecification (Maybe DiskImageFormat)

-- | A filter name and value pair that is used to return a more specific
--   list of results. Filters can be used to match a set of resources by
--   various criteria, such as tags, attributes, or IDs.
--   
--   <i>See:</i> <a>filter'</a> smart constructor.
data Filter

-- | Creates a value of <a>Filter</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fValues</a> - One or more filter values. Filter values are
--   case-sensitive.</li>
--   <li><a>fName</a> - The name of the filter. Filter names are
--   case-sensitive.</li>
--   </ul>
filter' :: Text -> Filter

-- | One or more filter values. Filter values are case-sensitive.
fValues :: Lens' Filter [Text]

-- | The name of the filter. Filter names are case-sensitive.
fName :: Lens' Filter Text

-- | Describes a flow log.
--   
--   <i>See:</i> <a>flowLog</a> smart constructor.
data FlowLog

-- | Creates a value of <a>FlowLog</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>flCreationTime</a> - The date and time the flow log was
--   created.</li>
--   <li><a>flResourceId</a> - The ID of the resource on which the flow log
--   was created.</li>
--   <li><a>flFlowLogStatus</a> - The status of the flow log
--   (<tt>ACTIVE</tt> ).</li>
--   <li><a>flTrafficType</a> - The type of traffic captured for the flow
--   log.</li>
--   <li><a>flDeliverLogsStatus</a> - The status of the logs delivery
--   (<tt>SUCCESS</tt> | <tt>FAILED</tt> ).</li>
--   <li><a>flDeliverLogsErrorMessage</a> - Information about the error
--   that occurred. <tt>Rate limited</tt> indicates that CloudWatch logs
--   throttling has been applied for one or more network interfaces, or
--   that you've reached the limit on the number of CloudWatch Logs log
--   groups that you can create. <tt>Access error</tt> indicates that the
--   IAM role associated with the flow log does not have sufficient
--   permissions to publish to CloudWatch Logs. <tt>Unknown error</tt>
--   indicates an internal error.</li>
--   <li><a>flLogGroupName</a> - The name of the flow log group.</li>
--   <li><a>flDeliverLogsPermissionARN</a> - The ARN of the IAM role that
--   posts logs to CloudWatch Logs.</li>
--   <li><a>flFlowLogId</a> - The flow log ID.</li>
--   </ul>
flowLog :: FlowLog

-- | The date and time the flow log was created.
flCreationTime :: Lens' FlowLog (Maybe UTCTime)

-- | The ID of the resource on which the flow log was created.
flResourceId :: Lens' FlowLog (Maybe Text)

-- | The status of the flow log (<tt>ACTIVE</tt> ).
flFlowLogStatus :: Lens' FlowLog (Maybe Text)

-- | The type of traffic captured for the flow log.
flTrafficType :: Lens' FlowLog (Maybe TrafficType)

-- | The status of the logs delivery (<tt>SUCCESS</tt> | <tt>FAILED</tt> ).
flDeliverLogsStatus :: Lens' FlowLog (Maybe Text)

-- | Information about the error that occurred. <tt>Rate limited</tt>
--   indicates that CloudWatch logs throttling has been applied for one or
--   more network interfaces, or that you've reached the limit on the
--   number of CloudWatch Logs log groups that you can create. <tt>Access
--   error</tt> indicates that the IAM role associated with the flow log
--   does not have sufficient permissions to publish to CloudWatch Logs.
--   <tt>Unknown error</tt> indicates an internal error.
flDeliverLogsErrorMessage :: Lens' FlowLog (Maybe Text)

-- | The name of the flow log group.
flLogGroupName :: Lens' FlowLog (Maybe Text)

-- | The ARN of the IAM role that posts logs to CloudWatch Logs.
flDeliverLogsPermissionARN :: Lens' FlowLog (Maybe Text)

-- | The flow log ID.
flFlowLogId :: Lens' FlowLog (Maybe Text)

-- | Describes a security group.
--   
--   <i>See:</i> <a>groupIdentifier</a> smart constructor.
data GroupIdentifier

-- | Creates a value of <a>GroupIdentifier</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>giGroupId</a> - The ID of the security group.</li>
--   <li><a>giGroupName</a> - The name of the security group.</li>
--   </ul>
groupIdentifier :: GroupIdentifier

-- | The ID of the security group.
giGroupId :: Lens' GroupIdentifier (Maybe Text)

-- | The name of the security group.
giGroupName :: Lens' GroupIdentifier (Maybe Text)

-- | Describes an event in the history of the Spot fleet request.
--   
--   <i>See:</i> <a>historyRecord</a> smart constructor.
data HistoryRecord

-- | Creates a value of <a>HistoryRecord</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hrTimestamp</a> - The date and time of the event, in UTC format
--   (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i>
--   :<i>SS</i> Z).</li>
--   <li><a>hrEventType</a> - The event type. * <tt>error</tt> - Indicates
--   an error with the Spot fleet request. * <tt>fleetRequestChange</tt> -
--   Indicates a change in the status or configuration of the Spot fleet
--   request. * <tt>instanceChange</tt> - Indicates that an instance was
--   launched or terminated.</li>
--   <li><a>hrEventInformation</a> - Information about the event.</li>
--   </ul>
historyRecord :: UTCTime -> EventType -> EventInformation -> HistoryRecord

-- | The date and time of the event, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
hrTimestamp :: Lens' HistoryRecord UTCTime

-- | The event type. * <tt>error</tt> - Indicates an error with the Spot
--   fleet request. * <tt>fleetRequestChange</tt> - Indicates a change in
--   the status or configuration of the Spot fleet request. *
--   <tt>instanceChange</tt> - Indicates that an instance was launched or
--   terminated.
hrEventType :: Lens' HistoryRecord EventType

-- | Information about the event.
hrEventInformation :: Lens' HistoryRecord EventInformation

-- | Describes the properties of the Dedicated Host.
--   
--   <i>See:</i> <a>host</a> smart constructor.
data Host

-- | Creates a value of <a>Host</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hState</a> - The Dedicated Host's state.</li>
--   <li><a>hClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure idempotency of the request. For more information,
--   see <a>How to Ensure Idempotency</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i> .</li>
--   <li><a>hHostId</a> - The ID of the Dedicated Host.</li>
--   <li><a>hAvailableCapacity</a> - The number of new instances that can
--   be launched onto the Dedicated Host.</li>
--   <li><a>hHostReservationId</a> - The reservation ID of the Dedicated
--   Host. This returns a <tt>null</tt> response if the Dedicated Host
--   doesn't have an associated reservation.</li>
--   <li><a>hHostProperties</a> - The hardware specifications of the
--   Dedicated Host.</li>
--   <li><a>hAvailabilityZone</a> - The Availability Zone of the Dedicated
--   Host.</li>
--   <li><a>hInstances</a> - The IDs and instance type that are currently
--   running on the Dedicated Host.</li>
--   <li><a>hAutoPlacement</a> - Whether auto-placement is on or off.</li>
--   </ul>
host :: Host

-- | The Dedicated Host's state.
hState :: Lens' Host (Maybe AllocationState)

-- | Unique, case-sensitive identifier you provide to ensure idempotency of
--   the request. For more information, see <a>How to Ensure
--   Idempotency</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
--   .
hClientToken :: Lens' Host (Maybe Text)

-- | The ID of the Dedicated Host.
hHostId :: Lens' Host (Maybe Text)

-- | The number of new instances that can be launched onto the Dedicated
--   Host.
hAvailableCapacity :: Lens' Host (Maybe AvailableCapacity)

-- | The reservation ID of the Dedicated Host. This returns a <tt>null</tt>
--   response if the Dedicated Host doesn't have an associated reservation.
hHostReservationId :: Lens' Host (Maybe Text)

-- | The hardware specifications of the Dedicated Host.
hHostProperties :: Lens' Host (Maybe HostProperties)

-- | The Availability Zone of the Dedicated Host.
hAvailabilityZone :: Lens' Host (Maybe Text)

-- | The IDs and instance type that are currently running on the Dedicated
--   Host.
hInstances :: Lens' Host [HostInstance]

-- | Whether auto-placement is on or off.
hAutoPlacement :: Lens' Host (Maybe AutoPlacement)

-- | Describes an instance running on a Dedicated Host.
--   
--   <i>See:</i> <a>hostInstance</a> smart constructor.
data HostInstance

-- | Creates a value of <a>HostInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hiInstanceId</a> - the IDs of instances that are running on the
--   Dedicated Host.</li>
--   <li><a>hiInstanceType</a> - The instance type size (for example,
--   <tt>m3.medium</tt> ) of the running instance.</li>
--   </ul>
hostInstance :: HostInstance

-- | the IDs of instances that are running on the Dedicated Host.
hiInstanceId :: Lens' HostInstance (Maybe Text)

-- | The instance type size (for example, <tt>m3.medium</tt> ) of the
--   running instance.
hiInstanceType :: Lens' HostInstance (Maybe Text)

-- | Details about the Dedicated Host Reservation offering.
--   
--   <i>See:</i> <a>hostOffering</a> smart constructor.
data HostOffering

-- | Creates a value of <a>HostOffering</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hoInstanceFamily</a> - The instance family of the
--   offering.</li>
--   <li><a>hoCurrencyCode</a> - The currency of the offering.</li>
--   <li><a>hoHourlyPrice</a> - The hourly price of the offering.</li>
--   <li><a>hoUpfrontPrice</a> - The upfront price of the offering. Does
--   not apply to No Upfront offerings.</li>
--   <li><a>hoOfferingId</a> - The ID of the offering.</li>
--   <li><a>hoDuration</a> - The duration of the offering (in
--   seconds).</li>
--   <li><a>hoPaymentOption</a> - The available payment option.</li>
--   </ul>
hostOffering :: HostOffering

-- | The instance family of the offering.
hoInstanceFamily :: Lens' HostOffering (Maybe Text)

-- | The currency of the offering.
hoCurrencyCode :: Lens' HostOffering (Maybe CurrencyCodeValues)

-- | The hourly price of the offering.
hoHourlyPrice :: Lens' HostOffering (Maybe Text)

-- | The upfront price of the offering. Does not apply to No Upfront
--   offerings.
hoUpfrontPrice :: Lens' HostOffering (Maybe Text)

-- | The ID of the offering.
hoOfferingId :: Lens' HostOffering (Maybe Text)

-- | The duration of the offering (in seconds).
hoDuration :: Lens' HostOffering (Maybe Int)

-- | The available payment option.
hoPaymentOption :: Lens' HostOffering (Maybe PaymentOption)

-- | Describes properties of a Dedicated Host.
--   
--   <i>See:</i> <a>hostProperties</a> smart constructor.
data HostProperties

-- | Creates a value of <a>HostProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hpInstanceType</a> - The instance type size that the Dedicated
--   Host supports (for example, <tt>m3.medium</tt> ).</li>
--   <li><a>hpTotalVCPUs</a> - The number of vCPUs on the Dedicated
--   Host.</li>
--   <li><a>hpCores</a> - The number of cores on the Dedicated Host.</li>
--   <li><a>hpSockets</a> - The number of sockets on the Dedicated
--   Host.</li>
--   </ul>
hostProperties :: HostProperties

-- | The instance type size that the Dedicated Host supports (for example,
--   <tt>m3.medium</tt> ).
hpInstanceType :: Lens' HostProperties (Maybe Text)

-- | The number of vCPUs on the Dedicated Host.
hpTotalVCPUs :: Lens' HostProperties (Maybe Int)

-- | The number of cores on the Dedicated Host.
hpCores :: Lens' HostProperties (Maybe Int)

-- | The number of sockets on the Dedicated Host.
hpSockets :: Lens' HostProperties (Maybe Int)

-- | Details about the Dedicated Host Reservation and associated Dedicated
--   Hosts.
--   
--   <i>See:</i> <a>hostReservation</a> smart constructor.
data HostReservation

-- | Creates a value of <a>HostReservation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hrState</a> - The state of the reservation.</li>
--   <li><a>hrInstanceFamily</a> - The instance family of the Dedicated
--   Host Reservation. The instance family on the Dedicated Host must be
--   the same in order for it to benefit from the reservation.</li>
--   <li><a>hrCurrencyCode</a> - The currency in which the
--   <tt>upfrontPrice</tt> and <tt>hourlyPrice</tt> amounts are specified.
--   At this time, the only supported currency is <tt>USD</tt> .</li>
--   <li><a>hrHostReservationId</a> - The ID of the reservation that
--   specifies the associated Dedicated Hosts.</li>
--   <li><a>hrStart</a> - The date and time that the reservation
--   started.</li>
--   <li><a>hrHourlyPrice</a> - The hourly price of the reservation.</li>
--   <li><a>hrCount</a> - The number of Dedicated Hosts the reservation is
--   associated with.</li>
--   <li><a>hrUpfrontPrice</a> - The upfront price of the reservation.</li>
--   <li><a>hrEnd</a> - The date and time that the reservation ends.</li>
--   <li><a>hrHostIdSet</a> - The IDs of the Dedicated Hosts associated
--   with the reservation.</li>
--   <li><a>hrOfferingId</a> - The ID of the reservation. This remains the
--   same regardless of which Dedicated Hosts are associated with it.</li>
--   <li><a>hrDuration</a> - The length of the reservation's term,
--   specified in seconds. Can be <tt>31536000 (1 year)</tt> | <tt>94608000
--   (3 years)</tt> .</li>
--   <li><a>hrPaymentOption</a> - The payment option selected for this
--   reservation.</li>
--   </ul>
hostReservation :: HostReservation

-- | The state of the reservation.
hrState :: Lens' HostReservation (Maybe ReservationState)

-- | The instance family of the Dedicated Host Reservation. The instance
--   family on the Dedicated Host must be the same in order for it to
--   benefit from the reservation.
hrInstanceFamily :: Lens' HostReservation (Maybe Text)

-- | The currency in which the <tt>upfrontPrice</tt> and
--   <tt>hourlyPrice</tt> amounts are specified. At this time, the only
--   supported currency is <tt>USD</tt> .
hrCurrencyCode :: Lens' HostReservation (Maybe CurrencyCodeValues)

-- | The ID of the reservation that specifies the associated Dedicated
--   Hosts.
hrHostReservationId :: Lens' HostReservation (Maybe Text)

-- | The date and time that the reservation started.
hrStart :: Lens' HostReservation (Maybe UTCTime)

-- | The hourly price of the reservation.
hrHourlyPrice :: Lens' HostReservation (Maybe Text)

-- | The number of Dedicated Hosts the reservation is associated with.
hrCount :: Lens' HostReservation (Maybe Int)

-- | The upfront price of the reservation.
hrUpfrontPrice :: Lens' HostReservation (Maybe Text)

-- | The date and time that the reservation ends.
hrEnd :: Lens' HostReservation (Maybe UTCTime)

-- | The IDs of the Dedicated Hosts associated with the reservation.
hrHostIdSet :: Lens' HostReservation [Text]

-- | The ID of the reservation. This remains the same regardless of which
--   Dedicated Hosts are associated with it.
hrOfferingId :: Lens' HostReservation (Maybe Text)

-- | The length of the reservation's term, specified in seconds. Can be
--   <tt>31536000 (1 year)</tt> | <tt>94608000 (3 years)</tt> .
hrDuration :: Lens' HostReservation (Maybe Int)

-- | The payment option selected for this reservation.
hrPaymentOption :: Lens' HostReservation (Maybe PaymentOption)

-- | Describes an IAM instance profile.
--   
--   <i>See:</i> <a>iamInstanceProfile</a> smart constructor.
data IAMInstanceProfile

-- | Creates a value of <a>IAMInstanceProfile</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iapARN</a> - The Amazon Resource Name (ARN) of the instance
--   profile.</li>
--   <li><a>iapId</a> - The ID of the instance profile.</li>
--   </ul>
iamInstanceProfile :: IAMInstanceProfile

-- | The Amazon Resource Name (ARN) of the instance profile.
iapARN :: Lens' IAMInstanceProfile (Maybe Text)

-- | The ID of the instance profile.
iapId :: Lens' IAMInstanceProfile (Maybe Text)

-- | Describes an IAM instance profile.
--   
--   <i>See:</i> <a>iamInstanceProfileSpecification</a> smart constructor.
data IAMInstanceProfileSpecification

-- | Creates a value of <a>IAMInstanceProfileSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iapsARN</a> - The Amazon Resource Name (ARN) of the instance
--   profile.</li>
--   <li><a>iapsName</a> - The name of the instance profile.</li>
--   </ul>
iamInstanceProfileSpecification :: IAMInstanceProfileSpecification

-- | The Amazon Resource Name (ARN) of the instance profile.
iapsARN :: Lens' IAMInstanceProfileSpecification (Maybe Text)

-- | The name of the instance profile.
iapsName :: Lens' IAMInstanceProfileSpecification (Maybe Text)

-- | Describes the ICMP type and code.
--   
--   <i>See:</i> <a>icmpTypeCode</a> smart constructor.
data ICMPTypeCode

-- | Creates a value of <a>ICMPTypeCode</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>itcCode</a> - The ICMP code. A value of -1 means all codes for
--   the specified ICMP type.</li>
--   <li><a>itcType</a> - The ICMP type. A value of -1 means all
--   types.</li>
--   </ul>
icmpTypeCode :: ICMPTypeCode

-- | The ICMP code. A value of -1 means all codes for the specified ICMP
--   type.
itcCode :: Lens' ICMPTypeCode (Maybe Int)

-- | The ICMP type. A value of -1 means all types.
itcType :: Lens' ICMPTypeCode (Maybe Int)

-- | Describes a security group rule.
--   
--   <i>See:</i> <a>ipPermission</a> smart constructor.
data IPPermission

-- | Creates a value of <a>IPPermission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ipFromPort</a> - The start of port range for the TCP and UDP
--   protocols, or an ICMP<i>ICMPv6 type number. A value of <tt>-1</tt>
--   indicates all ICMP</i>ICMPv6 types.</li>
--   <li><a>ipUserIdGroupPairs</a> - One or more security group and AWS
--   account ID pairs.</li>
--   <li><a>ipPrefixListIds</a> - (Valid for
--   <tt>AuthorizeSecurityGroupEgress</tt> ,
--   <tt>RevokeSecurityGroupEgress</tt> and <tt>DescribeSecurityGroups</tt>
--   only) One or more prefix list IDs for an AWS service. In an
--   <tt>AuthorizeSecurityGroupEgress</tt> request, this is the AWS service
--   that you want to access through a VPC endpoint from instances
--   associated with the security group.</li>
--   <li><a>ipToPort</a> - The end of port range for the TCP and UDP
--   protocols, or an ICMP<i>ICMPv6 code. A value of <tt>-1</tt> indicates
--   all ICMP</i>ICMPv6 codes for the specified ICMP type.</li>
--   <li><a>ipIPv6Ranges</a> - [EC2-VPC only] One or more IPv6 ranges.</li>
--   <li><a>ipIPRanges</a> - One or more IPv4 ranges.</li>
--   <li><a>ipIPProtocol</a> - The IP protocol name (<tt>tcp</tt> ,
--   <tt>udp</tt> , <tt>icmp</tt> ) or number (see <a>Protocol Numbers</a>
--   ). [EC2-VPC only] Use <tt>-1</tt> to specify all protocols. When
--   authorizing security group rules, specifying <tt>-1</tt> or a protocol
--   number other than <tt>tcp</tt> , <tt>udp</tt> , <tt>icmp</tt> , or
--   <tt>58</tt> (ICMPv6) allows traffic on all ports, regardless of any
--   port range you specify. For <tt>tcp</tt> , <tt>udp</tt> , and
--   <tt>icmp</tt> , you must specify a port range. For <tt>58</tt>
--   (ICMPv6), you can optionally specify a port range; if you don't,
--   traffic for all types and codes is allowed when authorizing
--   rules.</li>
--   </ul>
ipPermission :: Text -> IPPermission

-- | The start of port range for the TCP and UDP protocols, or an
--   ICMP<i>ICMPv6 type number. A value of <tt>-1</tt> indicates all
--   ICMP</i>ICMPv6 types.
ipFromPort :: Lens' IPPermission (Maybe Int)

-- | One or more security group and AWS account ID pairs.
ipUserIdGroupPairs :: Lens' IPPermission [UserIdGroupPair]

-- | (Valid for <tt>AuthorizeSecurityGroupEgress</tt> ,
--   <tt>RevokeSecurityGroupEgress</tt> and <tt>DescribeSecurityGroups</tt>
--   only) One or more prefix list IDs for an AWS service. In an
--   <tt>AuthorizeSecurityGroupEgress</tt> request, this is the AWS service
--   that you want to access through a VPC endpoint from instances
--   associated with the security group.
ipPrefixListIds :: Lens' IPPermission [PrefixListId]

-- | The end of port range for the TCP and UDP protocols, or an
--   ICMP<i>ICMPv6 code. A value of <tt>-1</tt> indicates all
--   ICMP</i>ICMPv6 codes for the specified ICMP type.
ipToPort :: Lens' IPPermission (Maybe Int)

-- | <ul>
--   <li><i>EC2-VPC only</i> One or more IPv6 ranges.</li>
--   </ul>
ipIPv6Ranges :: Lens' IPPermission [IPv6Range]

-- | One or more IPv4 ranges.
ipIPRanges :: Lens' IPPermission [IPRange]

-- | The IP protocol name (<tt>tcp</tt> , <tt>udp</tt> , <tt>icmp</tt> ) or
--   number (see <a>Protocol Numbers</a> ). [EC2-VPC only] Use <tt>-1</tt>
--   to specify all protocols. When authorizing security group rules,
--   specifying <tt>-1</tt> or a protocol number other than <tt>tcp</tt> ,
--   <tt>udp</tt> , <tt>icmp</tt> , or <tt>58</tt> (ICMPv6) allows traffic
--   on all ports, regardless of any port range you specify. For
--   <tt>tcp</tt> , <tt>udp</tt> , and <tt>icmp</tt> , you must specify a
--   port range. For <tt>58</tt> (ICMPv6), you can optionally specify a
--   port range; if you don't, traffic for all types and codes is allowed
--   when authorizing rules.
ipIPProtocol :: Lens' IPPermission Text

-- | Describes an IPv4 range.
--   
--   <i>See:</i> <a>ipRange</a> smart constructor.
data IPRange

-- | Creates a value of <a>IPRange</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>irCidrIP</a> - The IPv4 CIDR range. You can either specify a
--   CIDR range or a source security group, not both. To specify a single
--   IPv4 address, use the /32 prefix.</li>
--   </ul>
ipRange :: Text -> IPRange

-- | The IPv4 CIDR range. You can either specify a CIDR range or a source
--   security group, not both. To specify a single IPv4 address, use the
--   /32 prefix.
irCidrIP :: Lens' IPRange Text

-- | Describes an IPv6 CIDR block.
--   
--   <i>See:</i> <a>ipv6CidrBlock</a> smart constructor.
data IPv6CidrBlock

-- | Creates a value of <a>IPv6CidrBlock</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icbIPv6CidrBlock</a> - The IPv6 CIDR block.</li>
--   </ul>
ipv6CidrBlock :: IPv6CidrBlock

-- | The IPv6 CIDR block.
icbIPv6CidrBlock :: Lens' IPv6CidrBlock (Maybe Text)

-- | <ul>
--   <li><i>EC2-VPC only</i> Describes an IPv6 range.</li>
--   </ul>
--   
--   <i>See:</i> <a>ipv6Range</a> smart constructor.
data IPv6Range

-- | Creates a value of <a>IPv6Range</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>irCidrIPv6</a> - The IPv6 CIDR range. You can either specify a
--   CIDR range or a source security group, not both. To specify a single
--   IPv6 address, use the /128 prefix.</li>
--   </ul>
ipv6Range :: IPv6Range

-- | The IPv6 CIDR range. You can either specify a CIDR range or a source
--   security group, not both. To specify a single IPv6 address, use the
--   /128 prefix.
irCidrIPv6 :: Lens' IPv6Range (Maybe Text)

-- | Describes the ID format for a resource.
--   
--   <i>See:</i> <a>idFormat</a> smart constructor.
data IdFormat

-- | Creates a value of <a>IdFormat</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ifUseLongIds</a> - Indicates whether longer IDs (17-character
--   IDs) are enabled for the resource.</li>
--   <li><a>ifDeadline</a> - The date in UTC at which you are permanently
--   switched over to using longer IDs. If a deadline is not yet available
--   for this resource type, this field is not returned.</li>
--   <li><a>ifResource</a> - The type of resource.</li>
--   </ul>
idFormat :: IdFormat

-- | Indicates whether longer IDs (17-character IDs) are enabled for the
--   resource.
ifUseLongIds :: Lens' IdFormat (Maybe Bool)

-- | The date in UTC at which you are permanently switched over to using
--   longer IDs. If a deadline is not yet available for this resource type,
--   this field is not returned.
ifDeadline :: Lens' IdFormat (Maybe UTCTime)

-- | The type of resource.
ifResource :: Lens' IdFormat (Maybe Text)

-- | Describes an image.
--   
--   <i>See:</i> <a>image</a> smart constructor.
data Image

-- | Creates a value of <a>Image</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iPlatform</a> - The value is <tt>Windows</tt> for Windows AMIs;
--   otherwise blank.</li>
--   <li><a>iEnaSupport</a> - Specifies whether enhanced networking with
--   ENA is enabled.</li>
--   <li><a>iImageOwnerAlias</a> - The AWS account alias (for example,
--   <tt>amazon</tt> , <tt>self</tt> ) or the AWS account ID of the AMI
--   owner.</li>
--   <li><a>iRAMDiskId</a> - The RAM disk associated with the image, if
--   any. Only applicable for machine images.</li>
--   <li><a>iKernelId</a> - The kernel associated with the image, if any.
--   Only applicable for machine images.</li>
--   <li><a>iRootDeviceName</a> - The device name of the root device (for
--   example, <tt><i>dev</i>sda1</tt> or <tt><i>dev</i>xvda</tt> ).</li>
--   <li><a>iSRIOVNetSupport</a> - Specifies whether enhanced networking
--   with the Intel 82599 Virtual Function interface is enabled.</li>
--   <li><a>iName</a> - The name of the AMI that was provided during image
--   creation.</li>
--   <li><a>iCreationDate</a> - The date and time the image was
--   created.</li>
--   <li><a>iProductCodes</a> - Any product codes associated with the
--   AMI.</li>
--   <li><a>iStateReason</a> - The reason for the state change.</li>
--   <li><a>iDescription</a> - The description of the AMI that was provided
--   during image creation.</li>
--   <li><a>iBlockDeviceMappings</a> - Any block device mapping
--   entries.</li>
--   <li><a>iTags</a> - Any tags assigned to the image.</li>
--   <li><a>iImageId</a> - The ID of the AMI.</li>
--   <li><a>iImageLocation</a> - The location of the AMI.</li>
--   <li><a>iState</a> - The current state of the AMI. If the state is
--   <tt>available</tt> , the image is successfully registered and can be
--   used to launch an instance.</li>
--   <li><a>iOwnerId</a> - The AWS account ID of the image owner.</li>
--   <li><a>iPublic</a> - Indicates whether the image has public launch
--   permissions. The value is <tt>true</tt> if this image has public
--   launch permissions or <tt>false</tt> if it has only implicit and
--   explicit launch permissions.</li>
--   <li><a>iArchitecture</a> - The architecture of the image.</li>
--   <li><a>iImageType</a> - The type of image.</li>
--   <li><a>iRootDeviceType</a> - The type of root device used by the AMI.
--   The AMI can use an EBS volume or an instance store volume.</li>
--   <li><a>iVirtualizationType</a> - The type of virtualization of the
--   AMI.</li>
--   <li><a>iHypervisor</a> - The hypervisor type of the image.</li>
--   </ul>
image :: Text -> Text -> ImageState -> Text -> Bool -> ArchitectureValues -> ImageTypeValues -> DeviceType -> VirtualizationType -> HypervisorType -> Image

-- | The value is <tt>Windows</tt> for Windows AMIs; otherwise blank.
iPlatform :: Lens' Image (Maybe PlatformValues)

-- | Specifies whether enhanced networking with ENA is enabled.
iEnaSupport :: Lens' Image (Maybe Bool)

-- | The AWS account alias (for example, <tt>amazon</tt> , <tt>self</tt> )
--   or the AWS account ID of the AMI owner.
iImageOwnerAlias :: Lens' Image (Maybe Text)

-- | The RAM disk associated with the image, if any. Only applicable for
--   machine images.
iRAMDiskId :: Lens' Image (Maybe Text)

-- | The kernel associated with the image, if any. Only applicable for
--   machine images.
iKernelId :: Lens' Image (Maybe Text)

-- | The device name of the root device (for example,
--   <tt><i>dev</i>sda1</tt> or <tt><i>dev</i>xvda</tt> ).
iRootDeviceName :: Lens' Image (Maybe Text)

-- | Specifies whether enhanced networking with the Intel 82599 Virtual
--   Function interface is enabled.
iSRIOVNetSupport :: Lens' Image (Maybe Text)

-- | The name of the AMI that was provided during image creation.
iName :: Lens' Image (Maybe Text)

-- | The date and time the image was created.
iCreationDate :: Lens' Image (Maybe Text)

-- | Any product codes associated with the AMI.
iProductCodes :: Lens' Image [ProductCode]

-- | The reason for the state change.
iStateReason :: Lens' Image (Maybe StateReason)

-- | The description of the AMI that was provided during image creation.
iDescription :: Lens' Image (Maybe Text)

-- | Any block device mapping entries.
iBlockDeviceMappings :: Lens' Image [BlockDeviceMapping]

-- | Any tags assigned to the image.
iTags :: Lens' Image [Tag]

-- | The ID of the AMI.
iImageId :: Lens' Image Text

-- | The location of the AMI.
iImageLocation :: Lens' Image Text

-- | The current state of the AMI. If the state is <tt>available</tt> , the
--   image is successfully registered and can be used to launch an
--   instance.
iState :: Lens' Image ImageState

-- | The AWS account ID of the image owner.
iOwnerId :: Lens' Image Text

-- | Indicates whether the image has public launch permissions. The value
--   is <tt>true</tt> if this image has public launch permissions or
--   <tt>false</tt> if it has only implicit and explicit launch
--   permissions.
iPublic :: Lens' Image Bool

-- | The architecture of the image.
iArchitecture :: Lens' Image ArchitectureValues

-- | The type of image.
iImageType :: Lens' Image ImageTypeValues

-- | The type of root device used by the AMI. The AMI can use an EBS volume
--   or an instance store volume.
iRootDeviceType :: Lens' Image DeviceType

-- | The type of virtualization of the AMI.
iVirtualizationType :: Lens' Image VirtualizationType

-- | The hypervisor type of the image.
iHypervisor :: Lens' Image HypervisorType

-- | Describes the disk container object for an import image task.
--   
--   <i>See:</i> <a>imageDiskContainer</a> smart constructor.
data ImageDiskContainer

-- | Creates a value of <a>ImageDiskContainer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>idcFormat</a> - The format of the disk image being imported.
--   Valid values: <tt>RAW</tt> | <tt>VHD</tt> | <tt>VMDK</tt> |
--   <tt>OVA</tt></li>
--   <li><a>idcURL</a> - The URL to the Amazon S3-based disk image being
--   imported. The URL can either be a https URL (https:/<i>..) or an
--   Amazon S3 URL (s3:</i>/..)</li>
--   <li><a>idcDeviceName</a> - The block device mapping for the disk.</li>
--   <li><a>idcUserBucket</a> - The S3 bucket for the disk image.</li>
--   <li><a>idcDescription</a> - The description of the disk image.</li>
--   <li><a>idcSnapshotId</a> - The ID of the EBS snapshot to be used for
--   importing the snapshot.</li>
--   </ul>
imageDiskContainer :: ImageDiskContainer

-- | The format of the disk image being imported. Valid values:
--   <tt>RAW</tt> | <tt>VHD</tt> | <tt>VMDK</tt> | <tt>OVA</tt>
idcFormat :: Lens' ImageDiskContainer (Maybe Text)

-- | The URL to the Amazon S3-based disk image being imported. The URL can
--   either be a https URL (https:/<i>..) or an Amazon S3 URL (s3:</i>/..)
idcURL :: Lens' ImageDiskContainer (Maybe Text)

-- | The block device mapping for the disk.
idcDeviceName :: Lens' ImageDiskContainer (Maybe Text)

-- | The S3 bucket for the disk image.
idcUserBucket :: Lens' ImageDiskContainer (Maybe UserBucket)

-- | The description of the disk image.
idcDescription :: Lens' ImageDiskContainer (Maybe Text)

-- | The ID of the EBS snapshot to be used for importing the snapshot.
idcSnapshotId :: Lens' ImageDiskContainer (Maybe Text)

-- | Describes an import image task.
--   
--   <i>See:</i> <a>importImageTask</a> smart constructor.
data ImportImageTask

-- | Creates a value of <a>ImportImageTask</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iitStatus</a> - A brief status for the import image task.</li>
--   <li><a>iitHypervisor</a> - The target hypervisor for the import task.
--   Valid values: <tt>xen</tt></li>
--   <li><a>iitPlatform</a> - The description string for the import image
--   task.</li>
--   <li><a>iitProgress</a> - The percentage of progress of the import
--   image task.</li>
--   <li><a>iitLicenseType</a> - The license type of the virtual
--   machine.</li>
--   <li><a>iitSnapshotDetails</a> - Information about the snapshots.</li>
--   <li><a>iitStatusMessage</a> - A descriptive status message for the
--   import image task.</li>
--   <li><a>iitImageId</a> - The ID of the Amazon Machine Image (AMI) of
--   the imported virtual machine.</li>
--   <li><a>iitImportTaskId</a> - The ID of the import image task.</li>
--   <li><a>iitArchitecture</a> - The architecture of the virtual machine.
--   Valid values: <tt>i386</tt> | <tt>x86_64</tt></li>
--   <li><a>iitDescription</a> - A description of the import task.</li>
--   </ul>
importImageTask :: ImportImageTask

-- | A brief status for the import image task.
iitStatus :: Lens' ImportImageTask (Maybe Text)

-- | The target hypervisor for the import task. Valid values: <tt>xen</tt>
iitHypervisor :: Lens' ImportImageTask (Maybe Text)

-- | The description string for the import image task.
iitPlatform :: Lens' ImportImageTask (Maybe Text)

-- | The percentage of progress of the import image task.
iitProgress :: Lens' ImportImageTask (Maybe Text)

-- | The license type of the virtual machine.
iitLicenseType :: Lens' ImportImageTask (Maybe Text)

-- | Information about the snapshots.
iitSnapshotDetails :: Lens' ImportImageTask [SnapshotDetail]

-- | A descriptive status message for the import image task.
iitStatusMessage :: Lens' ImportImageTask (Maybe Text)

-- | The ID of the Amazon Machine Image (AMI) of the imported virtual
--   machine.
iitImageId :: Lens' ImportImageTask (Maybe Text)

-- | The ID of the import image task.
iitImportTaskId :: Lens' ImportImageTask (Maybe Text)

-- | The architecture of the virtual machine. Valid values: <tt>i386</tt> |
--   <tt>x86_64</tt>
iitArchitecture :: Lens' ImportImageTask (Maybe Text)

-- | A description of the import task.
iitDescription :: Lens' ImportImageTask (Maybe Text)

-- | Describes the launch specification for VM import.
--   
--   <i>See:</i> <a>importInstanceLaunchSpecification</a> smart
--   constructor.
data ImportInstanceLaunchSpecification

-- | Creates a value of <a>ImportInstanceLaunchSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iilsAdditionalInfo</a> - Reserved.</li>
--   <li><a>iilsGroupNames</a> - One or more security group names.</li>
--   <li><a>iilsSubnetId</a> - [EC2-VPC] The ID of the subnet in which to
--   launch the instance.</li>
--   <li><a>iilsInstanceType</a> - The instance type. For more information
--   about the instance types that you can import, see <a>Instance
--   Types</a> in the VM Import/Export User Guide.</li>
--   <li><a>iilsGroupIds</a> - One or more security group IDs.</li>
--   <li><a>iilsUserData</a> - The user data to make available to the
--   instance. If you are using an AWS SDK or command line tool,
--   Base64-encoding is performed for you, and you can load the text from a
--   file. Otherwise, you must provide Base64-encoded text.</li>
--   <li><a>iilsMonitoring</a> - Indicates whether monitoring is
--   enabled.</li>
--   <li><a>iilsPrivateIPAddress</a> - [EC2-VPC] An available IP address
--   from the IP address range of the subnet.</li>
--   <li><a>iilsInstanceInitiatedShutdownBehavior</a> - Indicates whether
--   an instance stops or terminates when you initiate shutdown from the
--   instance (using the operating system command for system
--   shutdown).</li>
--   <li><a>iilsArchitecture</a> - The architecture of the instance.</li>
--   <li><a>iilsPlacement</a> - The placement information for the
--   instance.</li>
--   </ul>
importInstanceLaunchSpecification :: ImportInstanceLaunchSpecification

-- | Reserved.
iilsAdditionalInfo :: Lens' ImportInstanceLaunchSpecification (Maybe Text)

-- | One or more security group names.
iilsGroupNames :: Lens' ImportInstanceLaunchSpecification [Text]

-- | <ul>
--   <li><i>EC2-VPC</i> The ID of the subnet in which to launch the
--   instance.</li>
--   </ul>
iilsSubnetId :: Lens' ImportInstanceLaunchSpecification (Maybe Text)

-- | The instance type. For more information about the instance types that
--   you can import, see <a>Instance Types</a> in the VM Import/Export User
--   Guide.
iilsInstanceType :: Lens' ImportInstanceLaunchSpecification (Maybe InstanceType)

-- | One or more security group IDs.
iilsGroupIds :: Lens' ImportInstanceLaunchSpecification [Text]

-- | The user data to make available to the instance. If you are using an
--   AWS SDK or command line tool, Base64-encoding is performed for you,
--   and you can load the text from a file. Otherwise, you must provide
--   Base64-encoded text.
iilsUserData :: Lens' ImportInstanceLaunchSpecification (Maybe UserData)

-- | Indicates whether monitoring is enabled.
iilsMonitoring :: Lens' ImportInstanceLaunchSpecification (Maybe Bool)

-- | <ul>
--   <li><i>EC2-VPC</i> An available IP address from the IP address range
--   of the subnet.</li>
--   </ul>
iilsPrivateIPAddress :: Lens' ImportInstanceLaunchSpecification (Maybe Text)

-- | Indicates whether an instance stops or terminates when you initiate
--   shutdown from the instance (using the operating system command for
--   system shutdown).
iilsInstanceInitiatedShutdownBehavior :: Lens' ImportInstanceLaunchSpecification (Maybe ShutdownBehavior)

-- | The architecture of the instance.
iilsArchitecture :: Lens' ImportInstanceLaunchSpecification (Maybe ArchitectureValues)

-- | The placement information for the instance.
iilsPlacement :: Lens' ImportInstanceLaunchSpecification (Maybe Placement)

-- | Describes an import instance task.
--   
--   <i>See:</i> <a>importInstanceTaskDetails</a> smart constructor.
data ImportInstanceTaskDetails

-- | Creates a value of <a>ImportInstanceTaskDetails</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iitdInstanceId</a> - The ID of the instance.</li>
--   <li><a>iitdPlatform</a> - The instance operating system.</li>
--   <li><a>iitdDescription</a> - A description of the task.</li>
--   <li><a>iitdVolumes</a> - One or more volumes.</li>
--   </ul>
importInstanceTaskDetails :: ImportInstanceTaskDetails

-- | The ID of the instance.
iitdInstanceId :: Lens' ImportInstanceTaskDetails (Maybe Text)

-- | The instance operating system.
iitdPlatform :: Lens' ImportInstanceTaskDetails (Maybe PlatformValues)

-- | A description of the task.
iitdDescription :: Lens' ImportInstanceTaskDetails (Maybe Text)

-- | One or more volumes.
iitdVolumes :: Lens' ImportInstanceTaskDetails [ImportInstanceVolumeDetailItem]

-- | Describes an import volume task.
--   
--   <i>See:</i> <a>importInstanceVolumeDetailItem</a> smart constructor.
data ImportInstanceVolumeDetailItem

-- | Creates a value of <a>ImportInstanceVolumeDetailItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iivdiStatusMessage</a> - The status information or errors
--   related to the disk image.</li>
--   <li><a>iivdiDescription</a> - A description of the task.</li>
--   <li><a>iivdiBytesConverted</a> - The number of bytes converted so
--   far.</li>
--   <li><a>iivdiAvailabilityZone</a> - The Availability Zone where the
--   resulting instance will reside.</li>
--   <li><a>iivdiImage</a> - The image.</li>
--   <li><a>iivdiVolume</a> - The volume.</li>
--   <li><a>iivdiStatus</a> - The status of the import of this particular
--   disk image.</li>
--   </ul>
importInstanceVolumeDetailItem :: Integer -> Text -> DiskImageDescription -> DiskImageVolumeDescription -> Text -> ImportInstanceVolumeDetailItem

-- | The status information or errors related to the disk image.
iivdiStatusMessage :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)

-- | A description of the task.
iivdiDescription :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)

-- | The number of bytes converted so far.
iivdiBytesConverted :: Lens' ImportInstanceVolumeDetailItem Integer

-- | The Availability Zone where the resulting instance will reside.
iivdiAvailabilityZone :: Lens' ImportInstanceVolumeDetailItem Text

-- | The image.
iivdiImage :: Lens' ImportInstanceVolumeDetailItem DiskImageDescription

-- | The volume.
iivdiVolume :: Lens' ImportInstanceVolumeDetailItem DiskImageVolumeDescription

-- | The status of the import of this particular disk image.
iivdiStatus :: Lens' ImportInstanceVolumeDetailItem Text

-- | Describes an import snapshot task.
--   
--   <i>See:</i> <a>importSnapshotTask</a> smart constructor.
data ImportSnapshotTask

-- | Creates a value of <a>ImportSnapshotTask</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>istSnapshotTaskDetail</a> - Describes an import snapshot
--   task.</li>
--   <li><a>istImportTaskId</a> - The ID of the import snapshot task.</li>
--   <li><a>istDescription</a> - A description of the import snapshot
--   task.</li>
--   </ul>
importSnapshotTask :: ImportSnapshotTask

-- | Describes an import snapshot task.
istSnapshotTaskDetail :: Lens' ImportSnapshotTask (Maybe SnapshotTaskDetail)

-- | The ID of the import snapshot task.
istImportTaskId :: Lens' ImportSnapshotTask (Maybe Text)

-- | A description of the import snapshot task.
istDescription :: Lens' ImportSnapshotTask (Maybe Text)

-- | Describes an import volume task.
--   
--   <i>See:</i> <a>importVolumeTaskDetails</a> smart constructor.
data ImportVolumeTaskDetails

-- | Creates a value of <a>ImportVolumeTaskDetails</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ivtdDescription</a> - The description you provided when
--   starting the import volume task.</li>
--   <li><a>ivtdBytesConverted</a> - The number of bytes converted so
--   far.</li>
--   <li><a>ivtdAvailabilityZone</a> - The Availability Zone where the
--   resulting volume will reside.</li>
--   <li><a>ivtdImage</a> - The image.</li>
--   <li><a>ivtdVolume</a> - The volume.</li>
--   </ul>
importVolumeTaskDetails :: Integer -> Text -> DiskImageDescription -> DiskImageVolumeDescription -> ImportVolumeTaskDetails

-- | The description you provided when starting the import volume task.
ivtdDescription :: Lens' ImportVolumeTaskDetails (Maybe Text)

-- | The number of bytes converted so far.
ivtdBytesConverted :: Lens' ImportVolumeTaskDetails Integer

-- | The Availability Zone where the resulting volume will reside.
ivtdAvailabilityZone :: Lens' ImportVolumeTaskDetails Text

-- | The image.
ivtdImage :: Lens' ImportVolumeTaskDetails DiskImageDescription

-- | The volume.
ivtdVolume :: Lens' ImportVolumeTaskDetails DiskImageVolumeDescription

-- | Describes an instance.
--   
--   <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>insPublicDNSName</a> - (IPv4 only) The public DNS name assigned
--   to the instance. This name is not available until the instance enters
--   the <tt>running</tt> state. For EC2-VPC, this name is only available
--   if you've enabled DNS hostnames for your VPC.</li>
--   <li><a>insPlatform</a> - The value is <tt>Windows</tt> for Windows
--   instances; otherwise blank.</li>
--   <li><a>insSecurityGroups</a> - One or more security groups for the
--   instance.</li>
--   <li><a>insClientToken</a> - The idempotency token you provided when
--   you launched the instance, if applicable.</li>
--   <li><a>insEnaSupport</a> - Specifies whether enhanced networking with
--   ENA is enabled.</li>
--   <li><a>insSourceDestCheck</a> - Specifies whether to enable an
--   instance launched in a VPC to perform NAT. This controls whether
--   source<i>destination checking is enabled on the instance. A value of
--   <tt>true</tt> means checking is enabled, and <tt>false</tt> means
--   checking is disabled. The value must be <tt>false</tt> for the
--   instance to perform NAT. For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AmazonVPC<i>latest</i>UserGuide<i>VPC_NAT_Instance.html
--   NAT Instances&gt; in the </i>Amazon Virtual Private Cloud User Guide/
--   .</li>
--   <li><a>insVPCId</a> - [EC2-VPC] The ID of the VPC in which the
--   instance is running.</li>
--   <li><a>insKeyName</a> - The name of the key pair, if this instance was
--   launched with an associated key pair.</li>
--   <li><a>insNetworkInterfaces</a> - [EC2-VPC] One or more network
--   interfaces for the instance.</li>
--   <li><a>insRAMDiskId</a> - The RAM disk associated with this instance,
--   if applicable.</li>
--   <li><a>insSubnetId</a> - [EC2-VPC] The ID of the subnet in which the
--   instance is running.</li>
--   <li><a>insKernelId</a> - The kernel associated with this instance, if
--   applicable.</li>
--   <li><a>insRootDeviceName</a> - The root device name (for example,
--   <tt><i>dev</i>sda1</tt> or <tt><i>dev</i>xvda</tt> ).</li>
--   <li><a>insSRIOVNetSupport</a> - Specifies whether enhanced networking
--   with the Intel 82599 Virtual Function interface is enabled.</li>
--   <li><a>insEBSOptimized</a> - Indicates whether the instance is
--   optimized for EBS I<i>O. This optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal I</i>O performance. This optimization isn't available
--   with all instance types. Additional usage charges apply when using an
--   EBS Optimized instance.</li>
--   <li><a>insStateTransitionReason</a> - The reason for the most recent
--   state transition. This might be an empty string.</li>
--   <li><a>insInstanceLifecycle</a> - Indicates whether this is a Spot
--   instance or a Scheduled Instance.</li>
--   <li><a>insIAMInstanceProfile</a> - The IAM instance profile associated
--   with the instance, if applicable.</li>
--   <li><a>insPrivateIPAddress</a> - The private IPv4 address assigned to
--   the instance.</li>
--   <li><a>insProductCodes</a> - The product codes attached to this
--   instance, if applicable.</li>
--   <li><a>insSpotInstanceRequestId</a> - If the request is a Spot
--   instance request, the ID of the request.</li>
--   <li><a>insPrivateDNSName</a> - (IPv4 only) The private DNS hostname
--   name assigned to the instance. This DNS hostname can only be used
--   inside the Amazon EC2 network. This name is not available until the
--   instance enters the <tt>running</tt> state. [EC2-VPC] The
--   Amazon-provided DNS server will resolve Amazon-provided private DNS
--   hostnames if you've enabled DNS resolution and DNS hostnames in your
--   VPC. If you are not using the Amazon-provided DNS server in your VPC,
--   your custom domain name servers must resolve the hostname as
--   appropriate.</li>
--   <li><a>insStateReason</a> - The reason for the most recent state
--   transition.</li>
--   <li><a>insBlockDeviceMappings</a> - Any block device mapping entries
--   for the instance.</li>
--   <li><a>insPublicIPAddress</a> - The public IPv4 address assigned to
--   the instance, if applicable.</li>
--   <li><a>insTags</a> - Any tags assigned to the instance.</li>
--   <li><a>insInstanceId</a> - The ID of the instance.</li>
--   <li><a>insImageId</a> - The ID of the AMI used to launch the
--   instance.</li>
--   <li><a>insAMILaunchIndex</a> - The AMI launch index, which can be used
--   to find this instance in the launch group.</li>
--   <li><a>insInstanceType</a> - The instance type.</li>
--   <li><a>insLaunchTime</a> - The time the instance was launched.</li>
--   <li><a>insPlacement</a> - The location where the instance launched, if
--   applicable.</li>
--   <li><a>insMonitoring</a> - The monitoring for the instance.</li>
--   <li><a>insArchitecture</a> - The architecture of the image.</li>
--   <li><a>insRootDeviceType</a> - The root device type used by the AMI.
--   The AMI can use an EBS volume or an instance store volume.</li>
--   <li><a>insVirtualizationType</a> - The virtualization type of the
--   instance.</li>
--   <li><a>insHypervisor</a> - The hypervisor type of the instance.</li>
--   <li><a>insState</a> - The current state of the instance.</li>
--   </ul>
instance' :: Text -> Text -> Int -> InstanceType -> UTCTime -> Placement -> Monitoring -> ArchitectureValues -> DeviceType -> VirtualizationType -> HypervisorType -> InstanceState -> Instance

-- | (IPv4 only) The public DNS name assigned to the instance. This name is
--   not available until the instance enters the <tt>running</tt> state.
--   For EC2-VPC, this name is only available if you've enabled DNS
--   hostnames for your VPC.
insPublicDNSName :: Lens' Instance (Maybe Text)

-- | The value is <tt>Windows</tt> for Windows instances; otherwise blank.
insPlatform :: Lens' Instance (Maybe PlatformValues)

-- | One or more security groups for the instance.
insSecurityGroups :: Lens' Instance [GroupIdentifier]

-- | The idempotency token you provided when you launched the instance, if
--   applicable.
insClientToken :: Lens' Instance (Maybe Text)

-- | Specifies whether enhanced networking with ENA is enabled.
insEnaSupport :: Lens' Instance (Maybe Bool)

-- | Specifies whether to enable an instance launched in a VPC to perform
--   NAT. This controls whether source<i>destination checking is enabled on
--   the instance. A value of <tt>true</tt> means checking is enabled, and
--   <tt>false</tt> means checking is disabled. The value must be
--   <tt>false</tt> for the instance to perform NAT. For more information,
--   see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AmazonVPC<i>latest</i>UserGuide<i>VPC_NAT_Instance.html
--   NAT Instances&gt; in the </i>Amazon Virtual Private Cloud User Guide/
--   .
insSourceDestCheck :: Lens' Instance (Maybe Bool)

-- | <ul>
--   <li><i>EC2-VPC</i> The ID of the VPC in which the instance is
--   running.</li>
--   </ul>
insVPCId :: Lens' Instance (Maybe Text)

-- | The name of the key pair, if this instance was launched with an
--   associated key pair.
insKeyName :: Lens' Instance (Maybe Text)

-- | <ul>
--   <li><i>EC2-VPC</i> One or more network interfaces for the
--   instance.</li>
--   </ul>
insNetworkInterfaces :: Lens' Instance [InstanceNetworkInterface]

-- | The RAM disk associated with this instance, if applicable.
insRAMDiskId :: Lens' Instance (Maybe Text)

-- | <ul>
--   <li><i>EC2-VPC</i> The ID of the subnet in which the instance is
--   running.</li>
--   </ul>
insSubnetId :: Lens' Instance (Maybe Text)

-- | The kernel associated with this instance, if applicable.
insKernelId :: Lens' Instance (Maybe Text)

-- | The root device name (for example, <tt><i>dev</i>sda1</tt> or
--   <tt><i>dev</i>xvda</tt> ).
insRootDeviceName :: Lens' Instance (Maybe Text)

-- | Specifies whether enhanced networking with the Intel 82599 Virtual
--   Function interface is enabled.
insSRIOVNetSupport :: Lens' Instance (Maybe Text)

-- | Indicates whether the instance is optimized for EBS I<i>O. This
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal I</i>O performance.
--   This optimization isn't available with all instance types. Additional
--   usage charges apply when using an EBS Optimized instance.
insEBSOptimized :: Lens' Instance (Maybe Bool)

-- | The reason for the most recent state transition. This might be an
--   empty string.
insStateTransitionReason :: Lens' Instance (Maybe Text)

-- | Indicates whether this is a Spot instance or a Scheduled Instance.
insInstanceLifecycle :: Lens' Instance (Maybe InstanceLifecycleType)

-- | The IAM instance profile associated with the instance, if applicable.
insIAMInstanceProfile :: Lens' Instance (Maybe IAMInstanceProfile)

-- | The private IPv4 address assigned to the instance.
insPrivateIPAddress :: Lens' Instance (Maybe Text)

-- | The product codes attached to this instance, if applicable.
insProductCodes :: Lens' Instance [ProductCode]

-- | If the request is a Spot instance request, the ID of the request.
insSpotInstanceRequestId :: Lens' Instance (Maybe Text)

-- | (IPv4 only) The private DNS hostname name assigned to the instance.
--   This DNS hostname can only be used inside the Amazon EC2 network. This
--   name is not available until the instance enters the <tt>running</tt>
--   state. [EC2-VPC] The Amazon-provided DNS server will resolve
--   Amazon-provided private DNS hostnames if you've enabled DNS resolution
--   and DNS hostnames in your VPC. If you are not using the
--   Amazon-provided DNS server in your VPC, your custom domain name
--   servers must resolve the hostname as appropriate.
insPrivateDNSName :: Lens' Instance (Maybe Text)

-- | The reason for the most recent state transition.
insStateReason :: Lens' Instance (Maybe StateReason)

-- | Any block device mapping entries for the instance.
insBlockDeviceMappings :: Lens' Instance [InstanceBlockDeviceMapping]

-- | The public IPv4 address assigned to the instance, if applicable.
insPublicIPAddress :: Lens' Instance (Maybe Text)

-- | Any tags assigned to the instance.
insTags :: Lens' Instance [Tag]

-- | The ID of the instance.
insInstanceId :: Lens' Instance Text

-- | The ID of the AMI used to launch the instance.
insImageId :: Lens' Instance Text

-- | The AMI launch index, which can be used to find this instance in the
--   launch group.
insAMILaunchIndex :: Lens' Instance Int

-- | The instance type.
insInstanceType :: Lens' Instance InstanceType

-- | The time the instance was launched.
insLaunchTime :: Lens' Instance UTCTime

-- | The location where the instance launched, if applicable.
insPlacement :: Lens' Instance Placement

-- | The monitoring for the instance.
insMonitoring :: Lens' Instance Monitoring

-- | The architecture of the image.
insArchitecture :: Lens' Instance ArchitectureValues

-- | The root device type used by the AMI. The AMI can use an EBS volume or
--   an instance store volume.
insRootDeviceType :: Lens' Instance DeviceType

-- | The virtualization type of the instance.
insVirtualizationType :: Lens' Instance VirtualizationType

-- | The hypervisor type of the instance.
insHypervisor :: Lens' Instance HypervisorType

-- | The current state of the instance.
insState :: Lens' Instance InstanceState

-- | Describes a block device mapping.
--   
--   <i>See:</i> <a>instanceBlockDeviceMapping</a> smart constructor.
data InstanceBlockDeviceMapping

-- | Creates a value of <a>InstanceBlockDeviceMapping</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ibdmEBS</a> - Parameters used to automatically set up EBS
--   volumes when the instance is launched.</li>
--   <li><a>ibdmDeviceName</a> - The device name exposed to the instance
--   (for example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).</li>
--   </ul>
instanceBlockDeviceMapping :: InstanceBlockDeviceMapping

-- | Parameters used to automatically set up EBS volumes when the instance
--   is launched.
ibdmEBS :: Lens' InstanceBlockDeviceMapping (Maybe EBSInstanceBlockDevice)

-- | The device name exposed to the instance (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).
ibdmDeviceName :: Lens' InstanceBlockDeviceMapping (Maybe Text)

-- | Describes a block device mapping entry.
--   
--   <i>See:</i> <a>instanceBlockDeviceMappingSpecification</a> smart
--   constructor.
data InstanceBlockDeviceMappingSpecification

-- | Creates a value of <a>InstanceBlockDeviceMappingSpecification</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ibdmsVirtualName</a> - The virtual device name.</li>
--   <li><a>ibdmsNoDevice</a> - suppress the specified device included in
--   the block device mapping.</li>
--   <li><a>ibdmsEBS</a> - Parameters used to automatically set up EBS
--   volumes when the instance is launched.</li>
--   <li><a>ibdmsDeviceName</a> - The device name exposed to the instance
--   (for example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).</li>
--   </ul>
instanceBlockDeviceMappingSpecification :: InstanceBlockDeviceMappingSpecification

-- | The virtual device name.
ibdmsVirtualName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)

-- | suppress the specified device included in the block device mapping.
ibdmsNoDevice :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)

-- | Parameters used to automatically set up EBS volumes when the instance
--   is launched.
ibdmsEBS :: Lens' InstanceBlockDeviceMappingSpecification (Maybe EBSInstanceBlockDeviceSpecification)

-- | The device name exposed to the instance (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).
ibdmsDeviceName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)

-- | Information about the instance type that the Dedicated Host supports.
--   
--   <i>See:</i> <a>instanceCapacity</a> smart constructor.
data InstanceCapacity

-- | Creates a value of <a>InstanceCapacity</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icAvailableCapacity</a> - The number of instances that can
--   still be launched onto the Dedicated Host.</li>
--   <li><a>icInstanceType</a> - The instance type size supported by the
--   Dedicated Host.</li>
--   <li><a>icTotalCapacity</a> - The total number of instances that can be
--   launched onto the Dedicated Host.</li>
--   </ul>
instanceCapacity :: InstanceCapacity

-- | The number of instances that can still be launched onto the Dedicated
--   Host.
icAvailableCapacity :: Lens' InstanceCapacity (Maybe Int)

-- | The instance type size supported by the Dedicated Host.
icInstanceType :: Lens' InstanceCapacity (Maybe Text)

-- | The total number of instances that can be launched onto the Dedicated
--   Host.
icTotalCapacity :: Lens' InstanceCapacity (Maybe Int)

-- | Describes a Reserved Instance listing state.
--   
--   <i>See:</i> <a>instanceCount</a> smart constructor.
data InstanceCount

-- | Creates a value of <a>InstanceCount</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icState</a> - The states of the listed Reserved Instances.</li>
--   <li><a>icInstanceCount</a> - The number of listed Reserved Instances
--   in the state specified by the <tt>state</tt> .</li>
--   </ul>
instanceCount :: InstanceCount

-- | The states of the listed Reserved Instances.
icState :: Lens' InstanceCount (Maybe ListingState)

-- | The number of listed Reserved Instances in the state specified by the
--   <tt>state</tt> .
icInstanceCount :: Lens' InstanceCount (Maybe Int)

-- | Describes an instance to export.
--   
--   <i>See:</i> <a>instanceExportDetails</a> smart constructor.
data InstanceExportDetails

-- | Creates a value of <a>InstanceExportDetails</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iedTargetEnvironment</a> - The target virtualization
--   environment.</li>
--   <li><a>iedInstanceId</a> - The ID of the resource being exported.</li>
--   </ul>
instanceExportDetails :: InstanceExportDetails

-- | The target virtualization environment.
iedTargetEnvironment :: Lens' InstanceExportDetails (Maybe ExportEnvironment)

-- | The ID of the resource being exported.
iedInstanceId :: Lens' InstanceExportDetails (Maybe Text)

-- | Describes an IPv6 address.
--   
--   <i>See:</i> <a>instanceIPv6Address</a> smart constructor.
data InstanceIPv6Address

-- | Creates a value of <a>InstanceIPv6Address</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iiaIPv6Address</a> - The IPv6 address.</li>
--   </ul>
instanceIPv6Address :: InstanceIPv6Address

-- | The IPv6 address.
iiaIPv6Address :: Lens' InstanceIPv6Address (Maybe Text)

-- | Describes the monitoring of an instance.
--   
--   <i>See:</i> <a>instanceMonitoring</a> smart constructor.
data InstanceMonitoring

-- | Creates a value of <a>InstanceMonitoring</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>imInstanceId</a> - The ID of the instance.</li>
--   <li><a>imMonitoring</a> - The monitoring for the instance.</li>
--   </ul>
instanceMonitoring :: InstanceMonitoring

-- | The ID of the instance.
imInstanceId :: Lens' InstanceMonitoring (Maybe Text)

-- | The monitoring for the instance.
imMonitoring :: Lens' InstanceMonitoring (Maybe Monitoring)

-- | Describes a network interface.
--   
--   <i>See:</i> <a>instanceNetworkInterface</a> smart constructor.
data InstanceNetworkInterface

-- | Creates a value of <a>InstanceNetworkInterface</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iniGroups</a> - One or more security groups.</li>
--   <li><a>iniStatus</a> - The status of the network interface.</li>
--   <li><a>iniPrivateIPAddresses</a> - One or more private IPv4 addresses
--   associated with the network interface.</li>
--   <li><a>iniSourceDestCheck</a> - Indicates whether to validate network
--   traffic to or from this network interface.</li>
--   <li><a>iniVPCId</a> - The ID of the VPC.</li>
--   <li><a>iniNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>iniSubnetId</a> - The ID of the subnet.</li>
--   <li><a>iniMACAddress</a> - The MAC address.</li>
--   <li><a>iniAttachment</a> - The network interface attachment.</li>
--   <li><a>iniOwnerId</a> - The ID of the AWS account that created the
--   network interface.</li>
--   <li><a>iniPrivateIPAddress</a> - The IPv4 address of the network
--   interface within the subnet.</li>
--   <li><a>iniPrivateDNSName</a> - The private DNS name.</li>
--   <li><a>iniDescription</a> - The description.</li>
--   <li><a>iniAssociation</a> - The association information for an Elastic
--   IPv4 associated with the network interface.</li>
--   <li><a>iniIPv6Addresses</a> - One or more IPv6 addresses associated
--   with the network interface.</li>
--   </ul>
instanceNetworkInterface :: InstanceNetworkInterface

-- | One or more security groups.
iniGroups :: Lens' InstanceNetworkInterface [GroupIdentifier]

-- | The status of the network interface.
iniStatus :: Lens' InstanceNetworkInterface (Maybe NetworkInterfaceStatus)

-- | One or more private IPv4 addresses associated with the network
--   interface.
iniPrivateIPAddresses :: Lens' InstanceNetworkInterface [InstancePrivateIPAddress]

-- | Indicates whether to validate network traffic to or from this network
--   interface.
iniSourceDestCheck :: Lens' InstanceNetworkInterface (Maybe Bool)

-- | The ID of the VPC.
iniVPCId :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The ID of the network interface.
iniNetworkInterfaceId :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The ID of the subnet.
iniSubnetId :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The MAC address.
iniMACAddress :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The network interface attachment.
iniAttachment :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAttachment)

-- | The ID of the AWS account that created the network interface.
iniOwnerId :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The IPv4 address of the network interface within the subnet.
iniPrivateIPAddress :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The private DNS name.
iniPrivateDNSName :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The description.
iniDescription :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The association information for an Elastic IPv4 associated with the
--   network interface.
iniAssociation :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAssociation)

-- | One or more IPv6 addresses associated with the network interface.
iniIPv6Addresses :: Lens' InstanceNetworkInterface [InstanceIPv6Address]

-- | Describes association information for an Elastic IP address (IPv4).
--   
--   <i>See:</i> <a>instanceNetworkInterfaceAssociation</a> smart
--   constructor.
data InstanceNetworkInterfaceAssociation

-- | Creates a value of <a>InstanceNetworkInterfaceAssociation</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iniaPublicDNSName</a> - The public DNS name.</li>
--   <li><a>iniaIPOwnerId</a> - The ID of the owner of the Elastic IP
--   address.</li>
--   <li><a>iniaPublicIP</a> - The public IP address or Elastic IP address
--   bound to the network interface.</li>
--   </ul>
instanceNetworkInterfaceAssociation :: InstanceNetworkInterfaceAssociation

-- | The public DNS name.
iniaPublicDNSName :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)

-- | The ID of the owner of the Elastic IP address.
iniaIPOwnerId :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)

-- | The public IP address or Elastic IP address bound to the network
--   interface.
iniaPublicIP :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)

-- | Describes a network interface attachment.
--   
--   <i>See:</i> <a>instanceNetworkInterfaceAttachment</a> smart
--   constructor.
data InstanceNetworkInterfaceAttachment

-- | Creates a value of <a>InstanceNetworkInterfaceAttachment</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iniaStatus</a> - The attachment state.</li>
--   <li><a>iniaDeleteOnTermination</a> - Indicates whether the network
--   interface is deleted when the instance is terminated.</li>
--   <li><a>iniaAttachmentId</a> - The ID of the network interface
--   attachment.</li>
--   <li><a>iniaAttachTime</a> - The time stamp when the attachment
--   initiated.</li>
--   <li><a>iniaDeviceIndex</a> - The index of the device on the instance
--   for the network interface attachment.</li>
--   </ul>
instanceNetworkInterfaceAttachment :: InstanceNetworkInterfaceAttachment

-- | The attachment state.
iniaStatus :: Lens' InstanceNetworkInterfaceAttachment (Maybe AttachmentStatus)

-- | Indicates whether the network interface is deleted when the instance
--   is terminated.
iniaDeleteOnTermination :: Lens' InstanceNetworkInterfaceAttachment (Maybe Bool)

-- | The ID of the network interface attachment.
iniaAttachmentId :: Lens' InstanceNetworkInterfaceAttachment (Maybe Text)

-- | The time stamp when the attachment initiated.
iniaAttachTime :: Lens' InstanceNetworkInterfaceAttachment (Maybe UTCTime)

-- | The index of the device on the instance for the network interface
--   attachment.
iniaDeviceIndex :: Lens' InstanceNetworkInterfaceAttachment (Maybe Int)

-- | Describes a network interface.
--   
--   <i>See:</i> <a>instanceNetworkInterfaceSpecification</a> smart
--   constructor.
data InstanceNetworkInterfaceSpecification

-- | Creates a value of <a>InstanceNetworkInterfaceSpecification</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>inisGroups</a> - The IDs of the security groups for the network
--   interface. Applies only if creating a network interface when launching
--   an instance.</li>
--   <li><a>inisPrivateIPAddresses</a> - One or more private IPv4 addresses
--   to assign to the network interface. Only one private IPv4 address can
--   be designated as primary. You cannot specify this option if you're
--   launching more than one instance in a <tt>RunInstances</tt>
--   request.</li>
--   <li><a>inisDeleteOnTermination</a> - If set to <tt>true</tt> , the
--   interface is deleted when the instance is terminated. You can specify
--   <tt>true</tt> only if creating a new network interface when launching
--   an instance.</li>
--   <li><a>inisAssociatePublicIPAddress</a> - Indicates whether to assign
--   a public IPv4 address to an instance you launch in a VPC. The public
--   IP address can only be assigned to a network interface for eth0, and
--   can only be assigned to a new network interface, not an existing one.
--   You cannot specify more than one network interface in the request. If
--   launching into a default subnet, the default value is <tt>true</tt>
--   .</li>
--   <li><a>inisNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>inisSubnetId</a> - The ID of the subnet associated with the
--   network string. Applies only if creating a network interface when
--   launching an instance.</li>
--   <li><a>inisIPv6AddressCount</a> - A number of IPv6 addresses to assign
--   to the network interface. Amazon EC2 chooses the IPv6 addresses from
--   the range of the subnet. You cannot specify this option and the option
--   to assign specific IPv6 addresses in the same request. You can specify
--   this option if you've specified a minimum number of instances to
--   launch.</li>
--   <li><a>inisPrivateIPAddress</a> - The private IPv4 address of the
--   network interface. Applies only if creating a network interface when
--   launching an instance. You cannot specify this option if you're
--   launching more than one instance in a <tt>RunInstances</tt>
--   request.</li>
--   <li><a>inisSecondaryPrivateIPAddressCount</a> - The number of
--   secondary private IPv4 addresses. You can't specify this option and
--   specify more than one private IP address using the private IP
--   addresses option. You cannot specify this option if you're launching
--   more than one instance in a <tt>RunInstances</tt> request.</li>
--   <li><a>inisDescription</a> - The description of the network interface.
--   Applies only if creating a network interface when launching an
--   instance.</li>
--   <li><a>inisDeviceIndex</a> - The index of the device on the instance
--   for the network interface attachment. If you are specifying a network
--   interface in a <tt>RunInstances</tt> request, you must provide the
--   device index.</li>
--   <li><a>inisIPv6Addresses</a> - One or more IPv6 addresses to assign to
--   the network interface. You cannot specify this option and the option
--   to assign a number of IPv6 addresses in the same request. You cannot
--   specify this option if you've specified a minimum number of instances
--   to launch.</li>
--   </ul>
instanceNetworkInterfaceSpecification :: InstanceNetworkInterfaceSpecification

-- | The IDs of the security groups for the network interface. Applies only
--   if creating a network interface when launching an instance.
inisGroups :: Lens' InstanceNetworkInterfaceSpecification [Text]

-- | One or more private IPv4 addresses to assign to the network interface.
--   Only one private IPv4 address can be designated as primary. You cannot
--   specify this option if you're launching more than one instance in a
--   <tt>RunInstances</tt> request.
inisPrivateIPAddresses :: Lens' InstanceNetworkInterfaceSpecification [PrivateIPAddressSpecification]

-- | If set to <tt>true</tt> , the interface is deleted when the instance
--   is terminated. You can specify <tt>true</tt> only if creating a new
--   network interface when launching an instance.
inisDeleteOnTermination :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)

-- | Indicates whether to assign a public IPv4 address to an instance you
--   launch in a VPC. The public IP address can only be assigned to a
--   network interface for eth0, and can only be assigned to a new network
--   interface, not an existing one. You cannot specify more than one
--   network interface in the request. If launching into a default subnet,
--   the default value is <tt>true</tt> .
inisAssociatePublicIPAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)

-- | The ID of the network interface.
inisNetworkInterfaceId :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)

-- | The ID of the subnet associated with the network string. Applies only
--   if creating a network interface when launching an instance.
inisSubnetId :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)

-- | A number of IPv6 addresses to assign to the network interface. Amazon
--   EC2 chooses the IPv6 addresses from the range of the subnet. You
--   cannot specify this option and the option to assign specific IPv6
--   addresses in the same request. You can specify this option if you've
--   specified a minimum number of instances to launch.
inisIPv6AddressCount :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)

-- | The private IPv4 address of the network interface. Applies only if
--   creating a network interface when launching an instance. You cannot
--   specify this option if you're launching more than one instance in a
--   <tt>RunInstances</tt> request.
inisPrivateIPAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)

-- | The number of secondary private IPv4 addresses. You can't specify this
--   option and specify more than one private IP address using the private
--   IP addresses option. You cannot specify this option if you're
--   launching more than one instance in a <tt>RunInstances</tt> request.
inisSecondaryPrivateIPAddressCount :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)

-- | The description of the network interface. Applies only if creating a
--   network interface when launching an instance.
inisDescription :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)

-- | The index of the device on the instance for the network interface
--   attachment. If you are specifying a network interface in a
--   <tt>RunInstances</tt> request, you must provide the device index.
inisDeviceIndex :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)

-- | One or more IPv6 addresses to assign to the network interface. You
--   cannot specify this option and the option to assign a number of IPv6
--   addresses in the same request. You cannot specify this option if
--   you've specified a minimum number of instances to launch.
inisIPv6Addresses :: Lens' InstanceNetworkInterfaceSpecification [InstanceIPv6Address]

-- | Describes a private IPv4 address.
--   
--   <i>See:</i> <a>instancePrivateIPAddress</a> smart constructor.
data InstancePrivateIPAddress

-- | Creates a value of <a>InstancePrivateIPAddress</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ipiaPrimary</a> - Indicates whether this IPv4 address is the
--   primary private IP address of the network interface.</li>
--   <li><a>ipiaPrivateIPAddress</a> - The private IPv4 address of the
--   network interface.</li>
--   <li><a>ipiaPrivateDNSName</a> - The private IPv4 DNS name.</li>
--   <li><a>ipiaAssociation</a> - The association information for an
--   Elastic IP address for the network interface.</li>
--   </ul>
instancePrivateIPAddress :: InstancePrivateIPAddress

-- | Indicates whether this IPv4 address is the primary private IP address
--   of the network interface.
ipiaPrimary :: Lens' InstancePrivateIPAddress (Maybe Bool)

-- | The private IPv4 address of the network interface.
ipiaPrivateIPAddress :: Lens' InstancePrivateIPAddress (Maybe Text)

-- | The private IPv4 DNS name.
ipiaPrivateDNSName :: Lens' InstancePrivateIPAddress (Maybe Text)

-- | The association information for an Elastic IP address for the network
--   interface.
ipiaAssociation :: Lens' InstancePrivateIPAddress (Maybe InstanceNetworkInterfaceAssociation)

-- | Describes the current state of an instance.
--   
--   <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 current state of the instance.</li>
--   <li><a>isCode</a> - The low byte represents the state. The high byte
--   is an opaque internal value and should be ignored. * <tt>0</tt> :
--   <tt>pending</tt> * <tt>16</tt> : <tt>running</tt> * <tt>32</tt> :
--   <tt>shutting-down</tt> * <tt>48</tt> : <tt>terminated</tt> *
--   <tt>64</tt> : <tt>stopping</tt> * <tt>80</tt> : <tt>stopped</tt></li>
--   </ul>
instanceState :: InstanceStateName -> Int -> InstanceState

-- | The current state of the instance.
isName :: Lens' InstanceState InstanceStateName

-- | The low byte represents the state. The high byte is an opaque internal
--   value and should be ignored. * <tt>0</tt> : <tt>pending</tt> *
--   <tt>16</tt> : <tt>running</tt> * <tt>32</tt> : <tt>shutting-down</tt>
--   * <tt>48</tt> : <tt>terminated</tt> * <tt>64</tt> : <tt>stopping</tt>
--   * <tt>80</tt> : <tt>stopped</tt>
isCode :: Lens' InstanceState Int

-- | Describes an instance state change.
--   
--   <i>See:</i> <a>instanceStateChange</a> smart constructor.
data InstanceStateChange

-- | Creates a value of <a>InstanceStateChange</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iscInstanceId</a> - The ID of the instance.</li>
--   <li><a>iscCurrentState</a> - The current state of the instance.</li>
--   <li><a>iscPreviousState</a> - The previous state of the instance.</li>
--   </ul>
instanceStateChange :: InstanceStateChange

-- | The ID of the instance.
iscInstanceId :: Lens' InstanceStateChange (Maybe Text)

-- | The current state of the instance.
iscCurrentState :: Lens' InstanceStateChange (Maybe InstanceState)

-- | The previous state of the instance.
iscPreviousState :: Lens' InstanceStateChange (Maybe InstanceState)

-- | Describes the status of an instance.
--   
--   <i>See:</i> <a>instanceStatus</a> smart constructor.
data InstanceStatus

-- | Creates a value of <a>InstanceStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isInstanceId</a> - The ID of the instance.</li>
--   <li><a>isSystemStatus</a> - Reports impaired functionality that stems
--   from issues related to the systems that support an instance, such as
--   hardware failures and network connectivity problems.</li>
--   <li><a>isEvents</a> - Any scheduled events associated with the
--   instance.</li>
--   <li><a>isAvailabilityZone</a> - The Availability Zone of the
--   instance.</li>
--   <li><a>isInstanceStatus</a> - Reports impaired functionality that
--   stems from issues internal to the instance, such as impaired
--   reachability.</li>
--   <li><a>isInstanceState</a> - The intended state of the instance.
--   <tt>DescribeInstanceStatus</tt> requires that an instance be in the
--   <tt>running</tt> state.</li>
--   </ul>
instanceStatus :: InstanceStatus

-- | The ID of the instance.
isInstanceId :: Lens' InstanceStatus (Maybe Text)

-- | Reports impaired functionality that stems from issues related to the
--   systems that support an instance, such as hardware failures and
--   network connectivity problems.
isSystemStatus :: Lens' InstanceStatus (Maybe InstanceStatusSummary)

-- | Any scheduled events associated with the instance.
isEvents :: Lens' InstanceStatus [InstanceStatusEvent]

-- | The Availability Zone of the instance.
isAvailabilityZone :: Lens' InstanceStatus (Maybe Text)

-- | Reports impaired functionality that stems from issues internal to the
--   instance, such as impaired reachability.
isInstanceStatus :: Lens' InstanceStatus (Maybe InstanceStatusSummary)

-- | The intended state of the instance. <tt>DescribeInstanceStatus</tt>
--   requires that an instance be in the <tt>running</tt> state.
isInstanceState :: Lens' InstanceStatus (Maybe InstanceState)

-- | Describes the instance status.
--   
--   <i>See:</i> <a>instanceStatusDetails</a> smart constructor.
data InstanceStatusDetails

-- | Creates a value of <a>InstanceStatusDetails</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isdStatus</a> - The status.</li>
--   <li><a>isdImpairedSince</a> - The time when a status check failed. For
--   an instance that was launched and impaired, this is the time when the
--   instance was launched.</li>
--   <li><a>isdName</a> - The type of instance status.</li>
--   </ul>
instanceStatusDetails :: InstanceStatusDetails

-- | The status.
isdStatus :: Lens' InstanceStatusDetails (Maybe StatusType)

-- | The time when a status check failed. For an instance that was launched
--   and impaired, this is the time when the instance was launched.
isdImpairedSince :: Lens' InstanceStatusDetails (Maybe UTCTime)

-- | The type of instance status.
isdName :: Lens' InstanceStatusDetails (Maybe StatusName)

-- | Describes a scheduled event for an instance.
--   
--   <i>See:</i> <a>instanceStatusEvent</a> smart constructor.
data InstanceStatusEvent

-- | Creates a value of <a>InstanceStatusEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iseNotBefore</a> - The earliest scheduled start time for the
--   event.</li>
--   <li><a>iseCode</a> - The event code.</li>
--   <li><a>iseDescription</a> - A description of the event. After a
--   scheduled event is completed, it can still be described for up to a
--   week. If the event has been completed, this description starts with
--   the following text: [Completed].</li>
--   <li><a>iseNotAfter</a> - The latest scheduled end time for the
--   event.</li>
--   </ul>
instanceStatusEvent :: InstanceStatusEvent

-- | The earliest scheduled start time for the event.
iseNotBefore :: Lens' InstanceStatusEvent (Maybe UTCTime)

-- | The event code.
iseCode :: Lens' InstanceStatusEvent (Maybe EventCode)

-- | A description of the event. After a scheduled event is completed, it
--   can still be described for up to a week. If the event has been
--   completed, this description starts with the following text:
--   [Completed].
iseDescription :: Lens' InstanceStatusEvent (Maybe Text)

-- | The latest scheduled end time for the event.
iseNotAfter :: Lens' InstanceStatusEvent (Maybe UTCTime)

-- | Describes the status of an instance.
--   
--   <i>See:</i> <a>instanceStatusSummary</a> smart constructor.
data InstanceStatusSummary

-- | Creates a value of <a>InstanceStatusSummary</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>issDetails</a> - The system instance health or application
--   instance health.</li>
--   <li><a>issStatus</a> - The status.</li>
--   </ul>
instanceStatusSummary :: SummaryStatus -> InstanceStatusSummary

-- | The system instance health or application instance health.
issDetails :: Lens' InstanceStatusSummary [InstanceStatusDetails]

-- | The status.
issStatus :: Lens' InstanceStatusSummary SummaryStatus

-- | Describes an Internet gateway.
--   
--   <i>See:</i> <a>internetGateway</a> smart constructor.
data InternetGateway

-- | Creates a value of <a>InternetGateway</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>igAttachments</a> - Any VPCs attached to the Internet
--   gateway.</li>
--   <li><a>igTags</a> - Any tags assigned to the Internet gateway.</li>
--   <li><a>igInternetGatewayId</a> - The ID of the Internet gateway.</li>
--   </ul>
internetGateway :: Text -> InternetGateway

-- | Any VPCs attached to the Internet gateway.
igAttachments :: Lens' InternetGateway [InternetGatewayAttachment]

-- | Any tags assigned to the Internet gateway.
igTags :: Lens' InternetGateway [Tag]

-- | The ID of the Internet gateway.
igInternetGatewayId :: Lens' InternetGateway Text

-- | Describes the attachment of a VPC to an Internet gateway or an
--   egress-only Internet gateway.
--   
--   <i>See:</i> <a>internetGatewayAttachment</a> smart constructor.
data InternetGatewayAttachment

-- | Creates a value of <a>InternetGatewayAttachment</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>igaState</a> - The current state of the attachment.</li>
--   <li><a>igaVPCId</a> - The ID of the VPC.</li>
--   </ul>
internetGatewayAttachment :: AttachmentStatus -> Text -> InternetGatewayAttachment

-- | The current state of the attachment.
igaState :: Lens' InternetGatewayAttachment AttachmentStatus

-- | The ID of the VPC.
igaVPCId :: Lens' InternetGatewayAttachment Text

-- | Describes a key pair.
--   
--   <i>See:</i> <a>keyPairInfo</a> smart constructor.
data KeyPairInfo

-- | Creates a value of <a>KeyPairInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>kpiKeyFingerprint</a> - If you used <tt>CreateKeyPair</tt> to
--   create the key pair, this is the SHA-1 digest of the DER encoded
--   private key. If you used <tt>ImportKeyPair</tt> to provide AWS the
--   public key, this is the MD5 public key fingerprint as specified in
--   section 4 of RFC4716.</li>
--   <li><a>kpiKeyName</a> - The name of the key pair.</li>
--   </ul>
keyPairInfo :: KeyPairInfo

-- | If you used <tt>CreateKeyPair</tt> to create the key pair, this is the
--   SHA-1 digest of the DER encoded private key. If you used
--   <tt>ImportKeyPair</tt> to provide AWS the public key, this is the MD5
--   public key fingerprint as specified in section 4 of RFC4716.
kpiKeyFingerprint :: Lens' KeyPairInfo (Maybe Text)

-- | The name of the key pair.
kpiKeyName :: Lens' KeyPairInfo (Maybe Text)

-- | Describes a launch permission.
--   
--   <i>See:</i> <a>launchPermission</a> smart constructor.
data LaunchPermission

-- | Creates a value of <a>LaunchPermission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lpGroup</a> - The name of the group.</li>
--   <li><a>lpUserId</a> - The AWS account ID.</li>
--   </ul>
launchPermission :: LaunchPermission

-- | The name of the group.
lpGroup :: Lens' LaunchPermission (Maybe PermissionGroup)

-- | The AWS account ID.
lpUserId :: Lens' LaunchPermission (Maybe Text)

-- | Describes a launch permission modification.
--   
--   <i>See:</i> <a>launchPermissionModifications</a> smart constructor.
data LaunchPermissionModifications

-- | Creates a value of <a>LaunchPermissionModifications</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lpmRemove</a> - The AWS account ID to remove from the list of
--   launch permissions for the AMI.</li>
--   <li><a>lpmAdd</a> - The AWS account ID to add to the list of launch
--   permissions for the AMI.</li>
--   </ul>
launchPermissionModifications :: LaunchPermissionModifications

-- | The AWS account ID to remove from the list of launch permissions for
--   the AMI.
lpmRemove :: Lens' LaunchPermissionModifications [LaunchPermission]

-- | The AWS account ID to add to the list of launch permissions for the
--   AMI.
lpmAdd :: Lens' LaunchPermissionModifications [LaunchPermission]

-- | Describes the launch specification for an instance.
--   
--   <i>See:</i> <a>launchSpecification</a> smart constructor.
data LaunchSpecification

-- | Creates a value of <a>LaunchSpecification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lsSecurityGroups</a> - One or more security groups. When
--   requesting instances in a VPC, you must specify the IDs of the
--   security groups. When requesting instances in EC2-Classic, you can
--   specify the names or the IDs of the security groups.</li>
--   <li><a>lsKeyName</a> - The name of the key pair.</li>
--   <li><a>lsNetworkInterfaces</a> - One or more network interfaces. If
--   you specify a network interface, you must specify subnet IDs and
--   security group IDs using the network interface.</li>
--   <li><a>lsRAMDiskId</a> - The ID of the RAM disk.</li>
--   <li><a>lsSubnetId</a> - The ID of the subnet in which to launch the
--   instance.</li>
--   <li><a>lsKernelId</a> - The ID of the kernel.</li>
--   <li><a>lsInstanceType</a> - The instance type.</li>
--   <li><a>lsEBSOptimized</a> - Indicates whether the instance is
--   optimized for EBS I<i>O. This optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal EBS I</i>O performance. This optimization isn't
--   available with all instance types. Additional usage charges apply when
--   using an EBS Optimized instance. Default: <tt>false</tt></li>
--   <li><a>lsUserData</a> - The user data to make available to the
--   instances. If you are using an AWS SDK or command line tool,
--   Base64-encoding is performed for you, and you can load the text from a
--   file. Otherwise, you must provide Base64-encoded text.</li>
--   <li><a>lsMonitoring</a> - Undocumented member.</li>
--   <li><a>lsIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>lsImageId</a> - The ID of the AMI.</li>
--   <li><a>lsAddressingType</a> - Deprecated.</li>
--   <li><a>lsBlockDeviceMappings</a> - One or more block device mapping
--   entries. Although you can specify encrypted EBS volumes in this block
--   device mapping for your Spot Instances, these volumes are not
--   encrypted.</li>
--   <li><a>lsPlacement</a> - The placement information for the
--   instance.</li>
--   </ul>
launchSpecification :: LaunchSpecification

-- | One or more security groups. When requesting instances in a VPC, you
--   must specify the IDs of the security groups. When requesting instances
--   in EC2-Classic, you can specify the names or the IDs of the security
--   groups.
lsSecurityGroups :: Lens' LaunchSpecification [GroupIdentifier]

-- | The name of the key pair.
lsKeyName :: Lens' LaunchSpecification (Maybe Text)

-- | One or more network interfaces. If you specify a network interface,
--   you must specify subnet IDs and security group IDs using the network
--   interface.
lsNetworkInterfaces :: Lens' LaunchSpecification [InstanceNetworkInterfaceSpecification]

-- | The ID of the RAM disk.
lsRAMDiskId :: Lens' LaunchSpecification (Maybe Text)

-- | The ID of the subnet in which to launch the instance.
lsSubnetId :: Lens' LaunchSpecification (Maybe Text)

-- | The ID of the kernel.
lsKernelId :: Lens' LaunchSpecification (Maybe Text)

-- | The instance type.
lsInstanceType :: Lens' LaunchSpecification (Maybe InstanceType)

-- | Indicates whether the instance is optimized for EBS I<i>O. This
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal EBS I</i>O
--   performance. This optimization isn't available with all instance
--   types. Additional usage charges apply when using an EBS Optimized
--   instance. Default: <tt>false</tt>
lsEBSOptimized :: Lens' LaunchSpecification (Maybe Bool)

-- | The user data to make available to the instances. If you are using an
--   AWS SDK or command line tool, Base64-encoding is performed for you,
--   and you can load the text from a file. Otherwise, you must provide
--   Base64-encoded text.
lsUserData :: Lens' LaunchSpecification (Maybe Text)

-- | Undocumented member.
lsMonitoring :: Lens' LaunchSpecification (Maybe RunInstancesMonitoringEnabled)

-- | The IAM instance profile.
lsIAMInstanceProfile :: Lens' LaunchSpecification (Maybe IAMInstanceProfileSpecification)

-- | The ID of the AMI.
lsImageId :: Lens' LaunchSpecification (Maybe Text)

-- | Deprecated.
lsAddressingType :: Lens' LaunchSpecification (Maybe Text)

-- | One or more block device mapping entries. Although you can specify
--   encrypted EBS volumes in this block device mapping for your Spot
--   Instances, these volumes are not encrypted.
lsBlockDeviceMappings :: Lens' LaunchSpecification [BlockDeviceMapping]

-- | The placement information for the instance.
lsPlacement :: Lens' LaunchSpecification (Maybe SpotPlacement)

-- | Describes the monitoring of an instance.
--   
--   <i>See:</i> <a>monitoring</a> smart constructor.
data Monitoring

-- | Creates a value of <a>Monitoring</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mState</a> - Indicates whether detailed monitoring is enabled.
--   Otherwise, basic monitoring is enabled.</li>
--   </ul>
monitoring :: Monitoring

-- | Indicates whether detailed monitoring is enabled. Otherwise, basic
--   monitoring is enabled.
mState :: Lens' Monitoring (Maybe MonitoringState)

-- | Describes the status of a moving Elastic IP address.
--   
--   <i>See:</i> <a>movingAddressStatus</a> smart constructor.
data MovingAddressStatus

-- | Creates a value of <a>MovingAddressStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>masMoveStatus</a> - The status of the Elastic IP address that's
--   being moved to the EC2-VPC platform, or restored to the EC2-Classic
--   platform.</li>
--   <li><a>masPublicIP</a> - The Elastic IP address.</li>
--   </ul>
movingAddressStatus :: MovingAddressStatus

-- | The status of the Elastic IP address that's being moved to the EC2-VPC
--   platform, or restored to the EC2-Classic platform.
masMoveStatus :: Lens' MovingAddressStatus (Maybe MoveStatus)

-- | The Elastic IP address.
masPublicIP :: Lens' MovingAddressStatus (Maybe Text)

-- | Describes a NAT gateway.
--   
--   <i>See:</i> <a>natGateway</a> smart constructor.
data NatGateway

-- | Creates a value of <a>NatGateway</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ngState</a> - The state of the NAT gateway. * <tt>pending</tt>
--   : The NAT gateway is being created and is not ready to process
--   traffic. * <tt>failed</tt> : The NAT gateway could not be created.
--   Check the <tt>failureCode</tt> and <tt>failureMessage</tt> fields for
--   the reason. * <tt>available</tt> : The NAT gateway is able to process
--   traffic. This status remains until you delete the NAT gateway, and
--   does not indicate the health of the NAT gateway. * <tt>deleting</tt> :
--   The NAT gateway is in the process of being terminated and may still be
--   processing traffic. * <tt>deleted</tt> : The NAT gateway has been
--   terminated and is no longer processing traffic.</li>
--   <li><a>ngFailureCode</a> - If the NAT gateway could not be created,
--   specifies the error code for the failure.
--   (<tt>InsufficientFreeAddressesInSubnet</tt> |
--   <tt>Gateway.NotAttached</tt> | <tt>InvalidAllocationID.NotFound</tt> |
--   <tt>Resource.AlreadyAssociated</tt> | <tt>InternalError</tt> |
--   <tt>InvalidSubnetID.NotFound</tt> )</li>
--   <li><a>ngVPCId</a> - The ID of the VPC in which the NAT gateway is
--   located.</li>
--   <li><a>ngFailureMessage</a> - If the NAT gateway could not be created,
--   specifies the error message for the failure, that corresponds to the
--   error code. * For InsufficientFreeAddressesInSubnet: "Subnet has
--   insufficient free addresses to create this NAT gateway" * For
--   Gateway.NotAttached: "Network vpc-xxxxxxxx has no Internet gateway
--   attached" * For InvalidAllocationID.NotFound: "Elastic IP address
--   eipalloc-xxxxxxxx could not be associated with this NAT gateway" * For
--   Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is
--   already associated" * For InternalError: "Network interface
--   eni-xxxxxxxx, created and used internally by this NAT gateway is in an
--   invalid state. Please try again." * For InvalidSubnetID.NotFound: "The
--   specified subnet subnet-xxxxxxxx does not exist or could not be
--   found."</li>
--   <li><a>ngNatGatewayId</a> - The ID of the NAT gateway.</li>
--   <li><a>ngSubnetId</a> - The ID of the subnet in which the NAT gateway
--   is located.</li>
--   <li><a>ngDeleteTime</a> - The date and time the NAT gateway was
--   deleted, if applicable.</li>
--   <li><a>ngProvisionedBandwidth</a> - Reserved. If you need to sustain
--   traffic greater than the <a>documented limits</a> , contact us through
--   the <a>Support Center</a> .</li>
--   <li><a>ngNatGatewayAddresses</a> - Information about the IP addresses
--   and network interface associated with the NAT gateway.</li>
--   <li><a>ngCreateTime</a> - The date and time the NAT gateway was
--   created.</li>
--   </ul>
natGateway :: NatGateway

-- | The state of the NAT gateway. * <tt>pending</tt> : The NAT gateway is
--   being created and is not ready to process traffic. * <tt>failed</tt> :
--   The NAT gateway could not be created. Check the <tt>failureCode</tt>
--   and <tt>failureMessage</tt> fields for the reason. *
--   <tt>available</tt> : The NAT gateway is able to process traffic. This
--   status remains until you delete the NAT gateway, and does not indicate
--   the health of the NAT gateway. * <tt>deleting</tt> : The NAT gateway
--   is in the process of being terminated and may still be processing
--   traffic. * <tt>deleted</tt> : The NAT gateway has been terminated and
--   is no longer processing traffic.
ngState :: Lens' NatGateway (Maybe NatGatewayState)

-- | If the NAT gateway could not be created, specifies the error code for
--   the failure. (<tt>InsufficientFreeAddressesInSubnet</tt> |
--   <tt>Gateway.NotAttached</tt> | <tt>InvalidAllocationID.NotFound</tt> |
--   <tt>Resource.AlreadyAssociated</tt> | <tt>InternalError</tt> |
--   <tt>InvalidSubnetID.NotFound</tt> )
ngFailureCode :: Lens' NatGateway (Maybe Text)

-- | The ID of the VPC in which the NAT gateway is located.
ngVPCId :: Lens' NatGateway (Maybe Text)

-- | If the NAT gateway could not be created, specifies the error message
--   for the failure, that corresponds to the error code. * For
--   InsufficientFreeAddressesInSubnet: "Subnet has insufficient free
--   addresses to create this NAT gateway" * For Gateway.NotAttached:
--   "Network vpc-xxxxxxxx has no Internet gateway attached" * For
--   InvalidAllocationID.NotFound: "Elastic IP address eipalloc-xxxxxxxx
--   could not be associated with this NAT gateway" * For
--   Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is
--   already associated" * For InternalError: "Network interface
--   eni-xxxxxxxx, created and used internally by this NAT gateway is in an
--   invalid state. Please try again." * For InvalidSubnetID.NotFound: "The
--   specified subnet subnet-xxxxxxxx does not exist or could not be
--   found."
ngFailureMessage :: Lens' NatGateway (Maybe Text)

-- | The ID of the NAT gateway.
ngNatGatewayId :: Lens' NatGateway (Maybe Text)

-- | The ID of the subnet in which the NAT gateway is located.
ngSubnetId :: Lens' NatGateway (Maybe Text)

-- | The date and time the NAT gateway was deleted, if applicable.
ngDeleteTime :: Lens' NatGateway (Maybe UTCTime)

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
ngProvisionedBandwidth :: Lens' NatGateway (Maybe ProvisionedBandwidth)

-- | Information about the IP addresses and network interface associated
--   with the NAT gateway.
ngNatGatewayAddresses :: Lens' NatGateway [NatGatewayAddress]

-- | The date and time the NAT gateway was created.
ngCreateTime :: Lens' NatGateway (Maybe UTCTime)

-- | Describes the IP addresses and network interface associated with a NAT
--   gateway.
--   
--   <i>See:</i> <a>natGatewayAddress</a> smart constructor.
data NatGatewayAddress

-- | Creates a value of <a>NatGatewayAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ngaPrivateIP</a> - The private IP address associated with the
--   Elastic IP address.</li>
--   <li><a>ngaAllocationId</a> - The allocation ID of the Elastic IP
--   address that's associated with the NAT gateway.</li>
--   <li><a>ngaNetworkInterfaceId</a> - The ID of the network interface
--   associated with the NAT gateway.</li>
--   <li><a>ngaPublicIP</a> - The Elastic IP address associated with the
--   NAT gateway.</li>
--   </ul>
natGatewayAddress :: NatGatewayAddress

-- | The private IP address associated with the Elastic IP address.
ngaPrivateIP :: Lens' NatGatewayAddress (Maybe Text)

-- | The allocation ID of the Elastic IP address that's associated with the
--   NAT gateway.
ngaAllocationId :: Lens' NatGatewayAddress (Maybe Text)

-- | The ID of the network interface associated with the NAT gateway.
ngaNetworkInterfaceId :: Lens' NatGatewayAddress (Maybe Text)

-- | The Elastic IP address associated with the NAT gateway.
ngaPublicIP :: Lens' NatGatewayAddress (Maybe Text)

-- | Describes a network ACL.
--   
--   <i>See:</i> <a>networkACL</a> smart constructor.
data NetworkACL

-- | Creates a value of <a>NetworkACL</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>naEntries</a> - One or more entries (rules) in the network
--   ACL.</li>
--   <li><a>naNetworkACLId</a> - The ID of the network ACL.</li>
--   <li><a>naVPCId</a> - The ID of the VPC for the network ACL.</li>
--   <li><a>naAssociations</a> - Any associations between the network ACL
--   and one or more subnets</li>
--   <li><a>naTags</a> - Any tags assigned to the network ACL.</li>
--   <li><a>naIsDefault</a> - Indicates whether this is the default network
--   ACL for the VPC.</li>
--   </ul>
networkACL :: NetworkACL

-- | One or more entries (rules) in the network ACL.
naEntries :: Lens' NetworkACL [NetworkACLEntry]

-- | The ID of the network ACL.
naNetworkACLId :: Lens' NetworkACL (Maybe Text)

-- | The ID of the VPC for the network ACL.
naVPCId :: Lens' NetworkACL (Maybe Text)

-- | Any associations between the network ACL and one or more subnets
naAssociations :: Lens' NetworkACL [NetworkACLAssociation]

-- | Any tags assigned to the network ACL.
naTags :: Lens' NetworkACL [Tag]

-- | Indicates whether this is the default network ACL for the VPC.
naIsDefault :: Lens' NetworkACL (Maybe Bool)

-- | Describes an association between a network ACL and a subnet.
--   
--   <i>See:</i> <a>networkACLAssociation</a> smart constructor.
data NetworkACLAssociation

-- | Creates a value of <a>NetworkACLAssociation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>naaNetworkACLId</a> - The ID of the network ACL.</li>
--   <li><a>naaSubnetId</a> - The ID of the subnet.</li>
--   <li><a>naaNetworkACLAssociationId</a> - The ID of the association
--   between a network ACL and a subnet.</li>
--   </ul>
networkACLAssociation :: NetworkACLAssociation

-- | The ID of the network ACL.
naaNetworkACLId :: Lens' NetworkACLAssociation (Maybe Text)

-- | The ID of the subnet.
naaSubnetId :: Lens' NetworkACLAssociation (Maybe Text)

-- | The ID of the association between a network ACL and a subnet.
naaNetworkACLAssociationId :: Lens' NetworkACLAssociation (Maybe Text)

-- | Describes an entry in a network ACL.
--   
--   <i>See:</i> <a>networkACLEntry</a> smart constructor.
data NetworkACLEntry

-- | Creates a value of <a>NetworkACLEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>naeIPv6CidrBlock</a> - The IPv6 network range to allow or deny,
--   in CIDR notation.</li>
--   <li><a>naeICMPTypeCode</a> - ICMP protocol: The ICMP type and
--   code.</li>
--   <li><a>naeRuleNumber</a> - The rule number for the entry. ACL entries
--   are processed in ascending order by rule number.</li>
--   <li><a>naeRuleAction</a> - Indicates whether to allow or deny the
--   traffic that matches the rule.</li>
--   <li><a>naeProtocol</a> - The protocol. A value of <tt>-1</tt> means
--   all protocols.</li>
--   <li><a>naePortRange</a> - TCP or UDP protocols: The range of ports the
--   rule applies to.</li>
--   <li><a>naeCidrBlock</a> - The IPv4 network range to allow or deny, in
--   CIDR notation.</li>
--   <li><a>naeEgress</a> - Indicates whether the rule is an egress rule
--   (applied to traffic leaving the subnet).</li>
--   </ul>
networkACLEntry :: NetworkACLEntry

-- | The IPv6 network range to allow or deny, in CIDR notation.
naeIPv6CidrBlock :: Lens' NetworkACLEntry (Maybe Text)

-- | ICMP protocol: The ICMP type and code.
naeICMPTypeCode :: Lens' NetworkACLEntry (Maybe ICMPTypeCode)

-- | The rule number for the entry. ACL entries are processed in ascending
--   order by rule number.
naeRuleNumber :: Lens' NetworkACLEntry (Maybe Int)

-- | Indicates whether to allow or deny the traffic that matches the rule.
naeRuleAction :: Lens' NetworkACLEntry (Maybe RuleAction)

-- | The protocol. A value of <tt>-1</tt> means all protocols.
naeProtocol :: Lens' NetworkACLEntry (Maybe Text)

-- | TCP or UDP protocols: The range of ports the rule applies to.
naePortRange :: Lens' NetworkACLEntry (Maybe PortRange)

-- | The IPv4 network range to allow or deny, in CIDR notation.
naeCidrBlock :: Lens' NetworkACLEntry (Maybe Text)

-- | Indicates whether the rule is an egress rule (applied to traffic
--   leaving the subnet).
naeEgress :: Lens' NetworkACLEntry (Maybe Bool)

-- | Describes a network interface.
--   
--   <i>See:</i> <a>networkInterface</a> smart constructor.
data NetworkInterface

-- | Creates a value of <a>NetworkInterface</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>niGroups</a> - Any security groups for the network
--   interface.</li>
--   <li><a>niStatus</a> - The status of the network interface.</li>
--   <li><a>niPrivateIPAddresses</a> - The private IPv4 addresses
--   associated with the network interface.</li>
--   <li><a>niSourceDestCheck</a> - Indicates whether traffic to or from
--   the instance is validated.</li>
--   <li><a>niInterfaceType</a> - The type of interface.</li>
--   <li><a>niVPCId</a> - The ID of the VPC.</li>
--   <li><a>niTagSet</a> - Any tags assigned to the network interface.</li>
--   <li><a>niRequesterManaged</a> - Indicates whether the network
--   interface is being managed by AWS.</li>
--   <li><a>niNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>niSubnetId</a> - The ID of the subnet.</li>
--   <li><a>niMACAddress</a> - The MAC address.</li>
--   <li><a>niAttachment</a> - The network interface attachment.</li>
--   <li><a>niOwnerId</a> - The AWS account ID of the owner of the network
--   interface.</li>
--   <li><a>niAvailabilityZone</a> - The Availability Zone.</li>
--   <li><a>niPrivateIPAddress</a> - The IPv4 address of the network
--   interface within the subnet.</li>
--   <li><a>niPrivateDNSName</a> - The private DNS name.</li>
--   <li><a>niRequesterId</a> - The ID of the entity that launched the
--   instance on your behalf (for example, AWS Management Console or Auto
--   Scaling).</li>
--   <li><a>niDescription</a> - A description.</li>
--   <li><a>niAssociation</a> - The association information for an Elastic
--   IP address (IPv4) associated with the network interface.</li>
--   <li><a>niIPv6Addresses</a> - The IPv6 addresses associated with the
--   network interface.</li>
--   </ul>
networkInterface :: NetworkInterface

-- | Any security groups for the network interface.
niGroups :: Lens' NetworkInterface [GroupIdentifier]

-- | The status of the network interface.
niStatus :: Lens' NetworkInterface (Maybe NetworkInterfaceStatus)

-- | The private IPv4 addresses associated with the network interface.
niPrivateIPAddresses :: Lens' NetworkInterface [NetworkInterfacePrivateIPAddress]

-- | Indicates whether traffic to or from the instance is validated.
niSourceDestCheck :: Lens' NetworkInterface (Maybe Bool)

-- | The type of interface.
niInterfaceType :: Lens' NetworkInterface (Maybe NetworkInterfaceType)

-- | The ID of the VPC.
niVPCId :: Lens' NetworkInterface (Maybe Text)

-- | Any tags assigned to the network interface.
niTagSet :: Lens' NetworkInterface [Tag]

-- | Indicates whether the network interface is being managed by AWS.
niRequesterManaged :: Lens' NetworkInterface (Maybe Bool)

-- | The ID of the network interface.
niNetworkInterfaceId :: Lens' NetworkInterface (Maybe Text)

-- | The ID of the subnet.
niSubnetId :: Lens' NetworkInterface (Maybe Text)

-- | The MAC address.
niMACAddress :: Lens' NetworkInterface (Maybe Text)

-- | The network interface attachment.
niAttachment :: Lens' NetworkInterface (Maybe NetworkInterfaceAttachment)

-- | The AWS account ID of the owner of the network interface.
niOwnerId :: Lens' NetworkInterface (Maybe Text)

-- | The Availability Zone.
niAvailabilityZone :: Lens' NetworkInterface (Maybe Text)

-- | The IPv4 address of the network interface within the subnet.
niPrivateIPAddress :: Lens' NetworkInterface (Maybe Text)

-- | The private DNS name.
niPrivateDNSName :: Lens' NetworkInterface (Maybe Text)

-- | The ID of the entity that launched the instance on your behalf (for
--   example, AWS Management Console or Auto Scaling).
niRequesterId :: Lens' NetworkInterface (Maybe Text)

-- | A description.
niDescription :: Lens' NetworkInterface (Maybe Text)

-- | The association information for an Elastic IP address (IPv4)
--   associated with the network interface.
niAssociation :: Lens' NetworkInterface (Maybe NetworkInterfaceAssociation)

-- | The IPv6 addresses associated with the network interface.
niIPv6Addresses :: Lens' NetworkInterface [NetworkInterfaceIPv6Address]

-- | Describes association information for an Elastic IP address (IPv4
--   only).
--   
--   <i>See:</i> <a>networkInterfaceAssociation</a> smart constructor.
data NetworkInterfaceAssociation

-- | Creates a value of <a>NetworkInterfaceAssociation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>niaAssociationId</a> - The association ID.</li>
--   <li><a>niaPublicDNSName</a> - The public DNS name.</li>
--   <li><a>niaAllocationId</a> - The allocation ID.</li>
--   <li><a>niaIPOwnerId</a> - The ID of the Elastic IP address owner.</li>
--   <li><a>niaPublicIP</a> - The address of the Elastic IP address bound
--   to the network interface.</li>
--   </ul>
networkInterfaceAssociation :: NetworkInterfaceAssociation

-- | The association ID.
niaAssociationId :: Lens' NetworkInterfaceAssociation (Maybe Text)

-- | The public DNS name.
niaPublicDNSName :: Lens' NetworkInterfaceAssociation (Maybe Text)

-- | The allocation ID.
niaAllocationId :: Lens' NetworkInterfaceAssociation (Maybe Text)

-- | The ID of the Elastic IP address owner.
niaIPOwnerId :: Lens' NetworkInterfaceAssociation (Maybe Text)

-- | The address of the Elastic IP address bound to the network interface.
niaPublicIP :: Lens' NetworkInterfaceAssociation (Maybe Text)

-- | Describes a network interface attachment.
--   
--   <i>See:</i> <a>networkInterfaceAttachment</a> smart constructor.
data NetworkInterfaceAttachment

-- | Creates a value of <a>NetworkInterfaceAttachment</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>niaInstanceId</a> - The ID of the instance.</li>
--   <li><a>niaStatus</a> - The attachment state.</li>
--   <li><a>niaDeleteOnTermination</a> - Indicates whether the network
--   interface is deleted when the instance is terminated.</li>
--   <li><a>niaAttachmentId</a> - The ID of the network interface
--   attachment.</li>
--   <li><a>niaInstanceOwnerId</a> - The AWS account ID of the owner of the
--   instance.</li>
--   <li><a>niaAttachTime</a> - The timestamp indicating when the
--   attachment initiated.</li>
--   <li><a>niaDeviceIndex</a> - The device index of the network interface
--   attachment on the instance.</li>
--   </ul>
networkInterfaceAttachment :: NetworkInterfaceAttachment

-- | The ID of the instance.
niaInstanceId :: Lens' NetworkInterfaceAttachment (Maybe Text)

-- | The attachment state.
niaStatus :: Lens' NetworkInterfaceAttachment (Maybe AttachmentStatus)

-- | Indicates whether the network interface is deleted when the instance
--   is terminated.
niaDeleteOnTermination :: Lens' NetworkInterfaceAttachment (Maybe Bool)

-- | The ID of the network interface attachment.
niaAttachmentId :: Lens' NetworkInterfaceAttachment (Maybe Text)

-- | The AWS account ID of the owner of the instance.
niaInstanceOwnerId :: Lens' NetworkInterfaceAttachment (Maybe Text)

-- | The timestamp indicating when the attachment initiated.
niaAttachTime :: Lens' NetworkInterfaceAttachment (Maybe UTCTime)

-- | The device index of the network interface attachment on the instance.
niaDeviceIndex :: Lens' NetworkInterfaceAttachment (Maybe Int)

-- | Describes an attachment change.
--   
--   <i>See:</i> <a>networkInterfaceAttachmentChanges</a> smart
--   constructor.
data NetworkInterfaceAttachmentChanges

-- | Creates a value of <a>NetworkInterfaceAttachmentChanges</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>niacDeleteOnTermination</a> - Indicates whether the network
--   interface is deleted when the instance is terminated.</li>
--   <li><a>niacAttachmentId</a> - The ID of the network interface
--   attachment.</li>
--   </ul>
networkInterfaceAttachmentChanges :: NetworkInterfaceAttachmentChanges

-- | Indicates whether the network interface is deleted when the instance
--   is terminated.
niacDeleteOnTermination :: Lens' NetworkInterfaceAttachmentChanges (Maybe Bool)

-- | The ID of the network interface attachment.
niacAttachmentId :: Lens' NetworkInterfaceAttachmentChanges (Maybe Text)

-- | Describes an IPv6 address associated with a network interface.
--   
--   <i>See:</i> <a>networkInterfaceIPv6Address</a> smart constructor.
data NetworkInterfaceIPv6Address

-- | Creates a value of <a>NetworkInterfaceIPv6Address</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>niiaIPv6Address</a> - The IPv6 address.</li>
--   </ul>
networkInterfaceIPv6Address :: NetworkInterfaceIPv6Address

-- | The IPv6 address.
niiaIPv6Address :: Lens' NetworkInterfaceIPv6Address (Maybe Text)

-- | Describes the private IPv4 address of a network interface.
--   
--   <i>See:</i> <a>networkInterfacePrivateIPAddress</a> smart constructor.
data NetworkInterfacePrivateIPAddress

-- | Creates a value of <a>NetworkInterfacePrivateIPAddress</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nipiaPrimary</a> - Indicates whether this IPv4 address is the
--   primary private IPv4 address of the network interface.</li>
--   <li><a>nipiaPrivateIPAddress</a> - The private IPv4 address.</li>
--   <li><a>nipiaPrivateDNSName</a> - The private DNS name.</li>
--   <li><a>nipiaAssociation</a> - The association information for an
--   Elastic IP address (IPv4) associated with the network interface.</li>
--   </ul>
networkInterfacePrivateIPAddress :: NetworkInterfacePrivateIPAddress

-- | Indicates whether this IPv4 address is the primary private IPv4
--   address of the network interface.
nipiaPrimary :: Lens' NetworkInterfacePrivateIPAddress (Maybe Bool)

-- | The private IPv4 address.
nipiaPrivateIPAddress :: Lens' NetworkInterfacePrivateIPAddress (Maybe Text)

-- | The private DNS name.
nipiaPrivateDNSName :: Lens' NetworkInterfacePrivateIPAddress (Maybe Text)

-- | The association information for an Elastic IP address (IPv4)
--   associated with the network interface.
nipiaAssociation :: Lens' NetworkInterfacePrivateIPAddress (Maybe NetworkInterfaceAssociation)

-- | <i>See:</i> <a>newDHCPConfiguration</a> smart constructor.
data NewDHCPConfiguration

-- | Creates a value of <a>NewDHCPConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ndcValues</a> - Undocumented member.</li>
--   <li><a>ndcKey</a> - Undocumented member.</li>
--   </ul>
newDHCPConfiguration :: NewDHCPConfiguration

-- | Undocumented member.
ndcValues :: Lens' NewDHCPConfiguration [Text]

-- | Undocumented member.
ndcKey :: Lens' NewDHCPConfiguration (Maybe Text)

-- | Describes the VPC peering connection options.
--   
--   <i>See:</i> <a>peeringConnectionOptions</a> smart constructor.
data PeeringConnectionOptions

-- | Creates a value of <a>PeeringConnectionOptions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pcoAllowEgressFromLocalVPCToRemoteClassicLink</a> - If true,
--   enables outbound communication from instances in a local VPC to an
--   EC2-Classic instance that's linked to a peer VPC via ClassicLink.</li>
--   <li><a>pcoAllowEgressFromLocalClassicLinkToRemoteVPC</a> - If true,
--   enables outbound communication from an EC2-Classic instance that's
--   linked to a local VPC via ClassicLink to instances in a peer VPC.</li>
--   <li><a>pcoAllowDNSResolutionFromRemoteVPC</a> - If true, enables a
--   local VPC to resolve public DNS hostnames to private IP addresses when
--   queried from instances in the peer VPC.</li>
--   </ul>
peeringConnectionOptions :: PeeringConnectionOptions

-- | If true, enables outbound communication from instances in a local VPC
--   to an EC2-Classic instance that's linked to a peer VPC via
--   ClassicLink.
pcoAllowEgressFromLocalVPCToRemoteClassicLink :: Lens' PeeringConnectionOptions (Maybe Bool)

-- | If true, enables outbound communication from an EC2-Classic instance
--   that's linked to a local VPC via ClassicLink to instances in a peer
--   VPC.
pcoAllowEgressFromLocalClassicLinkToRemoteVPC :: Lens' PeeringConnectionOptions (Maybe Bool)

-- | If true, enables a local VPC to resolve public DNS hostnames to
--   private IP addresses when queried from instances in the peer VPC.
pcoAllowDNSResolutionFromRemoteVPC :: Lens' PeeringConnectionOptions (Maybe Bool)

-- | The VPC peering connection options.
--   
--   <i>See:</i> <a>peeringConnectionOptionsRequest</a> smart constructor.
data PeeringConnectionOptionsRequest

-- | Creates a value of <a>PeeringConnectionOptionsRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pcorAllowEgressFromLocalVPCToRemoteClassicLink</a> - If true,
--   enables outbound communication from instances in a local VPC to an
--   EC2-Classic instance that's linked to a peer VPC via ClassicLink.</li>
--   <li><a>pcorAllowEgressFromLocalClassicLinkToRemoteVPC</a> - If true,
--   enables outbound communication from an EC2-Classic instance that's
--   linked to a local VPC via ClassicLink to instances in a peer VPC.</li>
--   <li><a>pcorAllowDNSResolutionFromRemoteVPC</a> - If true, enables a
--   local VPC to resolve public DNS hostnames to private IP addresses when
--   queried from instances in the peer VPC.</li>
--   </ul>
peeringConnectionOptionsRequest :: PeeringConnectionOptionsRequest

-- | If true, enables outbound communication from instances in a local VPC
--   to an EC2-Classic instance that's linked to a peer VPC via
--   ClassicLink.
pcorAllowEgressFromLocalVPCToRemoteClassicLink :: Lens' PeeringConnectionOptionsRequest (Maybe Bool)

-- | If true, enables outbound communication from an EC2-Classic instance
--   that's linked to a local VPC via ClassicLink to instances in a peer
--   VPC.
pcorAllowEgressFromLocalClassicLinkToRemoteVPC :: Lens' PeeringConnectionOptionsRequest (Maybe Bool)

-- | If true, enables a local VPC to resolve public DNS hostnames to
--   private IP addresses when queried from instances in the peer VPC.
pcorAllowDNSResolutionFromRemoteVPC :: Lens' PeeringConnectionOptionsRequest (Maybe Bool)

-- | Describes the placement of an instance.
--   
--   <i>See:</i> <a>placement</a> smart constructor.
data Placement

-- | Creates a value of <a>Placement</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pAffinity</a> - The affinity setting for the instance on the
--   Dedicated Host. This parameter is not supported for the
--   <tt>ImportInstance</tt> command.</li>
--   <li><a>pHostId</a> - The ID of the Dedicted host on which the instance
--   resides. This parameter is not support for the <tt>ImportInstance</tt>
--   command.</li>
--   <li><a>pAvailabilityZone</a> - The Availability Zone of the
--   instance.</li>
--   <li><a>pTenancy</a> - The tenancy of the instance (if the instance is
--   running in a VPC). An instance with a tenancy of <tt>dedicated</tt>
--   runs on single-tenant hardware. The <tt>host</tt> tenancy is not
--   supported for the <tt>ImportInstance</tt> command.</li>
--   <li><a>pGroupName</a> - The name of the placement group the instance
--   is in (for cluster compute instances).</li>
--   </ul>
placement :: Placement

-- | The affinity setting for the instance on the Dedicated Host. This
--   parameter is not supported for the <tt>ImportInstance</tt> command.
pAffinity :: Lens' Placement (Maybe Text)

-- | The ID of the Dedicted host on which the instance resides. This
--   parameter is not support for the <tt>ImportInstance</tt> command.
pHostId :: Lens' Placement (Maybe Text)

-- | The Availability Zone of the instance.
pAvailabilityZone :: Lens' Placement (Maybe Text)

-- | The tenancy of the instance (if the instance is running in a VPC). An
--   instance with a tenancy of <tt>dedicated</tt> runs on single-tenant
--   hardware. The <tt>host</tt> tenancy is not supported for the
--   <tt>ImportInstance</tt> command.
pTenancy :: Lens' Placement (Maybe Tenancy)

-- | The name of the placement group the instance is in (for cluster
--   compute instances).
pGroupName :: Lens' Placement (Maybe Text)

-- | Describes a placement group.
--   
--   <i>See:</i> <a>placementGroup</a> smart constructor.
data PlacementGroup

-- | Creates a value of <a>PlacementGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pgState</a> - The state of the placement group.</li>
--   <li><a>pgStrategy</a> - The placement strategy.</li>
--   <li><a>pgGroupName</a> - The name of the placement group.</li>
--   </ul>
placementGroup :: PlacementGroup

-- | The state of the placement group.
pgState :: Lens' PlacementGroup (Maybe PlacementGroupState)

-- | The placement strategy.
pgStrategy :: Lens' PlacementGroup (Maybe PlacementStrategy)

-- | The name of the placement group.
pgGroupName :: Lens' PlacementGroup (Maybe Text)

-- | Describes a range of ports.
--   
--   <i>See:</i> <a>portRange</a> smart constructor.
data PortRange

-- | Creates a value of <a>PortRange</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prTo</a> - The last port in the range.</li>
--   <li><a>prFrom</a> - The first port in the range.</li>
--   </ul>
portRange :: PortRange

-- | The last port in the range.
prTo :: Lens' PortRange (Maybe Int)

-- | The first port in the range.
prFrom :: Lens' PortRange (Maybe Int)

-- | Describes prefixes for AWS services.
--   
--   <i>See:</i> <a>prefixList</a> smart constructor.
data PrefixList

-- | Creates a value of <a>PrefixList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plCidrs</a> - The IP address range of the AWS service.</li>
--   <li><a>plPrefixListId</a> - The ID of the prefix.</li>
--   <li><a>plPrefixListName</a> - The name of the prefix.</li>
--   </ul>
prefixList :: PrefixList

-- | The IP address range of the AWS service.
plCidrs :: Lens' PrefixList [Text]

-- | The ID of the prefix.
plPrefixListId :: Lens' PrefixList (Maybe Text)

-- | The name of the prefix.
plPrefixListName :: Lens' PrefixList (Maybe Text)

-- | The ID of the prefix.
--   
--   <i>See:</i> <a>prefixListId</a> smart constructor.
data PrefixListId

-- | Creates a value of <a>PrefixListId</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pliPrefixListId</a> - The ID of the prefix.</li>
--   </ul>
prefixListId :: PrefixListId

-- | The ID of the prefix.
pliPrefixListId :: Lens' PrefixListId (Maybe Text)

-- | Describes the price for a Reserved Instance.
--   
--   <i>See:</i> <a>priceSchedule</a> smart constructor.
data PriceSchedule

-- | Creates a value of <a>PriceSchedule</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psCurrencyCode</a> - The currency for transacting the Reserved
--   Instance resale. At this time, the only supported currency is
--   <tt>USD</tt> .</li>
--   <li><a>psTerm</a> - The number of months remaining in the reservation.
--   For example, 2 is the second to the last month before the capacity
--   reservation expires.</li>
--   <li><a>psActive</a> - The current price schedule, as determined by the
--   term remaining for the Reserved Instance in the listing. A specific
--   price schedule is always in effect, but only one price schedule can be
--   active at any time. Take, for example, a Reserved Instance listing
--   that has five months remaining in its term. When you specify price
--   schedules for five months and two months, this means that schedule 1,
--   covering the first three months of the remaining term, will be active
--   during months 5, 4, and 3. Then schedule 2, covering the last two
--   months of the term, will be active for months 2 and 1.</li>
--   <li><a>psPrice</a> - The fixed price for the term.</li>
--   </ul>
priceSchedule :: PriceSchedule

-- | The currency for transacting the Reserved Instance resale. At this
--   time, the only supported currency is <tt>USD</tt> .
psCurrencyCode :: Lens' PriceSchedule (Maybe CurrencyCodeValues)

-- | The number of months remaining in the reservation. For example, 2 is
--   the second to the last month before the capacity reservation expires.
psTerm :: Lens' PriceSchedule (Maybe Integer)

-- | The current price schedule, as determined by the term remaining for
--   the Reserved Instance in the listing. A specific price schedule is
--   always in effect, but only one price schedule can be active at any
--   time. Take, for example, a Reserved Instance listing that has five
--   months remaining in its term. When you specify price schedules for
--   five months and two months, this means that schedule 1, covering the
--   first three months of the remaining term, will be active during months
--   5, 4, and 3. Then schedule 2, covering the last two months of the
--   term, will be active for months 2 and 1.
psActive :: Lens' PriceSchedule (Maybe Bool)

-- | The fixed price for the term.
psPrice :: Lens' PriceSchedule (Maybe Double)

-- | Describes the price for a Reserved Instance.
--   
--   <i>See:</i> <a>priceScheduleSpecification</a> smart constructor.
data PriceScheduleSpecification

-- | Creates a value of <a>PriceScheduleSpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pssCurrencyCode</a> - The currency for transacting the Reserved
--   Instance resale. At this time, the only supported currency is
--   <tt>USD</tt> .</li>
--   <li><a>pssTerm</a> - The number of months remaining in the
--   reservation. For example, 2 is the second to the last month before the
--   capacity reservation expires.</li>
--   <li><a>pssPrice</a> - The fixed price for the term.</li>
--   </ul>
priceScheduleSpecification :: PriceScheduleSpecification

-- | The currency for transacting the Reserved Instance resale. At this
--   time, the only supported currency is <tt>USD</tt> .
pssCurrencyCode :: Lens' PriceScheduleSpecification (Maybe CurrencyCodeValues)

-- | The number of months remaining in the reservation. For example, 2 is
--   the second to the last month before the capacity reservation expires.
pssTerm :: Lens' PriceScheduleSpecification (Maybe Integer)

-- | The fixed price for the term.
pssPrice :: Lens' PriceScheduleSpecification (Maybe Double)

-- | Describes a Reserved Instance offering.
--   
--   <i>See:</i> <a>pricingDetail</a> smart constructor.
data PricingDetail

-- | Creates a value of <a>PricingDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdCount</a> - The number of reservations available for the
--   price.</li>
--   <li><a>pdPrice</a> - The price per instance.</li>
--   </ul>
pricingDetail :: PricingDetail

-- | The number of reservations available for the price.
pdCount :: Lens' PricingDetail (Maybe Int)

-- | The price per instance.
pdPrice :: Lens' PricingDetail (Maybe Double)

-- | Describes a secondary private IPv4 address for a network interface.
--   
--   <i>See:</i> <a>privateIPAddressSpecification</a> smart constructor.
data PrivateIPAddressSpecification

-- | Creates a value of <a>PrivateIPAddressSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>piasPrimary</a> - Indicates whether the private IPv4 address is
--   the primary private IPv4 address. Only one IPv4 address can be
--   designated as primary.</li>
--   <li><a>piasPrivateIPAddress</a> - The private IPv4 addresses.</li>
--   </ul>
privateIPAddressSpecification :: Text -> PrivateIPAddressSpecification

-- | Indicates whether the private IPv4 address is the primary private IPv4
--   address. Only one IPv4 address can be designated as primary.
piasPrimary :: Lens' PrivateIPAddressSpecification (Maybe Bool)

-- | The private IPv4 addresses.
piasPrivateIPAddress :: Lens' PrivateIPAddressSpecification Text

-- | Describes a product code.
--   
--   <i>See:</i> <a>productCode</a> smart constructor.
data ProductCode

-- | Creates a value of <a>ProductCode</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pcProductCodeType</a> - The type of product code.</li>
--   <li><a>pcProductCodeId</a> - The product code.</li>
--   </ul>
productCode :: ProductCode

-- | The type of product code.
pcProductCodeType :: Lens' ProductCode (Maybe ProductCodeValues)

-- | The product code.
pcProductCodeId :: Lens' ProductCode (Maybe Text)

-- | Describes a virtual private gateway propagating route.
--   
--   <i>See:</i> <a>propagatingVGW</a> smart constructor.
data PropagatingVGW

-- | Creates a value of <a>PropagatingVGW</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pvGatewayId</a> - The ID of the virtual private gateway
--   (VGW).</li>
--   </ul>
propagatingVGW :: PropagatingVGW

-- | The ID of the virtual private gateway (VGW).
pvGatewayId :: Lens' PropagatingVGW (Maybe Text)

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
--   
--   <i>See:</i> <a>provisionedBandwidth</a> smart constructor.
data ProvisionedBandwidth

-- | Creates a value of <a>ProvisionedBandwidth</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbStatus</a> - Reserved. If you need to sustain traffic greater
--   than the <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .</li>
--   <li><a>pbRequested</a> - Reserved. If you need to sustain traffic
--   greater than the <a>documented limits</a> , contact us through the
--   <a>Support Center</a> .</li>
--   <li><a>pbProvisioned</a> - Reserved. If you need to sustain traffic
--   greater than the <a>documented limits</a> , contact us through the
--   <a>Support Center</a> .</li>
--   <li><a>pbRequestTime</a> - Reserved. If you need to sustain traffic
--   greater than the <a>documented limits</a> , contact us through the
--   <a>Support Center</a> .</li>
--   <li><a>pbProvisionTime</a> - Reserved. If you need to sustain traffic
--   greater than the <a>documented limits</a> , contact us through the
--   <a>Support Center</a> .</li>
--   </ul>
provisionedBandwidth :: ProvisionedBandwidth

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
pbStatus :: Lens' ProvisionedBandwidth (Maybe Text)

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
pbRequested :: Lens' ProvisionedBandwidth (Maybe Text)

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
pbProvisioned :: Lens' ProvisionedBandwidth (Maybe Text)

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
pbRequestTime :: Lens' ProvisionedBandwidth (Maybe UTCTime)

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
pbProvisionTime :: Lens' ProvisionedBandwidth (Maybe UTCTime)

-- | Describes the result of the purchase.
--   
--   <i>See:</i> <a>purchase</a> smart constructor.
data Purchase

-- | Creates a value of <a>Purchase</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pInstanceFamily</a> - The instance family on the Dedicated Host
--   that the reservation can be associated with.</li>
--   <li><a>pCurrencyCode</a> - The currency in which the
--   <tt>UpfrontPrice</tt> and <tt>HourlyPrice</tt> amounts are specified.
--   At this time, the only supported currency is <tt>USD</tt> .</li>
--   <li><a>pHostReservationId</a> - The ID of the reservation.</li>
--   <li><a>pHourlyPrice</a> - The hourly price of the reservation per
--   hour.</li>
--   <li><a>pUpfrontPrice</a> - The upfront price of the reservation.</li>
--   <li><a>pHostIdSet</a> - The IDs of the Dedicated Hosts associated with
--   the reservation.</li>
--   <li><a>pDuration</a> - The duration of the reservation's term in
--   seconds.</li>
--   <li><a>pPaymentOption</a> - The payment option for the
--   reservation.</li>
--   </ul>
purchase :: Purchase

-- | The instance family on the Dedicated Host that the reservation can be
--   associated with.
pInstanceFamily :: Lens' Purchase (Maybe Text)

-- | The currency in which the <tt>UpfrontPrice</tt> and
--   <tt>HourlyPrice</tt> amounts are specified. At this time, the only
--   supported currency is <tt>USD</tt> .
pCurrencyCode :: Lens' Purchase (Maybe CurrencyCodeValues)

-- | The ID of the reservation.
pHostReservationId :: Lens' Purchase (Maybe Text)

-- | The hourly price of the reservation per hour.
pHourlyPrice :: Lens' Purchase (Maybe Text)

-- | The upfront price of the reservation.
pUpfrontPrice :: Lens' Purchase (Maybe Text)

-- | The IDs of the Dedicated Hosts associated with the reservation.
pHostIdSet :: Lens' Purchase [Text]

-- | The duration of the reservation's term in seconds.
pDuration :: Lens' Purchase (Maybe Int)

-- | The payment option for the reservation.
pPaymentOption :: Lens' Purchase (Maybe PaymentOption)

-- | Describes a request to purchase Scheduled Instances.
--   
--   <i>See:</i> <a>purchaseRequest</a> smart constructor.
data PurchaseRequest

-- | Creates a value of <a>PurchaseRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prPurchaseToken</a> - The purchase token.</li>
--   <li><a>prInstanceCount</a> - The number of instances.</li>
--   </ul>
purchaseRequest :: Text -> Int -> PurchaseRequest

-- | The purchase token.
prPurchaseToken :: Lens' PurchaseRequest Text

-- | The number of instances.
prInstanceCount :: Lens' PurchaseRequest Int

-- | Describes a recurring charge.
--   
--   <i>See:</i> <a>recurringCharge</a> smart constructor.
data RecurringCharge

-- | Creates a value of <a>RecurringCharge</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rcAmount</a> - The amount of the recurring charge.</li>
--   <li><a>rcFrequency</a> - The frequency of the recurring charge.</li>
--   </ul>
recurringCharge :: RecurringCharge

-- | The amount of the recurring charge.
rcAmount :: Lens' RecurringCharge (Maybe Double)

-- | The frequency of the recurring charge.
rcFrequency :: Lens' RecurringCharge (Maybe RecurringChargeFrequency)

-- | Describes a 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>riRegionName</a> - The name of the region.</li>
--   <li><a>riEndpoint</a> - The region service endpoint.</li>
--   </ul>
regionInfo :: RegionInfo

-- | The name of the region.
riRegionName :: Lens' RegionInfo (Maybe Text)

-- | The region service endpoint.
riEndpoint :: Lens' RegionInfo (Maybe Text)

-- | Describes the launch specification for an instance.
--   
--   <i>See:</i> <a>requestSpotLaunchSpecification</a> smart constructor.
data RequestSpotLaunchSpecification

-- | Creates a value of <a>RequestSpotLaunchSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rslsSecurityGroupIds</a> - Undocumented member.</li>
--   <li><a>rslsSecurityGroups</a> - Undocumented member.</li>
--   <li><a>rslsKeyName</a> - The name of the key pair.</li>
--   <li><a>rslsNetworkInterfaces</a> - One or more network interfaces. If
--   you specify a network interface, you must specify subnet IDs and
--   security group IDs using the network interface.</li>
--   <li><a>rslsRAMDiskId</a> - The ID of the RAM disk.</li>
--   <li><a>rslsSubnetId</a> - The ID of the subnet in which to launch the
--   instance.</li>
--   <li><a>rslsKernelId</a> - The ID of the kernel.</li>
--   <li><a>rslsInstanceType</a> - The instance type.</li>
--   <li><a>rslsEBSOptimized</a> - Indicates whether the instance is
--   optimized for EBS I<i>O. This optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal EBS I</i>O performance. This optimization isn't
--   available with all instance types. Additional usage charges apply when
--   using an EBS Optimized instance. Default: <tt>false</tt></li>
--   <li><a>rslsUserData</a> - The user data to make available to the
--   instances. If you are using an AWS SDK or command line tool,
--   Base64-encoding is performed for you, and you can load the text from a
--   file. Otherwise, you must provide Base64-encoded text.</li>
--   <li><a>rslsMonitoring</a> - Undocumented member.</li>
--   <li><a>rslsIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>rslsImageId</a> - The ID of the AMI.</li>
--   <li><a>rslsAddressingType</a> - Deprecated.</li>
--   <li><a>rslsBlockDeviceMappings</a> - One or more block device mapping
--   entries. Although you can specify encrypted EBS volumes in this block
--   device mapping for your Spot Instances, these volumes are not
--   encrypted.</li>
--   <li><a>rslsPlacement</a> - The placement information for the
--   instance.</li>
--   </ul>
requestSpotLaunchSpecification :: RequestSpotLaunchSpecification

-- | Undocumented member.
rslsSecurityGroupIds :: Lens' RequestSpotLaunchSpecification [Text]

-- | Undocumented member.
rslsSecurityGroups :: Lens' RequestSpotLaunchSpecification [Text]

-- | The name of the key pair.
rslsKeyName :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | One or more network interfaces. If you specify a network interface,
--   you must specify subnet IDs and security group IDs using the network
--   interface.
rslsNetworkInterfaces :: Lens' RequestSpotLaunchSpecification [InstanceNetworkInterfaceSpecification]

-- | The ID of the RAM disk.
rslsRAMDiskId :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | The ID of the subnet in which to launch the instance.
rslsSubnetId :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | The ID of the kernel.
rslsKernelId :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | The instance type.
rslsInstanceType :: Lens' RequestSpotLaunchSpecification (Maybe InstanceType)

-- | Indicates whether the instance is optimized for EBS I<i>O. This
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal EBS I</i>O
--   performance. This optimization isn't available with all instance
--   types. Additional usage charges apply when using an EBS Optimized
--   instance. Default: <tt>false</tt>
rslsEBSOptimized :: Lens' RequestSpotLaunchSpecification (Maybe Bool)

-- | The user data to make available to the instances. If you are using an
--   AWS SDK or command line tool, Base64-encoding is performed for you,
--   and you can load the text from a file. Otherwise, you must provide
--   Base64-encoded text.
rslsUserData :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | Undocumented member.
rslsMonitoring :: Lens' RequestSpotLaunchSpecification (Maybe RunInstancesMonitoringEnabled)

-- | The IAM instance profile.
rslsIAMInstanceProfile :: Lens' RequestSpotLaunchSpecification (Maybe IAMInstanceProfileSpecification)

-- | The ID of the AMI.
rslsImageId :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | Deprecated.
rslsAddressingType :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | One or more block device mapping entries. Although you can specify
--   encrypted EBS volumes in this block device mapping for your Spot
--   Instances, these volumes are not encrypted.
rslsBlockDeviceMappings :: Lens' RequestSpotLaunchSpecification [BlockDeviceMapping]

-- | The placement information for the instance.
rslsPlacement :: Lens' RequestSpotLaunchSpecification (Maybe SpotPlacement)

-- | Describes a reservation.
--   
--   <i>See:</i> <a>reservation</a> smart constructor.
data Reservation

-- | Creates a value of <a>Reservation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rGroups</a> - [EC2-Classic only] One or more security
--   groups.</li>
--   <li><a>rInstances</a> - One or more instances.</li>
--   <li><a>rRequesterId</a> - The ID of the requester that launched the
--   instances on your behalf (for example, AWS Management Console or Auto
--   Scaling).</li>
--   <li><a>rReservationId</a> - The ID of the reservation.</li>
--   <li><a>rOwnerId</a> - The ID of the AWS account that owns the
--   reservation.</li>
--   </ul>
reservation :: Text -> Text -> Reservation

-- | <ul>
--   <li><i>EC2-Classic only</i> One or more security groups.</li>
--   </ul>
rGroups :: Lens' Reservation [GroupIdentifier]

-- | One or more instances.
rInstances :: Lens' Reservation [Instance]

-- | The ID of the requester that launched the instances on your behalf
--   (for example, AWS Management Console or Auto Scaling).
rRequesterId :: Lens' Reservation (Maybe Text)

-- | The ID of the reservation.
rReservationId :: Lens' Reservation Text

-- | The ID of the AWS account that owns the reservation.
rOwnerId :: Lens' Reservation Text

-- | The cost associated with the Reserved Instance.
--   
--   <i>See:</i> <a>reservationValue</a> smart constructor.
data ReservationValue

-- | Creates a value of <a>ReservationValue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rvHourlyPrice</a> - The hourly rate of the reservation.</li>
--   <li><a>rvRemainingTotalValue</a> - The balance of the total value (the
--   sum of remainingUpfrontValue + hourlyPrice * number of hours
--   remaining).</li>
--   <li><a>rvRemainingUpfrontValue</a> - The remaining upfront cost of the
--   reservation.</li>
--   </ul>
reservationValue :: ReservationValue

-- | The hourly rate of the reservation.
rvHourlyPrice :: Lens' ReservationValue (Maybe Text)

-- | The balance of the total value (the sum of remainingUpfrontValue +
--   hourlyPrice * number of hours remaining).
rvRemainingTotalValue :: Lens' ReservationValue (Maybe Text)

-- | The remaining upfront cost of the reservation.
rvRemainingUpfrontValue :: Lens' ReservationValue (Maybe Text)

-- | Describes the limit price of a Reserved Instance offering.
--   
--   <i>See:</i> <a>reservedInstanceLimitPrice</a> smart constructor.
data ReservedInstanceLimitPrice

-- | Creates a value of <a>ReservedInstanceLimitPrice</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rilpAmount</a> - Used for Reserved Instance Marketplace
--   offerings. Specifies the limit price on the total order (instanceCount
--   * price).</li>
--   <li><a>rilpCurrencyCode</a> - The currency in which the
--   <tt>limitPrice</tt> amount is specified. At this time, the only
--   supported currency is <tt>USD</tt> .</li>
--   </ul>
reservedInstanceLimitPrice :: ReservedInstanceLimitPrice

-- | Used for Reserved Instance Marketplace offerings. Specifies the limit
--   price on the total order (instanceCount * price).
rilpAmount :: Lens' ReservedInstanceLimitPrice (Maybe Double)

-- | The currency in which the <tt>limitPrice</tt> amount is specified. At
--   this time, the only supported currency is <tt>USD</tt> .
rilpCurrencyCode :: Lens' ReservedInstanceLimitPrice (Maybe CurrencyCodeValues)

-- | The total value of the Convertible Reserved Instance.
--   
--   <i>See:</i> <a>reservedInstanceReservationValue</a> smart constructor.
data ReservedInstanceReservationValue

-- | Creates a value of <a>ReservedInstanceReservationValue</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rirvReservationValue</a> - The total value of the Convertible
--   Reserved Instance that you are exchanging.</li>
--   <li><a>rirvReservedInstanceId</a> - The ID of the Convertible Reserved
--   Instance that you are exchanging.</li>
--   </ul>
reservedInstanceReservationValue :: ReservedInstanceReservationValue

-- | The total value of the Convertible Reserved Instance that you are
--   exchanging.
rirvReservationValue :: Lens' ReservedInstanceReservationValue (Maybe ReservationValue)

-- | The ID of the Convertible Reserved Instance that you are exchanging.
rirvReservedInstanceId :: Lens' ReservedInstanceReservationValue (Maybe Text)

-- | Describes a Reserved Instance.
--   
--   <i>See:</i> <a>reservedInstances</a> smart constructor.
data ReservedInstances

-- | Creates a value of <a>ReservedInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riState</a> - The state of the Reserved Instance purchase.</li>
--   <li><a>riCurrencyCode</a> - The currency of the Reserved Instance.
--   It's specified using ISO 4217 standard currency codes. At this time,
--   the only supported currency is <tt>USD</tt> .</li>
--   <li><a>riInstanceCount</a> - The number of reservations
--   purchased.</li>
--   <li><a>riProductDescription</a> - The Reserved Instance product
--   platform description.</li>
--   <li><a>riStart</a> - The date and time the Reserved Instance
--   started.</li>
--   <li><a>riInstanceType</a> - The instance type on which the Reserved
--   Instance can be used.</li>
--   <li><a>riEnd</a> - The time when the Reserved Instance expires.</li>
--   <li><a>riAvailabilityZone</a> - The Availability Zone in which the
--   Reserved Instance can be used.</li>
--   <li><a>riScope</a> - The scope of the Reserved Instance.</li>
--   <li><a>riRecurringCharges</a> - The recurring charge tag assigned to
--   the resource.</li>
--   <li><a>riOfferingType</a> - The Reserved Instance offering type.</li>
--   <li><a>riUsagePrice</a> - The usage price of the Reserved Instance,
--   per hour.</li>
--   <li><a>riFixedPrice</a> - The purchase price of the Reserved
--   Instance.</li>
--   <li><a>riReservedInstancesId</a> - The ID of the Reserved
--   Instance.</li>
--   <li><a>riInstanceTenancy</a> - The tenancy of the instance.</li>
--   <li><a>riOfferingClass</a> - The offering class of the Reserved
--   Instance.</li>
--   <li><a>riDuration</a> - The duration of the Reserved Instance, in
--   seconds.</li>
--   <li><a>riTags</a> - Any tags assigned to the resource.</li>
--   </ul>
reservedInstances :: ReservedInstances

-- | The state of the Reserved Instance purchase.
riState :: Lens' ReservedInstances (Maybe ReservedInstanceState)

-- | The currency of the Reserved Instance. It's specified using ISO 4217
--   standard currency codes. At this time, the only supported currency is
--   <tt>USD</tt> .
riCurrencyCode :: Lens' ReservedInstances (Maybe CurrencyCodeValues)

-- | The number of reservations purchased.
riInstanceCount :: Lens' ReservedInstances (Maybe Int)

-- | The Reserved Instance product platform description.
riProductDescription :: Lens' ReservedInstances (Maybe RIProductDescription)

-- | The date and time the Reserved Instance started.
riStart :: Lens' ReservedInstances (Maybe UTCTime)

-- | The instance type on which the Reserved Instance can be used.
riInstanceType :: Lens' ReservedInstances (Maybe InstanceType)

-- | The time when the Reserved Instance expires.
riEnd :: Lens' ReservedInstances (Maybe UTCTime)

-- | The Availability Zone in which the Reserved Instance can be used.
riAvailabilityZone :: Lens' ReservedInstances (Maybe Text)

-- | The scope of the Reserved Instance.
riScope :: Lens' ReservedInstances (Maybe Scope)

-- | The recurring charge tag assigned to the resource.
riRecurringCharges :: Lens' ReservedInstances [RecurringCharge]

-- | The Reserved Instance offering type.
riOfferingType :: Lens' ReservedInstances (Maybe OfferingTypeValues)

-- | The usage price of the Reserved Instance, per hour.
riUsagePrice :: Lens' ReservedInstances (Maybe Double)

-- | The purchase price of the Reserved Instance.
riFixedPrice :: Lens' ReservedInstances (Maybe Double)

-- | The ID of the Reserved Instance.
riReservedInstancesId :: Lens' ReservedInstances (Maybe Text)

-- | The tenancy of the instance.
riInstanceTenancy :: Lens' ReservedInstances (Maybe Tenancy)

-- | The offering class of the Reserved Instance.
riOfferingClass :: Lens' ReservedInstances (Maybe OfferingClassType)

-- | The duration of the Reserved Instance, in seconds.
riDuration :: Lens' ReservedInstances (Maybe Integer)

-- | Any tags assigned to the resource.
riTags :: Lens' ReservedInstances [Tag]

-- | Describes the configuration settings for the modified Reserved
--   Instances.
--   
--   <i>See:</i> <a>reservedInstancesConfiguration</a> smart constructor.
data ReservedInstancesConfiguration

-- | Creates a value of <a>ReservedInstancesConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ricPlatform</a> - The network platform of the modified Reserved
--   Instances, which is either EC2-Classic or EC2-VPC.</li>
--   <li><a>ricInstanceCount</a> - The number of modified Reserved
--   Instances.</li>
--   <li><a>ricInstanceType</a> - The instance type for the modified
--   Reserved Instances.</li>
--   <li><a>ricAvailabilityZone</a> - The Availability Zone for the
--   modified Reserved Instances.</li>
--   <li><a>ricScope</a> - Whether the Reserved Instance is applied to
--   instances in a region or instances in a specific Availability
--   Zone.</li>
--   </ul>
reservedInstancesConfiguration :: ReservedInstancesConfiguration

-- | The network platform of the modified Reserved Instances, which is
--   either EC2-Classic or EC2-VPC.
ricPlatform :: Lens' ReservedInstancesConfiguration (Maybe Text)

-- | The number of modified Reserved Instances.
ricInstanceCount :: Lens' ReservedInstancesConfiguration (Maybe Int)

-- | The instance type for the modified Reserved Instances.
ricInstanceType :: Lens' ReservedInstancesConfiguration (Maybe InstanceType)

-- | The Availability Zone for the modified Reserved Instances.
ricAvailabilityZone :: Lens' ReservedInstancesConfiguration (Maybe Text)

-- | Whether the Reserved Instance is applied to instances in a region or
--   instances in a specific Availability Zone.
ricScope :: Lens' ReservedInstancesConfiguration (Maybe Scope)

-- | Describes the ID of a Reserved Instance.
--   
--   <i>See:</i> <a>reservedInstancesId</a> smart constructor.
data ReservedInstancesId

-- | Creates a value of <a>ReservedInstancesId</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riiReservedInstancesId</a> - The ID of the Reserved
--   Instance.</li>
--   </ul>
reservedInstancesId :: ReservedInstancesId

-- | The ID of the Reserved Instance.
riiReservedInstancesId :: Lens' ReservedInstancesId (Maybe Text)

-- | Describes a Reserved Instance listing.
--   
--   <i>See:</i> <a>reservedInstancesListing</a> smart constructor.
data ReservedInstancesListing

-- | Creates a value of <a>ReservedInstancesListing</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rilStatus</a> - The status of the Reserved Instance
--   listing.</li>
--   <li><a>rilClientToken</a> - A unique, case-sensitive key supplied by
--   the client to ensure that the request is idempotent. For more
--   information, see <a>Ensuring Idempotency</a> .</li>
--   <li><a>rilUpdateDate</a> - The last modified timestamp of the
--   listing.</li>
--   <li><a>rilCreateDate</a> - The time the listing was created.</li>
--   <li><a>rilPriceSchedules</a> - The price of the Reserved Instance
--   listing.</li>
--   <li><a>rilStatusMessage</a> - The reason for the current status of the
--   Reserved Instance listing. The response can be blank.</li>
--   <li><a>rilReservedInstancesId</a> - The ID of the Reserved
--   Instance.</li>
--   <li><a>rilTags</a> - Any tags assigned to the resource.</li>
--   <li><a>rilInstanceCounts</a> - The number of instances in this
--   state.</li>
--   <li><a>rilReservedInstancesListingId</a> - The ID of the Reserved
--   Instance listing.</li>
--   </ul>
reservedInstancesListing :: ReservedInstancesListing

-- | The status of the Reserved Instance listing.
rilStatus :: Lens' ReservedInstancesListing (Maybe ListingStatus)

-- | A unique, case-sensitive key supplied by the client to ensure that the
--   request is idempotent. For more information, see <a>Ensuring
--   Idempotency</a> .
rilClientToken :: Lens' ReservedInstancesListing (Maybe Text)

-- | The last modified timestamp of the listing.
rilUpdateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)

-- | The time the listing was created.
rilCreateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)

-- | The price of the Reserved Instance listing.
rilPriceSchedules :: Lens' ReservedInstancesListing [PriceSchedule]

-- | The reason for the current status of the Reserved Instance listing.
--   The response can be blank.
rilStatusMessage :: Lens' ReservedInstancesListing (Maybe Text)

-- | The ID of the Reserved Instance.
rilReservedInstancesId :: Lens' ReservedInstancesListing (Maybe Text)

-- | Any tags assigned to the resource.
rilTags :: Lens' ReservedInstancesListing [Tag]

-- | The number of instances in this state.
rilInstanceCounts :: Lens' ReservedInstancesListing [InstanceCount]

-- | The ID of the Reserved Instance listing.
rilReservedInstancesListingId :: Lens' ReservedInstancesListing (Maybe Text)

-- | Describes a Reserved Instance modification.
--   
--   <i>See:</i> <a>reservedInstancesModification</a> smart constructor.
data ReservedInstancesModification

-- | Creates a value of <a>ReservedInstancesModification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rimModificationResults</a> - Contains target configurations
--   along with their corresponding new Reserved Instance IDs.</li>
--   <li><a>rimStatus</a> - The status of the Reserved Instances
--   modification request.</li>
--   <li><a>rimClientToken</a> - A unique, case-sensitive key supplied by
--   the client to ensure that the request is idempotent. For more
--   information, see <a>Ensuring Idempotency</a> .</li>
--   <li><a>rimUpdateDate</a> - The time when the modification request was
--   last updated.</li>
--   <li><a>rimCreateDate</a> - The time when the modification request was
--   created.</li>
--   <li><a>rimEffectiveDate</a> - The time for the modification to become
--   effective.</li>
--   <li><a>rimStatusMessage</a> - The reason for the status.</li>
--   <li><a>rimReservedInstancesModificationId</a> - A unique ID for the
--   Reserved Instance modification.</li>
--   <li><a>rimReservedInstancesIds</a> - The IDs of one or more Reserved
--   Instances.</li>
--   </ul>
reservedInstancesModification :: ReservedInstancesModification

-- | Contains target configurations along with their corresponding new
--   Reserved Instance IDs.
rimModificationResults :: Lens' ReservedInstancesModification [ReservedInstancesModificationResult]

-- | The status of the Reserved Instances modification request.
rimStatus :: Lens' ReservedInstancesModification (Maybe Text)

-- | A unique, case-sensitive key supplied by the client to ensure that the
--   request is idempotent. For more information, see <a>Ensuring
--   Idempotency</a> .
rimClientToken :: Lens' ReservedInstancesModification (Maybe Text)

-- | The time when the modification request was last updated.
rimUpdateDate :: Lens' ReservedInstancesModification (Maybe UTCTime)

-- | The time when the modification request was created.
rimCreateDate :: Lens' ReservedInstancesModification (Maybe UTCTime)

-- | The time for the modification to become effective.
rimEffectiveDate :: Lens' ReservedInstancesModification (Maybe UTCTime)

-- | The reason for the status.
rimStatusMessage :: Lens' ReservedInstancesModification (Maybe Text)

-- | A unique ID for the Reserved Instance modification.
rimReservedInstancesModificationId :: Lens' ReservedInstancesModification (Maybe Text)

-- | The IDs of one or more Reserved Instances.
rimReservedInstancesIds :: Lens' ReservedInstancesModification [ReservedInstancesId]

-- | Describes the modification request/s.
--   
--   <i>See:</i> <a>reservedInstancesModificationResult</a> smart
--   constructor.
data ReservedInstancesModificationResult

-- | Creates a value of <a>ReservedInstancesModificationResult</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rimrReservedInstancesId</a> - The ID for the Reserved Instances
--   that were created as part of the modification request. This field is
--   only available when the modification is fulfilled.</li>
--   <li><a>rimrTargetConfiguration</a> - The target Reserved Instances
--   configurations supplied as part of the modification request.</li>
--   </ul>
reservedInstancesModificationResult :: ReservedInstancesModificationResult

-- | The ID for the Reserved Instances that were created as part of the
--   modification request. This field is only available when the
--   modification is fulfilled.
rimrReservedInstancesId :: Lens' ReservedInstancesModificationResult (Maybe Text)

-- | The target Reserved Instances configurations supplied as part of the
--   modification request.
rimrTargetConfiguration :: Lens' ReservedInstancesModificationResult (Maybe ReservedInstancesConfiguration)

-- | Describes a Reserved Instance offering.
--   
--   <i>See:</i> <a>reservedInstancesOffering</a> smart constructor.
data ReservedInstancesOffering

-- | Creates a value of <a>ReservedInstancesOffering</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rioMarketplace</a> - Indicates whether the offering is
--   available through the Reserved Instance Marketplace (resale) or AWS.
--   If it's a Reserved Instance Marketplace offering, this is
--   <tt>true</tt> .</li>
--   <li><a>rioCurrencyCode</a> - The currency of the Reserved Instance
--   offering you are purchasing. It's specified using ISO 4217 standard
--   currency codes. At this time, the only supported currency is
--   <tt>USD</tt> .</li>
--   <li><a>rioProductDescription</a> - The Reserved Instance product
--   platform description.</li>
--   <li><a>rioInstanceType</a> - The instance type on which the Reserved
--   Instance can be used.</li>
--   <li><a>rioAvailabilityZone</a> - The Availability Zone in which the
--   Reserved Instance can be used.</li>
--   <li><a>rioPricingDetails</a> - The pricing details of the Reserved
--   Instance offering.</li>
--   <li><a>rioScope</a> - Whether the Reserved Instance is applied to
--   instances in a region or an Availability Zone.</li>
--   <li><a>rioRecurringCharges</a> - The recurring charge tag assigned to
--   the resource.</li>
--   <li><a>rioOfferingType</a> - The Reserved Instance offering type.</li>
--   <li><a>rioUsagePrice</a> - The usage price of the Reserved Instance,
--   per hour.</li>
--   <li><a>rioFixedPrice</a> - The purchase price of the Reserved
--   Instance.</li>
--   <li><a>rioInstanceTenancy</a> - The tenancy of the instance.</li>
--   <li><a>rioReservedInstancesOfferingId</a> - The ID of the Reserved
--   Instance offering. This is the offering ID used in
--   <tt>GetReservedInstancesExchangeQuote</tt> to confirm that an exchange
--   can be made.</li>
--   <li><a>rioOfferingClass</a> - If <tt>convertible</tt> it can be
--   exchanged for Reserved Instances of the same or higher monetary value,
--   with different configurations. If <tt>standard</tt> , it is not
--   possible to perform an exchange.</li>
--   <li><a>rioDuration</a> - The duration of the Reserved Instance, in
--   seconds.</li>
--   </ul>
reservedInstancesOffering :: ReservedInstancesOffering

-- | Indicates whether the offering is available through the Reserved
--   Instance Marketplace (resale) or AWS. If it's a Reserved Instance
--   Marketplace offering, this is <tt>true</tt> .
rioMarketplace :: Lens' ReservedInstancesOffering (Maybe Bool)

-- | The currency of the Reserved Instance offering you are purchasing.
--   It's specified using ISO 4217 standard currency codes. At this time,
--   the only supported currency is <tt>USD</tt> .
rioCurrencyCode :: Lens' ReservedInstancesOffering (Maybe CurrencyCodeValues)

-- | The Reserved Instance product platform description.
rioProductDescription :: Lens' ReservedInstancesOffering (Maybe RIProductDescription)

-- | The instance type on which the Reserved Instance can be used.
rioInstanceType :: Lens' ReservedInstancesOffering (Maybe InstanceType)

-- | The Availability Zone in which the Reserved Instance can be used.
rioAvailabilityZone :: Lens' ReservedInstancesOffering (Maybe Text)

-- | The pricing details of the Reserved Instance offering.
rioPricingDetails :: Lens' ReservedInstancesOffering [PricingDetail]

-- | Whether the Reserved Instance is applied to instances in a region or
--   an Availability Zone.
rioScope :: Lens' ReservedInstancesOffering (Maybe Scope)

-- | The recurring charge tag assigned to the resource.
rioRecurringCharges :: Lens' ReservedInstancesOffering [RecurringCharge]

-- | The Reserved Instance offering type.
rioOfferingType :: Lens' ReservedInstancesOffering (Maybe OfferingTypeValues)

-- | The usage price of the Reserved Instance, per hour.
rioUsagePrice :: Lens' ReservedInstancesOffering (Maybe Double)

-- | The purchase price of the Reserved Instance.
rioFixedPrice :: Lens' ReservedInstancesOffering (Maybe Double)

-- | The tenancy of the instance.
rioInstanceTenancy :: Lens' ReservedInstancesOffering (Maybe Tenancy)

-- | The ID of the Reserved Instance offering. This is the offering ID used
--   in <tt>GetReservedInstancesExchangeQuote</tt> to confirm that an
--   exchange can be made.
rioReservedInstancesOfferingId :: Lens' ReservedInstancesOffering (Maybe Text)

-- | If <tt>convertible</tt> it can be exchanged for Reserved Instances of
--   the same or higher monetary value, with different configurations. If
--   <tt>standard</tt> , it is not possible to perform an exchange.
rioOfferingClass :: Lens' ReservedInstancesOffering (Maybe OfferingClassType)

-- | The duration of the Reserved Instance, in seconds.
rioDuration :: Lens' ReservedInstancesOffering (Maybe Integer)

-- | Describes a route in a route table.
--   
--   <i>See:</i> <a>route</a> smart constructor.
data Route

-- | Creates a value of <a>Route</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rVPCPeeringConnectionId</a> - The ID of the VPC peering
--   connection.</li>
--   <li><a>rInstanceId</a> - The ID of a NAT instance in your VPC.</li>
--   <li><a>rOrigin</a> - Describes how the route was created. *
--   <tt>CreateRouteTable</tt> - The route was automatically created when
--   the route table was created. * <tt>CreateRoute</tt> - The route was
--   manually added to the route table. *
--   <tt>EnableVgwRoutePropagation</tt> - The route was propagated by route
--   propagation.</li>
--   <li><a>rState</a> - The state of the route. The <tt>blackhole</tt>
--   state indicates that the route's target isn't available (for example,
--   the specified gateway isn't attached to the VPC, or the specified NAT
--   instance has been terminated).</li>
--   <li><a>rEgressOnlyInternetGatewayId</a> - The ID of the egress-only
--   Internet gateway.</li>
--   <li><a>rDestinationIPv6CidrBlock</a> - The IPv6 CIDR block used for
--   the destination match.</li>
--   <li><a>rNatGatewayId</a> - The ID of a NAT gateway.</li>
--   <li><a>rNetworkInterfaceId</a> - The ID of the network interface.</li>
--   <li><a>rGatewayId</a> - The ID of a gateway attached to your VPC.</li>
--   <li><a>rInstanceOwnerId</a> - The AWS account ID of the owner of the
--   instance.</li>
--   <li><a>rDestinationPrefixListId</a> - The prefix of the AWS
--   service.</li>
--   <li><a>rDestinationCidrBlock</a> - The IPv4 CIDR block used for the
--   destination match.</li>
--   </ul>
route :: Route

-- | The ID of the VPC peering connection.
rVPCPeeringConnectionId :: Lens' Route (Maybe Text)

-- | The ID of a NAT instance in your VPC.
rInstanceId :: Lens' Route (Maybe Text)

-- | Describes how the route was created. * <tt>CreateRouteTable</tt> - The
--   route was automatically created when the route table was created. *
--   <tt>CreateRoute</tt> - The route was manually added to the route
--   table. * <tt>EnableVgwRoutePropagation</tt> - The route was propagated
--   by route propagation.
rOrigin :: Lens' Route (Maybe RouteOrigin)

-- | The state of the route. The <tt>blackhole</tt> state indicates that
--   the route's target isn't available (for example, the specified gateway
--   isn't attached to the VPC, or the specified NAT instance has been
--   terminated).
rState :: Lens' Route (Maybe RouteState)

-- | The ID of the egress-only Internet gateway.
rEgressOnlyInternetGatewayId :: Lens' Route (Maybe Text)

-- | The IPv6 CIDR block used for the destination match.
rDestinationIPv6CidrBlock :: Lens' Route (Maybe Text)

-- | The ID of a NAT gateway.
rNatGatewayId :: Lens' Route (Maybe Text)

-- | The ID of the network interface.
rNetworkInterfaceId :: Lens' Route (Maybe Text)

-- | The ID of a gateway attached to your VPC.
rGatewayId :: Lens' Route (Maybe Text)

-- | The AWS account ID of the owner of the instance.
rInstanceOwnerId :: Lens' Route (Maybe Text)

-- | The prefix of the AWS service.
rDestinationPrefixListId :: Lens' Route (Maybe Text)

-- | The IPv4 CIDR block used for the destination match.
rDestinationCidrBlock :: Lens' Route (Maybe Text)

-- | Describes a route table.
--   
--   <i>See:</i> <a>routeTable</a> smart constructor.
data RouteTable

-- | Creates a value of <a>RouteTable</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtRouteTableId</a> - The ID of the route table.</li>
--   <li><a>rtRoutes</a> - The routes in the route table.</li>
--   <li><a>rtVPCId</a> - The ID of the VPC.</li>
--   <li><a>rtPropagatingVGWs</a> - Any virtual private gateway (VGW)
--   propagating routes.</li>
--   <li><a>rtAssociations</a> - The associations between the route table
--   and one or more subnets.</li>
--   <li><a>rtTags</a> - Any tags assigned to the route table.</li>
--   </ul>
routeTable :: RouteTable

-- | The ID of the route table.
rtRouteTableId :: Lens' RouteTable (Maybe Text)

-- | The routes in the route table.
rtRoutes :: Lens' RouteTable [Route]

-- | The ID of the VPC.
rtVPCId :: Lens' RouteTable (Maybe Text)

-- | Any virtual private gateway (VGW) propagating routes.
rtPropagatingVGWs :: Lens' RouteTable [PropagatingVGW]

-- | The associations between the route table and one or more subnets.
rtAssociations :: Lens' RouteTable [RouteTableAssociation]

-- | Any tags assigned to the route table.
rtTags :: Lens' RouteTable [Tag]

-- | Describes an association between a route table and a subnet.
--   
--   <i>See:</i> <a>routeTableAssociation</a> smart constructor.
data RouteTableAssociation

-- | Creates a value of <a>RouteTableAssociation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtaRouteTableId</a> - The ID of the route table.</li>
--   <li><a>rtaRouteTableAssociationId</a> - The ID of the association
--   between a route table and a subnet.</li>
--   <li><a>rtaMain</a> - Indicates whether this is the main route
--   table.</li>
--   <li><a>rtaSubnetId</a> - The ID of the subnet. A subnet ID is not
--   returned for an implicit association.</li>
--   </ul>
routeTableAssociation :: RouteTableAssociation

-- | The ID of the route table.
rtaRouteTableId :: Lens' RouteTableAssociation (Maybe Text)

-- | The ID of the association between a route table and a subnet.
rtaRouteTableAssociationId :: Lens' RouteTableAssociation (Maybe Text)

-- | Indicates whether this is the main route table.
rtaMain :: Lens' RouteTableAssociation (Maybe Bool)

-- | The ID of the subnet. A subnet ID is not returned for an implicit
--   association.
rtaSubnetId :: Lens' RouteTableAssociation (Maybe Text)

-- | Describes the monitoring of an instance.
--   
--   <i>See:</i> <a>runInstancesMonitoringEnabled</a> smart constructor.
data RunInstancesMonitoringEnabled

-- | Creates a value of <a>RunInstancesMonitoringEnabled</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rimeEnabled</a> - Indicates whether detailed monitoring is
--   enabled. Otherwise, basic monitoring is enabled.</li>
--   </ul>
runInstancesMonitoringEnabled :: Bool -> RunInstancesMonitoringEnabled

-- | Indicates whether detailed monitoring is enabled. Otherwise, basic
--   monitoring is enabled.
rimeEnabled :: Lens' RunInstancesMonitoringEnabled Bool

-- | Describes the storage parameters for S3 and S3 buckets for an instance
--   store-backed AMI.
--   
--   <i>See:</i> <a>s3Storage</a> smart constructor.
data S3Storage

-- | Creates a value of <a>S3Storage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssPrefix</a> - The beginning of the file name of the AMI.</li>
--   <li><a>ssUploadPolicy</a> - An Amazon S3 upload policy that gives
--   Amazon EC2 permission to upload items into Amazon S3 on your behalf.--
--   <i>Note:</i> This <tt>Lens</tt> automatically encodes and decodes
--   Base64 data. The underlying isomorphism will encode to Base64
--   representation during serialisation, and decode from Base64
--   representation during deserialisation. This <tt>Lens</tt> accepts and
--   returns only raw unencoded data.</li>
--   <li><a>ssBucket</a> - The bucket in which to store the AMI. You can
--   specify a bucket that you already own or a new bucket that Amazon EC2
--   creates on your behalf. If you specify a bucket that belongs to
--   someone else, Amazon EC2 returns an error.</li>
--   <li><a>ssUploadPolicySignature</a> - The signature of the JSON
--   document.</li>
--   <li><a>ssAWSAccessKeyId</a> - The access key ID of the owner of the
--   bucket. Before you specify a value for your access key ID, review and
--   follow the guidance in <a>Best Practices for Managing AWS Access
--   Keys</a> .</li>
--   </ul>
s3Storage :: S3Storage

-- | The beginning of the file name of the AMI.
ssPrefix :: Lens' S3Storage (Maybe Text)

-- | An Amazon S3 upload policy that gives Amazon EC2 permission to upload
--   items into Amazon S3 on your behalf.-- <i>Note:</i> This <tt>Lens</tt>
--   automatically encodes and decodes Base64 data. The underlying
--   isomorphism will encode to Base64 representation during serialisation,
--   and decode from Base64 representation during deserialisation. This
--   <tt>Lens</tt> accepts and returns only raw unencoded data.
ssUploadPolicy :: Lens' S3Storage (Maybe ByteString)

-- | The bucket in which to store the AMI. You can specify a bucket that
--   you already own or a new bucket that Amazon EC2 creates on your
--   behalf. If you specify a bucket that belongs to someone else, Amazon
--   EC2 returns an error.
ssBucket :: Lens' S3Storage (Maybe Text)

-- | The signature of the JSON document.
ssUploadPolicySignature :: Lens' S3Storage (Maybe Text)

-- | The access key ID of the owner of the bucket. Before you specify a
--   value for your access key ID, review and follow the guidance in
--   <a>Best Practices for Managing AWS Access Keys</a> .
ssAWSAccessKeyId :: Lens' S3Storage (Maybe Text)

-- | Describes a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstance</a> smart constructor.
data ScheduledInstance

-- | Creates a value of <a>ScheduledInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siPreviousSlotEndTime</a> - The time that the previous schedule
--   ended or will end.</li>
--   <li><a>siPlatform</a> - The platform (<tt>Linux/UNIX</tt> or
--   <tt>Windows</tt> ).</li>
--   <li><a>siTermStartDate</a> - The start date for the Scheduled
--   Instance.</li>
--   <li><a>siInstanceCount</a> - The number of instances.</li>
--   <li><a>siScheduledInstanceId</a> - The Scheduled Instance ID.</li>
--   <li><a>siHourlyPrice</a> - The hourly price for a single
--   instance.</li>
--   <li><a>siCreateDate</a> - The date when the Scheduled Instance was
--   purchased.</li>
--   <li><a>siSlotDurationInHours</a> - The number of hours in the
--   schedule.</li>
--   <li><a>siTotalScheduledInstanceHours</a> - The total number of hours
--   for a single instance for the entire term.</li>
--   <li><a>siInstanceType</a> - The instance type.</li>
--   <li><a>siRecurrence</a> - The schedule recurrence.</li>
--   <li><a>siAvailabilityZone</a> - The Availability Zone.</li>
--   <li><a>siTermEndDate</a> - The end date for the Scheduled
--   Instance.</li>
--   <li><a>siNextSlotStartTime</a> - The time for the next schedule to
--   start.</li>
--   <li><a>siNetworkPlatform</a> - The network platform
--   (<tt>EC2-Classic</tt> or <tt>EC2-VPC</tt> ).</li>
--   </ul>
scheduledInstance :: ScheduledInstance

-- | The time that the previous schedule ended or will end.
siPreviousSlotEndTime :: Lens' ScheduledInstance (Maybe UTCTime)

-- | The platform (<tt>Linux/UNIX</tt> or <tt>Windows</tt> ).
siPlatform :: Lens' ScheduledInstance (Maybe Text)

-- | The start date for the Scheduled Instance.
siTermStartDate :: Lens' ScheduledInstance (Maybe UTCTime)

-- | The number of instances.
siInstanceCount :: Lens' ScheduledInstance (Maybe Int)

-- | The Scheduled Instance ID.
siScheduledInstanceId :: Lens' ScheduledInstance (Maybe Text)

-- | The hourly price for a single instance.
siHourlyPrice :: Lens' ScheduledInstance (Maybe Text)

-- | The date when the Scheduled Instance was purchased.
siCreateDate :: Lens' ScheduledInstance (Maybe UTCTime)

-- | The number of hours in the schedule.
siSlotDurationInHours :: Lens' ScheduledInstance (Maybe Int)

-- | The total number of hours for a single instance for the entire term.
siTotalScheduledInstanceHours :: Lens' ScheduledInstance (Maybe Int)

-- | The instance type.
siInstanceType :: Lens' ScheduledInstance (Maybe Text)

-- | The schedule recurrence.
siRecurrence :: Lens' ScheduledInstance (Maybe ScheduledInstanceRecurrence)

-- | The Availability Zone.
siAvailabilityZone :: Lens' ScheduledInstance (Maybe Text)

-- | The end date for the Scheduled Instance.
siTermEndDate :: Lens' ScheduledInstance (Maybe UTCTime)

-- | The time for the next schedule to start.
siNextSlotStartTime :: Lens' ScheduledInstance (Maybe UTCTime)

-- | The network platform (<tt>EC2-Classic</tt> or <tt>EC2-VPC</tt> ).
siNetworkPlatform :: Lens' ScheduledInstance (Maybe Text)

-- | Describes a schedule that is available for your Scheduled Instances.
--   
--   <i>See:</i> <a>scheduledInstanceAvailability</a> smart constructor.
data ScheduledInstanceAvailability

-- | Creates a value of <a>ScheduledInstanceAvailability</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siaMaxTermDurationInDays</a> - The maximum term. The only
--   possible value is 365 days.</li>
--   <li><a>siaPlatform</a> - The platform (<tt>Linux/UNIX</tt> or
--   <tt>Windows</tt> ).</li>
--   <li><a>siaPurchaseToken</a> - The purchase token. This token expires
--   in two hours.</li>
--   <li><a>siaHourlyPrice</a> - The hourly price for a single
--   instance.</li>
--   <li><a>siaAvailableInstanceCount</a> - The number of available
--   instances.</li>
--   <li><a>siaSlotDurationInHours</a> - The number of hours in the
--   schedule.</li>
--   <li><a>siaTotalScheduledInstanceHours</a> - The total number of hours
--   for a single instance for the entire term.</li>
--   <li><a>siaInstanceType</a> - The instance type. You can specify one of
--   the C3, C4, M4, or R3 instance types.</li>
--   <li><a>siaRecurrence</a> - The schedule recurrence.</li>
--   <li><a>siaAvailabilityZone</a> - The Availability Zone.</li>
--   <li><a>siaMinTermDurationInDays</a> - The minimum term. The only
--   possible value is 365 days.</li>
--   <li><a>siaFirstSlotStartTime</a> - The time period for the first
--   schedule to start.</li>
--   <li><a>siaNetworkPlatform</a> - The network platform
--   (<tt>EC2-Classic</tt> or <tt>EC2-VPC</tt> ).</li>
--   </ul>
scheduledInstanceAvailability :: ScheduledInstanceAvailability

-- | The maximum term. The only possible value is 365 days.
siaMaxTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)

-- | The platform (<tt>Linux/UNIX</tt> or <tt>Windows</tt> ).
siaPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)

-- | The purchase token. This token expires in two hours.
siaPurchaseToken :: Lens' ScheduledInstanceAvailability (Maybe Text)

-- | The hourly price for a single instance.
siaHourlyPrice :: Lens' ScheduledInstanceAvailability (Maybe Text)

-- | The number of available instances.
siaAvailableInstanceCount :: Lens' ScheduledInstanceAvailability (Maybe Int)

-- | The number of hours in the schedule.
siaSlotDurationInHours :: Lens' ScheduledInstanceAvailability (Maybe Int)

-- | The total number of hours for a single instance for the entire term.
siaTotalScheduledInstanceHours :: Lens' ScheduledInstanceAvailability (Maybe Int)

-- | The instance type. You can specify one of the C3, C4, M4, or R3
--   instance types.
siaInstanceType :: Lens' ScheduledInstanceAvailability (Maybe Text)

-- | The schedule recurrence.
siaRecurrence :: Lens' ScheduledInstanceAvailability (Maybe ScheduledInstanceRecurrence)

-- | The Availability Zone.
siaAvailabilityZone :: Lens' ScheduledInstanceAvailability (Maybe Text)

-- | The minimum term. The only possible value is 365 days.
siaMinTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)

-- | The time period for the first schedule to start.
siaFirstSlotStartTime :: Lens' ScheduledInstanceAvailability (Maybe UTCTime)

-- | The network platform (<tt>EC2-Classic</tt> or <tt>EC2-VPC</tt> ).
siaNetworkPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)

-- | Describes the recurring schedule for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstanceRecurrence</a> smart constructor.
data ScheduledInstanceRecurrence

-- | Creates a value of <a>ScheduledInstanceRecurrence</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sirFrequency</a> - The frequency (<tt>Daily</tt> ,
--   <tt>Weekly</tt> , or <tt>Monthly</tt> ).</li>
--   <li><a>sirOccurrenceRelativeToEnd</a> - Indicates whether the
--   occurrence is relative to the end of the specified week or month.</li>
--   <li><a>sirOccurrenceUnit</a> - The unit for <tt>occurrenceDaySet</tt>
--   (<tt>DayOfWeek</tt> or <tt>DayOfMonth</tt> ).</li>
--   <li><a>sirInterval</a> - The interval quantity. The interval unit
--   depends on the value of <tt>frequency</tt> . For example, every 2
--   weeks or every 2 months.</li>
--   <li><a>sirOccurrenceDaySet</a> - The days. For a monthly schedule,
--   this is one or more days of the month (1-31). For a weekly schedule,
--   this is one or more days of the week (1-7, where 1 is Sunday).</li>
--   </ul>
scheduledInstanceRecurrence :: ScheduledInstanceRecurrence

-- | The frequency (<tt>Daily</tt> , <tt>Weekly</tt> , or <tt>Monthly</tt>
--   ).
sirFrequency :: Lens' ScheduledInstanceRecurrence (Maybe Text)

-- | Indicates whether the occurrence is relative to the end of the
--   specified week or month.
sirOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrence (Maybe Bool)

-- | The unit for <tt>occurrenceDaySet</tt> (<tt>DayOfWeek</tt> or
--   <tt>DayOfMonth</tt> ).
sirOccurrenceUnit :: Lens' ScheduledInstanceRecurrence (Maybe Text)

-- | The interval quantity. The interval unit depends on the value of
--   <tt>frequency</tt> . For example, every 2 weeks or every 2 months.
sirInterval :: Lens' ScheduledInstanceRecurrence (Maybe Int)

-- | The days. For a monthly schedule, this is one or more days of the
--   month (1-31). For a weekly schedule, this is one or more days of the
--   week (1-7, where 1 is Sunday).
sirOccurrenceDaySet :: Lens' ScheduledInstanceRecurrence [Int]

-- | Describes the recurring schedule for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstanceRecurrenceRequest</a> smart
--   constructor.
data ScheduledInstanceRecurrenceRequest

-- | Creates a value of <a>ScheduledInstanceRecurrenceRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sirrFrequency</a> - The frequency (<tt>Daily</tt> ,
--   <tt>Weekly</tt> , or <tt>Monthly</tt> ).</li>
--   <li><a>sirrOccurrenceRelativeToEnd</a> - Indicates whether the
--   occurrence is relative to the end of the specified week or month. You
--   can't specify this value with a daily schedule.</li>
--   <li><a>sirrOccurrenceDays</a> - The days. For a monthly schedule, this
--   is one or more days of the month (1-31). For a weekly schedule, this
--   is one or more days of the week (1-7, where 1 is Sunday). You can't
--   specify this value with a daily schedule. If the occurrence is
--   relative to the end of the month, you can specify only a single
--   day.</li>
--   <li><a>sirrOccurrenceUnit</a> - The unit for <tt>OccurrenceDays</tt>
--   (<tt>DayOfWeek</tt> or <tt>DayOfMonth</tt> ). This value is required
--   for a monthly schedule. You can't specify <tt>DayOfWeek</tt> with a
--   weekly schedule. You can't specify this value with a daily
--   schedule.</li>
--   <li><a>sirrInterval</a> - The interval quantity. The interval unit
--   depends on the value of <tt>Frequency</tt> . For example, every 2
--   weeks or every 2 months.</li>
--   </ul>
scheduledInstanceRecurrenceRequest :: ScheduledInstanceRecurrenceRequest

-- | The frequency (<tt>Daily</tt> , <tt>Weekly</tt> , or <tt>Monthly</tt>
--   ).
sirrFrequency :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)

-- | Indicates whether the occurrence is relative to the end of the
--   specified week or month. You can't specify this value with a daily
--   schedule.
sirrOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Bool)

-- | The days. For a monthly schedule, this is one or more days of the
--   month (1-31). For a weekly schedule, this is one or more days of the
--   week (1-7, where 1 is Sunday). You can't specify this value with a
--   daily schedule. If the occurrence is relative to the end of the month,
--   you can specify only a single day.
sirrOccurrenceDays :: Lens' ScheduledInstanceRecurrenceRequest [Int]

-- | The unit for <tt>OccurrenceDays</tt> (<tt>DayOfWeek</tt> or
--   <tt>DayOfMonth</tt> ). This value is required for a monthly schedule.
--   You can't specify <tt>DayOfWeek</tt> with a weekly schedule. You can't
--   specify this value with a daily schedule.
sirrOccurrenceUnit :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)

-- | The interval quantity. The interval unit depends on the value of
--   <tt>Frequency</tt> . For example, every 2 weeks or every 2 months.
sirrInterval :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Int)

-- | Describes a block device mapping for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesBlockDeviceMapping</a> smart
--   constructor.
data ScheduledInstancesBlockDeviceMapping

-- | Creates a value of <a>ScheduledInstancesBlockDeviceMapping</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sibdmVirtualName</a> - The virtual device name
--   (<tt>ephemeral</tt> N). Instance store volumes are numbered starting
--   from 0. An instance type with two available instance store volumes can
--   specify mappings for <tt>ephemeral0</tt> and <tt>ephemeral1</tt> .The
--   number of available instance store volumes depends on the instance
--   type. After you connect to the instance, you must mount the volume.
--   Constraints: For M3 instances, you must specify instance store volumes
--   in the block device mapping for the instance. When you launch an M3
--   instance, we ignore any instance store volumes specified in the block
--   device mapping for the AMI.</li>
--   <li><a>sibdmNoDevice</a> - Suppresses the specified device included in
--   the block device mapping of the AMI.</li>
--   <li><a>sibdmEBS</a> - Parameters used to set up EBS volumes
--   automatically when the instance is launched.</li>
--   <li><a>sibdmDeviceName</a> - The device name exposed to the instance
--   (for example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).</li>
--   </ul>
scheduledInstancesBlockDeviceMapping :: ScheduledInstancesBlockDeviceMapping

-- | The virtual device name (<tt>ephemeral</tt> N). Instance store volumes
--   are numbered starting from 0. An instance type with two available
--   instance store volumes can specify mappings for <tt>ephemeral0</tt>
--   and <tt>ephemeral1</tt> .The number of available instance store
--   volumes depends on the instance type. After you connect to the
--   instance, you must mount the volume. Constraints: For M3 instances,
--   you must specify instance store volumes in the block device mapping
--   for the instance. When you launch an M3 instance, we ignore any
--   instance store volumes specified in the block device mapping for the
--   AMI.
sibdmVirtualName :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)

-- | Suppresses the specified device included in the block device mapping
--   of the AMI.
sibdmNoDevice :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)

-- | Parameters used to set up EBS volumes automatically when the instance
--   is launched.
sibdmEBS :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe ScheduledInstancesEBS)

-- | The device name exposed to the instance (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).
sibdmDeviceName :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)

-- | Describes an EBS volume for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesEBS</a> smart constructor.
data ScheduledInstancesEBS

-- | Creates a value of <a>ScheduledInstancesEBS</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sieDeleteOnTermination</a> - Indicates whether the volume is
--   deleted on instance termination.</li>
--   <li><a>sieVolumeSize</a> - The size of the volume, in GiB. Default: If
--   you're creating the volume from a snapshot and don't specify a volume
--   size, the default is the snapshot size.</li>
--   <li><a>sieIOPS</a> - The number of I<i>O operations per second (IOPS)
--   that the volume supports. For io1 volumes, this represents the number
--   of IOPS that are provisioned for the volume. For <tt>gp2</tt> volumes,
--   this represents the baseline performance of the volume and the rate at
--   which the volume accumulates I</i>O credits for bursting. For more
--   information about <tt>gp2</tt> baseline performance, I<i>O credits,
--   and bursting, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for <tt>io1</tt>
--   volumes and 100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This
--   parameter is required for requests to create <tt>io1</tt> volumes; it
--   is not used in requests to create <tt>gp2</tt> , <tt>st1</tt> ,
--   <tt>sc1</tt> , or <tt>standard</tt> volumes.</li>
--   <li><a>sieEncrypted</a> - Indicates whether the volume is encrypted.
--   You can attached encrypted volumes only to instances that support
--   them.</li>
--   <li><a>sieVolumeType</a> - The volume type. <tt>gp2</tt> for General
--   Purpose SSD, <tt>io1</tt> for Provisioned IOPS SSD, Throughput
--   Optimized HDD for <tt>st1</tt> , Cold HDD for <tt>sc1</tt> , or
--   <tt>standard</tt> for Magnetic. Default: <tt>standard</tt></li>
--   <li><a>sieSnapshotId</a> - The ID of the snapshot.</li>
--   </ul>
scheduledInstancesEBS :: ScheduledInstancesEBS

-- | Indicates whether the volume is deleted on instance termination.
sieDeleteOnTermination :: Lens' ScheduledInstancesEBS (Maybe Bool)

-- | The size of the volume, in GiB. Default: If you're creating the volume
--   from a snapshot and don't specify a volume size, the default is the
--   snapshot size.
sieVolumeSize :: Lens' ScheduledInstancesEBS (Maybe Int)

-- | The number of I<i>O operations per second (IOPS) that the volume
--   supports. For io1 volumes, this represents the number of IOPS that are
--   provisioned for the volume. For <tt>gp2</tt> volumes, this represents
--   the baseline performance of the volume and the rate at which the
--   volume accumulates I</i>O credits for bursting. For more information
--   about <tt>gp2</tt> baseline performance, I<i>O credits, and bursting,
--   see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for <tt>io1</tt>
--   volumes and 100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This
--   parameter is required for requests to create <tt>io1</tt> volumes; it
--   is not used in requests to create <tt>gp2</tt> , <tt>st1</tt> ,
--   <tt>sc1</tt> , or <tt>standard</tt> volumes.
sieIOPS :: Lens' ScheduledInstancesEBS (Maybe Int)

-- | Indicates whether the volume is encrypted. You can attached encrypted
--   volumes only to instances that support them.
sieEncrypted :: Lens' ScheduledInstancesEBS (Maybe Bool)

-- | The volume type. <tt>gp2</tt> for General Purpose SSD, <tt>io1</tt>
--   for Provisioned IOPS SSD, Throughput Optimized HDD for <tt>st1</tt> ,
--   Cold HDD for <tt>sc1</tt> , or <tt>standard</tt> for Magnetic.
--   Default: <tt>standard</tt>
sieVolumeType :: Lens' ScheduledInstancesEBS (Maybe Text)

-- | The ID of the snapshot.
sieSnapshotId :: Lens' ScheduledInstancesEBS (Maybe Text)

-- | Describes an IAM instance profile for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesIAMInstanceProfile</a> smart
--   constructor.
data ScheduledInstancesIAMInstanceProfile

-- | Creates a value of <a>ScheduledInstancesIAMInstanceProfile</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siiapARN</a> - The Amazon Resource Name (ARN).</li>
--   <li><a>siiapName</a> - The name.</li>
--   </ul>
scheduledInstancesIAMInstanceProfile :: ScheduledInstancesIAMInstanceProfile

-- | The Amazon Resource Name (ARN).
siiapARN :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)

-- | The name.
siiapName :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)

-- | Describes an IPv6 address.
--   
--   <i>See:</i> <a>scheduledInstancesIPv6Address</a> smart constructor.
data ScheduledInstancesIPv6Address

-- | Creates a value of <a>ScheduledInstancesIPv6Address</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siiaIPv6Address</a> - The IPv6 address.</li>
--   </ul>
scheduledInstancesIPv6Address :: ScheduledInstancesIPv6Address

-- | The IPv6 address.
siiaIPv6Address :: Lens' ScheduledInstancesIPv6Address (Maybe Text)

-- | Describes the launch specification for a Scheduled Instance.
--   
--   If you are launching the Scheduled Instance in EC2-VPC, you must
--   specify the ID of the subnet. You can specify the subnet using either
--   <tt>SubnetId</tt> or <tt>NetworkInterface</tt> .
--   
--   <i>See:</i> <a>scheduledInstancesLaunchSpecification</a> smart
--   constructor.
data ScheduledInstancesLaunchSpecification

-- | Creates a value of <a>ScheduledInstancesLaunchSpecification</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>silsSecurityGroupIds</a> - The IDs of one or more security
--   groups.</li>
--   <li><a>silsKeyName</a> - The name of the key pair.</li>
--   <li><a>silsNetworkInterfaces</a> - One or more network
--   interfaces.</li>
--   <li><a>silsRAMDiskId</a> - The ID of the RAM disk.</li>
--   <li><a>silsSubnetId</a> - The ID of the subnet in which to launch the
--   instances.</li>
--   <li><a>silsKernelId</a> - The ID of the kernel.</li>
--   <li><a>silsInstanceType</a> - The instance type.</li>
--   <li><a>silsEBSOptimized</a> - Indicates whether the instances are
--   optimized for EBS I<i>O. This optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal EBS I</i>O performance. This optimization isn't
--   available with all instance types. Additional usage charges apply when
--   using an EBS-optimized instance. Default: <tt>false</tt></li>
--   <li><a>silsUserData</a> - The base64-encoded MIME user data.</li>
--   <li><a>silsMonitoring</a> - Enable or disable monitoring for the
--   instances.</li>
--   <li><a>silsIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>silsBlockDeviceMappings</a> - One or more block device mapping
--   entries.</li>
--   <li><a>silsPlacement</a> - The placement information.</li>
--   <li><a>silsImageId</a> - The ID of the Amazon Machine Image
--   (AMI).</li>
--   </ul>
scheduledInstancesLaunchSpecification :: Text -> ScheduledInstancesLaunchSpecification

-- | The IDs of one or more security groups.
silsSecurityGroupIds :: Lens' ScheduledInstancesLaunchSpecification [Text]

-- | The name of the key pair.
silsKeyName :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)

-- | One or more network interfaces.
silsNetworkInterfaces :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesNetworkInterface]

-- | The ID of the RAM disk.
silsRAMDiskId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)

-- | The ID of the subnet in which to launch the instances.
silsSubnetId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)

-- | The ID of the kernel.
silsKernelId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)

-- | The instance type.
silsInstanceType :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)

-- | Indicates whether the instances are optimized for EBS I<i>O. This
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal EBS I</i>O
--   performance. This optimization isn't available with all instance
--   types. Additional usage charges apply when using an EBS-optimized
--   instance. Default: <tt>false</tt>
silsEBSOptimized :: Lens' ScheduledInstancesLaunchSpecification (Maybe Bool)

-- | The base64-encoded MIME user data.
silsUserData :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)

-- | Enable or disable monitoring for the instances.
silsMonitoring :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesMonitoring)

-- | The IAM instance profile.
silsIAMInstanceProfile :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesIAMInstanceProfile)

-- | One or more block device mapping entries.
silsBlockDeviceMappings :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesBlockDeviceMapping]

-- | The placement information.
silsPlacement :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesPlacement)

-- | The ID of the Amazon Machine Image (AMI).
silsImageId :: Lens' ScheduledInstancesLaunchSpecification Text

-- | Describes whether monitoring is enabled for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesMonitoring</a> smart constructor.
data ScheduledInstancesMonitoring

-- | Creates a value of <a>ScheduledInstancesMonitoring</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>simEnabled</a> - Indicates whether monitoring is enabled.</li>
--   </ul>
scheduledInstancesMonitoring :: ScheduledInstancesMonitoring

-- | Indicates whether monitoring is enabled.
simEnabled :: Lens' ScheduledInstancesMonitoring (Maybe Bool)

-- | Describes a network interface for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesNetworkInterface</a> smart
--   constructor.
data ScheduledInstancesNetworkInterface

-- | Creates a value of <a>ScheduledInstancesNetworkInterface</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siniGroups</a> - The IDs of one or more security groups.</li>
--   <li><a>siniDeleteOnTermination</a> - Indicates whether to delete the
--   interface when the instance is terminated.</li>
--   <li><a>siniAssociatePublicIPAddress</a> - Indicates whether to assign
--   a public IPv4 address to instances launched in a VPC. The public IPv4
--   address can only be assigned to a network interface for eth0, and can
--   only be assigned to a new network interface, not an existing one. You
--   cannot specify more than one network interface in the request. If
--   launching into a default subnet, the default value is <tt>true</tt>
--   .</li>
--   <li><a>siniPrivateIPAddressConfigs</a> - The private IPv4
--   addresses.</li>
--   <li><a>siniNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>siniSubnetId</a> - The ID of the subnet.</li>
--   <li><a>siniIPv6AddressCount</a> - The number of IPv6 addresses to
--   assign to the network interface. The IPv6 addresses are automatically
--   selected from the subnet range.</li>
--   <li><a>siniPrivateIPAddress</a> - The IPv4 address of the network
--   interface within the subnet.</li>
--   <li><a>siniSecondaryPrivateIPAddressCount</a> - The number of
--   secondary private IPv4 addresses.</li>
--   <li><a>siniDescription</a> - The description.</li>
--   <li><a>siniDeviceIndex</a> - The index of the device for the network
--   interface attachment.</li>
--   <li><a>siniIPv6Addresses</a> - One or more specific IPv6 addresses
--   from the subnet range.</li>
--   </ul>
scheduledInstancesNetworkInterface :: ScheduledInstancesNetworkInterface

-- | The IDs of one or more security groups.
siniGroups :: Lens' ScheduledInstancesNetworkInterface [Text]

-- | Indicates whether to delete the interface when the instance is
--   terminated.
siniDeleteOnTermination :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)

-- | Indicates whether to assign a public IPv4 address to instances
--   launched in a VPC. The public IPv4 address can only be assigned to a
--   network interface for eth0, and can only be assigned to a new network
--   interface, not an existing one. You cannot specify more than one
--   network interface in the request. If launching into a default subnet,
--   the default value is <tt>true</tt> .
siniAssociatePublicIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)

-- | The private IPv4 addresses.
siniPrivateIPAddressConfigs :: Lens' ScheduledInstancesNetworkInterface [ScheduledInstancesPrivateIPAddressConfig]

-- | The ID of the network interface.
siniNetworkInterfaceId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)

-- | The ID of the subnet.
siniSubnetId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)

-- | The number of IPv6 addresses to assign to the network interface. The
--   IPv6 addresses are automatically selected from the subnet range.
siniIPv6AddressCount :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)

-- | The IPv4 address of the network interface within the subnet.
siniPrivateIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)

-- | The number of secondary private IPv4 addresses.
siniSecondaryPrivateIPAddressCount :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)

-- | The description.
siniDescription :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)

-- | The index of the device for the network interface attachment.
siniDeviceIndex :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)

-- | One or more specific IPv6 addresses from the subnet range.
siniIPv6Addresses :: Lens' ScheduledInstancesNetworkInterface [ScheduledInstancesIPv6Address]

-- | Describes the placement for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesPlacement</a> smart constructor.
data ScheduledInstancesPlacement

-- | Creates a value of <a>ScheduledInstancesPlacement</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sipAvailabilityZone</a> - The Availability Zone.</li>
--   <li><a>sipGroupName</a> - The name of the placement group.</li>
--   </ul>
scheduledInstancesPlacement :: ScheduledInstancesPlacement

-- | The Availability Zone.
sipAvailabilityZone :: Lens' ScheduledInstancesPlacement (Maybe Text)

-- | The name of the placement group.
sipGroupName :: Lens' ScheduledInstancesPlacement (Maybe Text)

-- | Describes a private IPv4 address for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesPrivateIPAddressConfig</a> smart
--   constructor.
data ScheduledInstancesPrivateIPAddressConfig

-- | Creates a value of <a>ScheduledInstancesPrivateIPAddressConfig</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sipiacPrimary</a> - Indicates whether this is a primary IPv4
--   address. Otherwise, this is a secondary IPv4 address.</li>
--   <li><a>sipiacPrivateIPAddress</a> - The IPv4 address.</li>
--   </ul>
scheduledInstancesPrivateIPAddressConfig :: ScheduledInstancesPrivateIPAddressConfig

-- | Indicates whether this is a primary IPv4 address. Otherwise, this is a
--   secondary IPv4 address.
sipiacPrimary :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Bool)

-- | The IPv4 address.
sipiacPrivateIPAddress :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Text)

-- | Describes a security group
--   
--   <i>See:</i> <a>securityGroup</a> smart constructor.
data SecurityGroup

-- | Creates a value of <a>SecurityGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sgVPCId</a> - [EC2-VPC] The ID of the VPC for the security
--   group.</li>
--   <li><a>sgIPPermissions</a> - One or more inbound rules associated with
--   the security group.</li>
--   <li><a>sgIPPermissionsEgress</a> - [EC2-VPC] One or more outbound
--   rules associated with the security group.</li>
--   <li><a>sgTags</a> - Any tags assigned to the security group.</li>
--   <li><a>sgOwnerId</a> - The AWS account ID of the owner of the security
--   group.</li>
--   <li><a>sgGroupId</a> - The ID of the security group.</li>
--   <li><a>sgGroupName</a> - The name of the security group.</li>
--   <li><a>sgDescription</a> - A description of the security group.</li>
--   </ul>
securityGroup :: Text -> Text -> Text -> Text -> SecurityGroup

-- | <ul>
--   <li><i>EC2-VPC</i> The ID of the VPC for the security group.</li>
--   </ul>
sgVPCId :: Lens' SecurityGroup (Maybe Text)

-- | One or more inbound rules associated with the security group.
sgIPPermissions :: Lens' SecurityGroup [IPPermission]

-- | <ul>
--   <li><i>EC2-VPC</i> One or more outbound rules associated with the
--   security group.</li>
--   </ul>
sgIPPermissionsEgress :: Lens' SecurityGroup [IPPermission]

-- | Any tags assigned to the security group.
sgTags :: Lens' SecurityGroup [Tag]

-- | The AWS account ID of the owner of the security group.
sgOwnerId :: Lens' SecurityGroup Text

-- | The ID of the security group.
sgGroupId :: Lens' SecurityGroup Text

-- | The name of the security group.
sgGroupName :: Lens' SecurityGroup Text

-- | A description of the security group.
sgDescription :: Lens' SecurityGroup Text

-- | Describes a VPC with a security group that references your security
--   group.
--   
--   <i>See:</i> <a>securityGroupReference</a> smart constructor.
data SecurityGroupReference

-- | Creates a value of <a>SecurityGroupReference</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sgrVPCPeeringConnectionId</a> - The ID of the VPC peering
--   connection.</li>
--   <li><a>sgrGroupId</a> - The ID of your security group.</li>
--   <li><a>sgrReferencingVPCId</a> - The ID of the VPC with the
--   referencing security group.</li>
--   </ul>
securityGroupReference :: Text -> Text -> SecurityGroupReference

-- | The ID of the VPC peering connection.
sgrVPCPeeringConnectionId :: Lens' SecurityGroupReference (Maybe Text)

-- | The ID of your security group.
sgrGroupId :: Lens' SecurityGroupReference Text

-- | The ID of the VPC with the referencing security group.
sgrReferencingVPCId :: Lens' SecurityGroupReference Text

-- | Describes the time period for a Scheduled Instance to start its first
--   schedule. The time period must span less than one day.
--   
--   <i>See:</i> <a>slotDateTimeRangeRequest</a> smart constructor.
data SlotDateTimeRangeRequest

-- | Creates a value of <a>SlotDateTimeRangeRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdtrrEarliestTime</a> - The earliest date and time, in UTC, for
--   the Scheduled Instance to start.</li>
--   <li><a>sdtrrLatestTime</a> - The latest date and time, in UTC, for the
--   Scheduled Instance to start. This value must be later than or equal to
--   the earliest date and at most three months in the future.</li>
--   </ul>
slotDateTimeRangeRequest :: UTCTime -> UTCTime -> SlotDateTimeRangeRequest

-- | The earliest date and time, in UTC, for the Scheduled Instance to
--   start.
sdtrrEarliestTime :: Lens' SlotDateTimeRangeRequest UTCTime

-- | The latest date and time, in UTC, for the Scheduled Instance to start.
--   This value must be later than or equal to the earliest date and at
--   most three months in the future.
sdtrrLatestTime :: Lens' SlotDateTimeRangeRequest UTCTime

-- | Describes the time period for a Scheduled Instance to start its first
--   schedule.
--   
--   <i>See:</i> <a>slotStartTimeRangeRequest</a> smart constructor.
data SlotStartTimeRangeRequest

-- | Creates a value of <a>SlotStartTimeRangeRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sstrrLatestTime</a> - The latest date and time, in UTC, for the
--   Scheduled Instance to start.</li>
--   <li><a>sstrrEarliestTime</a> - The earliest date and time, in UTC, for
--   the Scheduled Instance to start.</li>
--   </ul>
slotStartTimeRangeRequest :: SlotStartTimeRangeRequest

-- | The latest date and time, in UTC, for the Scheduled Instance to start.
sstrrLatestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)

-- | The earliest date and time, in UTC, for the Scheduled Instance to
--   start.
sstrrEarliestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)

-- | Describes a snapshot.
--   
--   <i>See:</i> <a>snapshot</a> smart constructor.
data Snapshot

-- | Creates a value of <a>Snapshot</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sStateMessage</a> - Encrypted Amazon EBS snapshots are copied
--   asynchronously. If a snapshot copy operation fails (for example, if
--   the proper AWS Key Management Service (AWS KMS) permissions are not
--   obtained) this field displays error state details to help you diagnose
--   why the error occurred. This parameter is only returned by the
--   <tt>DescribeSnapshots</tt> API operation.</li>
--   <li><a>sOwnerAlias</a> - Value from an Amazon-maintained list
--   (<tt>amazon</tt> | <tt>aws-marketplace</tt> | <tt>microsoft</tt> ) of
--   snapshot owners. Not to be confused with the user-configured AWS
--   account alias, which is set from the IAM console.</li>
--   <li><a>sDataEncryptionKeyId</a> - The data encryption key identifier
--   for the snapshot. This value is a unique identifier that corresponds
--   to the data encryption key that was used to encrypt the original
--   volume or snapshot copy. Because data encryption keys are inherited by
--   volumes created from snapshots, and vice versa, if snapshots share the
--   same data encryption key identifier, then they belong to the same
--   volume/snapshot lineage. This parameter is only returned by the
--   <tt>DescribeSnapshots</tt> API operation.</li>
--   <li><a>sKMSKeyId</a> - The full ARN of the AWS Key Management Service
--   (AWS KMS) customer master key (CMK) that was used to protect the
--   volume encryption key for the parent volume.</li>
--   <li><a>sTags</a> - Any tags assigned to the snapshot.</li>
--   <li><a>sSnapshotId</a> - The ID of the snapshot. Each snapshot
--   receives a unique identifier when it is created.</li>
--   <li><a>sOwnerId</a> - The AWS account ID of the EBS snapshot
--   owner.</li>
--   <li><a>sVolumeId</a> - The ID of the volume that was used to create
--   the snapshot. Snapshots created by the <tt>CopySnapshot</tt> action
--   have an arbitrary volume ID that should not be used for any
--   purpose.</li>
--   <li><a>sVolumeSize</a> - The size of the volume, in GiB.</li>
--   <li><a>sDescription</a> - The description for the snapshot.</li>
--   <li><a>sStartTime</a> - The time stamp when the snapshot was
--   initiated.</li>
--   <li><a>sProgress</a> - The progress of the snapshot, as a
--   percentage.</li>
--   <li><a>sState</a> - The snapshot state.</li>
--   <li><a>sEncrypted</a> - Indicates whether the snapshot is
--   encrypted.</li>
--   </ul>
snapshot :: Text -> Text -> Text -> Int -> Text -> UTCTime -> Text -> SnapshotState -> Bool -> Snapshot

-- | Encrypted Amazon EBS snapshots are copied asynchronously. If a
--   snapshot copy operation fails (for example, if the proper AWS Key
--   Management Service (AWS KMS) permissions are not obtained) this field
--   displays error state details to help you diagnose why the error
--   occurred. This parameter is only returned by the
--   <tt>DescribeSnapshots</tt> API operation.
sStateMessage :: Lens' Snapshot (Maybe Text)

-- | Value from an Amazon-maintained list (<tt>amazon</tt> |
--   <tt>aws-marketplace</tt> | <tt>microsoft</tt> ) of snapshot owners.
--   Not to be confused with the user-configured AWS account alias, which
--   is set from the IAM console.
sOwnerAlias :: Lens' Snapshot (Maybe Text)

-- | The data encryption key identifier for the snapshot. This value is a
--   unique identifier that corresponds to the data encryption key that was
--   used to encrypt the original volume or snapshot copy. Because data
--   encryption keys are inherited by volumes created from snapshots, and
--   vice versa, if snapshots share the same data encryption key
--   identifier, then they belong to the same volume/snapshot lineage. This
--   parameter is only returned by the <tt>DescribeSnapshots</tt> API
--   operation.
sDataEncryptionKeyId :: Lens' Snapshot (Maybe Text)

-- | The full ARN of the AWS Key Management Service (AWS KMS) customer
--   master key (CMK) that was used to protect the volume encryption key
--   for the parent volume.
sKMSKeyId :: Lens' Snapshot (Maybe Text)

-- | Any tags assigned to the snapshot.
sTags :: Lens' Snapshot [Tag]

-- | The ID of the snapshot. Each snapshot receives a unique identifier
--   when it is created.
sSnapshotId :: Lens' Snapshot Text

-- | The AWS account ID of the EBS snapshot owner.
sOwnerId :: Lens' Snapshot Text

-- | The ID of the volume that was used to create the snapshot. Snapshots
--   created by the <tt>CopySnapshot</tt> action have an arbitrary volume
--   ID that should not be used for any purpose.
sVolumeId :: Lens' Snapshot Text

-- | The size of the volume, in GiB.
sVolumeSize :: Lens' Snapshot Int

-- | The description for the snapshot.
sDescription :: Lens' Snapshot Text

-- | The time stamp when the snapshot was initiated.
sStartTime :: Lens' Snapshot UTCTime

-- | The progress of the snapshot, as a percentage.
sProgress :: Lens' Snapshot Text

-- | The snapshot state.
sState :: Lens' Snapshot SnapshotState

-- | Indicates whether the snapshot is encrypted.
sEncrypted :: Lens' Snapshot Bool

-- | Describes the snapshot created from the imported disk.
--   
--   <i>See:</i> <a>snapshotDetail</a> smart constructor.
data SnapshotDetail

-- | Creates a value of <a>SnapshotDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdStatus</a> - A brief status of the snapshot creation.</li>
--   <li><a>sdProgress</a> - The percentage of progress for the task.</li>
--   <li><a>sdFormat</a> - The format of the disk image from which the
--   snapshot is created.</li>
--   <li><a>sdURL</a> - The URL used to access the disk image.</li>
--   <li><a>sdDeviceName</a> - The block device mapping for the
--   snapshot.</li>
--   <li><a>sdStatusMessage</a> - A detailed status message for the
--   snapshot creation.</li>
--   <li><a>sdUserBucket</a> - The S3 bucket for the disk image.</li>
--   <li><a>sdDiskImageSize</a> - The size of the disk in the snapshot, in
--   GiB.</li>
--   <li><a>sdDescription</a> - A description for the snapshot.</li>
--   <li><a>sdSnapshotId</a> - The snapshot ID of the disk being
--   imported.</li>
--   </ul>
snapshotDetail :: SnapshotDetail

-- | A brief status of the snapshot creation.
sdStatus :: Lens' SnapshotDetail (Maybe Text)

-- | The percentage of progress for the task.
sdProgress :: Lens' SnapshotDetail (Maybe Text)

-- | The format of the disk image from which the snapshot is created.
sdFormat :: Lens' SnapshotDetail (Maybe Text)

-- | The URL used to access the disk image.
sdURL :: Lens' SnapshotDetail (Maybe Text)

-- | The block device mapping for the snapshot.
sdDeviceName :: Lens' SnapshotDetail (Maybe Text)

-- | A detailed status message for the snapshot creation.
sdStatusMessage :: Lens' SnapshotDetail (Maybe Text)

-- | The S3 bucket for the disk image.
sdUserBucket :: Lens' SnapshotDetail (Maybe UserBucketDetails)

-- | The size of the disk in the snapshot, in GiB.
sdDiskImageSize :: Lens' SnapshotDetail (Maybe Double)

-- | A description for the snapshot.
sdDescription :: Lens' SnapshotDetail (Maybe Text)

-- | The snapshot ID of the disk being imported.
sdSnapshotId :: Lens' SnapshotDetail (Maybe Text)

-- | The disk container object for the import snapshot request.
--   
--   <i>See:</i> <a>snapshotDiskContainer</a> smart constructor.
data SnapshotDiskContainer

-- | Creates a value of <a>SnapshotDiskContainer</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdcFormat</a> - The format of the disk image being imported.
--   Valid values: <tt>RAW</tt> | <tt>VHD</tt> | <tt>VMDK</tt> |
--   <tt>OVA</tt></li>
--   <li><a>sdcURL</a> - The URL to the Amazon S3-based disk image being
--   imported. It can either be a https URL (https:/<i>..) or an Amazon S3
--   URL (s3:</i>/..).</li>
--   <li><a>sdcUserBucket</a> - The S3 bucket for the disk image.</li>
--   <li><a>sdcDescription</a> - The description of the disk image being
--   imported.</li>
--   </ul>
snapshotDiskContainer :: SnapshotDiskContainer

-- | The format of the disk image being imported. Valid values:
--   <tt>RAW</tt> | <tt>VHD</tt> | <tt>VMDK</tt> | <tt>OVA</tt>
sdcFormat :: Lens' SnapshotDiskContainer (Maybe Text)

-- | The URL to the Amazon S3-based disk image being imported. It can
--   either be a https URL (https:/<i>..) or an Amazon S3 URL (s3:</i>/..).
sdcURL :: Lens' SnapshotDiskContainer (Maybe Text)

-- | The S3 bucket for the disk image.
sdcUserBucket :: Lens' SnapshotDiskContainer (Maybe UserBucket)

-- | The description of the disk image being imported.
sdcDescription :: Lens' SnapshotDiskContainer (Maybe Text)

-- | Details about the import snapshot task.
--   
--   <i>See:</i> <a>snapshotTaskDetail</a> smart constructor.
data SnapshotTaskDetail

-- | Creates a value of <a>SnapshotTaskDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stdStatus</a> - A brief status for the import snapshot
--   task.</li>
--   <li><a>stdProgress</a> - The percentage of completion for the import
--   snapshot task.</li>
--   <li><a>stdFormat</a> - The format of the disk image from which the
--   snapshot is created.</li>
--   <li><a>stdURL</a> - The URL of the disk image from which the snapshot
--   is created.</li>
--   <li><a>stdStatusMessage</a> - A detailed status message for the import
--   snapshot task.</li>
--   <li><a>stdUserBucket</a> - The S3 bucket for the disk image.</li>
--   <li><a>stdDiskImageSize</a> - The size of the disk in the snapshot, in
--   GiB.</li>
--   <li><a>stdDescription</a> - The description of the snapshot.</li>
--   <li><a>stdSnapshotId</a> - The snapshot ID of the disk being
--   imported.</li>
--   </ul>
snapshotTaskDetail :: SnapshotTaskDetail

-- | A brief status for the import snapshot task.
stdStatus :: Lens' SnapshotTaskDetail (Maybe Text)

-- | The percentage of completion for the import snapshot task.
stdProgress :: Lens' SnapshotTaskDetail (Maybe Text)

-- | The format of the disk image from which the snapshot is created.
stdFormat :: Lens' SnapshotTaskDetail (Maybe Text)

-- | The URL of the disk image from which the snapshot is created.
stdURL :: Lens' SnapshotTaskDetail (Maybe Text)

-- | A detailed status message for the import snapshot task.
stdStatusMessage :: Lens' SnapshotTaskDetail (Maybe Text)

-- | The S3 bucket for the disk image.
stdUserBucket :: Lens' SnapshotTaskDetail (Maybe UserBucketDetails)

-- | The size of the disk in the snapshot, in GiB.
stdDiskImageSize :: Lens' SnapshotTaskDetail (Maybe Double)

-- | The description of the snapshot.
stdDescription :: Lens' SnapshotTaskDetail (Maybe Text)

-- | The snapshot ID of the disk being imported.
stdSnapshotId :: Lens' SnapshotTaskDetail (Maybe Text)

-- | Describes the data feed for a Spot instance.
--   
--   <i>See:</i> <a>spotDatafeedSubscription</a> smart constructor.
data SpotDatafeedSubscription

-- | Creates a value of <a>SpotDatafeedSubscription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdsState</a> - The state of the Spot instance data feed
--   subscription.</li>
--   <li><a>sdsPrefix</a> - The prefix that is prepended to data feed
--   files.</li>
--   <li><a>sdsBucket</a> - The Amazon S3 bucket where the Spot instance
--   data feed is located.</li>
--   <li><a>sdsOwnerId</a> - The AWS account ID of the account.</li>
--   <li><a>sdsFault</a> - The fault codes for the Spot instance request,
--   if any.</li>
--   </ul>
spotDatafeedSubscription :: SpotDatafeedSubscription

-- | The state of the Spot instance data feed subscription.
sdsState :: Lens' SpotDatafeedSubscription (Maybe DatafeedSubscriptionState)

-- | The prefix that is prepended to data feed files.
sdsPrefix :: Lens' SpotDatafeedSubscription (Maybe Text)

-- | The Amazon S3 bucket where the Spot instance data feed is located.
sdsBucket :: Lens' SpotDatafeedSubscription (Maybe Text)

-- | The AWS account ID of the account.
sdsOwnerId :: Lens' SpotDatafeedSubscription (Maybe Text)

-- | The fault codes for the Spot instance request, if any.
sdsFault :: Lens' SpotDatafeedSubscription (Maybe SpotInstanceStateFault)

-- | Describes the launch specification for one or more Spot instances.
--   
--   <i>See:</i> <a>spotFleetLaunchSpecification</a> smart constructor.
data SpotFleetLaunchSpecification

-- | Creates a value of <a>SpotFleetLaunchSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sflsSecurityGroups</a> - One or more security groups. When
--   requesting instances in a VPC, you must specify the IDs of the
--   security groups. When requesting instances in EC2-Classic, you can
--   specify the names or the IDs of the security groups.</li>
--   <li><a>sflsSpotPrice</a> - The bid price per unit hour for the
--   specified instance type. If this value is not specified, the default
--   is the Spot bid price specified for the fleet. To determine the bid
--   price per unit hour, divide the Spot bid price by the value of
--   <tt>WeightedCapacity</tt> .</li>
--   <li><a>sflsWeightedCapacity</a> - The number of units provided by the
--   specified instance type. These are the same units that you chose to
--   set the target capacity in terms (instances or a performance
--   characteristic such as vCPUs, memory, or I/O). If the target capacity
--   divided by this value is not a whole number, we round the number of
--   instances to the next whole number. If this value is not specified,
--   the default is 1.</li>
--   <li><a>sflsKeyName</a> - The name of the key pair.</li>
--   <li><a>sflsNetworkInterfaces</a> - One or more network interfaces. If
--   you specify a network interface, you must specify subnet IDs and
--   security group IDs using the network interface.</li>
--   <li><a>sflsRAMDiskId</a> - The ID of the RAM disk.</li>
--   <li><a>sflsSubnetId</a> - The ID of the subnet in which to launch the
--   instances. To specify multiple subnets, separate them using commas;
--   for example, "subnet-a61dafcf, subnet-65ea5f08".</li>
--   <li><a>sflsKernelId</a> - The ID of the kernel.</li>
--   <li><a>sflsInstanceType</a> - The instance type. Note that T2 and HS1
--   instance types are not supported.</li>
--   <li><a>sflsEBSOptimized</a> - Indicates whether the instances are
--   optimized for EBS I<i>O. This optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal EBS I</i>O performance. This optimization isn't
--   available with all instance types. Additional usage charges apply when
--   using an EBS Optimized instance. Default: <tt>false</tt></li>
--   <li><a>sflsUserData</a> - The user data to make available to the
--   instances. If you are using an AWS SDK or command line tool,
--   Base64-encoding is performed for you, and you can load the text from a
--   file. Otherwise, you must provide Base64-encoded text.</li>
--   <li><a>sflsMonitoring</a> - Enable or disable monitoring for the
--   instances.</li>
--   <li><a>sflsIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>sflsImageId</a> - The ID of the AMI.</li>
--   <li><a>sflsAddressingType</a> - Deprecated.</li>
--   <li><a>sflsBlockDeviceMappings</a> - One or more block device mapping
--   entries.</li>
--   <li><a>sflsPlacement</a> - The placement information.</li>
--   </ul>
spotFleetLaunchSpecification :: SpotFleetLaunchSpecification

-- | One or more security groups. When requesting instances in a VPC, you
--   must specify the IDs of the security groups. When requesting instances
--   in EC2-Classic, you can specify the names or the IDs of the security
--   groups.
sflsSecurityGroups :: Lens' SpotFleetLaunchSpecification [GroupIdentifier]

-- | The bid price per unit hour for the specified instance type. If this
--   value is not specified, the default is the Spot bid price specified
--   for the fleet. To determine the bid price per unit hour, divide the
--   Spot bid price by the value of <tt>WeightedCapacity</tt> .
sflsSpotPrice :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | The number of units provided by the specified instance type. These are
--   the same units that you chose to set the target capacity in terms
--   (instances or a performance characteristic such as vCPUs, memory, or
--   I/O). If the target capacity divided by this value is not a whole
--   number, we round the number of instances to the next whole number. If
--   this value is not specified, the default is 1.
sflsWeightedCapacity :: Lens' SpotFleetLaunchSpecification (Maybe Double)

-- | The name of the key pair.
sflsKeyName :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | One or more network interfaces. If you specify a network interface,
--   you must specify subnet IDs and security group IDs using the network
--   interface.
sflsNetworkInterfaces :: Lens' SpotFleetLaunchSpecification [InstanceNetworkInterfaceSpecification]

-- | The ID of the RAM disk.
sflsRAMDiskId :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | The ID of the subnet in which to launch the instances. To specify
--   multiple subnets, separate them using commas; for example,
--   "subnet-a61dafcf, subnet-65ea5f08".
sflsSubnetId :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | The ID of the kernel.
sflsKernelId :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | The instance type. Note that T2 and HS1 instance types are not
--   supported.
sflsInstanceType :: Lens' SpotFleetLaunchSpecification (Maybe InstanceType)

-- | Indicates whether the instances are optimized for EBS I<i>O. This
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal EBS I</i>O
--   performance. This optimization isn't available with all instance
--   types. Additional usage charges apply when using an EBS Optimized
--   instance. Default: <tt>false</tt>
sflsEBSOptimized :: Lens' SpotFleetLaunchSpecification (Maybe Bool)

-- | The user data to make available to the instances. If you are using an
--   AWS SDK or command line tool, Base64-encoding is performed for you,
--   and you can load the text from a file. Otherwise, you must provide
--   Base64-encoded text.
sflsUserData :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | Enable or disable monitoring for the instances.
sflsMonitoring :: Lens' SpotFleetLaunchSpecification (Maybe SpotFleetMonitoring)

-- | The IAM instance profile.
sflsIAMInstanceProfile :: Lens' SpotFleetLaunchSpecification (Maybe IAMInstanceProfileSpecification)

-- | The ID of the AMI.
sflsImageId :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | Deprecated.
sflsAddressingType :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | One or more block device mapping entries.
sflsBlockDeviceMappings :: Lens' SpotFleetLaunchSpecification [BlockDeviceMapping]

-- | The placement information.
sflsPlacement :: Lens' SpotFleetLaunchSpecification (Maybe SpotPlacement)

-- | Describes whether monitoring is enabled.
--   
--   <i>See:</i> <a>spotFleetMonitoring</a> smart constructor.
data SpotFleetMonitoring

-- | Creates a value of <a>SpotFleetMonitoring</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfmEnabled</a> - Enables monitoring for the instance. Default:
--   <tt>false</tt></li>
--   </ul>
spotFleetMonitoring :: SpotFleetMonitoring

-- | Enables monitoring for the instance. Default: <tt>false</tt>
sfmEnabled :: Lens' SpotFleetMonitoring (Maybe Bool)

-- | Describes a Spot fleet request.
--   
--   <i>See:</i> <a>spotFleetRequestConfig</a> smart constructor.
data SpotFleetRequestConfig

-- | Creates a value of <a>SpotFleetRequestConfig</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfrcActivityStatus</a> - The progress of the Spot fleet
--   request. If there is an error, the status is <tt>error</tt> . After
--   all bids are placed, the status is <tt>pending_fulfillment</tt> . If
--   the size of the fleet is equal to or greater than its target capacity,
--   the status is <tt>fulfilled</tt> . If the size of the fleet is
--   decreased, the status is <tt>pending_termination</tt> while Spot
--   instances are terminating.</li>
--   <li><a>sfrcSpotFleetRequestId</a> - The ID of the Spot fleet
--   request.</li>
--   <li><a>sfrcSpotFleetRequestState</a> - The state of the Spot fleet
--   request.</li>
--   <li><a>sfrcSpotFleetRequestConfig</a> - Information about the
--   configuration of the Spot fleet request.</li>
--   <li><a>sfrcCreateTime</a> - The creation date and time of the
--   request.</li>
--   </ul>
spotFleetRequestConfig :: Text -> BatchState -> SpotFleetRequestConfigData -> UTCTime -> SpotFleetRequestConfig

-- | The progress of the Spot fleet request. If there is an error, the
--   status is <tt>error</tt> . After all bids are placed, the status is
--   <tt>pending_fulfillment</tt> . If the size of the fleet is equal to or
--   greater than its target capacity, the status is <tt>fulfilled</tt> .
--   If the size of the fleet is decreased, the status is
--   <tt>pending_termination</tt> while Spot instances are terminating.
sfrcActivityStatus :: Lens' SpotFleetRequestConfig (Maybe ActivityStatus)

-- | The ID of the Spot fleet request.
sfrcSpotFleetRequestId :: Lens' SpotFleetRequestConfig Text

-- | The state of the Spot fleet request.
sfrcSpotFleetRequestState :: Lens' SpotFleetRequestConfig BatchState

-- | Information about the configuration of the Spot fleet request.
sfrcSpotFleetRequestConfig :: Lens' SpotFleetRequestConfig SpotFleetRequestConfigData

-- | The creation date and time of the request.
sfrcCreateTime :: Lens' SpotFleetRequestConfig UTCTime

-- | Describes the configuration of a Spot fleet request.
--   
--   <i>See:</i> <a>spotFleetRequestConfigData</a> smart constructor.
data SpotFleetRequestConfigData

-- | Creates a value of <a>SpotFleetRequestConfigData</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfrcdClientToken</a> - A unique, case-sensitive identifier you
--   provide to ensure idempotency of your listings. This helps avoid
--   duplicate listings. For more information, see <a>Ensuring
--   Idempotency</a> .</li>
--   <li><a>sfrcdExcessCapacityTerminationPolicy</a> - Indicates whether
--   running Spot instances should be terminated if the target capacity of
--   the Spot fleet request is decreased below the current size of the Spot
--   fleet.</li>
--   <li><a>sfrcdValidUntil</a> - The end date and time of the request, in
--   UTC format (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i>
--   :<i>MM</i> :<i>SS</i> Z). At this point, no new Spot instance requests
--   are placed or enabled to fulfill the request.</li>
--   <li><a>sfrcdTerminateInstancesWithExpiration</a> - Indicates whether
--   running Spot instances should be terminated when the Spot fleet
--   request expires.</li>
--   <li><a>sfrcdFulfilledCapacity</a> - The number of units fulfilled by
--   this request compared to the set target capacity.</li>
--   <li><a>sfrcdType</a> - The type of request. Indicates whether the
--   fleet will only <tt>request</tt> the target capacity or also attempt
--   to <tt>maintain</tt> it. When you <tt>request</tt> a certain target
--   capacity, the fleet will only place the required bids. It will not
--   attempt to replenish Spot instances if capacity is diminished, nor
--   will it submit bids in alternative Spot pools if capacity is not
--   available. When you want to <tt>maintain</tt> a certain target
--   capacity, fleet will place the required bids to meet this target
--   capacity. It will also automatically replenish any interrupted
--   instances. Default: <tt>maintain</tt> .</li>
--   <li><a>sfrcdValidFrom</a> - The start date and time of the request, in
--   UTC format (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i>
--   :<i>MM</i> :<i>SS</i> Z). The default is to start fulfilling the
--   request immediately.</li>
--   <li><a>sfrcdAllocationStrategy</a> - Indicates how to allocate the
--   target capacity across the Spot pools specified by the Spot fleet
--   request. The default is <tt>lowestPrice</tt> .</li>
--   <li><a>sfrcdSpotPrice</a> - The bid price per unit hour.</li>
--   <li><a>sfrcdTargetCapacity</a> - The number of units to request. You
--   can choose to set the target capacity in terms of instances or a
--   performance characteristic that is important to your application
--   workload, such as vCPUs, memory, or I/O.</li>
--   <li><a>sfrcdIAMFleetRole</a> - Grants the Spot fleet permission to
--   terminate Spot instances on your behalf when you cancel its Spot fleet
--   request using <tt>CancelSpotFleetRequests</tt> or when the Spot fleet
--   request expires, if you set <tt>terminateInstancesWithExpiration</tt>
--   .</li>
--   <li><a>sfrcdLaunchSpecifications</a> - Information about the launch
--   specifications for the Spot fleet request.</li>
--   </ul>
spotFleetRequestConfigData :: Text -> Int -> Text -> NonEmpty SpotFleetLaunchSpecification -> SpotFleetRequestConfigData

-- | A unique, case-sensitive identifier you provide to ensure idempotency
--   of your listings. This helps avoid duplicate listings. For more
--   information, see <a>Ensuring Idempotency</a> .
sfrcdClientToken :: Lens' SpotFleetRequestConfigData (Maybe Text)

-- | Indicates whether running Spot instances should be terminated if the
--   target capacity of the Spot fleet request is decreased below the
--   current size of the Spot fleet.
sfrcdExcessCapacityTerminationPolicy :: Lens' SpotFleetRequestConfigData (Maybe ExcessCapacityTerminationPolicy)

-- | The end date and time of the request, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
--   At this point, no new Spot instance requests are placed or enabled to
--   fulfill the request.
sfrcdValidUntil :: Lens' SpotFleetRequestConfigData (Maybe UTCTime)

-- | Indicates whether running Spot instances should be terminated when the
--   Spot fleet request expires.
sfrcdTerminateInstancesWithExpiration :: Lens' SpotFleetRequestConfigData (Maybe Bool)

-- | The number of units fulfilled by this request compared to the set
--   target capacity.
sfrcdFulfilledCapacity :: Lens' SpotFleetRequestConfigData (Maybe Double)

-- | The type of request. Indicates whether the fleet will only
--   <tt>request</tt> the target capacity or also attempt to
--   <tt>maintain</tt> it. When you <tt>request</tt> a certain target
--   capacity, the fleet will only place the required bids. It will not
--   attempt to replenish Spot instances if capacity is diminished, nor
--   will it submit bids in alternative Spot pools if capacity is not
--   available. When you want to <tt>maintain</tt> a certain target
--   capacity, fleet will place the required bids to meet this target
--   capacity. It will also automatically replenish any interrupted
--   instances. Default: <tt>maintain</tt> .
sfrcdType :: Lens' SpotFleetRequestConfigData (Maybe FleetType)

-- | The start date and time of the request, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
--   The default is to start fulfilling the request immediately.
sfrcdValidFrom :: Lens' SpotFleetRequestConfigData (Maybe UTCTime)

-- | Indicates how to allocate the target capacity across the Spot pools
--   specified by the Spot fleet request. The default is
--   <tt>lowestPrice</tt> .
sfrcdAllocationStrategy :: Lens' SpotFleetRequestConfigData (Maybe AllocationStrategy)

-- | The bid price per unit hour.
sfrcdSpotPrice :: Lens' SpotFleetRequestConfigData Text

-- | The number of units to request. You can choose to set the target
--   capacity in terms of instances or a performance characteristic that is
--   important to your application workload, such as vCPUs, memory, or I/O.
sfrcdTargetCapacity :: Lens' SpotFleetRequestConfigData Int

-- | Grants the Spot fleet permission to terminate Spot instances on your
--   behalf when you cancel its Spot fleet request using
--   <tt>CancelSpotFleetRequests</tt> or when the Spot fleet request
--   expires, if you set <tt>terminateInstancesWithExpiration</tt> .
sfrcdIAMFleetRole :: Lens' SpotFleetRequestConfigData Text

-- | Information about the launch specifications for the Spot fleet
--   request.
sfrcdLaunchSpecifications :: Lens' SpotFleetRequestConfigData (NonEmpty SpotFleetLaunchSpecification)

-- | Describes a Spot instance request.
--   
--   <i>See:</i> <a>spotInstanceRequest</a> smart constructor.
data SpotInstanceRequest

-- | Creates a value of <a>SpotInstanceRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sirInstanceId</a> - The instance ID, if an instance has been
--   launched to fulfill the Spot instance request.</li>
--   <li><a>sirStatus</a> - The status code and status message describing
--   the Spot instance request.</li>
--   <li><a>sirState</a> - The state of the Spot instance request. Spot bid
--   status information can help you track your Spot instance requests. For
--   more information, see <a>Spot Bid Status</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> .</li>
--   <li><a>sirActualBlockHourlyPrice</a> - If you specified a duration and
--   your Spot instance request was fulfilled, this is the fixed hourly
--   price in effect for the Spot instance while it runs.</li>
--   <li><a>sirBlockDurationMinutes</a> - The duration for the Spot
--   instance, in minutes.</li>
--   <li><a>sirProductDescription</a> - The product description associated
--   with the Spot instance.</li>
--   <li><a>sirSpotPrice</a> - The maximum hourly price (bid) for the Spot
--   instance launched to fulfill the request.</li>
--   <li><a>sirLaunchSpecification</a> - Additional information for
--   launching instances.</li>
--   <li><a>sirAvailabilityZoneGroup</a> - The Availability Zone group. If
--   you specify the same Availability Zone group for all Spot instance
--   requests, all Spot instances are launched in the same Availability
--   Zone.</li>
--   <li><a>sirLaunchedAvailabilityZone</a> - The Availability Zone in
--   which the bid is launched.</li>
--   <li><a>sirValidUntil</a> - The end date of the request, in UTC format
--   (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i>
--   :<i>SS</i> Z). If this is a one-time request, it remains active until
--   all instances launch, the request is canceled, or this date is
--   reached. If the request is persistent, it remains active until it is
--   canceled or this date is reached.</li>
--   <li><a>sirLaunchGroup</a> - The instance launch group. Launch groups
--   are Spot instances that launch together and terminate together.</li>
--   <li><a>sirFault</a> - The fault codes for the Spot instance request,
--   if any.</li>
--   <li><a>sirSpotInstanceRequestId</a> - The ID of the Spot instance
--   request.</li>
--   <li><a>sirType</a> - The Spot instance request type.</li>
--   <li><a>sirValidFrom</a> - The start date of the request, in UTC format
--   (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i>
--   :<i>SS</i> Z). The request becomes active at this date and time.</li>
--   <li><a>sirCreateTime</a> - The date and time when the Spot instance
--   request was created, in UTC format (for example, <i>YYYY</i>
--   -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).</li>
--   <li><a>sirTags</a> - Any tags assigned to the resource.</li>
--   </ul>
spotInstanceRequest :: SpotInstanceRequest

-- | The instance ID, if an instance has been launched to fulfill the Spot
--   instance request.
sirInstanceId :: Lens' SpotInstanceRequest (Maybe Text)

-- | The status code and status message describing the Spot instance
--   request.
sirStatus :: Lens' SpotInstanceRequest (Maybe SpotInstanceStatus)

-- | The state of the Spot instance request. Spot bid status information
--   can help you track your Spot instance requests. For more information,
--   see <a>Spot Bid Status</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .
sirState :: Lens' SpotInstanceRequest (Maybe SpotInstanceState)

-- | If you specified a duration and your Spot instance request was
--   fulfilled, this is the fixed hourly price in effect for the Spot
--   instance while it runs.
sirActualBlockHourlyPrice :: Lens' SpotInstanceRequest (Maybe Text)

-- | The duration for the Spot instance, in minutes.
sirBlockDurationMinutes :: Lens' SpotInstanceRequest (Maybe Int)

-- | The product description associated with the Spot instance.
sirProductDescription :: Lens' SpotInstanceRequest (Maybe RIProductDescription)

-- | The maximum hourly price (bid) for the Spot instance launched to
--   fulfill the request.
sirSpotPrice :: Lens' SpotInstanceRequest (Maybe Text)

-- | Additional information for launching instances.
sirLaunchSpecification :: Lens' SpotInstanceRequest (Maybe LaunchSpecification)

-- | The Availability Zone group. If you specify the same Availability Zone
--   group for all Spot instance requests, all Spot instances are launched
--   in the same Availability Zone.
sirAvailabilityZoneGroup :: Lens' SpotInstanceRequest (Maybe Text)

-- | The Availability Zone in which the bid is launched.
sirLaunchedAvailabilityZone :: Lens' SpotInstanceRequest (Maybe Text)

-- | The end date of the request, in UTC format (for example, <i>YYYY</i>
--   -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z). If this is
--   a one-time request, it remains active until all instances launch, the
--   request is canceled, or this date is reached. If the request is
--   persistent, it remains active until it is canceled or this date is
--   reached.
sirValidUntil :: Lens' SpotInstanceRequest (Maybe UTCTime)

-- | The instance launch group. Launch groups are Spot instances that
--   launch together and terminate together.
sirLaunchGroup :: Lens' SpotInstanceRequest (Maybe Text)

-- | The fault codes for the Spot instance request, if any.
sirFault :: Lens' SpotInstanceRequest (Maybe SpotInstanceStateFault)

-- | The ID of the Spot instance request.
sirSpotInstanceRequestId :: Lens' SpotInstanceRequest (Maybe Text)

-- | The Spot instance request type.
sirType :: Lens' SpotInstanceRequest (Maybe SpotInstanceType)

-- | The start date of the request, in UTC format (for example, <i>YYYY</i>
--   -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z). The request
--   becomes active at this date and time.
sirValidFrom :: Lens' SpotInstanceRequest (Maybe UTCTime)

-- | The date and time when the Spot instance request was created, in UTC
--   format (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i>
--   :<i>MM</i> :<i>SS</i> Z).
sirCreateTime :: Lens' SpotInstanceRequest (Maybe UTCTime)

-- | Any tags assigned to the resource.
sirTags :: Lens' SpotInstanceRequest [Tag]

-- | Describes a Spot instance state change.
--   
--   <i>See:</i> <a>spotInstanceStateFault</a> smart constructor.
data SpotInstanceStateFault

-- | Creates a value of <a>SpotInstanceStateFault</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sisfCode</a> - The reason code for the Spot instance state
--   change.</li>
--   <li><a>sisfMessage</a> - The message for the Spot instance state
--   change.</li>
--   </ul>
spotInstanceStateFault :: SpotInstanceStateFault

-- | The reason code for the Spot instance state change.
sisfCode :: Lens' SpotInstanceStateFault (Maybe Text)

-- | The message for the Spot instance state change.
sisfMessage :: Lens' SpotInstanceStateFault (Maybe Text)

-- | Describes the status of a Spot instance request.
--   
--   <i>See:</i> <a>spotInstanceStatus</a> smart constructor.
data SpotInstanceStatus

-- | Creates a value of <a>SpotInstanceStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sisUpdateTime</a> - The date and time of the most recent status
--   update, in UTC format (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i>
--   T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).</li>
--   <li><a>sisCode</a> - The status code. For a list of status codes, see
--   <a>Spot Bid Status Codes</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .</li>
--   <li><a>sisMessage</a> - The description for the status code.</li>
--   </ul>
spotInstanceStatus :: SpotInstanceStatus

-- | The date and time of the most recent status update, in UTC format (for
--   example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i>
--   :<i>SS</i> Z).
sisUpdateTime :: Lens' SpotInstanceStatus (Maybe UTCTime)

-- | The status code. For a list of status codes, see <a>Spot Bid Status
--   Codes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
sisCode :: Lens' SpotInstanceStatus (Maybe Text)

-- | The description for the status code.
sisMessage :: Lens' SpotInstanceStatus (Maybe Text)

-- | Describes Spot instance placement.
--   
--   <i>See:</i> <a>spotPlacement</a> smart constructor.
data SpotPlacement

-- | Creates a value of <a>SpotPlacement</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spAvailabilityZone</a> - The Availability Zone. [Spot fleet
--   only] To specify multiple Availability Zones, separate them using
--   commas; for example, "us-west-2a, us-west-2b".</li>
--   <li><a>spGroupName</a> - The name of the placement group (for cluster
--   instances).</li>
--   </ul>
spotPlacement :: SpotPlacement

-- | The Availability Zone. [Spot fleet only] To specify multiple
--   Availability Zones, separate them using commas; for example,
--   "us-west-2a, us-west-2b".
spAvailabilityZone :: Lens' SpotPlacement (Maybe Text)

-- | The name of the placement group (for cluster instances).
spGroupName :: Lens' SpotPlacement (Maybe Text)

-- | Describes the maximum hourly price (bid) for any Spot instance
--   launched to fulfill the request.
--   
--   <i>See:</i> <a>spotPrice</a> smart constructor.
data SpotPrice

-- | Creates a value of <a>SpotPrice</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sProductDescription</a> - A general description of the
--   AMI.</li>
--   <li><a>sSpotPrice</a> - The maximum price (bid) that you are willing
--   to pay for a Spot instance.</li>
--   <li><a>sInstanceType</a> - The instance type. Note that T2 and HS1
--   instance types are not supported.</li>
--   <li><a>sAvailabilityZone</a> - The Availability Zone.</li>
--   <li><a>sTimestamp</a> - The date and time the request was created, in
--   UTC format (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i>
--   :<i>MM</i> :<i>SS</i> Z).</li>
--   </ul>
spotPrice :: SpotPrice

-- | A general description of the AMI.
sProductDescription :: Lens' SpotPrice (Maybe RIProductDescription)

-- | The maximum price (bid) that you are willing to pay for a Spot
--   instance.
sSpotPrice :: Lens' SpotPrice (Maybe Text)

-- | The instance type. Note that T2 and HS1 instance types are not
--   supported.
sInstanceType :: Lens' SpotPrice (Maybe InstanceType)

-- | The Availability Zone.
sAvailabilityZone :: Lens' SpotPrice (Maybe Text)

-- | The date and time the request was created, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
sTimestamp :: Lens' SpotPrice (Maybe UTCTime)

-- | Describes a stale rule in a security group.
--   
--   <i>See:</i> <a>staleIPPermission</a> smart constructor.
data StaleIPPermission

-- | Creates a value of <a>StaleIPPermission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sipFromPort</a> - The start of the port range for the TCP and
--   UDP protocols, or an ICMP type number. A value of <tt>-1</tt>
--   indicates all ICMP types.</li>
--   <li><a>sipUserIdGroupPairs</a> - One or more security group pairs.
--   Returns the ID of the referenced security group and VPC, and the ID
--   and status of the VPC peering connection.</li>
--   <li><a>sipPrefixListIds</a> - One or more prefix list IDs for an AWS
--   service. Not applicable for stale security group rules.</li>
--   <li><a>sipIPProtocol</a> - The IP protocol name (for <tt>tcp</tt> ,
--   <tt>udp</tt> , and <tt>icmp</tt> ) or number (see <a>Protocol
--   Numbers)</a> .</li>
--   <li><a>sipToPort</a> - The end of the port range for the TCP and UDP
--   protocols, or an ICMP type number. A value of <tt>-1</tt> indicates
--   all ICMP types.</li>
--   <li><a>sipIPRanges</a> - One or more IP ranges. Not applicable for
--   stale security group rules.</li>
--   </ul>
staleIPPermission :: StaleIPPermission

-- | The start of the port range for the TCP and UDP protocols, or an ICMP
--   type number. A value of <tt>-1</tt> indicates all ICMP types.
sipFromPort :: Lens' StaleIPPermission (Maybe Int)

-- | One or more security group pairs. Returns the ID of the referenced
--   security group and VPC, and the ID and status of the VPC peering
--   connection.
sipUserIdGroupPairs :: Lens' StaleIPPermission [UserIdGroupPair]

-- | One or more prefix list IDs for an AWS service. Not applicable for
--   stale security group rules.
sipPrefixListIds :: Lens' StaleIPPermission [Text]

-- | The IP protocol name (for <tt>tcp</tt> , <tt>udp</tt> , and
--   <tt>icmp</tt> ) or number (see <a>Protocol Numbers)</a> .
sipIPProtocol :: Lens' StaleIPPermission (Maybe Text)

-- | The end of the port range for the TCP and UDP protocols, or an ICMP
--   type number. A value of <tt>-1</tt> indicates all ICMP types.
sipToPort :: Lens' StaleIPPermission (Maybe Int)

-- | One or more IP ranges. Not applicable for stale security group rules.
sipIPRanges :: Lens' StaleIPPermission [Text]

-- | Describes a stale security group (a security group that contains stale
--   rules).
--   
--   <i>See:</i> <a>staleSecurityGroup</a> smart constructor.
data StaleSecurityGroup

-- | Creates a value of <a>StaleSecurityGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssgVPCId</a> - The ID of the VPC for the security group.</li>
--   <li><a>ssgGroupName</a> - The name of the security group.</li>
--   <li><a>ssgStaleIPPermissionsEgress</a> - Information about the stale
--   outbound rules in the security group.</li>
--   <li><a>ssgStaleIPPermissions</a> - Information about the stale inbound
--   rules in the security group.</li>
--   <li><a>ssgDescription</a> - The description of the security
--   group.</li>
--   <li><a>ssgGroupId</a> - The ID of the security group.</li>
--   </ul>
staleSecurityGroup :: Text -> StaleSecurityGroup

-- | The ID of the VPC for the security group.
ssgVPCId :: Lens' StaleSecurityGroup (Maybe Text)

-- | The name of the security group.
ssgGroupName :: Lens' StaleSecurityGroup (Maybe Text)

-- | Information about the stale outbound rules in the security group.
ssgStaleIPPermissionsEgress :: Lens' StaleSecurityGroup [StaleIPPermission]

-- | Information about the stale inbound rules in the security group.
ssgStaleIPPermissions :: Lens' StaleSecurityGroup [StaleIPPermission]

-- | The description of the security group.
ssgDescription :: Lens' StaleSecurityGroup (Maybe Text)

-- | The ID of the security group.
ssgGroupId :: Lens' StaleSecurityGroup Text

-- | Describes a state change.
--   
--   <i>See:</i> <a>stateReason</a> smart constructor.
data StateReason

-- | Creates a value of <a>StateReason</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>srCode</a> - The reason code for the state change.</li>
--   <li><a>srMessage</a> - The message for the state change. *
--   <tt>Server.SpotInstanceTermination</tt> : A Spot instance was
--   terminated due to an increase in the market price. *
--   <tt>Server.InternalError</tt> : An internal error occurred during
--   instance launch, resulting in termination. *
--   <tt>Server.InsufficientInstanceCapacity</tt> : There was insufficient
--   instance capacity to satisfy the launch request. *
--   <tt>Client.InternalError</tt> : A client error caused the instance to
--   terminate on launch. * <tt>Client.InstanceInitiatedShutdown</tt> : The
--   instance was shut down using the <tt>shutdown -h</tt> command from the
--   instance. * <tt>Client.UserInitiatedShutdown</tt> : The instance was
--   shut down using the Amazon EC2 API. *
--   <tt>Client.VolumeLimitExceeded</tt> : The limit on the number of EBS
--   volumes or total storage was exceeded. Decrease usage or request an
--   increase in your limits. * <tt>Client.InvalidSnapshot.NotFound</tt> :
--   The specified snapshot was not found.</li>
--   </ul>
stateReason :: StateReason

-- | The reason code for the state change.
srCode :: Lens' StateReason (Maybe Text)

-- | The message for the state change. *
--   <tt>Server.SpotInstanceTermination</tt> : A Spot instance was
--   terminated due to an increase in the market price. *
--   <tt>Server.InternalError</tt> : An internal error occurred during
--   instance launch, resulting in termination. *
--   <tt>Server.InsufficientInstanceCapacity</tt> : There was insufficient
--   instance capacity to satisfy the launch request. *
--   <tt>Client.InternalError</tt> : A client error caused the instance to
--   terminate on launch. * <tt>Client.InstanceInitiatedShutdown</tt> : The
--   instance was shut down using the <tt>shutdown -h</tt> command from the
--   instance. * <tt>Client.UserInitiatedShutdown</tt> : The instance was
--   shut down using the Amazon EC2 API. *
--   <tt>Client.VolumeLimitExceeded</tt> : The limit on the number of EBS
--   volumes or total storage was exceeded. Decrease usage or request an
--   increase in your limits. * <tt>Client.InvalidSnapshot.NotFound</tt> :
--   The specified snapshot was not found.
srMessage :: Lens' StateReason (Maybe Text)

-- | Describes the storage location for an instance store-backed AMI.
--   
--   <i>See:</i> <a>storage</a> smart constructor.
data Storage

-- | Creates a value of <a>Storage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sS3</a> - An Amazon S3 storage location.</li>
--   </ul>
storage :: Storage

-- | An Amazon S3 storage location.
sS3 :: Lens' Storage (Maybe S3Storage)

-- | Describes a subnet.
--   
--   <i>See:</i> <a>subnet</a> smart constructor.
data Subnet

-- | Creates a value of <a>Subnet</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>subIPv6CidrBlockAssociationSet</a> - Information about the IPv6
--   CIDR blocks associated with the subnet.</li>
--   <li><a>subAssignIPv6AddressOnCreation</a> - Indicates whether a
--   network interface created in this subnet (including a network
--   interface created by <tt>RunInstances</tt> ) receives an IPv6
--   address.</li>
--   <li><a>subMapPublicIPOnLaunch</a> - Indicates whether instances
--   launched in this subnet receive a public IPv4 address.</li>
--   <li><a>subDefaultForAz</a> - Indicates whether this is the default
--   subnet for the Availability Zone.</li>
--   <li><a>subTags</a> - Any tags assigned to the subnet.</li>
--   <li><a>subAvailabilityZone</a> - The Availability Zone of the
--   subnet.</li>
--   <li><a>subAvailableIPAddressCount</a> - The number of unused private
--   IPv4 addresses in the subnet. Note that the IPv4 addresses for any
--   stopped instances are considered unavailable.</li>
--   <li><a>subCidrBlock</a> - The IPv4 CIDR block assigned to the
--   subnet.</li>
--   <li><a>subState</a> - The current state of the subnet.</li>
--   <li><a>subSubnetId</a> - The ID of the subnet.</li>
--   <li><a>subVPCId</a> - The ID of the VPC the subnet is in.</li>
--   </ul>
subnet :: Text -> Int -> Text -> SubnetState -> Text -> Text -> Subnet

-- | Information about the IPv6 CIDR blocks associated with the subnet.
subIPv6CidrBlockAssociationSet :: Lens' Subnet [SubnetIPv6CidrBlockAssociation]

-- | Indicates whether a network interface created in this subnet
--   (including a network interface created by <tt>RunInstances</tt> )
--   receives an IPv6 address.
subAssignIPv6AddressOnCreation :: Lens' Subnet (Maybe Bool)

-- | Indicates whether instances launched in this subnet receive a public
--   IPv4 address.
subMapPublicIPOnLaunch :: Lens' Subnet (Maybe Bool)

-- | Indicates whether this is the default subnet for the Availability
--   Zone.
subDefaultForAz :: Lens' Subnet (Maybe Bool)

-- | Any tags assigned to the subnet.
subTags :: Lens' Subnet [Tag]

-- | The Availability Zone of the subnet.
subAvailabilityZone :: Lens' Subnet Text

-- | The number of unused private IPv4 addresses in the subnet. Note that
--   the IPv4 addresses for any stopped instances are considered
--   unavailable.
subAvailableIPAddressCount :: Lens' Subnet Int

-- | The IPv4 CIDR block assigned to the subnet.
subCidrBlock :: Lens' Subnet Text

-- | The current state of the subnet.
subState :: Lens' Subnet SubnetState

-- | The ID of the subnet.
subSubnetId :: Lens' Subnet Text

-- | The ID of the VPC the subnet is in.
subVPCId :: Lens' Subnet Text

-- | Describes the state of a CIDR block.
--   
--   <i>See:</i> <a>subnetCidrBlockState</a> smart constructor.
data SubnetCidrBlockState

-- | Creates a value of <a>SubnetCidrBlockState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scbsState</a> - The state of a CIDR block.</li>
--   <li><a>scbsStatusMessage</a> - A message about the status of the CIDR
--   block, if applicable.</li>
--   </ul>
subnetCidrBlockState :: SubnetCidrBlockState

-- | The state of a CIDR block.
scbsState :: Lens' SubnetCidrBlockState (Maybe SubnetCidrBlockStateCode)

-- | A message about the status of the CIDR block, if applicable.
scbsStatusMessage :: Lens' SubnetCidrBlockState (Maybe Text)

-- | Describes an IPv6 CIDR block associated with a subnet.
--   
--   <i>See:</i> <a>subnetIPv6CidrBlockAssociation</a> smart constructor.
data SubnetIPv6CidrBlockAssociation

-- | Creates a value of <a>SubnetIPv6CidrBlockAssociation</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sicbaAssociationId</a> - The association ID for the CIDR
--   block.</li>
--   <li><a>sicbaIPv6CidrBlock</a> - The IPv6 CIDR block.</li>
--   <li><a>sicbaIPv6CidrBlockState</a> - Information about the state of
--   the CIDR block.</li>
--   </ul>
subnetIPv6CidrBlockAssociation :: SubnetIPv6CidrBlockAssociation

-- | The association ID for the CIDR block.
sicbaAssociationId :: Lens' SubnetIPv6CidrBlockAssociation (Maybe Text)

-- | The IPv6 CIDR block.
sicbaIPv6CidrBlock :: Lens' SubnetIPv6CidrBlockAssociation (Maybe Text)

-- | Information about the state of the CIDR block.
sicbaIPv6CidrBlockState :: Lens' SubnetIPv6CidrBlockAssociation (Maybe SubnetCidrBlockState)

-- | Describes a tag.
--   
--   <i>See:</i> <a>tag</a> smart constructor.
data Tag

-- | Creates a value of <a>Tag</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tagKey</a> - The key of the tag. Constraints: Tag keys are
--   case-sensitive and accept a maximum of 127 Unicode characters. May not
--   begin with <tt>aws:</tt></li>
--   <li><a>tagValue</a> - The value of the tag. Constraints: Tag values
--   are case-sensitive and accept a maximum of 255 Unicode
--   characters.</li>
--   </ul>
tag :: Text -> Text -> Tag

-- | The key of the tag. Constraints: Tag keys are case-sensitive and
--   accept a maximum of 127 Unicode characters. May not begin with
--   <tt>aws:</tt>
tagKey :: Lens' Tag Text

-- | The value of the tag. Constraints: Tag values are case-sensitive and
--   accept a maximum of 255 Unicode characters.
tagValue :: Lens' Tag Text

-- | Describes a tag.
--   
--   <i>See:</i> <a>tagDescription</a> smart constructor.
data TagDescription

-- | Creates a value of <a>TagDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdResourceId</a> - The ID of the resource. For example,
--   <tt>ami-1a2b3c4d</tt> .</li>
--   <li><a>tdResourceType</a> - The resource type.</li>
--   <li><a>tdKey</a> - The tag key.</li>
--   <li><a>tdValue</a> - The tag value.</li>
--   </ul>
tagDescription :: Text -> ResourceType -> Text -> Text -> TagDescription

-- | The ID of the resource. For example, <tt>ami-1a2b3c4d</tt> .
tdResourceId :: Lens' TagDescription Text

-- | The resource type.
tdResourceType :: Lens' TagDescription ResourceType

-- | The tag key.
tdKey :: Lens' TagDescription Text

-- | The tag value.
tdValue :: Lens' TagDescription Text

-- | Information about the Convertible Reserved Instance offering.
--   
--   <i>See:</i> <a>targetConfiguration</a> smart constructor.
data TargetConfiguration

-- | Creates a value of <a>TargetConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcInstanceCount</a> - The number of instances the Convertible
--   Reserved Instance offering can be applied to. This parameter is
--   reserved and cannot be specified in a request</li>
--   <li><a>tcOfferingId</a> - The ID of the Convertible Reserved Instance
--   offering.</li>
--   </ul>
targetConfiguration :: TargetConfiguration

-- | The number of instances the Convertible Reserved Instance offering can
--   be applied to. This parameter is reserved and cannot be specified in a
--   request
tcInstanceCount :: Lens' TargetConfiguration (Maybe Int)

-- | The ID of the Convertible Reserved Instance offering.
tcOfferingId :: Lens' TargetConfiguration (Maybe Text)

-- | Details about the target configuration.
--   
--   <i>See:</i> <a>targetConfigurationRequest</a> smart constructor.
data TargetConfigurationRequest

-- | Creates a value of <a>TargetConfigurationRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcrInstanceCount</a> - The number of instances the Covertible
--   Reserved Instance offering can be applied to. This parameter is
--   reserved and cannot be specified in a request</li>
--   <li><a>tcrOfferingId</a> - The Convertible Reserved Instance offering
--   ID.</li>
--   </ul>
targetConfigurationRequest :: Text -> TargetConfigurationRequest

-- | The number of instances the Covertible Reserved Instance offering can
--   be applied to. This parameter is reserved and cannot be specified in a
--   request
tcrInstanceCount :: Lens' TargetConfigurationRequest (Maybe Int)

-- | The Convertible Reserved Instance offering ID.
tcrOfferingId :: Lens' TargetConfigurationRequest Text

-- | The total value of the new Convertible Reserved Instances.
--   
--   <i>See:</i> <a>targetReservationValue</a> smart constructor.
data TargetReservationValue

-- | Creates a value of <a>TargetReservationValue</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>trvReservationValue</a> - The total value of the Convertible
--   Reserved Instances that make up the exchange. This is the sum of the
--   list value, remaining upfront price, and additional upfront cost of
--   the exchange.</li>
--   <li><a>trvTargetConfiguration</a> - The configuration of the
--   Convertible Reserved Instances that make up the exchange.</li>
--   </ul>
targetReservationValue :: TargetReservationValue

-- | The total value of the Convertible Reserved Instances that make up the
--   exchange. This is the sum of the list value, remaining upfront price,
--   and additional upfront cost of the exchange.
trvReservationValue :: Lens' TargetReservationValue (Maybe ReservationValue)

-- | The configuration of the Convertible Reserved Instances that make up
--   the exchange.
trvTargetConfiguration :: Lens' TargetReservationValue (Maybe TargetConfiguration)

-- | Information about items that were not successfully processed in a
--   batch call.
--   
--   <i>See:</i> <a>unsuccessfulItem</a> smart constructor.
data UnsuccessfulItem

-- | Creates a value of <a>UnsuccessfulItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uiResourceId</a> - The ID of the resource.</li>
--   <li><a>uiError</a> - Information about the error.</li>
--   </ul>
unsuccessfulItem :: UnsuccessfulItemError -> UnsuccessfulItem

-- | The ID of the resource.
uiResourceId :: Lens' UnsuccessfulItem (Maybe Text)

-- | Information about the error.
uiError :: Lens' UnsuccessfulItem UnsuccessfulItemError

-- | Information about the error that occurred. For more information about
--   errors, see <a>Error Codes</a> .
--   
--   <i>See:</i> <a>unsuccessfulItemError</a> smart constructor.
data UnsuccessfulItemError

-- | Creates a value of <a>UnsuccessfulItemError</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uieCode</a> - The error code.</li>
--   <li><a>uieMessage</a> - The error message accompanying the error
--   code.</li>
--   </ul>
unsuccessfulItemError :: Text -> Text -> UnsuccessfulItemError

-- | The error code.
uieCode :: Lens' UnsuccessfulItemError Text

-- | The error message accompanying the error code.
uieMessage :: Lens' UnsuccessfulItemError Text

-- | Describes the S3 bucket for the disk image.
--   
--   <i>See:</i> <a>userBucket</a> smart constructor.
data UserBucket

-- | Creates a value of <a>UserBucket</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ubS3Key</a> - The file name of the disk image.</li>
--   <li><a>ubS3Bucket</a> - The name of the S3 bucket where the disk image
--   is located.</li>
--   </ul>
userBucket :: UserBucket

-- | The file name of the disk image.
ubS3Key :: Lens' UserBucket (Maybe Text)

-- | The name of the S3 bucket where the disk image is located.
ubS3Bucket :: Lens' UserBucket (Maybe Text)

-- | Describes the S3 bucket for the disk image.
--   
--   <i>See:</i> <a>userBucketDetails</a> smart constructor.
data UserBucketDetails

-- | Creates a value of <a>UserBucketDetails</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ubdS3Key</a> - The file name of the disk image.</li>
--   <li><a>ubdS3Bucket</a> - The S3 bucket from which the disk image was
--   created.</li>
--   </ul>
userBucketDetails :: UserBucketDetails

-- | The file name of the disk image.
ubdS3Key :: Lens' UserBucketDetails (Maybe Text)

-- | The S3 bucket from which the disk image was created.
ubdS3Bucket :: Lens' UserBucketDetails (Maybe Text)

-- | Describes the user data for an instance.
--   
--   <i>See:</i> <a>userData</a> smart constructor.
data UserData

-- | Creates a value of <a>UserData</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udData</a> - The user data. If you are using an AWS SDK or
--   command line tool, Base64-encoding is performed for you, and you can
--   load the text from a file. Otherwise, you must provide Base64-encoded
--   text.</li>
--   </ul>
userData :: UserData

-- | The user data. If you are using an AWS SDK or command line tool,
--   Base64-encoding is performed for you, and you can load the text from a
--   file. Otherwise, you must provide Base64-encoded text.
udData :: Lens' UserData (Maybe Text)

-- | Describes a security group and AWS account ID pair.
--   
--   <i>See:</i> <a>userIdGroupPair</a> smart constructor.
data UserIdGroupPair

-- | Creates a value of <a>UserIdGroupPair</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uigpVPCPeeringConnectionId</a> - The ID of the VPC peering
--   connection, if applicable.</li>
--   <li><a>uigpVPCId</a> - The ID of the VPC for the referenced security
--   group, if applicable.</li>
--   <li><a>uigpUserId</a> - The ID of an AWS account. For a referenced
--   security group in another VPC, the account ID of the referenced
--   security group is returned. [EC2-Classic] Required when adding or
--   removing rules that reference a security group in another AWS
--   account.</li>
--   <li><a>uigpGroupId</a> - The ID of the security group.</li>
--   <li><a>uigpGroupName</a> - The name of the security group. In a
--   request, use this parameter for a security group in EC2-Classic or a
--   default VPC only. For a security group in a nondefault VPC, use the
--   security group ID.</li>
--   <li><a>uigpPeeringStatus</a> - The status of a VPC peering connection,
--   if applicable.</li>
--   </ul>
userIdGroupPair :: UserIdGroupPair

-- | The ID of the VPC peering connection, if applicable.
uigpVPCPeeringConnectionId :: Lens' UserIdGroupPair (Maybe Text)

-- | The ID of the VPC for the referenced security group, if applicable.
uigpVPCId :: Lens' UserIdGroupPair (Maybe Text)

-- | The ID of an AWS account. For a referenced security group in another
--   VPC, the account ID of the referenced security group is returned.
--   [EC2-Classic] Required when adding or removing rules that reference a
--   security group in another AWS account.
uigpUserId :: Lens' UserIdGroupPair (Maybe Text)

-- | The ID of the security group.
uigpGroupId :: Lens' UserIdGroupPair (Maybe Text)

-- | The name of the security group. In a request, use this parameter for a
--   security group in EC2-Classic or a default VPC only. For a security
--   group in a nondefault VPC, use the security group ID.
uigpGroupName :: Lens' UserIdGroupPair (Maybe Text)

-- | The status of a VPC peering connection, if applicable.
uigpPeeringStatus :: Lens' UserIdGroupPair (Maybe Text)

-- | Describes telemetry for a VPN tunnel.
--   
--   <i>See:</i> <a>vgwTelemetry</a> smart constructor.
data VGWTelemetry

-- | Creates a value of <a>VGWTelemetry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vtStatus</a> - The status of the VPN tunnel.</li>
--   <li><a>vtOutsideIPAddress</a> - The Internet-routable IP address of
--   the virtual private gateway's outside interface.</li>
--   <li><a>vtLastStatusChange</a> - The date and time of the last change
--   in status.</li>
--   <li><a>vtAcceptedRouteCount</a> - The number of accepted routes.</li>
--   <li><a>vtStatusMessage</a> - If an error occurs, a description of the
--   error.</li>
--   </ul>
vgwTelemetry :: VGWTelemetry

-- | The status of the VPN tunnel.
vtStatus :: Lens' VGWTelemetry (Maybe TelemetryStatus)

-- | The Internet-routable IP address of the virtual private gateway's
--   outside interface.
vtOutsideIPAddress :: Lens' VGWTelemetry (Maybe Text)

-- | The date and time of the last change in status.
vtLastStatusChange :: Lens' VGWTelemetry (Maybe UTCTime)

-- | The number of accepted routes.
vtAcceptedRouteCount :: Lens' VGWTelemetry (Maybe Int)

-- | If an error occurs, a description of the error.
vtStatusMessage :: Lens' VGWTelemetry (Maybe Text)

-- | Describes a VPC.
--   
--   <i>See:</i> <a>vpc</a> smart constructor.
data VPC

-- | Creates a value of <a>VPC</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcIPv6CidrBlockAssociationSet</a> - Information about the IPv6
--   CIDR blocks associated with the VPC.</li>
--   <li><a>vpcTags</a> - Any tags assigned to the VPC.</li>
--   <li><a>vpcIsDefault</a> - Indicates whether the VPC is the default
--   VPC.</li>
--   <li><a>vpcCidrBlock</a> - The IPv4 CIDR block for the VPC.</li>
--   <li><a>vpcDHCPOptionsId</a> - The ID of the set of DHCP options you've
--   associated with the VPC (or <tt>default</tt> if the default options
--   are associated with the VPC).</li>
--   <li><a>vpcInstanceTenancy</a> - The allowed tenancy of instances
--   launched into the VPC.</li>
--   <li><a>vpcState</a> - The current state of the VPC.</li>
--   <li><a>vpcVPCId</a> - The ID of the VPC.</li>
--   </ul>
vpc :: Text -> Text -> Tenancy -> VPCState -> Text -> VPC

-- | Information about the IPv6 CIDR blocks associated with the VPC.
vpcIPv6CidrBlockAssociationSet :: Lens' VPC [VPCIPv6CidrBlockAssociation]

-- | Any tags assigned to the VPC.
vpcTags :: Lens' VPC [Tag]

-- | Indicates whether the VPC is the default VPC.
vpcIsDefault :: Lens' VPC (Maybe Bool)

-- | The IPv4 CIDR block for the VPC.
vpcCidrBlock :: Lens' VPC Text

-- | The ID of the set of DHCP options you've associated with the VPC (or
--   <tt>default</tt> if the default options are associated with the VPC).
vpcDHCPOptionsId :: Lens' VPC Text

-- | The allowed tenancy of instances launched into the VPC.
vpcInstanceTenancy :: Lens' VPC Tenancy

-- | The current state of the VPC.
vpcState :: Lens' VPC VPCState

-- | The ID of the VPC.
vpcVPCId :: Lens' VPC Text

-- | Describes an attachment between a virtual private gateway and a VPC.
--   
--   <i>See:</i> <a>vpcAttachment</a> smart constructor.
data VPCAttachment

-- | Creates a value of <a>VPCAttachment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vaState</a> - The current state of the attachment.</li>
--   <li><a>vaVPCId</a> - The ID of the VPC.</li>
--   </ul>
vpcAttachment :: VPCAttachment

-- | The current state of the attachment.
vaState :: Lens' VPCAttachment (Maybe AttachmentStatus)

-- | The ID of the VPC.
vaVPCId :: Lens' VPCAttachment (Maybe Text)

-- | Describes the state of a CIDR block.
--   
--   <i>See:</i> <a>vpcCidrBlockState</a> smart constructor.
data VPCCidrBlockState

-- | Creates a value of <a>VPCCidrBlockState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcbsState</a> - The state of the CIDR block.</li>
--   <li><a>vcbsStatusMessage</a> - A message about the status of the CIDR
--   block, if applicable.</li>
--   </ul>
vpcCidrBlockState :: VPCCidrBlockState

-- | The state of the CIDR block.
vcbsState :: Lens' VPCCidrBlockState (Maybe VPCCidrBlockStateCode)

-- | A message about the status of the CIDR block, if applicable.
vcbsStatusMessage :: Lens' VPCCidrBlockState (Maybe Text)

-- | Describes whether a VPC is enabled for ClassicLink.
--   
--   <i>See:</i> <a>vpcClassicLink</a> smart constructor.
data VPCClassicLink

-- | Creates a value of <a>VPCClassicLink</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vclVPCId</a> - The ID of the VPC.</li>
--   <li><a>vclTags</a> - Any tags assigned to the VPC.</li>
--   <li><a>vclClassicLinkEnabled</a> - Indicates whether the VPC is
--   enabled for ClassicLink.</li>
--   </ul>
vpcClassicLink :: VPCClassicLink

-- | The ID of the VPC.
vclVPCId :: Lens' VPCClassicLink (Maybe Text)

-- | Any tags assigned to the VPC.
vclTags :: Lens' VPCClassicLink [Tag]

-- | Indicates whether the VPC is enabled for ClassicLink.
vclClassicLinkEnabled :: Lens' VPCClassicLink (Maybe Bool)

-- | Describes a VPC endpoint.
--   
--   <i>See:</i> <a>vpcEndpoint</a> smart constructor.
data VPCEndpoint

-- | Creates a value of <a>VPCEndpoint</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>veState</a> - The state of the VPC endpoint.</li>
--   <li><a>vePolicyDocument</a> - The policy document associated with the
--   endpoint.</li>
--   <li><a>veVPCId</a> - The ID of the VPC to which the endpoint is
--   associated.</li>
--   <li><a>veCreationTimestamp</a> - The date and time the VPC endpoint
--   was created.</li>
--   <li><a>veServiceName</a> - The name of the AWS service to which the
--   endpoint is associated.</li>
--   <li><a>veVPCEndpointId</a> - The ID of the VPC endpoint.</li>
--   <li><a>veRouteTableIds</a> - One or more route tables associated with
--   the endpoint.</li>
--   </ul>
vpcEndpoint :: VPCEndpoint

-- | The state of the VPC endpoint.
veState :: Lens' VPCEndpoint (Maybe State)

-- | The policy document associated with the endpoint.
vePolicyDocument :: Lens' VPCEndpoint (Maybe Text)

-- | The ID of the VPC to which the endpoint is associated.
veVPCId :: Lens' VPCEndpoint (Maybe Text)

-- | The date and time the VPC endpoint was created.
veCreationTimestamp :: Lens' VPCEndpoint (Maybe UTCTime)

-- | The name of the AWS service to which the endpoint is associated.
veServiceName :: Lens' VPCEndpoint (Maybe Text)

-- | The ID of the VPC endpoint.
veVPCEndpointId :: Lens' VPCEndpoint (Maybe Text)

-- | One or more route tables associated with the endpoint.
veRouteTableIds :: Lens' VPCEndpoint [Text]

-- | Describes an IPv6 CIDR block associated with a VPC.
--   
--   <i>See:</i> <a>vpcIPv6CidrBlockAssociation</a> smart constructor.
data VPCIPv6CidrBlockAssociation

-- | Creates a value of <a>VPCIPv6CidrBlockAssociation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vicbaAssociationId</a> - The association ID for the IPv6 CIDR
--   block.</li>
--   <li><a>vicbaIPv6CidrBlock</a> - The IPv6 CIDR block.</li>
--   <li><a>vicbaIPv6CidrBlockState</a> - Information about the state of
--   the CIDR block.</li>
--   </ul>
vpcIPv6CidrBlockAssociation :: VPCIPv6CidrBlockAssociation

-- | The association ID for the IPv6 CIDR block.
vicbaAssociationId :: Lens' VPCIPv6CidrBlockAssociation (Maybe Text)

-- | The IPv6 CIDR block.
vicbaIPv6CidrBlock :: Lens' VPCIPv6CidrBlockAssociation (Maybe Text)

-- | Information about the state of the CIDR block.
vicbaIPv6CidrBlockState :: Lens' VPCIPv6CidrBlockAssociation (Maybe VPCCidrBlockState)

-- | Describes a VPC peering connection.
--   
--   <i>See:</i> <a>vpcPeeringConnection</a> smart constructor.
data VPCPeeringConnection

-- | Creates a value of <a>VPCPeeringConnection</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcpcVPCPeeringConnectionId</a> - The ID of the VPC peering
--   connection.</li>
--   <li><a>vpcpcStatus</a> - The status of the VPC peering
--   connection.</li>
--   <li><a>vpcpcAccepterVPCInfo</a> - Information about the accepter VPC.
--   CIDR block information is not returned when creating a VPC peering
--   connection, or when describing a VPC peering connection that's in the
--   <tt>initiating-request</tt> or <tt>pending-acceptance</tt> state.</li>
--   <li><a>vpcpcRequesterVPCInfo</a> - Information about the requester
--   VPC.</li>
--   <li><a>vpcpcExpirationTime</a> - The time that an unaccepted VPC
--   peering connection will expire.</li>
--   <li><a>vpcpcTags</a> - Any tags assigned to the resource.</li>
--   </ul>
vpcPeeringConnection :: VPCPeeringConnection

-- | The ID of the VPC peering connection.
vpcpcVPCPeeringConnectionId :: Lens' VPCPeeringConnection (Maybe Text)

-- | The status of the VPC peering connection.
vpcpcStatus :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionStateReason)

-- | Information about the accepter VPC. CIDR block information is not
--   returned when creating a VPC peering connection, or when describing a
--   VPC peering connection that's in the <tt>initiating-request</tt> or
--   <tt>pending-acceptance</tt> state.
vpcpcAccepterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)

-- | Information about the requester VPC.
vpcpcRequesterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)

-- | The time that an unaccepted VPC peering connection will expire.
vpcpcExpirationTime :: Lens' VPCPeeringConnection (Maybe UTCTime)

-- | Any tags assigned to the resource.
vpcpcTags :: Lens' VPCPeeringConnection [Tag]

-- | Describes the VPC peering connection options.
--   
--   <i>See:</i> <a>vpcPeeringConnectionOptionsDescription</a> smart
--   constructor.
data VPCPeeringConnectionOptionsDescription

-- | Creates a value of <a>VPCPeeringConnectionOptionsDescription</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcodAllowEgressFromLocalVPCToRemoteClassicLink</a> - Indicates
--   whether a local VPC can communicate with a ClassicLink connection in
--   the peer VPC over the VPC peering connection.</li>
--   <li><a>vpcodAllowEgressFromLocalClassicLinkToRemoteVPC</a> - Indicates
--   whether a local ClassicLink connection can communicate with the peer
--   VPC over the VPC peering connection.</li>
--   <li><a>vpcodAllowDNSResolutionFromRemoteVPC</a> - Indicates whether a
--   local VPC can resolve public DNS hostnames to private IP addresses
--   when queried from instances in a peer VPC.</li>
--   </ul>
vpcPeeringConnectionOptionsDescription :: VPCPeeringConnectionOptionsDescription

-- | Indicates whether a local VPC can communicate with a ClassicLink
--   connection in the peer VPC over the VPC peering connection.
vpcodAllowEgressFromLocalVPCToRemoteClassicLink :: Lens' VPCPeeringConnectionOptionsDescription (Maybe Bool)

-- | Indicates whether a local ClassicLink connection can communicate with
--   the peer VPC over the VPC peering connection.
vpcodAllowEgressFromLocalClassicLinkToRemoteVPC :: Lens' VPCPeeringConnectionOptionsDescription (Maybe Bool)

-- | Indicates whether a local VPC can resolve public DNS hostnames to
--   private IP addresses when queried from instances in a peer VPC.
vpcodAllowDNSResolutionFromRemoteVPC :: Lens' VPCPeeringConnectionOptionsDescription (Maybe Bool)

-- | Describes the status of a VPC peering connection.
--   
--   <i>See:</i> <a>vpcPeeringConnectionStateReason</a> smart constructor.
data VPCPeeringConnectionStateReason

-- | Creates a value of <a>VPCPeeringConnectionStateReason</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcsrCode</a> - The status of the VPC peering connection.</li>
--   <li><a>vpcsrMessage</a> - A message that provides more information
--   about the status, if applicable.</li>
--   </ul>
vpcPeeringConnectionStateReason :: VPCPeeringConnectionStateReason

-- | The status of the VPC peering connection.
vpcsrCode :: Lens' VPCPeeringConnectionStateReason (Maybe VPCPeeringConnectionStateReasonCode)

-- | A message that provides more information about the status, if
--   applicable.
vpcsrMessage :: Lens' VPCPeeringConnectionStateReason (Maybe Text)

-- | Describes a VPC in a VPC peering connection.
--   
--   <i>See:</i> <a>vpcPeeringConnectionVPCInfo</a> smart constructor.
data VPCPeeringConnectionVPCInfo

-- | Creates a value of <a>VPCPeeringConnectionVPCInfo</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcviVPCId</a> - The ID of the VPC.</li>
--   <li><a>vpcviOwnerId</a> - The AWS account ID of the VPC owner.</li>
--   <li><a>vpcviPeeringOptions</a> - Information about the VPC peering
--   connection options for the accepter or requester VPC.</li>
--   <li><a>vpcviCidrBlock</a> - The IPv4 CIDR block for the VPC.</li>
--   <li><a>vpcviIPv6CidrBlockSet</a> - The IPv6 CIDR block for the
--   VPC.</li>
--   </ul>
vpcPeeringConnectionVPCInfo :: VPCPeeringConnectionVPCInfo

-- | The ID of the VPC.
vpcviVPCId :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)

-- | The AWS account ID of the VPC owner.
vpcviOwnerId :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)

-- | Information about the VPC peering connection options for the accepter
--   or requester VPC.
vpcviPeeringOptions :: Lens' VPCPeeringConnectionVPCInfo (Maybe VPCPeeringConnectionOptionsDescription)

-- | The IPv4 CIDR block for the VPC.
vpcviCidrBlock :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)

-- | The IPv6 CIDR block for the VPC.
vpcviIPv6CidrBlockSet :: Lens' VPCPeeringConnectionVPCInfo [IPv6CidrBlock]

-- | Describes a VPN connection.
--   
--   <i>See:</i> <a>vpnConnection</a> smart constructor.
data VPNConnection

-- | Creates a value of <a>VPNConnection</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcCustomerGatewayConfiguration</a> - The configuration
--   information for the VPN connection's customer gateway (in the native
--   XML format). This element is always present in the
--   <tt>CreateVpnConnection</tt> response; however, it's present in the
--   <tt>DescribeVpnConnections</tt> response only if the VPN connection is
--   in the <tt>pending</tt> or <tt>available</tt> state.</li>
--   <li><a>vcRoutes</a> - The static routes associated with the VPN
--   connection.</li>
--   <li><a>vcVPNGatewayId</a> - The ID of the virtual private gateway at
--   the AWS side of the VPN connection.</li>
--   <li><a>vcOptions</a> - The VPN connection options.</li>
--   <li><a>vcTags</a> - Any tags assigned to the VPN connection.</li>
--   <li><a>vcVGWTelemetry</a> - Information about the VPN tunnel.</li>
--   <li><a>vcVPNConnectionId</a> - The ID of the VPN connection.</li>
--   <li><a>vcCustomerGatewayId</a> - The ID of the customer gateway at
--   your end of the VPN connection.</li>
--   <li><a>vcState</a> - The current state of the VPN connection.</li>
--   <li><a>vcType</a> - The type of VPN connection.</li>
--   </ul>
vpnConnection :: Text -> Text -> VPNState -> GatewayType -> VPNConnection

-- | The configuration information for the VPN connection's customer
--   gateway (in the native XML format). This element is always present in
--   the <tt>CreateVpnConnection</tt> response; however, it's present in
--   the <tt>DescribeVpnConnections</tt> response only if the VPN
--   connection is in the <tt>pending</tt> or <tt>available</tt> state.
vcCustomerGatewayConfiguration :: Lens' VPNConnection (Maybe Text)

-- | The static routes associated with the VPN connection.
vcRoutes :: Lens' VPNConnection [VPNStaticRoute]

-- | The ID of the virtual private gateway at the AWS side of the VPN
--   connection.
vcVPNGatewayId :: Lens' VPNConnection (Maybe Text)

-- | The VPN connection options.
vcOptions :: Lens' VPNConnection (Maybe VPNConnectionOptions)

-- | Any tags assigned to the VPN connection.
vcTags :: Lens' VPNConnection [Tag]

-- | Information about the VPN tunnel.
vcVGWTelemetry :: Lens' VPNConnection [VGWTelemetry]

-- | The ID of the VPN connection.
vcVPNConnectionId :: Lens' VPNConnection Text

-- | The ID of the customer gateway at your end of the VPN connection.
vcCustomerGatewayId :: Lens' VPNConnection Text

-- | The current state of the VPN connection.
vcState :: Lens' VPNConnection VPNState

-- | The type of VPN connection.
vcType :: Lens' VPNConnection GatewayType

-- | Describes VPN connection options.
--   
--   <i>See:</i> <a>vpnConnectionOptions</a> smart constructor.
data VPNConnectionOptions

-- | Creates a value of <a>VPNConnectionOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcoStaticRoutesOnly</a> - Indicates whether the VPN connection
--   uses static routes only. Static routes must be used for devices that
--   don't support BGP.</li>
--   </ul>
vpnConnectionOptions :: VPNConnectionOptions

-- | Indicates whether the VPN connection uses static routes only. Static
--   routes must be used for devices that don't support BGP.
vcoStaticRoutesOnly :: Lens' VPNConnectionOptions (Maybe Bool)

-- | Describes VPN connection options.
--   
--   <i>See:</i> <a>vpnConnectionOptionsSpecification</a> smart
--   constructor.
data VPNConnectionOptionsSpecification

-- | Creates a value of <a>VPNConnectionOptionsSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcosStaticRoutesOnly</a> - Indicates whether the VPN connection
--   uses static routes only. Static routes must be used for devices that
--   don't support BGP.</li>
--   </ul>
vpnConnectionOptionsSpecification :: VPNConnectionOptionsSpecification

-- | Indicates whether the VPN connection uses static routes only. Static
--   routes must be used for devices that don't support BGP.
vcosStaticRoutesOnly :: Lens' VPNConnectionOptionsSpecification (Maybe Bool)

-- | Describes a virtual private gateway.
--   
--   <i>See:</i> <a>vpnGateway</a> smart constructor.
data VPNGateway

-- | Creates a value of <a>VPNGateway</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vgState</a> - The current state of the virtual private
--   gateway.</li>
--   <li><a>vgVPCAttachments</a> - Any VPCs attached to the virtual private
--   gateway.</li>
--   <li><a>vgVPNGatewayId</a> - The ID of the virtual private
--   gateway.</li>
--   <li><a>vgAvailabilityZone</a> - The Availability Zone where the
--   virtual private gateway was created, if applicable. This field may be
--   empty or not returned.</li>
--   <li><a>vgType</a> - The type of VPN connection the virtual private
--   gateway supports.</li>
--   <li><a>vgTags</a> - Any tags assigned to the virtual private
--   gateway.</li>
--   </ul>
vpnGateway :: VPNGateway

-- | The current state of the virtual private gateway.
vgState :: Lens' VPNGateway (Maybe VPNState)

-- | Any VPCs attached to the virtual private gateway.
vgVPCAttachments :: Lens' VPNGateway [VPCAttachment]

-- | The ID of the virtual private gateway.
vgVPNGatewayId :: Lens' VPNGateway (Maybe Text)

-- | The Availability Zone where the virtual private gateway was created,
--   if applicable. This field may be empty or not returned.
vgAvailabilityZone :: Lens' VPNGateway (Maybe Text)

-- | The type of VPN connection the virtual private gateway supports.
vgType :: Lens' VPNGateway (Maybe GatewayType)

-- | Any tags assigned to the virtual private gateway.
vgTags :: Lens' VPNGateway [Tag]

-- | Describes a static route for a VPN connection.
--   
--   <i>See:</i> <a>vpnStaticRoute</a> smart constructor.
data VPNStaticRoute

-- | Creates a value of <a>VPNStaticRoute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsrState</a> - The current state of the static route.</li>
--   <li><a>vsrSource</a> - Indicates how the routes were provided.</li>
--   <li><a>vsrDestinationCidrBlock</a> - The CIDR block associated with
--   the local subnet of the customer data center.</li>
--   </ul>
vpnStaticRoute :: VPNStaticRoute

-- | The current state of the static route.
vsrState :: Lens' VPNStaticRoute (Maybe VPNState)

-- | Indicates how the routes were provided.
vsrSource :: Lens' VPNStaticRoute (Maybe VPNStaticRouteSource)

-- | The CIDR block associated with the local subnet of the customer data
--   center.
vsrDestinationCidrBlock :: Lens' VPNStaticRoute (Maybe Text)

-- | Describes a volume.
--   
--   <i>See:</i> <a>volume</a> smart constructor.
data Volume

-- | Creates a value of <a>Volume</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vAttachments</a> - Information about the volume
--   attachments.</li>
--   <li><a>vIOPS</a> - The number of I<i>O operations per second (IOPS)
--   that the volume supports. For Provisioned IOPS SSD volumes, this
--   represents the number of IOPS that are provisioned for the volume. For
--   General Purpose SSD volumes, this represents the baseline performance
--   of the volume and the rate at which the volume accumulates I</i>O
--   credits for bursting. For more information on General Purpose SSD
--   baseline performance, I<i>O credits, and bursting, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for io1 volumes and
--   100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This parameter is
--   required for requests to create <tt>io1</tt> volumes; it is not used
--   in requests to create <tt>gp2</tt> , <tt>st1</tt> , <tt>sc1</tt> , or
--   <tt>standard</tt> volumes.</li>
--   <li><a>vKMSKeyId</a> - The full ARN of the AWS Key Management Service
--   (AWS KMS) customer master key (CMK) that was used to protect the
--   volume encryption key for the volume.</li>
--   <li><a>vTags</a> - Any tags assigned to the volume.</li>
--   <li><a>vAvailabilityZone</a> - The Availability Zone for the
--   volume.</li>
--   <li><a>vCreateTime</a> - The time stamp when volume creation was
--   initiated.</li>
--   <li><a>vEncrypted</a> - Indicates whether the volume will be
--   encrypted.</li>
--   <li><a>vSize</a> - The size of the volume, in GiBs.</li>
--   <li><a>vSnapshotId</a> - The snapshot from which the volume was
--   created, if applicable.</li>
--   <li><a>vState</a> - The volume state.</li>
--   <li><a>vVolumeId</a> - The ID of the volume.</li>
--   <li><a>vVolumeType</a> - The volume type. This can be <tt>gp2</tt> for
--   General Purpose SSD, <tt>io1</tt> for Provisioned IOPS SSD,
--   <tt>st1</tt> for Throughput Optimized HDD, <tt>sc1</tt> for Cold HDD,
--   or <tt>standard</tt> for Magnetic volumes.</li>
--   </ul>
volume :: Text -> UTCTime -> Bool -> Int -> Text -> VolumeState -> Text -> VolumeType -> Volume

-- | Information about the volume attachments.
vAttachments :: Lens' Volume [VolumeAttachment]

-- | The number of I<i>O operations per second (IOPS) that the volume
--   supports. For Provisioned IOPS SSD volumes, this represents the number
--   of IOPS that are provisioned for the volume. For General Purpose SSD
--   volumes, this represents the baseline performance of the volume and
--   the rate at which the volume accumulates I</i>O credits for bursting.
--   For more information on General Purpose SSD baseline performance,
--   I<i>O credits, and bursting, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for io1 volumes and
--   100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This parameter is
--   required for requests to create <tt>io1</tt> volumes; it is not used
--   in requests to create <tt>gp2</tt> , <tt>st1</tt> , <tt>sc1</tt> , or
--   <tt>standard</tt> volumes.
vIOPS :: Lens' Volume (Maybe Int)

-- | The full ARN of the AWS Key Management Service (AWS KMS) customer
--   master key (CMK) that was used to protect the volume encryption key
--   for the volume.
vKMSKeyId :: Lens' Volume (Maybe Text)

-- | Any tags assigned to the volume.
vTags :: Lens' Volume [Tag]

-- | The Availability Zone for the volume.
vAvailabilityZone :: Lens' Volume Text

-- | The time stamp when volume creation was initiated.
vCreateTime :: Lens' Volume UTCTime

-- | Indicates whether the volume will be encrypted.
vEncrypted :: Lens' Volume Bool

-- | The size of the volume, in GiBs.
vSize :: Lens' Volume Int

-- | The snapshot from which the volume was created, if applicable.
vSnapshotId :: Lens' Volume Text

-- | The volume state.
vState :: Lens' Volume VolumeState

-- | The ID of the volume.
vVolumeId :: Lens' Volume Text

-- | The volume type. This can be <tt>gp2</tt> for General Purpose SSD,
--   <tt>io1</tt> for Provisioned IOPS SSD, <tt>st1</tt> for Throughput
--   Optimized HDD, <tt>sc1</tt> for Cold HDD, or <tt>standard</tt> for
--   Magnetic volumes.
vVolumeType :: Lens' Volume VolumeType

-- | Describes volume attachment details.
--   
--   <i>See:</i> <a>volumeAttachment</a> smart constructor.
data VolumeAttachment

-- | Creates a value of <a>VolumeAttachment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>volInstanceId</a> - The ID of the instance.</li>
--   <li><a>volDeleteOnTermination</a> - Indicates whether the EBS volume
--   is deleted on instance termination.</li>
--   <li><a>volState</a> - The attachment state of the volume.</li>
--   <li><a>volDevice</a> - The device name.</li>
--   <li><a>volVolumeId</a> - The ID of the volume.</li>
--   <li><a>volAttachTime</a> - The time stamp when the attachment
--   initiated.</li>
--   </ul>
volumeAttachment :: VolumeAttachment

-- | The ID of the instance.
volInstanceId :: Lens' VolumeAttachment (Maybe Text)

-- | Indicates whether the EBS volume is deleted on instance termination.
volDeleteOnTermination :: Lens' VolumeAttachment (Maybe Bool)

-- | The attachment state of the volume.
volState :: Lens' VolumeAttachment (Maybe VolumeAttachmentState)

-- | The device name.
volDevice :: Lens' VolumeAttachment (Maybe Text)

-- | The ID of the volume.
volVolumeId :: Lens' VolumeAttachment (Maybe Text)

-- | The time stamp when the attachment initiated.
volAttachTime :: Lens' VolumeAttachment (Maybe UTCTime)

-- | Describes an EBS volume.
--   
--   <i>See:</i> <a>volumeDetail</a> smart constructor.
data VolumeDetail

-- | Creates a value of <a>VolumeDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vdSize</a> - The size of the volume, in GiB.</li>
--   </ul>
volumeDetail :: Integer -> VolumeDetail

-- | The size of the volume, in GiB.
vdSize :: Lens' VolumeDetail Integer

-- | Describes a volume status operation code.
--   
--   <i>See:</i> <a>volumeStatusAction</a> smart constructor.
data VolumeStatusAction

-- | Creates a value of <a>VolumeStatusAction</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsaEventType</a> - The event type associated with this
--   operation.</li>
--   <li><a>vsaCode</a> - The code identifying the operation, for example,
--   <tt>enable-volume-io</tt> .</li>
--   <li><a>vsaDescription</a> - A description of the operation.</li>
--   <li><a>vsaEventId</a> - The ID of the event associated with this
--   operation.</li>
--   </ul>
volumeStatusAction :: VolumeStatusAction

-- | The event type associated with this operation.
vsaEventType :: Lens' VolumeStatusAction (Maybe Text)

-- | The code identifying the operation, for example,
--   <tt>enable-volume-io</tt> .
vsaCode :: Lens' VolumeStatusAction (Maybe Text)

-- | A description of the operation.
vsaDescription :: Lens' VolumeStatusAction (Maybe Text)

-- | The ID of the event associated with this operation.
vsaEventId :: Lens' VolumeStatusAction (Maybe Text)

-- | Describes a volume status.
--   
--   <i>See:</i> <a>volumeStatusDetails</a> smart constructor.
data VolumeStatusDetails

-- | Creates a value of <a>VolumeStatusDetails</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsdStatus</a> - The intended status of the volume status.</li>
--   <li><a>vsdName</a> - The name of the volume status.</li>
--   </ul>
volumeStatusDetails :: VolumeStatusDetails

-- | The intended status of the volume status.
vsdStatus :: Lens' VolumeStatusDetails (Maybe Text)

-- | The name of the volume status.
vsdName :: Lens' VolumeStatusDetails (Maybe VolumeStatusName)

-- | Describes a volume status event.
--   
--   <i>See:</i> <a>volumeStatusEvent</a> smart constructor.
data VolumeStatusEvent

-- | Creates a value of <a>VolumeStatusEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vseNotBefore</a> - The earliest start time of the event.</li>
--   <li><a>vseEventType</a> - The type of this event.</li>
--   <li><a>vseDescription</a> - A description of the event.</li>
--   <li><a>vseNotAfter</a> - The latest end time of the event.</li>
--   <li><a>vseEventId</a> - The ID of this event.</li>
--   </ul>
volumeStatusEvent :: VolumeStatusEvent

-- | The earliest start time of the event.
vseNotBefore :: Lens' VolumeStatusEvent (Maybe UTCTime)

-- | The type of this event.
vseEventType :: Lens' VolumeStatusEvent (Maybe Text)

-- | A description of the event.
vseDescription :: Lens' VolumeStatusEvent (Maybe Text)

-- | The latest end time of the event.
vseNotAfter :: Lens' VolumeStatusEvent (Maybe UTCTime)

-- | The ID of this event.
vseEventId :: Lens' VolumeStatusEvent (Maybe Text)

-- | Describes the status of a volume.
--   
--   <i>See:</i> <a>volumeStatusInfo</a> smart constructor.
data VolumeStatusInfo

-- | Creates a value of <a>VolumeStatusInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsiStatus</a> - The status of the volume.</li>
--   <li><a>vsiDetails</a> - The details of the volume status.</li>
--   </ul>
volumeStatusInfo :: VolumeStatusInfo

-- | The status of the volume.
vsiStatus :: Lens' VolumeStatusInfo (Maybe VolumeStatusInfoStatus)

-- | The details of the volume status.
vsiDetails :: Lens' VolumeStatusInfo [VolumeStatusDetails]

-- | Describes the volume status.
--   
--   <i>See:</i> <a>volumeStatusItem</a> smart constructor.
data VolumeStatusItem

-- | Creates a value of <a>VolumeStatusItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsiVolumeStatus</a> - The volume status.</li>
--   <li><a>vsiActions</a> - The details of the operation.</li>
--   <li><a>vsiEvents</a> - A list of events associated with the
--   volume.</li>
--   <li><a>vsiAvailabilityZone</a> - The Availability Zone of the
--   volume.</li>
--   <li><a>vsiVolumeId</a> - The volume ID.</li>
--   </ul>
volumeStatusItem :: VolumeStatusItem

-- | The volume status.
vsiVolumeStatus :: Lens' VolumeStatusItem (Maybe VolumeStatusInfo)

-- | The details of the operation.
vsiActions :: Lens' VolumeStatusItem [VolumeStatusAction]

-- | A list of events associated with the volume.
vsiEvents :: Lens' VolumeStatusItem [VolumeStatusEvent]

-- | The Availability Zone of the volume.
vsiAvailabilityZone :: Lens' VolumeStatusItem (Maybe Text)

-- | The volume ID.
vsiVolumeId :: Lens' VolumeStatusItem (Maybe Text)


-- | Modify the auto-placement setting of a Dedicated Host. When
--   auto-placement is enabled, AWS will place instances that you launch
--   with a tenancy of <tt>host</tt> , but without targeting a specific
--   host ID, onto any available Dedicated Host in your account which has
--   auto-placement enabled. When auto-placement is disabled, you need to
--   provide a host ID if you want the instance to launch onto a specific
--   host. If no host ID is provided, the instance will be launched onto a
--   suitable host which has auto-placement enabled.
module Network.AWS.EC2.ModifyHosts

-- | Creates a value of <a>ModifyHosts</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mhHostIds</a> - The host IDs of the Dedicated Hosts you want to
--   modify.</li>
--   <li><a>mhAutoPlacement</a> - Specify whether to enable or disable
--   auto-placement.</li>
--   </ul>
modifyHosts :: AutoPlacement -> ModifyHosts

-- | Contains the parameters for ModifyHosts.
--   
--   <i>See:</i> <a>modifyHosts</a> smart constructor.
data ModifyHosts

-- | The host IDs of the Dedicated Hosts you want to modify.
mhHostIds :: Lens' ModifyHosts [Text]

-- | Specify whether to enable or disable auto-placement.
mhAutoPlacement :: Lens' ModifyHosts AutoPlacement

-- | Creates a value of <a>ModifyHostsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mhrsUnsuccessful</a> - The IDs of the Dedicated Hosts that
--   could not be modified. Check whether the setting you requested can be
--   used.</li>
--   <li><a>mhrsSuccessful</a> - The IDs of the Dedicated Hosts that were
--   successfully modified.</li>
--   <li><a>mhrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyHostsResponse :: Int -> ModifyHostsResponse

-- | Contains the output of ModifyHosts.
--   
--   <i>See:</i> <a>modifyHostsResponse</a> smart constructor.
data ModifyHostsResponse

-- | The IDs of the Dedicated Hosts that could not be modified. Check
--   whether the setting you requested can be used.
mhrsUnsuccessful :: Lens' ModifyHostsResponse [UnsuccessfulItem]

-- | The IDs of the Dedicated Hosts that were successfully modified.
mhrsSuccessful :: Lens' ModifyHostsResponse [Text]

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


-- | Modifies the ID format for the specified resource on a per-region
--   basis. You can specify that resources should receive longer IDs
--   (17-character IDs) when they are created. The following resource types
--   support longer IDs: <tt>instance</tt> | <tt>reservation</tt> |
--   <tt>snapshot</tt> | <tt>volume</tt> .
--   
--   This setting applies to the IAM user who makes the request; it does
--   not apply to the entire AWS account. By default, an IAM user defaults
--   to the same settings as the root user. If you're using this action as
--   the root user, then these settings apply to the entire account, unless
--   an IAM user explicitly overrides these settings for themselves. For
--   more information, see <a>Resource IDs</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> .
--   
--   Resources created with longer IDs are visible to all IAM roles and
--   users, regardless of these settings and provided that they have
--   permission to use the relevant <tt>Describe</tt> command for the
--   resource type.
module Network.AWS.EC2.ModifyIdFormat

-- | Creates a value of <a>ModifyIdFormat</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mifResource</a> - The type of resource: <tt>instance</tt> |
--   <tt>reservation</tt> | <tt>snapshot</tt> | <tt>volume</tt></li>
--   <li><a>mifUseLongIds</a> - Indicate whether the resource should use
--   longer IDs (17-character IDs).</li>
--   </ul>
modifyIdFormat :: Text -> Bool -> ModifyIdFormat

-- | Contains the parameters of ModifyIdFormat.
--   
--   <i>See:</i> <a>modifyIdFormat</a> smart constructor.
data ModifyIdFormat

-- | The type of resource: <tt>instance</tt> | <tt>reservation</tt> |
--   <tt>snapshot</tt> | <tt>volume</tt>
mifResource :: Lens' ModifyIdFormat Text

-- | Indicate whether the resource should use longer IDs (17-character
--   IDs).
mifUseLongIds :: Lens' ModifyIdFormat Bool

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

-- | <i>See:</i> <a>modifyIdFormatResponse</a> smart constructor.
data ModifyIdFormatResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyIdFormat.ModifyIdFormatResponse
instance Data.Data.Data Network.AWS.EC2.ModifyIdFormat.ModifyIdFormatResponse
instance GHC.Show.Show Network.AWS.EC2.ModifyIdFormat.ModifyIdFormatResponse
instance GHC.Read.Read Network.AWS.EC2.ModifyIdFormat.ModifyIdFormatResponse
instance GHC.Classes.Eq Network.AWS.EC2.ModifyIdFormat.ModifyIdFormatResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyIdFormat.ModifyIdFormat
instance Data.Data.Data Network.AWS.EC2.ModifyIdFormat.ModifyIdFormat
instance GHC.Show.Show Network.AWS.EC2.ModifyIdFormat.ModifyIdFormat
instance GHC.Read.Read Network.AWS.EC2.ModifyIdFormat.ModifyIdFormat
instance GHC.Classes.Eq Network.AWS.EC2.ModifyIdFormat.ModifyIdFormat
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ModifyIdFormat.ModifyIdFormat
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyIdFormat.ModifyIdFormat
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyIdFormat.ModifyIdFormat
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ModifyIdFormat.ModifyIdFormat
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ModifyIdFormat.ModifyIdFormat
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ModifyIdFormat.ModifyIdFormat
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyIdFormat.ModifyIdFormatResponse


-- | Modifies the ID format of a resource for a specified IAM user, IAM
--   role, or the root user for an account; or all IAM users, IAM roles,
--   and the root user for an account. You can specify that resources
--   should receive longer IDs (17-character IDs) when they are created.
--   
--   The following resource types support longer IDs: <tt>instance</tt> |
--   <tt>reservation</tt> | <tt>snapshot</tt> | <tt>volume</tt> . For more
--   information, see <a>Resource IDs</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i> .
--   
--   This setting applies to the principal specified in the request; it
--   does not apply to the principal that makes the request.
--   
--   Resources created with longer IDs are visible to all IAM roles and
--   users, regardless of these settings and provided that they have
--   permission to use the relevant <tt>Describe</tt> command for the
--   resource type.
module Network.AWS.EC2.ModifyIdentityIdFormat

-- | Creates a value of <a>ModifyIdentityIdFormat</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>miifResource</a> - The type of resource: <tt>instance</tt> |
--   <tt>reservation</tt> | <tt>snapshot</tt> | <tt>volume</tt></li>
--   <li><a>miifUseLongIds</a> - Indicates whether the resource should use
--   longer IDs (17-character IDs)</li>
--   <li><a>miifPrincipalARN</a> - The ARN of the principal, which can be
--   an IAM user, IAM role, or the root user. Specify <tt>all</tt> to
--   modify the ID format for all IAM users, IAM roles, and the root user
--   of the account.</li>
--   </ul>
modifyIdentityIdFormat :: Text -> Bool -> Text -> ModifyIdentityIdFormat

-- | Contains the parameters of ModifyIdentityIdFormat.
--   
--   <i>See:</i> <a>modifyIdentityIdFormat</a> smart constructor.
data ModifyIdentityIdFormat

-- | The type of resource: <tt>instance</tt> | <tt>reservation</tt> |
--   <tt>snapshot</tt> | <tt>volume</tt>
miifResource :: Lens' ModifyIdentityIdFormat Text

-- | Indicates whether the resource should use longer IDs (17-character
--   IDs)
miifUseLongIds :: Lens' ModifyIdentityIdFormat Bool

-- | The ARN of the principal, which can be an IAM user, IAM role, or the
--   root user. Specify <tt>all</tt> to modify the ID format for all IAM
--   users, IAM roles, and the root user of the account.
miifPrincipalARN :: Lens' ModifyIdentityIdFormat Text

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

-- | <i>See:</i> <a>modifyIdentityIdFormatResponse</a> smart constructor.
data ModifyIdentityIdFormatResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormatResponse
instance Data.Data.Data Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormatResponse
instance GHC.Show.Show Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormatResponse
instance GHC.Read.Read Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormatResponse
instance GHC.Classes.Eq Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormatResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormat
instance Data.Data.Data Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormat
instance GHC.Show.Show Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormat
instance GHC.Read.Read Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormat
instance GHC.Classes.Eq Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormat
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormat
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormat
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormat
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormat
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormat
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormat
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormatResponse


-- | Modifies the specified attribute of the specified AMI. You can specify
--   only one attribute at a time.
module Network.AWS.EC2.ModifyImageAttribute

-- | Creates a value of <a>ModifyImageAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>miaAttribute</a> - The name of the attribute to modify.</li>
--   <li><a>miaUserIds</a> - One or more AWS account IDs. This is only
--   valid when modifying the <tt>launchPermission</tt> attribute.</li>
--   <li><a>miaUserGroups</a> - One or more user groups. This is only valid
--   when modifying the <tt>launchPermission</tt> attribute.</li>
--   <li><a>miaValue</a> - The value of the attribute being modified. This
--   is only valid when modifying the <tt>description</tt> attribute.</li>
--   <li><a>miaLaunchPermission</a> - A launch permission
--   modification.</li>
--   <li><a>miaOperationType</a> - The operation type.</li>
--   <li><a>miaProductCodes</a> - One or more product codes. After you add
--   a product code to an AMI, it can't be removed. This is only valid when
--   modifying the <tt>productCodes</tt> attribute.</li>
--   <li><a>miaDescription</a> - A description for the AMI.</li>
--   <li><a>miaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>miaImageId</a> - The ID of the AMI.</li>
--   </ul>
modifyImageAttribute :: Text -> ModifyImageAttribute

-- | Contains the parameters for ModifyImageAttribute.
--   
--   <i>See:</i> <a>modifyImageAttribute</a> smart constructor.
data ModifyImageAttribute

-- | The name of the attribute to modify.
miaAttribute :: Lens' ModifyImageAttribute (Maybe Text)

-- | One or more AWS account IDs. This is only valid when modifying the
--   <tt>launchPermission</tt> attribute.
miaUserIds :: Lens' ModifyImageAttribute [Text]

-- | One or more user groups. This is only valid when modifying the
--   <tt>launchPermission</tt> attribute.
miaUserGroups :: Lens' ModifyImageAttribute [Text]

-- | The value of the attribute being modified. This is only valid when
--   modifying the <tt>description</tt> attribute.
miaValue :: Lens' ModifyImageAttribute (Maybe Text)

-- | A launch permission modification.
miaLaunchPermission :: Lens' ModifyImageAttribute (Maybe LaunchPermissionModifications)

-- | The operation type.
miaOperationType :: Lens' ModifyImageAttribute (Maybe OperationType)

-- | One or more product codes. After you add a product code to an AMI, it
--   can't be removed. This is only valid when modifying the
--   <tt>productCodes</tt> attribute.
miaProductCodes :: Lens' ModifyImageAttribute [Text]

-- | A description for the AMI.
miaDescription :: Lens' ModifyImageAttribute (Maybe AttributeValue)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
miaDryRun :: Lens' ModifyImageAttribute (Maybe Bool)

-- | The ID of the AMI.
miaImageId :: Lens' ModifyImageAttribute Text

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

-- | <i>See:</i> <a>modifyImageAttributeResponse</a> smart constructor.
data ModifyImageAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttributeResponse
instance Data.Data.Data Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttributeResponse
instance GHC.Show.Show Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttributeResponse
instance GHC.Read.Read Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttributeResponse
instance GHC.Classes.Eq Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttribute
instance Data.Data.Data Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttribute
instance GHC.Show.Show Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttribute
instance GHC.Read.Read Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttribute
instance GHC.Classes.Eq Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttribute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttribute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttribute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttribute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttribute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttributeResponse


-- | Modifies the specified attribute of the specified instance. You can
--   specify only one attribute at a time.
--   
--   To modify some attributes, the instance must be stopped. For more
--   information, see <a>Modifying Attributes of a Stopped Instance</a> in
--   the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.ModifyInstanceAttribute

-- | Creates a value of <a>ModifyInstanceAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mGroups</a> - [EC2-VPC] Changes the security groups of the
--   instance. You must specify at least one security group, even if it's
--   just the default security group for the VPC. You must specify the
--   security group ID, not the security group name.</li>
--   <li><a>mAttribute</a> - The name of the attribute.</li>
--   <li><a>mEnaSupport</a> - Set to <tt>true</tt> to enable enhanced
--   networking with ENA for the instance. This option is supported only
--   for HVM instances. Specifying this option with a PV instance can make
--   it unreachable.</li>
--   <li><a>mSourceDestCheck</a> - Specifies whether source/destination
--   checking is enabled. A value of <tt>true</tt> means that checking is
--   enabled, and <tt>false</tt> means checking is disabled. This value
--   must be <tt>false</tt> for a NAT instance to perform NAT.</li>
--   <li><a>mDisableAPITermination</a> - If the value is <tt>true</tt> ,
--   you can't terminate the instance using the Amazon EC2 console, CLI, or
--   API; otherwise, you can. You cannot use this paramater for Spot
--   Instances.</li>
--   <li><a>mKernel</a> - Changes the instance's kernel to the specified
--   value. We recommend that you use PV-GRUB instead of kernels and RAM
--   disks. For more information, see <a>PV-GRUB</a> .</li>
--   <li><a>mRAMDisk</a> - Changes the instance's RAM disk to the specified
--   value. We recommend that you use PV-GRUB instead of kernels and RAM
--   disks. For more information, see <a>PV-GRUB</a> .</li>
--   <li><a>mValue</a> - A new value for the attribute. Use only with the
--   <tt>kernel</tt> , <tt>ramdisk</tt> , <tt>userData</tt> ,
--   <tt>disableApiTermination</tt> , or
--   <tt>instanceInitiatedShutdownBehavior</tt> attribute.</li>
--   <li><a>mInstanceType</a> - Changes the instance type to the specified
--   value. For more information, see <a>Instance Types</a> . If the
--   instance type is not valid, the error returned is
--   <tt>InvalidInstanceAttributeValue</tt> .</li>
--   <li><a>mSRIOVNetSupport</a> - Set to <tt>simple</tt> to enable
--   enhanced networking with the Intel 82599 Virtual Function interface
--   for the instance. There is no way to disable enhanced networking with
--   the Intel 82599 Virtual Function interface at this time. This option
--   is supported only for HVM instances. Specifying this option with a PV
--   instance can make it unreachable.</li>
--   <li><a>mEBSOptimized</a> - Specifies whether the instance is optimized
--   for EBS I<i>O. This optimization provides dedicated throughput to
--   Amazon EBS and an optimized configuration stack to provide optimal EBS
--   I</i>O performance. This optimization isn't available with all
--   instance types. Additional usage charges apply when using an EBS
--   Optimized instance.</li>
--   <li><a>mUserData</a> - Changes the instance's user data to the
--   specified value. If you are using an AWS SDK or command line tool,
--   Base64-encoding is performed for you, and you can load the text from a
--   file. Otherwise, you must provide Base64-encoded text.</li>
--   <li><a>mInstanceInitiatedShutdownBehavior</a> - Specifies whether an
--   instance stops or terminates when you initiate shutdown from the
--   instance (using the operating system command for system
--   shutdown).</li>
--   <li><a>mBlockDeviceMappings</a> - Modifies the
--   <tt>DeleteOnTermination</tt> attribute for volumes that are currently
--   attached. The volume must be owned by the caller. If no value is
--   specified for <tt>DeleteOnTermination</tt> , the default is
--   <tt>true</tt> and the volume is deleted when the instance is
--   terminated. To add instance store volumes to an Amazon EBS-backed
--   instance, you must add them when you launch the instance. For more
--   information, see <a>Updating the Block Device Mapping when Launching
--   an Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
--   .</li>
--   <li><a>mDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>mInstanceId</a> - The ID of the instance.</li>
--   </ul>
modifyInstanceAttribute :: Text -> ModifyInstanceAttribute

-- | Contains the parameters for ModifyInstanceAttribute.
--   
--   <i>See:</i> <a>modifyInstanceAttribute</a> smart constructor.
data ModifyInstanceAttribute

-- | <ul>
--   <li><i>EC2-VPC</i> Changes the security groups of the instance. You
--   must specify at least one security group, even if it's just the
--   default security group for the VPC. You must specify the security
--   group ID, not the security group name.</li>
--   </ul>
mGroups :: Lens' ModifyInstanceAttribute [Text]

-- | The name of the attribute.
mAttribute :: Lens' ModifyInstanceAttribute (Maybe InstanceAttributeName)

-- | Set to <tt>true</tt> to enable enhanced networking with ENA for the
--   instance. This option is supported only for HVM instances. Specifying
--   this option with a PV instance can make it unreachable.
mEnaSupport :: Lens' ModifyInstanceAttribute (Maybe AttributeBooleanValue)

-- | Specifies whether source/destination checking is enabled. A value of
--   <tt>true</tt> means that checking is enabled, and <tt>false</tt> means
--   checking is disabled. This value must be <tt>false</tt> for a NAT
--   instance to perform NAT.
mSourceDestCheck :: Lens' ModifyInstanceAttribute (Maybe AttributeBooleanValue)

-- | If the value is <tt>true</tt> , you can't terminate the instance using
--   the Amazon EC2 console, CLI, or API; otherwise, you can. You cannot
--   use this paramater for Spot Instances.
mDisableAPITermination :: Lens' ModifyInstanceAttribute (Maybe AttributeBooleanValue)

-- | Changes the instance's kernel to the specified value. We recommend
--   that you use PV-GRUB instead of kernels and RAM disks. For more
--   information, see <a>PV-GRUB</a> .
mKernel :: Lens' ModifyInstanceAttribute (Maybe AttributeValue)

-- | Changes the instance's RAM disk to the specified value. We recommend
--   that you use PV-GRUB instead of kernels and RAM disks. For more
--   information, see <a>PV-GRUB</a> .
mRAMDisk :: Lens' ModifyInstanceAttribute (Maybe AttributeValue)

-- | A new value for the attribute. Use only with the <tt>kernel</tt> ,
--   <tt>ramdisk</tt> , <tt>userData</tt> , <tt>disableApiTermination</tt>
--   , or <tt>instanceInitiatedShutdownBehavior</tt> attribute.
mValue :: Lens' ModifyInstanceAttribute (Maybe Text)

-- | Changes the instance type to the specified value. For more
--   information, see <a>Instance Types</a> . If the instance type is not
--   valid, the error returned is <tt>InvalidInstanceAttributeValue</tt> .
mInstanceType :: Lens' ModifyInstanceAttribute (Maybe AttributeValue)

-- | Set to <tt>simple</tt> to enable enhanced networking with the Intel
--   82599 Virtual Function interface for the instance. There is no way to
--   disable enhanced networking with the Intel 82599 Virtual Function
--   interface at this time. This option is supported only for HVM
--   instances. Specifying this option with a PV instance can make it
--   unreachable.
mSRIOVNetSupport :: Lens' ModifyInstanceAttribute (Maybe AttributeValue)

-- | Specifies whether the instance is optimized for EBS I<i>O. This
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal EBS I</i>O
--   performance. This optimization isn't available with all instance
--   types. Additional usage charges apply when using an EBS Optimized
--   instance.
mEBSOptimized :: Lens' ModifyInstanceAttribute (Maybe AttributeBooleanValue)

-- | Changes the instance's user data to the specified value. If you are
--   using an AWS SDK or command line tool, Base64-encoding is performed
--   for you, and you can load the text from a file. Otherwise, you must
--   provide Base64-encoded text.
mUserData :: Lens' ModifyInstanceAttribute (Maybe BlobAttributeValue)

-- | Specifies whether an instance stops or terminates when you initiate
--   shutdown from the instance (using the operating system command for
--   system shutdown).
mInstanceInitiatedShutdownBehavior :: Lens' ModifyInstanceAttribute (Maybe AttributeValue)

-- | Modifies the <tt>DeleteOnTermination</tt> attribute for volumes that
--   are currently attached. The volume must be owned by the caller. If no
--   value is specified for <tt>DeleteOnTermination</tt> , the default is
--   <tt>true</tt> and the volume is deleted when the instance is
--   terminated. To add instance store volumes to an Amazon EBS-backed
--   instance, you must add them when you launch the instance. For more
--   information, see <a>Updating the Block Device Mapping when Launching
--   an Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
--   .
mBlockDeviceMappings :: Lens' ModifyInstanceAttribute [InstanceBlockDeviceMappingSpecification]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
mDryRun :: Lens' ModifyInstanceAttribute (Maybe Bool)

-- | The ID of the instance.
mInstanceId :: Lens' ModifyInstanceAttribute Text

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

-- | <i>See:</i> <a>modifyInstanceAttributeResponse</a> smart constructor.
data ModifyInstanceAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttributeResponse
instance Data.Data.Data Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttributeResponse
instance GHC.Show.Show Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttributeResponse
instance GHC.Read.Read Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttributeResponse
instance GHC.Classes.Eq Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttribute
instance Data.Data.Data Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttribute
instance GHC.Show.Show Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttribute
instance GHC.Read.Read Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttribute
instance GHC.Classes.Eq Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttribute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttribute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttribute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttribute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttribute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttributeResponse


-- | Set the instance affinity value for a specific stopped instance and
--   modify the instance tenancy setting.
--   
--   Instance affinity is disabled by default. When instance affinity is
--   <tt>host</tt> and it is not associated with a specific Dedicated Host,
--   the next time it is launched it will automatically be associated with
--   the host it lands on. This relationship will persist if the instance
--   is stopped/started, or rebooted.
--   
--   You can modify the host ID associated with a stopped instance. If a
--   stopped instance has a new host ID association, the instance will
--   target that host when restarted.
--   
--   You can modify the tenancy of a stopped instance with a tenancy of
--   <tt>host</tt> or <tt>dedicated</tt> .
--   
--   Affinity, hostID, and tenancy are not required parameters, but at
--   least one of them must be specified in the request. Affinity and
--   tenancy can be modified in the same request, but tenancy can only be
--   modified on instances that are stopped.
module Network.AWS.EC2.ModifyInstancePlacement

-- | Creates a value of <a>ModifyInstancePlacement</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mipAffinity</a> - The new affinity setting for the
--   instance.</li>
--   <li><a>mipHostId</a> - The ID of the Dedicated Host that the instance
--   will have affinity with.</li>
--   <li><a>mipTenancy</a> - The tenancy of the instance that you are
--   modifying.</li>
--   <li><a>mipInstanceId</a> - The ID of the instance that you are
--   modifying.</li>
--   </ul>
modifyInstancePlacement :: Text -> ModifyInstancePlacement

-- | Contains the parameters for ModifyInstancePlacement.
--   
--   <i>See:</i> <a>modifyInstancePlacement</a> smart constructor.
data ModifyInstancePlacement

-- | The new affinity setting for the instance.
mipAffinity :: Lens' ModifyInstancePlacement (Maybe Affinity)

-- | The ID of the Dedicated Host that the instance will have affinity
--   with.
mipHostId :: Lens' ModifyInstancePlacement (Maybe Text)

-- | The tenancy of the instance that you are modifying.
mipTenancy :: Lens' ModifyInstancePlacement (Maybe HostTenancy)

-- | The ID of the instance that you are modifying.
mipInstanceId :: Lens' ModifyInstancePlacement Text

-- | Creates a value of <a>ModifyInstancePlacementResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>miprsReturn</a> - Is <tt>true</tt> if the request succeeds, and
--   an error otherwise.</li>
--   <li><a>miprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyInstancePlacementResponse :: Int -> ModifyInstancePlacementResponse

-- | Contains the output of ModifyInstancePlacement.
--   
--   <i>See:</i> <a>modifyInstancePlacementResponse</a> smart constructor.
data ModifyInstancePlacementResponse

-- | Is <tt>true</tt> if the request succeeds, and an error otherwise.
miprsReturn :: Lens' ModifyInstancePlacementResponse (Maybe Bool)

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


-- | Modifies the specified network interface attribute. You can specify
--   only one attribute at a time.
module Network.AWS.EC2.ModifyNetworkInterfaceAttribute

-- | Creates a value of <a>ModifyNetworkInterfaceAttribute</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mniaGroups</a> - Changes the security groups for the network
--   interface. The new set of groups you specify replaces the current set.
--   You must specify at least one group, even if it's just the default
--   security group in the VPC. You must specify the ID of the security
--   group, not the name.</li>
--   <li><a>mniaSourceDestCheck</a> - Indicates whether
--   source<i>destination checking is enabled. A value of <tt>true</tt>
--   means checking is enabled, and <tt>false</tt> means checking is
--   disabled. This value must be <tt>false</tt> for a NAT instance to
--   perform NAT. For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AmazonVPC<i>latest</i>UserGuide<i>VPC_NAT_Instance.html
--   NAT Instances&gt; in the </i>Amazon Virtual Private Cloud User Guide/
--   .</li>
--   <li><a>mniaAttachment</a> - Information about the interface
--   attachment. If modifying the 'delete on termination' attribute, you
--   must specify the ID of the interface attachment.</li>
--   <li><a>mniaDescription</a> - A description for the network
--   interface.</li>
--   <li><a>mniaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>mniaNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   </ul>
modifyNetworkInterfaceAttribute :: Text -> ModifyNetworkInterfaceAttribute

-- | Contains the parameters for ModifyNetworkInterfaceAttribute.
--   
--   <i>See:</i> <a>modifyNetworkInterfaceAttribute</a> smart constructor.
data ModifyNetworkInterfaceAttribute

-- | Changes the security groups for the network interface. The new set of
--   groups you specify replaces the current set. You must specify at least
--   one group, even if it's just the default security group in the VPC.
--   You must specify the ID of the security group, not the name.
mniaGroups :: Lens' ModifyNetworkInterfaceAttribute [Text]

-- | Indicates whether source<i>destination checking is enabled. A value of
--   <tt>true</tt> means checking is enabled, and <tt>false</tt> means
--   checking is disabled. This value must be <tt>false</tt> for a NAT
--   instance to perform NAT. For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AmazonVPC<i>latest</i>UserGuide<i>VPC_NAT_Instance.html
--   NAT Instances&gt; in the </i>Amazon Virtual Private Cloud User Guide/
--   .
mniaSourceDestCheck :: Lens' ModifyNetworkInterfaceAttribute (Maybe AttributeBooleanValue)

-- | Information about the interface attachment. If modifying the 'delete
--   on termination' attribute, you must specify the ID of the interface
--   attachment.
mniaAttachment :: Lens' ModifyNetworkInterfaceAttribute (Maybe NetworkInterfaceAttachmentChanges)

-- | A description for the network interface.
mniaDescription :: Lens' ModifyNetworkInterfaceAttribute (Maybe AttributeValue)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
mniaDryRun :: Lens' ModifyNetworkInterfaceAttribute (Maybe Bool)

-- | The ID of the network interface.
mniaNetworkInterfaceId :: Lens' ModifyNetworkInterfaceAttribute Text

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

-- | <i>See:</i> <a>modifyNetworkInterfaceAttributeResponse</a> smart
--   constructor.
data ModifyNetworkInterfaceAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttributeResponse
instance Data.Data.Data Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttributeResponse
instance GHC.Show.Show Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttributeResponse
instance GHC.Read.Read Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttributeResponse
instance GHC.Classes.Eq Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttribute
instance Data.Data.Data Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttribute
instance GHC.Show.Show Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttribute
instance GHC.Read.Read Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttribute
instance GHC.Classes.Eq Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttribute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttribute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttribute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttribute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttribute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttributeResponse


-- | Modifies the Availability Zone, instance count, instance type, or
--   network platform (EC2-Classic or EC2-VPC) of your Standard Reserved
--   Instances. The Reserved Instances to be modified must be identical,
--   except for Availability Zone, network platform, and instance type.
--   
--   For more information, see <a>Modifying Reserved Instances</a> in the
--   Amazon Elastic Compute Cloud User Guide.
module Network.AWS.EC2.ModifyReservedInstances

-- | Creates a value of <a>ModifyReservedInstances</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mriClientToken</a> - A unique, case-sensitive token you provide
--   to ensure idempotency of your modification request. For more
--   information, see <a>Ensuring Idempotency</a> .</li>
--   <li><a>mriReservedInstancesIds</a> - The IDs of the Reserved Instances
--   to modify.</li>
--   <li><a>mriTargetConfigurations</a> - The configuration settings for
--   the Reserved Instances to modify.</li>
--   </ul>
modifyReservedInstances :: ModifyReservedInstances

-- | Contains the parameters for ModifyReservedInstances.
--   
--   <i>See:</i> <a>modifyReservedInstances</a> smart constructor.
data ModifyReservedInstances

-- | A unique, case-sensitive token you provide to ensure idempotency of
--   your modification request. For more information, see <a>Ensuring
--   Idempotency</a> .
mriClientToken :: Lens' ModifyReservedInstances (Maybe Text)

-- | The IDs of the Reserved Instances to modify.
mriReservedInstancesIds :: Lens' ModifyReservedInstances [Text]

-- | The configuration settings for the Reserved Instances to modify.
mriTargetConfigurations :: Lens' ModifyReservedInstances [ReservedInstancesConfiguration]

-- | Creates a value of <a>ModifyReservedInstancesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mrirsReservedInstancesModificationId</a> - The ID for the
--   modification.</li>
--   <li><a>mrirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyReservedInstancesResponse :: Int -> ModifyReservedInstancesResponse

-- | Contains the output of ModifyReservedInstances.
--   
--   <i>See:</i> <a>modifyReservedInstancesResponse</a> smart constructor.
data ModifyReservedInstancesResponse

-- | The ID for the modification.
mrirsReservedInstancesModificationId :: Lens' ModifyReservedInstancesResponse (Maybe Text)

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


-- | Adds or removes permission settings for the specified snapshot. You
--   may add or remove specified AWS account IDs from a snapshot's list of
--   create volume permissions, but you cannot do both in a single API
--   call. If you need to both add and remove account IDs for a snapshot,
--   you must use multiple API calls.
--   
--   For more information on modifying snapshot permissions, see <a>Sharing
--   Snapshots</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.ModifySnapshotAttribute

-- | Creates a value of <a>ModifySnapshotAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>msaAttribute</a> - The snapshot attribute to modify.</li>
--   <li><a>msaCreateVolumePermission</a> - A JSON representation of the
--   snapshot attribute modification.</li>
--   <li><a>msaUserIds</a> - The account ID to modify for the
--   snapshot.</li>
--   <li><a>msaGroupNames</a> - The group to modify for the snapshot.</li>
--   <li><a>msaOperationType</a> - The type of operation to perform to the
--   attribute.</li>
--   <li><a>msaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>msaSnapshotId</a> - The ID of the snapshot.</li>
--   </ul>
modifySnapshotAttribute :: Text -> ModifySnapshotAttribute

-- | Contains the parameters for ModifySnapshotAttribute.
--   
--   <i>See:</i> <a>modifySnapshotAttribute</a> smart constructor.
data ModifySnapshotAttribute

-- | The snapshot attribute to modify.
msaAttribute :: Lens' ModifySnapshotAttribute (Maybe SnapshotAttributeName)

-- | A JSON representation of the snapshot attribute modification.
msaCreateVolumePermission :: Lens' ModifySnapshotAttribute (Maybe CreateVolumePermissionModifications)

-- | The account ID to modify for the snapshot.
msaUserIds :: Lens' ModifySnapshotAttribute [Text]

-- | The group to modify for the snapshot.
msaGroupNames :: Lens' ModifySnapshotAttribute [Text]

-- | The type of operation to perform to the attribute.
msaOperationType :: Lens' ModifySnapshotAttribute (Maybe OperationType)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
msaDryRun :: Lens' ModifySnapshotAttribute (Maybe Bool)

-- | The ID of the snapshot.
msaSnapshotId :: Lens' ModifySnapshotAttribute Text

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

-- | <i>See:</i> <a>modifySnapshotAttributeResponse</a> smart constructor.
data ModifySnapshotAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttributeResponse
instance Data.Data.Data Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttributeResponse
instance GHC.Show.Show Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttributeResponse
instance GHC.Read.Read Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttributeResponse
instance GHC.Classes.Eq Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttribute
instance Data.Data.Data Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttribute
instance GHC.Show.Show Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttribute
instance GHC.Read.Read Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttribute
instance GHC.Classes.Eq Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttribute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttribute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttribute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttribute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttribute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttributeResponse


-- | Modifies the specified Spot fleet request.
--   
--   While the Spot fleet request is being modified, it is in the
--   <tt>modifying</tt> state.
--   
--   To scale up your Spot fleet, increase its target capacity. The Spot
--   fleet launches the additional Spot instances according to the
--   allocation strategy for the Spot fleet request. If the allocation
--   strategy is <tt>lowestPrice</tt> , the Spot fleet launches instances
--   using the Spot pool with the lowest price. If the allocation strategy
--   is <tt>diversified</tt> , the Spot fleet distributes the instances
--   across the Spot pools.
--   
--   To scale down your Spot fleet, decrease its target capacity. First,
--   the Spot fleet cancels any open bids that exceed the new target
--   capacity. You can request that the Spot fleet terminate Spot instances
--   until the size of the fleet no longer exceeds the new target capacity.
--   If the allocation strategy is <tt>lowestPrice</tt> , the Spot fleet
--   terminates the instances with the highest price per unit. If the
--   allocation strategy is <tt>diversified</tt> , the Spot fleet
--   terminates instances across the Spot pools. Alternatively, you can
--   request that the Spot fleet keep the fleet at its current size, but
--   not replace any Spot instances that are interrupted or that you
--   terminate manually.
module Network.AWS.EC2.ModifySpotFleetRequest

-- | Creates a value of <a>ModifySpotFleetRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>msfrTargetCapacity</a> - The size of the fleet.</li>
--   <li><a>msfrExcessCapacityTerminationPolicy</a> - Indicates whether
--   running Spot instances should be terminated if the target capacity of
--   the Spot fleet request is decreased below the current size of the Spot
--   fleet.</li>
--   <li><a>msfrSpotFleetRequestId</a> - The ID of the Spot fleet
--   request.</li>
--   </ul>
modifySpotFleetRequest :: Text -> ModifySpotFleetRequest

-- | Contains the parameters for ModifySpotFleetRequest.
--   
--   <i>See:</i> <a>modifySpotFleetRequest</a> smart constructor.
data ModifySpotFleetRequest

-- | The size of the fleet.
msfrTargetCapacity :: Lens' ModifySpotFleetRequest (Maybe Int)

-- | Indicates whether running Spot instances should be terminated if the
--   target capacity of the Spot fleet request is decreased below the
--   current size of the Spot fleet.
msfrExcessCapacityTerminationPolicy :: Lens' ModifySpotFleetRequest (Maybe ExcessCapacityTerminationPolicy)

-- | The ID of the Spot fleet request.
msfrSpotFleetRequestId :: Lens' ModifySpotFleetRequest Text

-- | Creates a value of <a>ModifySpotFleetRequestResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>msfrrsReturn</a> - Is <tt>true</tt> if the request succeeds,
--   and an error otherwise.</li>
--   <li><a>msfrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifySpotFleetRequestResponse :: Int -> ModifySpotFleetRequestResponse

-- | Contains the output of ModifySpotFleetRequest.
--   
--   <i>See:</i> <a>modifySpotFleetRequestResponse</a> smart constructor.
data ModifySpotFleetRequestResponse

-- | Is <tt>true</tt> if the request succeeds, and an error otherwise.
msfrrsReturn :: Lens' ModifySpotFleetRequestResponse (Maybe Bool)

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


-- | Modifies a subnet attribute. You can only modify one attribute at a
--   time.
module Network.AWS.EC2.ModifySubnetAttribute

-- | Creates a value of <a>ModifySubnetAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>msaAssignIPv6AddressOnCreation</a> - Specify <tt>true</tt> to
--   indicate that network interfaces created in the specified subnet
--   should be assigned an IPv6 address. This includes a network interface
--   that's created when launching an instance into the subnet (the
--   instance therefore receives an IPv6 address).</li>
--   <li><a>msaMapPublicIPOnLaunch</a> - Specify <tt>true</tt> to indicate
--   that network interfaces created in the specified subnet should be
--   assigned a public IPv4 address. This includes a network interface
--   that's created when launching an instance into the subnet (the
--   instance therefore receives a public IPv4 address).</li>
--   <li><a>msaSubnetId</a> - The ID of the subnet.</li>
--   </ul>
modifySubnetAttribute :: Text -> ModifySubnetAttribute

-- | Contains the parameters for ModifySubnetAttribute.
--   
--   <i>See:</i> <a>modifySubnetAttribute</a> smart constructor.
data ModifySubnetAttribute

-- | Specify <tt>true</tt> to indicate that network interfaces created in
--   the specified subnet should be assigned an IPv6 address. This includes
--   a network interface that's created when launching an instance into the
--   subnet (the instance therefore receives an IPv6 address).
msaAssignIPv6AddressOnCreation :: Lens' ModifySubnetAttribute (Maybe AttributeBooleanValue)

-- | Specify <tt>true</tt> to indicate that network interfaces created in
--   the specified subnet should be assigned a public IPv4 address. This
--   includes a network interface that's created when launching an instance
--   into the subnet (the instance therefore receives a public IPv4
--   address).
msaMapPublicIPOnLaunch :: Lens' ModifySubnetAttribute (Maybe AttributeBooleanValue)

-- | The ID of the subnet.
msaSubnetId :: Lens' ModifySubnetAttribute Text

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

-- | <i>See:</i> <a>modifySubnetAttributeResponse</a> smart constructor.
data ModifySubnetAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttributeResponse
instance Data.Data.Data Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttributeResponse
instance GHC.Show.Show Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttributeResponse
instance GHC.Read.Read Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttributeResponse
instance GHC.Classes.Eq Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttribute
instance Data.Data.Data Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttribute
instance GHC.Show.Show Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttribute
instance GHC.Read.Read Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttribute
instance GHC.Classes.Eq Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttribute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttribute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttribute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttribute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttribute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttributeResponse


-- | Modifies the specified attribute of the specified VPC.
module Network.AWS.EC2.ModifyVPCAttribute

-- | Creates a value of <a>ModifyVPCAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvaEnableDNSHostnames</a> - Indicates whether the instances
--   launched in the VPC get DNS hostnames. If enabled, instances in the
--   VPC get DNS hostnames; otherwise, they do not. You cannot modify the
--   DNS resolution and DNS hostnames attributes in the same request. Use
--   separate requests for each attribute. You can only enable DNS
--   hostnames if you've enabled DNS support.</li>
--   <li><a>mvaEnableDNSSupport</a> - Indicates whether the DNS resolution
--   is supported for the VPC. If enabled, queries to the Amazon provided
--   DNS server at the 169.254.169.253 IP address, or the reserved IP
--   address at the base of the VPC network range "plus two" will succeed.
--   If disabled, the Amazon provided DNS service in the VPC that resolves
--   public DNS hostnames to IP addresses is not enabled. You cannot modify
--   the DNS resolution and DNS hostnames attributes in the same request.
--   Use separate requests for each attribute.</li>
--   <li><a>mvaVPCId</a> - The ID of the VPC.</li>
--   </ul>
modifyVPCAttribute :: Text -> ModifyVPCAttribute

-- | Contains the parameters for ModifyVpcAttribute.
--   
--   <i>See:</i> <a>modifyVPCAttribute</a> smart constructor.
data ModifyVPCAttribute

-- | Indicates whether the instances launched in the VPC get DNS hostnames.
--   If enabled, instances in the VPC get DNS hostnames; otherwise, they do
--   not. You cannot modify the DNS resolution and DNS hostnames attributes
--   in the same request. Use separate requests for each attribute. You can
--   only enable DNS hostnames if you've enabled DNS support.
mvaEnableDNSHostnames :: Lens' ModifyVPCAttribute (Maybe AttributeBooleanValue)

-- | Indicates whether the DNS resolution is supported for the VPC. If
--   enabled, queries to the Amazon provided DNS server at the
--   169.254.169.253 IP address, or the reserved IP address at the base of
--   the VPC network range "plus two" will succeed. If disabled, the Amazon
--   provided DNS service in the VPC that resolves public DNS hostnames to
--   IP addresses is not enabled. You cannot modify the DNS resolution and
--   DNS hostnames attributes in the same request. Use separate requests
--   for each attribute.
mvaEnableDNSSupport :: Lens' ModifyVPCAttribute (Maybe AttributeBooleanValue)

-- | The ID of the VPC.
mvaVPCId :: Lens' ModifyVPCAttribute Text

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

-- | <i>See:</i> <a>modifyVPCAttributeResponse</a> smart constructor.
data ModifyVPCAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttributeResponse
instance Data.Data.Data Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttributeResponse
instance GHC.Show.Show Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttributeResponse
instance GHC.Read.Read Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttributeResponse
instance GHC.Classes.Eq Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttribute
instance Data.Data.Data Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttribute
instance GHC.Show.Show Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttribute
instance GHC.Read.Read Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttribute
instance GHC.Classes.Eq Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttribute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttribute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttribute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttribute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttribute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttributeResponse


-- | Modifies attributes of a specified VPC endpoint. You can modify the
--   policy associated with the endpoint, and you can add and remove route
--   tables associated with the endpoint.
module Network.AWS.EC2.ModifyVPCEndpoint

-- | Creates a value of <a>ModifyVPCEndpoint</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvePolicyDocument</a> - A policy document to attach to the
--   endpoint. The policy must be in valid JSON format.</li>
--   <li><a>mveRemoveRouteTableIds</a> - One or more route table IDs to
--   disassociate from the endpoint.</li>
--   <li><a>mveResetPolicy</a> - Specify <tt>true</tt> to reset the policy
--   document to the default policy. The default policy allows access to
--   the service.</li>
--   <li><a>mveAddRouteTableIds</a> - One or more route tables IDs to
--   associate with the endpoint.</li>
--   <li><a>mveDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>mveVPCEndpointId</a> - The ID of the endpoint.</li>
--   </ul>
modifyVPCEndpoint :: Text -> ModifyVPCEndpoint

-- | Contains the parameters for ModifyVpcEndpoint.
--   
--   <i>See:</i> <a>modifyVPCEndpoint</a> smart constructor.
data ModifyVPCEndpoint

-- | A policy document to attach to the endpoint. The policy must be in
--   valid JSON format.
mvePolicyDocument :: Lens' ModifyVPCEndpoint (Maybe Text)

-- | One or more route table IDs to disassociate from the endpoint.
mveRemoveRouteTableIds :: Lens' ModifyVPCEndpoint [Text]

-- | Specify <tt>true</tt> to reset the policy document to the default
--   policy. The default policy allows access to the service.
mveResetPolicy :: Lens' ModifyVPCEndpoint (Maybe Bool)

-- | One or more route tables IDs to associate with the endpoint.
mveAddRouteTableIds :: Lens' ModifyVPCEndpoint [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
mveDryRun :: Lens' ModifyVPCEndpoint (Maybe Bool)

-- | The ID of the endpoint.
mveVPCEndpointId :: Lens' ModifyVPCEndpoint Text

-- | Creates a value of <a>ModifyVPCEndpointResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mversReturn</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>mversResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyVPCEndpointResponse :: Int -> ModifyVPCEndpointResponse

-- | Contains the output of ModifyVpcEndpoint.
--   
--   <i>See:</i> <a>modifyVPCEndpointResponse</a> smart constructor.
data ModifyVPCEndpointResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
mversReturn :: Lens' ModifyVPCEndpointResponse (Maybe Bool)

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


-- | Modifies the VPC peering connection options on one side of a VPC
--   peering connection. You can do the following:
--   
--   <ul>
--   <li>Enable/disable communication over the peering connection between
--   an EC2-Classic instance that's linked to your VPC (using ClassicLink)
--   and instances in the peer VPC.</li>
--   <li>Enable/disable communication over the peering connection between
--   instances in your VPC and an EC2-Classic instance that's linked to the
--   peer VPC.</li>
--   <li>Enable/disable a local VPC to resolve public DNS hostnames to
--   private IP addresses when queried from instances in the peer VPC.</li>
--   </ul>
--   
--   If the peered VPCs are in different accounts, each owner must initiate
--   a separate request to modify the peering connection options, depending
--   on whether their VPC was the requester or accepter for the VPC peering
--   connection. If the peered VPCs are in the same account, you can modify
--   the requester and accepter options in the same request. To confirm
--   which VPC is the accepter and requester for a VPC peering connection,
--   use the <tt>DescribeVpcPeeringConnections</tt> command.
module Network.AWS.EC2.ModifyVPCPeeringConnectionOptions

-- | Creates a value of <a>ModifyVPCPeeringConnectionOptions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvpcoRequesterPeeringConnectionOptions</a> - The VPC peering
--   connection options for the requester VPC.</li>
--   <li><a>mvpcoAccepterPeeringConnectionOptions</a> - The VPC peering
--   connection options for the accepter VPC.</li>
--   <li><a>mvpcoDryRun</a> - Checks whether you have the required
--   permissions for the operation, without actually making the request,
--   and provides an error response. If you have the required permissions,
--   the error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>mvpcoVPCPeeringConnectionId</a> - The ID of the VPC peering
--   connection.</li>
--   </ul>
modifyVPCPeeringConnectionOptions :: Text -> ModifyVPCPeeringConnectionOptions

-- | <i>See:</i> <a>modifyVPCPeeringConnectionOptions</a> smart
--   constructor.
data ModifyVPCPeeringConnectionOptions

-- | The VPC peering connection options for the requester VPC.
mvpcoRequesterPeeringConnectionOptions :: Lens' ModifyVPCPeeringConnectionOptions (Maybe PeeringConnectionOptionsRequest)

-- | The VPC peering connection options for the accepter VPC.
mvpcoAccepterPeeringConnectionOptions :: Lens' ModifyVPCPeeringConnectionOptions (Maybe PeeringConnectionOptionsRequest)

-- | Checks whether you have the required permissions for the operation,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
mvpcoDryRun :: Lens' ModifyVPCPeeringConnectionOptions (Maybe Bool)

-- | The ID of the VPC peering connection.
mvpcoVPCPeeringConnectionId :: Lens' ModifyVPCPeeringConnectionOptions Text

-- | Creates a value of <a>ModifyVPCPeeringConnectionOptionsResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvpcorsRequesterPeeringConnectionOptions</a> - Information
--   about the VPC peering connection options for the requester VPC.</li>
--   <li><a>mvpcorsAccepterPeeringConnectionOptions</a> - Information about
--   the VPC peering connection options for the accepter VPC.</li>
--   <li><a>mvpcorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyVPCPeeringConnectionOptionsResponse :: Int -> ModifyVPCPeeringConnectionOptionsResponse

-- | <i>See:</i> <a>modifyVPCPeeringConnectionOptionsResponse</a> smart
--   constructor.
data ModifyVPCPeeringConnectionOptionsResponse

-- | Information about the VPC peering connection options for the requester
--   VPC.
mvpcorsRequesterPeeringConnectionOptions :: Lens' ModifyVPCPeeringConnectionOptionsResponse (Maybe PeeringConnectionOptions)

-- | Information about the VPC peering connection options for the accepter
--   VPC.
mvpcorsAccepterPeeringConnectionOptions :: Lens' ModifyVPCPeeringConnectionOptionsResponse (Maybe PeeringConnectionOptions)

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


-- | Modifies a volume attribute.
--   
--   By default, all I<i>O operations for the volume are suspended when the
--   data on the volume is determined to be potentially inconsistent, to
--   prevent undetectable, latent data corruption. The I</i>O access to the
--   volume can be resumed by first enabling I/O access and then checking
--   the data consistency on your volume.
--   
--   You can change the default behavior to resume I/O operations. We
--   recommend that you change this only for boot volumes or for volumes
--   that are stateless or disposable.
module Network.AWS.EC2.ModifyVolumeAttribute

-- | Creates a value of <a>ModifyVolumeAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvaAutoEnableIO</a> - Indicates whether the volume should be
--   auto-enabled for I/O operations.</li>
--   <li><a>mvaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>mvaVolumeId</a> - The ID of the volume.</li>
--   </ul>
modifyVolumeAttribute :: Text -> ModifyVolumeAttribute

-- | Contains the parameters for ModifyVolumeAttribute.
--   
--   <i>See:</i> <a>modifyVolumeAttribute</a> smart constructor.
data ModifyVolumeAttribute

-- | Indicates whether the volume should be auto-enabled for I/O
--   operations.
mvaAutoEnableIO :: Lens' ModifyVolumeAttribute (Maybe AttributeBooleanValue)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
mvaDryRun :: Lens' ModifyVolumeAttribute (Maybe Bool)

-- | The ID of the volume.
mvaVolumeId :: Lens' ModifyVolumeAttribute Text

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

-- | <i>See:</i> <a>modifyVolumeAttributeResponse</a> smart constructor.
data ModifyVolumeAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttributeResponse
instance Data.Data.Data Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttributeResponse
instance GHC.Show.Show Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttributeResponse
instance GHC.Read.Read Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttributeResponse
instance GHC.Classes.Eq Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttribute
instance Data.Data.Data Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttribute
instance GHC.Show.Show Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttribute
instance GHC.Read.Read Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttribute
instance GHC.Classes.Eq Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttribute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttribute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttribute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttribute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttribute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttributeResponse


-- | Enables detailed monitoring for a running instance. Otherwise, basic
--   monitoring is enabled. For more information, see <a>Monitoring Your
--   Instances and Volumes</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .
--   
--   To disable detailed monitoring, see .
module Network.AWS.EC2.MonitorInstances

-- | Creates a value of <a>MonitorInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>miDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>miInstanceIds</a> - One or more instance IDs.</li>
--   </ul>
monitorInstances :: MonitorInstances

-- | Contains the parameters for MonitorInstances.
--   
--   <i>See:</i> <a>monitorInstances</a> smart constructor.
data MonitorInstances

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
miDryRun :: Lens' MonitorInstances (Maybe Bool)

-- | One or more instance IDs.
miInstanceIds :: Lens' MonitorInstances [Text]

-- | Creates a value of <a>MonitorInstancesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mirsInstanceMonitorings</a> - The monitoring information.</li>
--   <li><a>mirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
monitorInstancesResponse :: Int -> MonitorInstancesResponse

-- | Contains the output of MonitorInstances.
--   
--   <i>See:</i> <a>monitorInstancesResponse</a> smart constructor.
data MonitorInstancesResponse

-- | The monitoring information.
mirsInstanceMonitorings :: Lens' MonitorInstancesResponse [InstanceMonitoring]

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


-- | Moves an Elastic IP address from the EC2-Classic platform to the
--   EC2-VPC platform. The Elastic IP address must be allocated to your
--   account for more than 24 hours, and it must not be associated with an
--   instance. After the Elastic IP address is moved, it is no longer
--   available for use in the EC2-Classic platform, unless you move it back
--   using the <tt>RestoreAddressToClassic</tt> request. You cannot move an
--   Elastic IP address that was originally allocated for use in the
--   EC2-VPC platform to the EC2-Classic platform.
module Network.AWS.EC2.MoveAddressToVPC

-- | Creates a value of <a>MoveAddressToVPC</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>matvDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>matvPublicIP</a> - The Elastic IP address.</li>
--   </ul>
moveAddressToVPC :: Text -> MoveAddressToVPC

-- | Contains the parameters for MoveAddressToVpc.
--   
--   <i>See:</i> <a>moveAddressToVPC</a> smart constructor.
data MoveAddressToVPC

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
matvDryRun :: Lens' MoveAddressToVPC (Maybe Bool)

-- | The Elastic IP address.
matvPublicIP :: Lens' MoveAddressToVPC Text

-- | Creates a value of <a>MoveAddressToVPCResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>matvrsStatus</a> - The status of the move of the IP
--   address.</li>
--   <li><a>matvrsAllocationId</a> - The allocation ID for the Elastic IP
--   address.</li>
--   <li><a>matvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
moveAddressToVPCResponse :: Int -> MoveAddressToVPCResponse

-- | Contains the output of MoveAddressToVpc.
--   
--   <i>See:</i> <a>moveAddressToVPCResponse</a> smart constructor.
data MoveAddressToVPCResponse

-- | The status of the move of the IP address.
matvrsStatus :: Lens' MoveAddressToVPCResponse (Maybe AddressStatus)

-- | The allocation ID for the Elastic IP address.
matvrsAllocationId :: Lens' MoveAddressToVPCResponse (Maybe Text)

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


-- | Purchase a reservation with configurations that match those of your
--   Dedicated Host. You must have active Dedicated Hosts in your account
--   before you purchase a reservation. This action results in the
--   specified reservation being purchased and charged to your account.
module Network.AWS.EC2.PurchaseHostReservation

-- | Creates a value of <a>PurchaseHostReservation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>phrCurrencyCode</a> - The currency in which the
--   <tt>totalUpfrontPrice</tt> , <tt>LimitPrice</tt> , and
--   <tt>totalHourlyPrice</tt> amounts are specified. At this time, the
--   only supported currency is <tt>USD</tt> .</li>
--   <li><a>phrClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure idempotency of the request. For more information,
--   see <a>How to Ensure Idempotency</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i> .</li>
--   <li><a>phrLimitPrice</a> - The specified limit is checked against the
--   total upfront cost of the reservation (calculated as the offering's
--   upfront cost multiplied by the host count). If the total upfront cost
--   is greater than the specified price limit, the request will fail. This
--   is used to ensure that the purchase does not exceed the expected
--   upfront cost of the purchase. At this time, the only supported
--   currency is <tt>USD</tt> . For example, to indicate a limit price of
--   USD 100, specify 100.00.</li>
--   <li><a>phrOfferingId</a> - The ID of the offering.</li>
--   <li><a>phrHostIdSet</a> - The ID<i>s of the Dedicated Host</i>s that
--   the reservation will be associated with.</li>
--   </ul>
purchaseHostReservation :: Text -> PurchaseHostReservation

-- | <i>See:</i> <a>purchaseHostReservation</a> smart constructor.
data PurchaseHostReservation

-- | The currency in which the <tt>totalUpfrontPrice</tt> ,
--   <tt>LimitPrice</tt> , and <tt>totalHourlyPrice</tt> amounts are
--   specified. At this time, the only supported currency is <tt>USD</tt> .
phrCurrencyCode :: Lens' PurchaseHostReservation (Maybe CurrencyCodeValues)

-- | Unique, case-sensitive identifier you provide to ensure idempotency of
--   the request. For more information, see <a>How to Ensure
--   Idempotency</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
--   .
phrClientToken :: Lens' PurchaseHostReservation (Maybe Text)

-- | The specified limit is checked against the total upfront cost of the
--   reservation (calculated as the offering's upfront cost multiplied by
--   the host count). If the total upfront cost is greater than the
--   specified price limit, the request will fail. This is used to ensure
--   that the purchase does not exceed the expected upfront cost of the
--   purchase. At this time, the only supported currency is <tt>USD</tt> .
--   For example, to indicate a limit price of USD 100, specify 100.00.
phrLimitPrice :: Lens' PurchaseHostReservation (Maybe Text)

-- | The ID of the offering.
phrOfferingId :: Lens' PurchaseHostReservation Text

-- | The ID<i>s of the Dedicated Host</i>s that the reservation will be
--   associated with.
phrHostIdSet :: Lens' PurchaseHostReservation [Text]

-- | Creates a value of <a>PurchaseHostReservationResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>phrrsCurrencyCode</a> - The currency in which the
--   <tt>totalUpfrontPrice</tt> and <tt>totalHourlyPrice</tt> amounts are
--   specified. At this time, the only supported currency is <tt>USD</tt>
--   .</li>
--   <li><a>phrrsClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure idempotency of the request. For more information,
--   see <a>How to Ensure Idempotency</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i></li>
--   <li><a>phrrsTotalHourlyPrice</a> - The total hourly price of the
--   reservation calculated per hour.</li>
--   <li><a>phrrsTotalUpfrontPrice</a> - The total amount that will be
--   charged to your account when you purchase the reservation.</li>
--   <li><a>phrrsPurchase</a> - Describes the details of the purchase.</li>
--   <li><a>phrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
purchaseHostReservationResponse :: Int -> PurchaseHostReservationResponse

-- | <i>See:</i> <a>purchaseHostReservationResponse</a> smart constructor.
data PurchaseHostReservationResponse

-- | The currency in which the <tt>totalUpfrontPrice</tt> and
--   <tt>totalHourlyPrice</tt> amounts are specified. At this time, the
--   only supported currency is <tt>USD</tt> .
phrrsCurrencyCode :: Lens' PurchaseHostReservationResponse (Maybe CurrencyCodeValues)

-- | Unique, case-sensitive identifier you provide to ensure idempotency of
--   the request. For more information, see <a>How to Ensure
--   Idempotency</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
phrrsClientToken :: Lens' PurchaseHostReservationResponse (Maybe Text)

-- | The total hourly price of the reservation calculated per hour.
phrrsTotalHourlyPrice :: Lens' PurchaseHostReservationResponse (Maybe Text)

-- | The total amount that will be charged to your account when you
--   purchase the reservation.
phrrsTotalUpfrontPrice :: Lens' PurchaseHostReservationResponse (Maybe Text)

-- | Describes the details of the purchase.
phrrsPurchase :: Lens' PurchaseHostReservationResponse [Purchase]

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


-- | Purchases a Reserved Instance for use with your account. With Reserved
--   Instances, you pay a lower hourly rate compared to On-Demand instance
--   pricing.
--   
--   Use <tt>DescribeReservedInstancesOfferings</tt> to get a list of
--   Reserved Instance offerings that match your specifications. After
--   you've purchased a Reserved Instance, you can check for your new
--   Reserved Instance with <tt>DescribeReservedInstances</tt> .
--   
--   For more information, see <a>Reserved Instances</a> and <a>Reserved
--   Instance Marketplace</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .
module Network.AWS.EC2.PurchaseReservedInstancesOffering

-- | Creates a value of <a>PurchaseReservedInstancesOffering</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prioLimitPrice</a> - Specified for Reserved Instance
--   Marketplace offerings to limit the total order and ensure that the
--   Reserved Instances are not purchased at unexpected prices.</li>
--   <li><a>prioDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>prioReservedInstancesOfferingId</a> - The ID of the Reserved
--   Instance offering to purchase.</li>
--   <li><a>prioInstanceCount</a> - The number of Reserved Instances to
--   purchase.</li>
--   </ul>
purchaseReservedInstancesOffering :: Text -> Int -> PurchaseReservedInstancesOffering

-- | Contains the parameters for PurchaseReservedInstancesOffering.
--   
--   <i>See:</i> <a>purchaseReservedInstancesOffering</a> smart
--   constructor.
data PurchaseReservedInstancesOffering

-- | Specified for Reserved Instance Marketplace offerings to limit the
--   total order and ensure that the Reserved Instances are not purchased
--   at unexpected prices.
prioLimitPrice :: Lens' PurchaseReservedInstancesOffering (Maybe ReservedInstanceLimitPrice)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
prioDryRun :: Lens' PurchaseReservedInstancesOffering (Maybe Bool)

-- | The ID of the Reserved Instance offering to purchase.
prioReservedInstancesOfferingId :: Lens' PurchaseReservedInstancesOffering Text

-- | The number of Reserved Instances to purchase.
prioInstanceCount :: Lens' PurchaseReservedInstancesOffering Int

-- | Creates a value of <a>PurchaseReservedInstancesOfferingResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>priorsReservedInstancesId</a> - The IDs of the purchased
--   Reserved Instances.</li>
--   <li><a>priorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
purchaseReservedInstancesOfferingResponse :: Int -> PurchaseReservedInstancesOfferingResponse

-- | Contains the output of PurchaseReservedInstancesOffering.
--   
--   <i>See:</i> <a>purchaseReservedInstancesOfferingResponse</a> smart
--   constructor.
data PurchaseReservedInstancesOfferingResponse

-- | The IDs of the purchased Reserved Instances.
priorsReservedInstancesId :: Lens' PurchaseReservedInstancesOfferingResponse (Maybe Text)

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


-- | Purchases one or more Scheduled Instances with the specified schedule.
--   
--   Scheduled Instances enable you to purchase Amazon EC2 compute capacity
--   by the hour for a one-year term. Before you can purchase a Scheduled
--   Instance, you must call <tt>DescribeScheduledInstanceAvailability</tt>
--   to check for available schedules and obtain a purchase token. After
--   you purchase a Scheduled Instance, you must call
--   <tt>RunScheduledInstances</tt> during each scheduled time period.
--   
--   After you purchase a Scheduled Instance, you can't cancel, modify, or
--   resell your purchase.
module Network.AWS.EC2.PurchaseScheduledInstances

-- | Creates a value of <a>PurchaseScheduledInstances</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psiClientToken</a> - Unique, case-sensitive identifier that
--   ensures the idempotency of the request. For more information, see
--   <a>Ensuring Idempotency</a> .</li>
--   <li><a>psiDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>psiPurchaseRequests</a> - One or more purchase requests.</li>
--   </ul>
purchaseScheduledInstances :: NonEmpty PurchaseRequest -> PurchaseScheduledInstances

-- | Contains the parameters for PurchaseScheduledInstances.
--   
--   <i>See:</i> <a>purchaseScheduledInstances</a> smart constructor.
data PurchaseScheduledInstances

-- | Unique, case-sensitive identifier that ensures the idempotency of the
--   request. For more information, see <a>Ensuring Idempotency</a> .
psiClientToken :: Lens' PurchaseScheduledInstances (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
psiDryRun :: Lens' PurchaseScheduledInstances (Maybe Bool)

-- | One or more purchase requests.
psiPurchaseRequests :: Lens' PurchaseScheduledInstances (NonEmpty PurchaseRequest)

-- | Creates a value of <a>PurchaseScheduledInstancesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psirsScheduledInstanceSet</a> - Information about the Scheduled
--   Instances.</li>
--   <li><a>psirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
purchaseScheduledInstancesResponse :: Int -> PurchaseScheduledInstancesResponse

-- | Contains the output of PurchaseScheduledInstances.
--   
--   <i>See:</i> <a>purchaseScheduledInstancesResponse</a> smart
--   constructor.
data PurchaseScheduledInstancesResponse

-- | Information about the Scheduled Instances.
psirsScheduledInstanceSet :: Lens' PurchaseScheduledInstancesResponse [ScheduledInstance]

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


-- | Requests a reboot of one or more instances. This operation is
--   asynchronous; it only queues a request to reboot the specified
--   instances. The operation succeeds if the instances are valid and
--   belong to you. Requests to reboot terminated instances are ignored.
--   
--   If an instance does not cleanly shut down within four minutes, Amazon
--   EC2 performs a hard reboot.
--   
--   For more information about troubleshooting, see <a>Getting Console
--   Output and Rebooting Instances</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i> .
module Network.AWS.EC2.RebootInstances

-- | Creates a value of <a>RebootInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rebDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>rebInstanceIds</a> - One or more instance IDs.</li>
--   </ul>
rebootInstances :: RebootInstances

-- | Contains the parameters for RebootInstances.
--   
--   <i>See:</i> <a>rebootInstances</a> smart constructor.
data RebootInstances

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rebDryRun :: Lens' RebootInstances (Maybe Bool)

-- | One or more instance IDs.
rebInstanceIds :: Lens' RebootInstances [Text]

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

-- | <i>See:</i> <a>rebootInstancesResponse</a> smart constructor.
data RebootInstancesResponse
instance GHC.Generics.Generic Network.AWS.EC2.RebootInstances.RebootInstancesResponse
instance Data.Data.Data Network.AWS.EC2.RebootInstances.RebootInstancesResponse
instance GHC.Show.Show Network.AWS.EC2.RebootInstances.RebootInstancesResponse
instance GHC.Read.Read Network.AWS.EC2.RebootInstances.RebootInstancesResponse
instance GHC.Classes.Eq Network.AWS.EC2.RebootInstances.RebootInstancesResponse
instance GHC.Generics.Generic Network.AWS.EC2.RebootInstances.RebootInstances
instance Data.Data.Data Network.AWS.EC2.RebootInstances.RebootInstances
instance GHC.Show.Show Network.AWS.EC2.RebootInstances.RebootInstances
instance GHC.Read.Read Network.AWS.EC2.RebootInstances.RebootInstances
instance GHC.Classes.Eq Network.AWS.EC2.RebootInstances.RebootInstances
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.RebootInstances.RebootInstances
instance Data.Hashable.Class.Hashable Network.AWS.EC2.RebootInstances.RebootInstances
instance Control.DeepSeq.NFData Network.AWS.EC2.RebootInstances.RebootInstances
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.RebootInstances.RebootInstances
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.RebootInstances.RebootInstances
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.RebootInstances.RebootInstances
instance Control.DeepSeq.NFData Network.AWS.EC2.RebootInstances.RebootInstancesResponse


-- | Registers an AMI. When you're creating an AMI, this is the final step
--   you must complete before you can launch an instance from the AMI. For
--   more information about creating AMIs, see <a>Creating Your Own
--   AMIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
--   
--   You can also use <tt>RegisterImage</tt> to create an Amazon EBS-backed
--   Linux AMI from a snapshot of a root device volume. For more
--   information, see <a>Launching an Instance from a Snapshot</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
--   
--   <i>Important:</i> Some Linux distributions, such as Red Hat Enterprise
--   Linux (RHEL) and SUSE Linux Enterprise Server (SLES), use the EC2
--   <tt>billingProduct</tt> code associated with an AMI to verify
--   subscription status for package updates. Creating an AMI from an EBS
--   snapshot does not maintain this billing code, and subsequent instances
--   launched from such an AMI will not be able to connect to package
--   update infrastructure.
--   
--   Similarly, although you can create a Windows AMI from a snapshot, you
--   can't successfully launch an instance from the AMI.
--   
--   To create Windows AMIs or to create AMIs for Linux operating systems
--   that must retain AMI billing codes to work properly, see
--   <tt>CreateImage</tt> .
--   
--   If needed, you can deregister an AMI at any time. Any modifications
--   you make to an AMI backed by an instance store volume invalidates its
--   registration. If you make changes to an image, deregister the previous
--   image and register the new image.
module Network.AWS.EC2.RegisterImage

-- | Creates a value of <a>RegisterImage</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riVirtualizationType</a> - The type of virtualization. Default:
--   <tt>paravirtual</tt></li>
--   <li><a>riImageLocation</a> - The full path to your AMI manifest in
--   Amazon S3 storage.</li>
--   <li><a>riEnaSupport</a> - Set to <tt>true</tt> to enable enhanced
--   networking with ENA for the AMI and any instances that you launch from
--   the AMI. This option is supported only for HVM AMIs. Specifying this
--   option with a PV AMI can make instances launched from the AMI
--   unreachable.</li>
--   <li><a>riRAMDiskId</a> - The ID of the RAM disk.</li>
--   <li><a>riKernelId</a> - The ID of the kernel.</li>
--   <li><a>riRootDeviceName</a> - The name of the root device (for
--   example, <tt><i>dev</i>sda1</tt> , or <tt><i>dev</i>xvda</tt> ).</li>
--   <li><a>riSRIOVNetSupport</a> - Set to <tt>simple</tt> to enable
--   enhanced networking with the Intel 82599 Virtual Function interface
--   for the AMI and any instances that you launch from the AMI. There is
--   no way to disable <tt>sriovNetSupport</tt> at this time. This option
--   is supported only for HVM AMIs. Specifying this option with a PV AMI
--   can make instances launched from the AMI unreachable.</li>
--   <li><a>riArchitecture</a> - The architecture of the AMI. Default: For
--   Amazon EBS-backed AMIs, <tt>i386</tt> . For instance store-backed
--   AMIs, the architecture specified in the manifest file.</li>
--   <li><a>riDescription</a> - A description for your AMI.</li>
--   <li><a>riBlockDeviceMappings</a> - One or more block device mapping
--   entries.</li>
--   <li><a>riDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>riName</a> - A name for your AMI. Constraints: 3-128
--   alphanumeric characters, parentheses (()), square brackets ([]),
--   spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('),
--   at-signs (@), or underscores(_)</li>
--   </ul>
registerImage :: Text -> RegisterImage

-- | Contains the parameters for RegisterImage.
--   
--   <i>See:</i> <a>registerImage</a> smart constructor.
data RegisterImage

-- | The type of virtualization. Default: <tt>paravirtual</tt>
riVirtualizationType :: Lens' RegisterImage (Maybe Text)

-- | The full path to your AMI manifest in Amazon S3 storage.
riImageLocation :: Lens' RegisterImage (Maybe Text)

-- | Set to <tt>true</tt> to enable enhanced networking with ENA for the
--   AMI and any instances that you launch from the AMI. This option is
--   supported only for HVM AMIs. Specifying this option with a PV AMI can
--   make instances launched from the AMI unreachable.
riEnaSupport :: Lens' RegisterImage (Maybe Bool)

-- | The ID of the RAM disk.
riRAMDiskId :: Lens' RegisterImage (Maybe Text)

-- | The ID of the kernel.
riKernelId :: Lens' RegisterImage (Maybe Text)

-- | The name of the root device (for example, <tt><i>dev</i>sda1</tt> , or
--   <tt><i>dev</i>xvda</tt> ).
riRootDeviceName :: Lens' RegisterImage (Maybe Text)

-- | Set to <tt>simple</tt> to enable enhanced networking with the Intel
--   82599 Virtual Function interface for the AMI and any instances that
--   you launch from the AMI. There is no way to disable
--   <tt>sriovNetSupport</tt> at this time. This option is supported only
--   for HVM AMIs. Specifying this option with a PV AMI can make instances
--   launched from the AMI unreachable.
riSRIOVNetSupport :: Lens' RegisterImage (Maybe Text)

-- | The architecture of the AMI. Default: For Amazon EBS-backed AMIs,
--   <tt>i386</tt> . For instance store-backed AMIs, the architecture
--   specified in the manifest file.
riArchitecture :: Lens' RegisterImage (Maybe ArchitectureValues)

-- | A description for your AMI.
riDescription :: Lens' RegisterImage (Maybe Text)

-- | One or more block device mapping entries.
riBlockDeviceMappings :: Lens' RegisterImage [BlockDeviceMapping]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
riDryRun :: Lens' RegisterImage (Maybe Bool)

-- | A name for your AMI. Constraints: 3-128 alphanumeric characters,
--   parentheses (()), square brackets ([]), spaces ( ), periods (.),
--   slashes (/), dashes (-), single quotes ('), at-signs (@), or
--   underscores(_)
riName :: Lens' RegisterImage Text

-- | Creates a value of <a>RegisterImageResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rirsImageId</a> - The ID of the newly registered AMI.</li>
--   <li><a>rirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
registerImageResponse :: Int -> RegisterImageResponse

-- | Contains the output of RegisterImage.
--   
--   <i>See:</i> <a>registerImageResponse</a> smart constructor.
data RegisterImageResponse

-- | The ID of the newly registered AMI.
rirsImageId :: Lens' RegisterImageResponse (Maybe Text)

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


-- | Rejects a VPC peering connection request. The VPC peering connection
--   must be in the <tt>pending-acceptance</tt> state. Use the
--   <tt>DescribeVpcPeeringConnections</tt> request to view your
--   outstanding VPC peering connection requests. To delete an active VPC
--   peering connection, or to delete a VPC peering connection request that
--   you initiated, use <tt>DeleteVpcPeeringConnection</tt> .
module Network.AWS.EC2.RejectVPCPeeringConnection

-- | Creates a value of <a>RejectVPCPeeringConnection</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rvpcDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>rvpcVPCPeeringConnectionId</a> - The ID of the VPC peering
--   connection.</li>
--   </ul>
rejectVPCPeeringConnection :: Text -> RejectVPCPeeringConnection

-- | Contains the parameters for RejectVpcPeeringConnection.
--   
--   <i>See:</i> <a>rejectVPCPeeringConnection</a> smart constructor.
data RejectVPCPeeringConnection

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rvpcDryRun :: Lens' RejectVPCPeeringConnection (Maybe Bool)

-- | The ID of the VPC peering connection.
rvpcVPCPeeringConnectionId :: Lens' RejectVPCPeeringConnection Text

-- | Creates a value of <a>RejectVPCPeeringConnectionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rvpcrsReturn</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>rvpcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
rejectVPCPeeringConnectionResponse :: Int -> RejectVPCPeeringConnectionResponse

-- | Contains the output of RejectVpcPeeringConnection.
--   
--   <i>See:</i> <a>rejectVPCPeeringConnectionResponse</a> smart
--   constructor.
data RejectVPCPeeringConnectionResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
rvpcrsReturn :: Lens' RejectVPCPeeringConnectionResponse (Maybe Bool)

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


-- | Releases the specified Elastic IP address.
--   
--   After releasing an Elastic IP address, it is released to the IP
--   address pool and might be unavailable to you. Be sure to update your
--   DNS records and any servers or devices that communicate with the
--   address. If you attempt to release an Elastic IP address that you
--   already released, you'll get an <tt>AuthFailure</tt> error if the
--   address is already allocated to another AWS account.
--   
--   <ul>
--   <li><i>EC2-Classic, default VPC</i> Releasing an Elastic IP address
--   automatically disassociates it from any instance that it's associated
--   with. To disassociate an Elastic IP address without releasing it, use
--   <tt>DisassociateAddress</tt> .</li>
--   <li><i>Nondefault VPC</i> You must use <tt>DisassociateAddress</tt> to
--   disassociate the Elastic IP address before you try to release it.
--   Otherwise, Amazon EC2 returns an error
--   (<tt>InvalidIPAddress.InUse</tt> ).</li>
--   </ul>
module Network.AWS.EC2.ReleaseAddress

-- | Creates a value of <a>ReleaseAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raAllocationId</a> - [EC2-VPC] The allocation ID. Required for
--   EC2-VPC.</li>
--   <li><a>raPublicIP</a> - [EC2-Classic] The Elastic IP address. Required
--   for EC2-Classic.</li>
--   <li><a>raDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
releaseAddress :: ReleaseAddress

-- | Contains the parameters for ReleaseAddress.
--   
--   <i>See:</i> <a>releaseAddress</a> smart constructor.
data ReleaseAddress

-- | <ul>
--   <li><i>EC2-VPC</i> The allocation ID. Required for EC2-VPC.</li>
--   </ul>
raAllocationId :: Lens' ReleaseAddress (Maybe Text)

-- | <ul>
--   <li><i>EC2-Classic</i> The Elastic IP address. Required for
--   EC2-Classic.</li>
--   </ul>
raPublicIP :: Lens' ReleaseAddress (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
raDryRun :: Lens' ReleaseAddress (Maybe Bool)

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

-- | <i>See:</i> <a>releaseAddressResponse</a> smart constructor.
data ReleaseAddressResponse
instance GHC.Generics.Generic Network.AWS.EC2.ReleaseAddress.ReleaseAddressResponse
instance Data.Data.Data Network.AWS.EC2.ReleaseAddress.ReleaseAddressResponse
instance GHC.Show.Show Network.AWS.EC2.ReleaseAddress.ReleaseAddressResponse
instance GHC.Read.Read Network.AWS.EC2.ReleaseAddress.ReleaseAddressResponse
instance GHC.Classes.Eq Network.AWS.EC2.ReleaseAddress.ReleaseAddressResponse
instance GHC.Generics.Generic Network.AWS.EC2.ReleaseAddress.ReleaseAddress
instance Data.Data.Data Network.AWS.EC2.ReleaseAddress.ReleaseAddress
instance GHC.Show.Show Network.AWS.EC2.ReleaseAddress.ReleaseAddress
instance GHC.Read.Read Network.AWS.EC2.ReleaseAddress.ReleaseAddress
instance GHC.Classes.Eq Network.AWS.EC2.ReleaseAddress.ReleaseAddress
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ReleaseAddress.ReleaseAddress
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ReleaseAddress.ReleaseAddress
instance Control.DeepSeq.NFData Network.AWS.EC2.ReleaseAddress.ReleaseAddress
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ReleaseAddress.ReleaseAddress
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ReleaseAddress.ReleaseAddress
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ReleaseAddress.ReleaseAddress
instance Control.DeepSeq.NFData Network.AWS.EC2.ReleaseAddress.ReleaseAddressResponse


-- | When you no longer want to use an On-Demand Dedicated Host it can be
--   released. On-Demand billing is stopped and the host goes into
--   <tt>released</tt> state. The host ID of Dedicated Hosts that have been
--   released can no longer be specified in another request, e.g.,
--   ModifyHosts. You must stop or terminate all instances on a host before
--   it can be released.
--   
--   When Dedicated Hosts are released, it make take some time for them to
--   stop counting toward your limit and you may receive capacity errors
--   when trying to allocate new Dedicated hosts. Try waiting a few
--   minutes, and then try again.
--   
--   Released hosts will still appear in a <tt>DescribeHosts</tt> response.
module Network.AWS.EC2.ReleaseHosts

-- | Creates a value of <a>ReleaseHosts</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rhHostIds</a> - The IDs of the Dedicated Hosts you want to
--   release.</li>
--   </ul>
releaseHosts :: ReleaseHosts

-- | Contains the parameters for ReleaseHosts.
--   
--   <i>See:</i> <a>releaseHosts</a> smart constructor.
data ReleaseHosts

-- | The IDs of the Dedicated Hosts you want to release.
rhHostIds :: Lens' ReleaseHosts [Text]

-- | Creates a value of <a>ReleaseHostsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rhrsUnsuccessful</a> - The IDs of the Dedicated Hosts that
--   could not be released, including an error message.</li>
--   <li><a>rhrsSuccessful</a> - The IDs of the Dedicated Hosts that were
--   successfully released.</li>
--   <li><a>rhrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
releaseHostsResponse :: Int -> ReleaseHostsResponse

-- | Contains the output of ReleaseHosts.
--   
--   <i>See:</i> <a>releaseHostsResponse</a> smart constructor.
data ReleaseHostsResponse

-- | The IDs of the Dedicated Hosts that could not be released, including
--   an error message.
rhrsUnsuccessful :: Lens' ReleaseHostsResponse [UnsuccessfulItem]

-- | The IDs of the Dedicated Hosts that were successfully released.
rhrsSuccessful :: Lens' ReleaseHostsResponse [Text]

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


-- | Changes which network ACL a subnet is associated with. By default when
--   you create a subnet, it's automatically associated with the default
--   network ACL. For more information about network ACLs, see <a>Network
--   ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.ReplaceNetworkACLAssociation

-- | Creates a value of <a>ReplaceNetworkACLAssociation</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rnaaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>rnaaAssociationId</a> - The ID of the current association
--   between the original network ACL and the subnet.</li>
--   <li><a>rnaaNetworkACLId</a> - The ID of the new network ACL to
--   associate with the subnet.</li>
--   </ul>
replaceNetworkACLAssociation :: Text -> Text -> ReplaceNetworkACLAssociation

-- | Contains the parameters for ReplaceNetworkAclAssociation.
--   
--   <i>See:</i> <a>replaceNetworkACLAssociation</a> smart constructor.
data ReplaceNetworkACLAssociation

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rnaaDryRun :: Lens' ReplaceNetworkACLAssociation (Maybe Bool)

-- | The ID of the current association between the original network ACL and
--   the subnet.
rnaaAssociationId :: Lens' ReplaceNetworkACLAssociation Text

-- | The ID of the new network ACL to associate with the subnet.
rnaaNetworkACLId :: Lens' ReplaceNetworkACLAssociation Text

-- | Creates a value of <a>ReplaceNetworkACLAssociationResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rnaarsNewAssociationId</a> - The ID of the new
--   association.</li>
--   <li><a>rnaarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
replaceNetworkACLAssociationResponse :: Int -> ReplaceNetworkACLAssociationResponse

-- | Contains the output of ReplaceNetworkAclAssociation.
--   
--   <i>See:</i> <a>replaceNetworkACLAssociationResponse</a> smart
--   constructor.
data ReplaceNetworkACLAssociationResponse

-- | The ID of the new association.
rnaarsNewAssociationId :: Lens' ReplaceNetworkACLAssociationResponse (Maybe Text)

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


-- | Replaces an entry (rule) in a network ACL. For more information about
--   network ACLs, see <a>Network ACLs</a> in the <i>Amazon Virtual Private
--   Cloud User Guide</i> .
module Network.AWS.EC2.ReplaceNetworkACLEntry

-- | Creates a value of <a>ReplaceNetworkACLEntry</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rnaeIPv6CidrBlock</a> - The IPv6 network range to allow or
--   deny, in CIDR notation (for example <tt>2001:bd8:1234:1a00::/64</tt>
--   ).</li>
--   <li><a>rnaeICMPTypeCode</a> - ICMP protocol: The ICMP or ICMPv6 type
--   and code. Required if specifying the ICMP (1) protocol, or protocol 58
--   (ICMPv6) with an IPv6 CIDR block.</li>
--   <li><a>rnaePortRange</a> - TCP or UDP protocols: The range of ports
--   the rule applies to. Required if specifying TCP (6) or UDP (17) for
--   the protocol.</li>
--   <li><a>rnaeCidrBlock</a> - The IPv4 network range to allow or deny, in
--   CIDR notation (for example <tt>172.16.0.0/24</tt> ).</li>
--   <li><a>rnaeDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>rnaeNetworkACLId</a> - The ID of the ACL.</li>
--   <li><a>rnaeRuleNumber</a> - The rule number of the entry to
--   replace.</li>
--   <li><a>rnaeProtocol</a> - The IP protocol. You can specify
--   <tt>all</tt> or <tt>-1</tt> to mean all protocols. If you specify
--   <tt>all</tt> , <tt>-1</tt> , or a protocol number other than
--   <tt>tcp</tt> , <tt>udp</tt> , or <tt>icmp</tt> , traffic on all ports
--   is allowed, regardless of any ports or ICMP types or codes you
--   specify. If you specify protocol <tt>58</tt> (ICMPv6) and specify an
--   IPv4 CIDR block, traffic for all ICMP types and codes allowed,
--   regardless of any that you specify. If you specify protocol
--   <tt>58</tt> (ICMPv6) and specify an IPv6 CIDR block, you must specify
--   an ICMP type and code.</li>
--   <li><a>rnaeRuleAction</a> - Indicates whether to allow or deny the
--   traffic that matches the rule.</li>
--   <li><a>rnaeEgress</a> - Indicates whether to replace the egress rule.
--   Default: If no value is specified, we replace the ingress rule.</li>
--   </ul>
replaceNetworkACLEntry :: Text -> Int -> Text -> RuleAction -> Bool -> ReplaceNetworkACLEntry

-- | Contains the parameters for ReplaceNetworkAclEntry.
--   
--   <i>See:</i> <a>replaceNetworkACLEntry</a> smart constructor.
data ReplaceNetworkACLEntry

-- | The IPv6 network range to allow or deny, in CIDR notation (for example
--   <tt>2001:bd8:1234:1a00::/64</tt> ).
rnaeIPv6CidrBlock :: Lens' ReplaceNetworkACLEntry (Maybe Text)

-- | ICMP protocol: The ICMP or ICMPv6 type and code. Required if
--   specifying the ICMP (1) protocol, or protocol 58 (ICMPv6) with an IPv6
--   CIDR block.
rnaeICMPTypeCode :: Lens' ReplaceNetworkACLEntry (Maybe ICMPTypeCode)

-- | TCP or UDP protocols: The range of ports the rule applies to. Required
--   if specifying TCP (6) or UDP (17) for the protocol.
rnaePortRange :: Lens' ReplaceNetworkACLEntry (Maybe PortRange)

-- | The IPv4 network range to allow or deny, in CIDR notation (for example
--   <tt>172.16.0.0/24</tt> ).
rnaeCidrBlock :: Lens' ReplaceNetworkACLEntry (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rnaeDryRun :: Lens' ReplaceNetworkACLEntry (Maybe Bool)

-- | The ID of the ACL.
rnaeNetworkACLId :: Lens' ReplaceNetworkACLEntry Text

-- | The rule number of the entry to replace.
rnaeRuleNumber :: Lens' ReplaceNetworkACLEntry Int

-- | The IP protocol. You can specify <tt>all</tt> or <tt>-1</tt> to mean
--   all protocols. If you specify <tt>all</tt> , <tt>-1</tt> , or a
--   protocol number other than <tt>tcp</tt> , <tt>udp</tt> , or
--   <tt>icmp</tt> , traffic on all ports is allowed, regardless of any
--   ports or ICMP types or codes you specify. If you specify protocol
--   <tt>58</tt> (ICMPv6) and specify an IPv4 CIDR block, traffic for all
--   ICMP types and codes allowed, regardless of any that you specify. If
--   you specify protocol <tt>58</tt> (ICMPv6) and specify an IPv6 CIDR
--   block, you must specify an ICMP type and code.
rnaeProtocol :: Lens' ReplaceNetworkACLEntry Text

-- | Indicates whether to allow or deny the traffic that matches the rule.
rnaeRuleAction :: Lens' ReplaceNetworkACLEntry RuleAction

-- | Indicates whether to replace the egress rule. Default: If no value is
--   specified, we replace the ingress rule.
rnaeEgress :: Lens' ReplaceNetworkACLEntry Bool

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

-- | <i>See:</i> <a>replaceNetworkACLEntryResponse</a> smart constructor.
data ReplaceNetworkACLEntryResponse
instance GHC.Generics.Generic Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntryResponse
instance Data.Data.Data Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntryResponse
instance GHC.Show.Show Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntryResponse
instance GHC.Read.Read Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntryResponse
instance GHC.Classes.Eq Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntryResponse
instance GHC.Generics.Generic Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntry
instance Data.Data.Data Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntry
instance GHC.Show.Show Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntry
instance GHC.Read.Read Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntry
instance GHC.Classes.Eq Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntry
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntry
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntry
instance Control.DeepSeq.NFData Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntry
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntry
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntry
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntry
instance Control.DeepSeq.NFData Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntryResponse


-- | Replaces an existing route within a route table in a VPC. You must
--   provide only one of the following: Internet gateway or virtual private
--   gateway, NAT instance, NAT gateway, VPC peering connection, network
--   interface, or egress-only Internet gateway.
--   
--   For more information about route tables, see <a>Route Tables</a> in
--   the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.ReplaceRoute

-- | Creates a value of <a>ReplaceRoute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrVPCPeeringConnectionId</a> - The ID of a VPC peering
--   connection.</li>
--   <li><a>rrInstanceId</a> - The ID of a NAT instance in your VPC.</li>
--   <li><a>rrEgressOnlyInternetGatewayId</a> - [IPv6 traffic only] The ID
--   of an egress-only Internet gateway.</li>
--   <li><a>rrDestinationIPv6CidrBlock</a> - The IPv6 CIDR address block
--   used for the destination match. The value you provide must match the
--   CIDR of an existing route in the table.</li>
--   <li><a>rrNatGatewayId</a> - [IPv4 traffic only] The ID of a NAT
--   gateway.</li>
--   <li><a>rrNetworkInterfaceId</a> - The ID of a network interface.</li>
--   <li><a>rrGatewayId</a> - The ID of an Internet gateway or virtual
--   private gateway.</li>
--   <li><a>rrDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>rrDestinationCidrBlock</a> - The IPv4 CIDR address block used
--   for the destination match. The value you provide must match the CIDR
--   of an existing route in the table.</li>
--   <li><a>rrRouteTableId</a> - The ID of the route table.</li>
--   </ul>
replaceRoute :: Text -> ReplaceRoute

-- | Contains the parameters for ReplaceRoute.
--   
--   <i>See:</i> <a>replaceRoute</a> smart constructor.
data ReplaceRoute

-- | The ID of a VPC peering connection.
rrVPCPeeringConnectionId :: Lens' ReplaceRoute (Maybe Text)

-- | The ID of a NAT instance in your VPC.
rrInstanceId :: Lens' ReplaceRoute (Maybe Text)

-- | <ul>
--   <li><i>IPv6 traffic only</i> The ID of an egress-only Internet
--   gateway.</li>
--   </ul>
rrEgressOnlyInternetGatewayId :: Lens' ReplaceRoute (Maybe Text)

-- | The IPv6 CIDR address block used for the destination match. The value
--   you provide must match the CIDR of an existing route in the table.
rrDestinationIPv6CidrBlock :: Lens' ReplaceRoute (Maybe Text)

-- | <ul>
--   <li><i>IPv4 traffic only</i> The ID of a NAT gateway.</li>
--   </ul>
rrNatGatewayId :: Lens' ReplaceRoute (Maybe Text)

-- | The ID of a network interface.
rrNetworkInterfaceId :: Lens' ReplaceRoute (Maybe Text)

-- | The ID of an Internet gateway or virtual private gateway.
rrGatewayId :: Lens' ReplaceRoute (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rrDryRun :: Lens' ReplaceRoute (Maybe Bool)

-- | The IPv4 CIDR address block used for the destination match. The value
--   you provide must match the CIDR of an existing route in the table.
rrDestinationCidrBlock :: Lens' ReplaceRoute (Maybe Text)

-- | The ID of the route table.
rrRouteTableId :: Lens' ReplaceRoute Text

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

-- | <i>See:</i> <a>replaceRouteResponse</a> smart constructor.
data ReplaceRouteResponse
instance GHC.Generics.Generic Network.AWS.EC2.ReplaceRoute.ReplaceRouteResponse
instance Data.Data.Data Network.AWS.EC2.ReplaceRoute.ReplaceRouteResponse
instance GHC.Show.Show Network.AWS.EC2.ReplaceRoute.ReplaceRouteResponse
instance GHC.Read.Read Network.AWS.EC2.ReplaceRoute.ReplaceRouteResponse
instance GHC.Classes.Eq Network.AWS.EC2.ReplaceRoute.ReplaceRouteResponse
instance GHC.Generics.Generic Network.AWS.EC2.ReplaceRoute.ReplaceRoute
instance Data.Data.Data Network.AWS.EC2.ReplaceRoute.ReplaceRoute
instance GHC.Show.Show Network.AWS.EC2.ReplaceRoute.ReplaceRoute
instance GHC.Read.Read Network.AWS.EC2.ReplaceRoute.ReplaceRoute
instance GHC.Classes.Eq Network.AWS.EC2.ReplaceRoute.ReplaceRoute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ReplaceRoute.ReplaceRoute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ReplaceRoute.ReplaceRoute
instance Control.DeepSeq.NFData Network.AWS.EC2.ReplaceRoute.ReplaceRoute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ReplaceRoute.ReplaceRoute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ReplaceRoute.ReplaceRoute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ReplaceRoute.ReplaceRoute
instance Control.DeepSeq.NFData Network.AWS.EC2.ReplaceRoute.ReplaceRouteResponse


-- | Changes the route table associated with a given subnet in a VPC. After
--   the operation completes, the subnet uses the routes in the new route
--   table it's associated with. For more information about route tables,
--   see <a>Route Tables</a> in the <i>Amazon Virtual Private Cloud User
--   Guide</i> .
--   
--   You can also use ReplaceRouteTableAssociation to change which table is
--   the main route table in the VPC. You just specify the main route
--   table's association ID and the route table to be the new main route
--   table.
module Network.AWS.EC2.ReplaceRouteTableAssociation

-- | Creates a value of <a>ReplaceRouteTableAssociation</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrtaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>rrtaAssociationId</a> - The association ID.</li>
--   <li><a>rrtaRouteTableId</a> - The ID of the new route table to
--   associate with the subnet.</li>
--   </ul>
replaceRouteTableAssociation :: Text -> Text -> ReplaceRouteTableAssociation

-- | Contains the parameters for ReplaceRouteTableAssociation.
--   
--   <i>See:</i> <a>replaceRouteTableAssociation</a> smart constructor.
data ReplaceRouteTableAssociation

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rrtaDryRun :: Lens' ReplaceRouteTableAssociation (Maybe Bool)

-- | The association ID.
rrtaAssociationId :: Lens' ReplaceRouteTableAssociation Text

-- | The ID of the new route table to associate with the subnet.
rrtaRouteTableId :: Lens' ReplaceRouteTableAssociation Text

-- | Creates a value of <a>ReplaceRouteTableAssociationResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrtarsNewAssociationId</a> - The ID of the new
--   association.</li>
--   <li><a>rrtarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
replaceRouteTableAssociationResponse :: Int -> ReplaceRouteTableAssociationResponse

-- | Contains the output of ReplaceRouteTableAssociation.
--   
--   <i>See:</i> <a>replaceRouteTableAssociationResponse</a> smart
--   constructor.
data ReplaceRouteTableAssociationResponse

-- | The ID of the new association.
rrtarsNewAssociationId :: Lens' ReplaceRouteTableAssociationResponse (Maybe Text)

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


-- | Submits feedback about the status of an instance. The instance must be
--   in the <tt>running</tt> state. If your experience with the instance
--   differs from the instance status returned by
--   <tt>DescribeInstanceStatus</tt> , use <a>ReportInstanceStatus</a> to
--   report your experience with the instance. Amazon EC2 collects this
--   information to improve the accuracy of status checks.
--   
--   Use of this action does not change the value returned by
--   <tt>DescribeInstanceStatus</tt> .
module Network.AWS.EC2.ReportInstanceStatus

-- | Creates a value of <a>ReportInstanceStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>risStartTime</a> - The time at which the reported instance
--   health state began.</li>
--   <li><a>risEndTime</a> - The time at which the reported instance health
--   state ended.</li>
--   <li><a>risDescription</a> - Descriptive text about the health state of
--   your instance.</li>
--   <li><a>risDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>risInstances</a> - One or more instances.</li>
--   <li><a>risStatus</a> - The status of all instances listed.</li>
--   <li><a>risReasonCodes</a> - One or more reason codes that describes
--   the health state of your instance. * <tt>instance-stuck-in-state</tt>
--   : My instance is stuck in a state. * <tt>unresponsive</tt> : My
--   instance is unresponsive. * <tt>not-accepting-credentials</tt> : My
--   instance is not accepting my credentials. *
--   <tt>password-not-available</tt> : A password is not available for my
--   instance. * <tt>performance-network</tt> : My instance is experiencing
--   performance problems which I believe are network related. *
--   <tt>performance-instance-store</tt> : My instance is experiencing
--   performance problems which I believe are related to the instance
--   stores. * <tt>performance-ebs-volume</tt> : My instance is
--   experiencing performance problems which I believe are related to an
--   EBS volume. * <tt>performance-other</tt> : My instance is experiencing
--   performance problems. * <tt>other</tt> : [explain using the
--   description parameter]</li>
--   </ul>
reportInstanceStatus :: ReportStatusType -> ReportInstanceStatus

-- | Contains the parameters for ReportInstanceStatus.
--   
--   <i>See:</i> <a>reportInstanceStatus</a> smart constructor.
data ReportInstanceStatus

-- | The time at which the reported instance health state began.
risStartTime :: Lens' ReportInstanceStatus (Maybe UTCTime)

-- | The time at which the reported instance health state ended.
risEndTime :: Lens' ReportInstanceStatus (Maybe UTCTime)

-- | Descriptive text about the health state of your instance.
risDescription :: Lens' ReportInstanceStatus (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
risDryRun :: Lens' ReportInstanceStatus (Maybe Bool)

-- | One or more instances.
risInstances :: Lens' ReportInstanceStatus [Text]

-- | The status of all instances listed.
risStatus :: Lens' ReportInstanceStatus ReportStatusType

-- | One or more reason codes that describes the health state of your
--   instance. * <tt>instance-stuck-in-state</tt> : My instance is stuck in
--   a state. * <tt>unresponsive</tt> : My instance is unresponsive. *
--   <tt>not-accepting-credentials</tt> : My instance is not accepting my
--   credentials. * <tt>password-not-available</tt> : A password is not
--   available for my instance. * <tt>performance-network</tt> : My
--   instance is experiencing performance problems which I believe are
--   network related. * <tt>performance-instance-store</tt> : My instance
--   is experiencing performance problems which I believe are related to
--   the instance stores. * <tt>performance-ebs-volume</tt> : My instance
--   is experiencing performance problems which I believe are related to an
--   EBS volume. * <tt>performance-other</tt> : My instance is experiencing
--   performance problems. * <tt>other</tt> : [explain using the
--   description parameter]
risReasonCodes :: Lens' ReportInstanceStatus [ReportInstanceReasonCodes]

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

-- | <i>See:</i> <a>reportInstanceStatusResponse</a> smart constructor.
data ReportInstanceStatusResponse
instance GHC.Generics.Generic Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatusResponse
instance Data.Data.Data Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatusResponse
instance GHC.Show.Show Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatusResponse
instance GHC.Read.Read Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatusResponse
instance GHC.Classes.Eq Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatusResponse
instance GHC.Generics.Generic Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatus
instance Data.Data.Data Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatus
instance GHC.Show.Show Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatus
instance GHC.Read.Read Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatus
instance GHC.Classes.Eq Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatus
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatus
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatus
instance Control.DeepSeq.NFData Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatus
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatus
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatus
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatus
instance Control.DeepSeq.NFData Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatusResponse


-- | Creates a Spot fleet request.
--   
--   You can submit a single request that includes multiple launch
--   specifications that vary by instance type, AMI, Availability Zone, or
--   subnet.
--   
--   By default, the Spot fleet requests Spot instances in the Spot pool
--   where the price per unit is the lowest. Each launch specification can
--   include its own instance weighting that reflects the value of the
--   instance type to your application workload.
--   
--   Alternatively, you can specify that the Spot fleet distribute the
--   target capacity across the Spot pools included in its launch
--   specifications. By ensuring that the Spot instances in your Spot fleet
--   are in different Spot pools, you can improve the availability of your
--   fleet.
--   
--   For more information, see <a>Spot Fleet Requests</a> in the <i>Amazon
--   Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.RequestSpotFleet

-- | Creates a value of <a>RequestSpotFleet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsfDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>rsfSpotFleetRequestConfig</a> - The configuration for the Spot
--   fleet request.</li>
--   </ul>
requestSpotFleet :: SpotFleetRequestConfigData -> RequestSpotFleet

-- | Contains the parameters for RequestSpotFleet.
--   
--   <i>See:</i> <a>requestSpotFleet</a> smart constructor.
data RequestSpotFleet

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rsfDryRun :: Lens' RequestSpotFleet (Maybe Bool)

-- | The configuration for the Spot fleet request.
rsfSpotFleetRequestConfig :: Lens' RequestSpotFleet SpotFleetRequestConfigData

-- | Creates a value of <a>RequestSpotFleetResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsfrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>rsfrsSpotFleetRequestId</a> - The ID of the Spot fleet
--   request.</li>
--   </ul>
requestSpotFleetResponse :: Int -> Text -> RequestSpotFleetResponse

-- | Contains the output of RequestSpotFleet.
--   
--   <i>See:</i> <a>requestSpotFleetResponse</a> smart constructor.
data RequestSpotFleetResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rsfrsResponseStatus :: Lens' RequestSpotFleetResponse Int

-- | The ID of the Spot fleet request.
rsfrsSpotFleetRequestId :: Lens' RequestSpotFleetResponse Text
instance GHC.Generics.Generic Network.AWS.EC2.RequestSpotFleet.RequestSpotFleetResponse
instance Data.Data.Data Network.AWS.EC2.RequestSpotFleet.RequestSpotFleetResponse
instance GHC.Show.Show Network.AWS.EC2.RequestSpotFleet.RequestSpotFleetResponse
instance GHC.Read.Read Network.AWS.EC2.RequestSpotFleet.RequestSpotFleetResponse
instance GHC.Classes.Eq Network.AWS.EC2.RequestSpotFleet.RequestSpotFleetResponse
instance GHC.Generics.Generic Network.AWS.EC2.RequestSpotFleet.RequestSpotFleet
instance Data.Data.Data Network.AWS.EC2.RequestSpotFleet.RequestSpotFleet
instance GHC.Show.Show Network.AWS.EC2.RequestSpotFleet.RequestSpotFleet
instance GHC.Read.Read Network.AWS.EC2.RequestSpotFleet.RequestSpotFleet
instance GHC.Classes.Eq Network.AWS.EC2.RequestSpotFleet.RequestSpotFleet
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.RequestSpotFleet.RequestSpotFleet
instance Data.Hashable.Class.Hashable Network.AWS.EC2.RequestSpotFleet.RequestSpotFleet
instance Control.DeepSeq.NFData Network.AWS.EC2.RequestSpotFleet.RequestSpotFleet
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.RequestSpotFleet.RequestSpotFleet
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.RequestSpotFleet.RequestSpotFleet
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.RequestSpotFleet.RequestSpotFleet
instance Control.DeepSeq.NFData Network.AWS.EC2.RequestSpotFleet.RequestSpotFleetResponse


-- | Creates a Spot instance request. Spot instances are instances that
--   Amazon EC2 launches when the bid price that you specify exceeds the
--   current Spot price. Amazon EC2 periodically sets the Spot price based
--   on available Spot Instance capacity and current Spot instance
--   requests. For more information, see <a>Spot Instance Requests</a> in
--   the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.RequestSpotInstances

-- | Creates a value of <a>RequestSpotInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsisBlockDurationMinutes</a> - The required duration for the
--   Spot instances (also known as Spot blocks), in minutes. This value
--   must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The
--   duration period starts as soon as your Spot instance receives its
--   instance ID. At the end of the duration period, Amazon EC2 marks the
--   Spot instance for termination and provides a Spot instance termination
--   notice, which gives the instance a two-minute warning before it
--   terminates. Note that you can't specify an Availability Zone group or
--   a launch group if you specify a duration.</li>
--   <li><a>rsisClientToken</a> - Unique, case-sensitive identifier that
--   you provide to ensure the idempotency of the request. For more
--   information, see <a>How to Ensure Idempotency</a> in the <i>Amazon
--   Elastic Compute Cloud User Guide</i> .</li>
--   <li><a>rsisInstanceCount</a> - The maximum number of Spot instances to
--   launch. Default: 1</li>
--   <li><a>rsisLaunchSpecification</a> - Undocumented member.</li>
--   <li><a>rsisAvailabilityZoneGroup</a> - The user-specified name for a
--   logical grouping of bids. When you specify an Availability Zone group
--   in a Spot Instance request, all Spot instances in the request are
--   launched in the same Availability Zone. Instance proximity is
--   maintained with this parameter, but the choice of Availability Zone is
--   not. The group applies only to bids for Spot Instances of the same
--   instance type. Any additional Spot instance requests that are
--   specified with the same Availability Zone group name are launched in
--   that same Availability Zone, as long as at least one instance from the
--   group is still active. If there is no active instance running in the
--   Availability Zone group that you specify for a new Spot instance
--   request (all instances are terminated, the bid is expired, or the bid
--   falls below current market), then Amazon EC2 launches the instance in
--   any Availability Zone where the constraint can be met. Consequently,
--   the subsequent set of Spot instances could be placed in a different
--   zone from the original request, even if you specified the same
--   Availability Zone group. Default: Instances are launched in any
--   available Availability Zone.</li>
--   <li><a>rsisValidUntil</a> - The end date of the request. If this is a
--   one-time request, the request remains active until all instances
--   launch, the request is canceled, or this date is reached. If the
--   request is persistent, it remains active until it is canceled or this
--   date and time is reached. Default: The request is effective
--   indefinitely.</li>
--   <li><a>rsisLaunchGroup</a> - The instance launch group. Launch groups
--   are Spot instances that launch together and terminate together.
--   Default: Instances are launched and terminated individually</li>
--   <li><a>rsisType</a> - The Spot instance request type. Default:
--   <tt>one-time</tt></li>
--   <li><a>rsisValidFrom</a> - The start date of the request. If this is a
--   one-time request, the request becomes active at this date and time and
--   remains active until all instances launch, the request expires, or the
--   request is canceled. If the request is persistent, the request becomes
--   active at this date and time and remains active until it expires or is
--   canceled. Default: The request is effective indefinitely.</li>
--   <li><a>rsisDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>rsisSpotPrice</a> - The maximum hourly price (bid) for any Spot
--   instance launched to fulfill the request.</li>
--   </ul>
requestSpotInstances :: Text -> RequestSpotInstances

-- | Contains the parameters for RequestSpotInstances.
--   
--   <i>See:</i> <a>requestSpotInstances</a> smart constructor.
data RequestSpotInstances

-- | The required duration for the Spot instances (also known as Spot
--   blocks), in minutes. This value must be a multiple of 60 (60, 120,
--   180, 240, 300, or 360). The duration period starts as soon as your
--   Spot instance receives its instance ID. At the end of the duration
--   period, Amazon EC2 marks the Spot instance for termination and
--   provides a Spot instance termination notice, which gives the instance
--   a two-minute warning before it terminates. Note that you can't specify
--   an Availability Zone group or a launch group if you specify a
--   duration.
rsisBlockDurationMinutes :: Lens' RequestSpotInstances (Maybe Int)

-- | Unique, case-sensitive identifier that you provide to ensure the
--   idempotency of the request. For more information, see <a>How to Ensure
--   Idempotency</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
--   .
rsisClientToken :: Lens' RequestSpotInstances (Maybe Text)

-- | The maximum number of Spot instances to launch. Default: 1
rsisInstanceCount :: Lens' RequestSpotInstances (Maybe Int)

-- | Undocumented member.
rsisLaunchSpecification :: Lens' RequestSpotInstances (Maybe RequestSpotLaunchSpecification)

-- | The user-specified name for a logical grouping of bids. When you
--   specify an Availability Zone group in a Spot Instance request, all
--   Spot instances in the request are launched in the same Availability
--   Zone. Instance proximity is maintained with this parameter, but the
--   choice of Availability Zone is not. The group applies only to bids for
--   Spot Instances of the same instance type. Any additional Spot instance
--   requests that are specified with the same Availability Zone group name
--   are launched in that same Availability Zone, as long as at least one
--   instance from the group is still active. If there is no active
--   instance running in the Availability Zone group that you specify for a
--   new Spot instance request (all instances are terminated, the bid is
--   expired, or the bid falls below current market), then Amazon EC2
--   launches the instance in any Availability Zone where the constraint
--   can be met. Consequently, the subsequent set of Spot instances could
--   be placed in a different zone from the original request, even if you
--   specified the same Availability Zone group. Default: Instances are
--   launched in any available Availability Zone.
rsisAvailabilityZoneGroup :: Lens' RequestSpotInstances (Maybe Text)

-- | The end date of the request. If this is a one-time request, the
--   request remains active until all instances launch, the request is
--   canceled, or this date is reached. If the request is persistent, it
--   remains active until it is canceled or this date and time is reached.
--   Default: The request is effective indefinitely.
rsisValidUntil :: Lens' RequestSpotInstances (Maybe UTCTime)

-- | The instance launch group. Launch groups are Spot instances that
--   launch together and terminate together. Default: Instances are
--   launched and terminated individually
rsisLaunchGroup :: Lens' RequestSpotInstances (Maybe Text)

-- | The Spot instance request type. Default: <tt>one-time</tt>
rsisType :: Lens' RequestSpotInstances (Maybe SpotInstanceType)

-- | The start date of the request. If this is a one-time request, the
--   request becomes active at this date and time and remains active until
--   all instances launch, the request expires, or the request is canceled.
--   If the request is persistent, the request becomes active at this date
--   and time and remains active until it expires or is canceled. Default:
--   The request is effective indefinitely.
rsisValidFrom :: Lens' RequestSpotInstances (Maybe UTCTime)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rsisDryRun :: Lens' RequestSpotInstances (Maybe Bool)

-- | The maximum hourly price (bid) for any Spot instance launched to
--   fulfill the request.
rsisSpotPrice :: Lens' RequestSpotInstances Text

-- | Creates a value of <a>RequestSpotInstancesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsirsSpotInstanceRequests</a> - One or more Spot instance
--   requests.</li>
--   <li><a>rsirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
requestSpotInstancesResponse :: Int -> RequestSpotInstancesResponse

-- | Contains the output of RequestSpotInstances.
--   
--   <i>See:</i> <a>requestSpotInstancesResponse</a> smart constructor.
data RequestSpotInstancesResponse

-- | One or more Spot instance requests.
rsirsSpotInstanceRequests :: Lens' RequestSpotInstancesResponse [SpotInstanceRequest]

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


-- | Resets an attribute of an AMI to its default value.
module Network.AWS.EC2.ResetImageAttribute

-- | Creates a value of <a>ResetImageAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>resDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>resImageId</a> - The ID of the AMI.</li>
--   <li><a>resAttribute</a> - The attribute to reset (currently you can
--   only reset the launch permission attribute).</li>
--   </ul>
resetImageAttribute :: Text -> ResetImageAttributeName -> ResetImageAttribute

-- | Contains the parameters for ResetImageAttribute.
--   
--   <i>See:</i> <a>resetImageAttribute</a> smart constructor.
data ResetImageAttribute

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
resDryRun :: Lens' ResetImageAttribute (Maybe Bool)

-- | The ID of the AMI.
resImageId :: Lens' ResetImageAttribute Text

-- | The attribute to reset (currently you can only reset the launch
--   permission attribute).
resAttribute :: Lens' ResetImageAttribute ResetImageAttributeName

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

-- | <i>See:</i> <a>resetImageAttributeResponse</a> smart constructor.
data ResetImageAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ResetImageAttribute.ResetImageAttributeResponse
instance Data.Data.Data Network.AWS.EC2.ResetImageAttribute.ResetImageAttributeResponse
instance GHC.Show.Show Network.AWS.EC2.ResetImageAttribute.ResetImageAttributeResponse
instance GHC.Read.Read Network.AWS.EC2.ResetImageAttribute.ResetImageAttributeResponse
instance GHC.Classes.Eq Network.AWS.EC2.ResetImageAttribute.ResetImageAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ResetImageAttribute.ResetImageAttribute
instance Data.Data.Data Network.AWS.EC2.ResetImageAttribute.ResetImageAttribute
instance GHC.Show.Show Network.AWS.EC2.ResetImageAttribute.ResetImageAttribute
instance GHC.Read.Read Network.AWS.EC2.ResetImageAttribute.ResetImageAttribute
instance GHC.Classes.Eq Network.AWS.EC2.ResetImageAttribute.ResetImageAttribute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ResetImageAttribute.ResetImageAttribute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ResetImageAttribute.ResetImageAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ResetImageAttribute.ResetImageAttribute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ResetImageAttribute.ResetImageAttribute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ResetImageAttribute.ResetImageAttribute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ResetImageAttribute.ResetImageAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ResetImageAttribute.ResetImageAttributeResponse


-- | Resets an attribute of an instance to its default value. To reset the
--   <tt>kernel</tt> or <tt>ramdisk</tt> , the instance must be in a
--   stopped state. To reset the <tt>sourceDestCheck</tt> , the instance
--   can be either running or stopped.
--   
--   The <tt>sourceDestCheck</tt> attribute controls whether
--   source<i>destination checking is enabled. The default value is
--   <tt>true</tt> , which means checking is enabled. This value must be
--   <tt>false</tt> for a NAT instance to perform NAT. For more
--   information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AmazonVPC<i>latest</i>UserGuide<i>VPC_NAT_Instance.html
--   NAT Instances&gt; in the </i>Amazon Virtual Private Cloud User Guide/
--   .
module Network.AWS.EC2.ResetInstanceAttribute

-- | Creates a value of <a>ResetInstanceAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>riaInstanceId</a> - The ID of the instance.</li>
--   <li><a>riaAttribute</a> - The attribute to reset. <i>Important:</i>
--   You can only reset the following attributes: <tt>kernel</tt> |
--   <tt>ramdisk</tt> | <tt>sourceDestCheck</tt> . To change an instance
--   attribute, use <tt>ModifyInstanceAttribute</tt> .</li>
--   </ul>
resetInstanceAttribute :: Text -> InstanceAttributeName -> ResetInstanceAttribute

-- | Contains the parameters for ResetInstanceAttribute.
--   
--   <i>See:</i> <a>resetInstanceAttribute</a> smart constructor.
data ResetInstanceAttribute

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
riaDryRun :: Lens' ResetInstanceAttribute (Maybe Bool)

-- | The ID of the instance.
riaInstanceId :: Lens' ResetInstanceAttribute Text

-- | The attribute to reset. <i>Important:</i> You can only reset the
--   following attributes: <tt>kernel</tt> | <tt>ramdisk</tt> |
--   <tt>sourceDestCheck</tt> . To change an instance attribute, use
--   <tt>ModifyInstanceAttribute</tt> .
riaAttribute :: Lens' ResetInstanceAttribute InstanceAttributeName

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

-- | <i>See:</i> <a>resetInstanceAttributeResponse</a> smart constructor.
data ResetInstanceAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttributeResponse
instance Data.Data.Data Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttributeResponse
instance GHC.Show.Show Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttributeResponse
instance GHC.Read.Read Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttributeResponse
instance GHC.Classes.Eq Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttribute
instance Data.Data.Data Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttribute
instance GHC.Show.Show Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttribute
instance GHC.Read.Read Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttribute
instance GHC.Classes.Eq Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttribute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttribute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttribute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttribute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttribute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttributeResponse


-- | Resets a network interface attribute. You can specify only one
--   attribute at a time.
module Network.AWS.EC2.ResetNetworkInterfaceAttribute

-- | Creates a value of <a>ResetNetworkInterfaceAttribute</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rniaSourceDestCheck</a> - The source/destination checking
--   attribute. Resets the value to <tt>true</tt> .</li>
--   <li><a>rniaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>rniaNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   </ul>
resetNetworkInterfaceAttribute :: Text -> ResetNetworkInterfaceAttribute

-- | Contains the parameters for ResetNetworkInterfaceAttribute.
--   
--   <i>See:</i> <a>resetNetworkInterfaceAttribute</a> smart constructor.
data ResetNetworkInterfaceAttribute

-- | The source/destination checking attribute. Resets the value to
--   <tt>true</tt> .
rniaSourceDestCheck :: Lens' ResetNetworkInterfaceAttribute (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rniaDryRun :: Lens' ResetNetworkInterfaceAttribute (Maybe Bool)

-- | The ID of the network interface.
rniaNetworkInterfaceId :: Lens' ResetNetworkInterfaceAttribute Text

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

-- | <i>See:</i> <a>resetNetworkInterfaceAttributeResponse</a> smart
--   constructor.
data ResetNetworkInterfaceAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttributeResponse
instance Data.Data.Data Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttributeResponse
instance GHC.Show.Show Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttributeResponse
instance GHC.Read.Read Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttributeResponse
instance GHC.Classes.Eq Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttribute
instance Data.Data.Data Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttribute
instance GHC.Show.Show Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttribute
instance GHC.Read.Read Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttribute
instance GHC.Classes.Eq Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttribute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttribute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttribute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttribute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttribute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttributeResponse


-- | Resets permission settings for the specified snapshot.
--   
--   For more information on modifying snapshot permissions, see <a>Sharing
--   Snapshots</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.ResetSnapshotAttribute

-- | Creates a value of <a>ResetSnapshotAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>rsaSnapshotId</a> - The ID of the snapshot.</li>
--   <li><a>rsaAttribute</a> - The attribute to reset. Currently, only the
--   attribute for permission to create volumes can be reset.</li>
--   </ul>
resetSnapshotAttribute :: Text -> SnapshotAttributeName -> ResetSnapshotAttribute

-- | Contains the parameters for ResetSnapshotAttribute.
--   
--   <i>See:</i> <a>resetSnapshotAttribute</a> smart constructor.
data ResetSnapshotAttribute

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rsaDryRun :: Lens' ResetSnapshotAttribute (Maybe Bool)

-- | The ID of the snapshot.
rsaSnapshotId :: Lens' ResetSnapshotAttribute Text

-- | The attribute to reset. Currently, only the attribute for permission
--   to create volumes can be reset.
rsaAttribute :: Lens' ResetSnapshotAttribute SnapshotAttributeName

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

-- | <i>See:</i> <a>resetSnapshotAttributeResponse</a> smart constructor.
data ResetSnapshotAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttributeResponse
instance Data.Data.Data Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttributeResponse
instance GHC.Show.Show Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttributeResponse
instance GHC.Read.Read Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttributeResponse
instance GHC.Classes.Eq Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttributeResponse
instance GHC.Generics.Generic Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttribute
instance Data.Data.Data Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttribute
instance GHC.Show.Show Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttribute
instance GHC.Read.Read Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttribute
instance GHC.Classes.Eq Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttribute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttribute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttribute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttribute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttribute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttribute
instance Control.DeepSeq.NFData Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttributeResponse


-- | Restores an Elastic IP address that was previously moved to the
--   EC2-VPC platform back to the EC2-Classic platform. You cannot move an
--   Elastic IP address that was originally allocated for use in EC2-VPC.
--   The Elastic IP address must not be associated with an instance or
--   network interface.
module Network.AWS.EC2.RestoreAddressToClassic

-- | Creates a value of <a>RestoreAddressToClassic</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ratcDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>ratcPublicIP</a> - The Elastic IP address.</li>
--   </ul>
restoreAddressToClassic :: Text -> RestoreAddressToClassic

-- | Contains the parameters for RestoreAddressToClassic.
--   
--   <i>See:</i> <a>restoreAddressToClassic</a> smart constructor.
data RestoreAddressToClassic

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
ratcDryRun :: Lens' RestoreAddressToClassic (Maybe Bool)

-- | The Elastic IP address.
ratcPublicIP :: Lens' RestoreAddressToClassic Text

-- | Creates a value of <a>RestoreAddressToClassicResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ratcrsStatus</a> - The move status for the IP address.</li>
--   <li><a>ratcrsPublicIP</a> - The Elastic IP address.</li>
--   <li><a>ratcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
restoreAddressToClassicResponse :: Int -> RestoreAddressToClassicResponse

-- | Contains the output of RestoreAddressToClassic.
--   
--   <i>See:</i> <a>restoreAddressToClassicResponse</a> smart constructor.
data RestoreAddressToClassicResponse

-- | The move status for the IP address.
ratcrsStatus :: Lens' RestoreAddressToClassicResponse (Maybe AddressStatus)

-- | The Elastic IP address.
ratcrsPublicIP :: Lens' RestoreAddressToClassicResponse (Maybe Text)

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


-- | <ul>
--   <li><i>EC2-VPC only</i> Removes one or more egress rules from a
--   security group for EC2-VPC. This action doesn't apply to security
--   groups for use in EC2-Classic. The values that you specify in the
--   revoke request (for example, ports) must match the existing rule's
--   values for the rule to be revoked.</li>
--   </ul>
--   
--   Each rule consists of the protocol and the IPv4 or IPv6 CIDR range or
--   source security group. For the TCP and UDP protocols, you must also
--   specify the destination port or range of ports. For the ICMP protocol,
--   you must also specify the ICMP type and code.
--   
--   Rule changes are propagated to instances within the security group as
--   quickly as possible. However, a small delay might occur.
module Network.AWS.EC2.RevokeSecurityGroupEgress

-- | Creates a value of <a>RevokeSecurityGroupEgress</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsgeFromPort</a> - The start of port range for the TCP and UDP
--   protocols, or an ICMP type number. We recommend that you specify the
--   port range in a set of IP permissions instead.</li>
--   <li><a>rsgeIPPermissions</a> - A set of IP permissions. You can't
--   specify a destination security group and a CIDR IP address range.</li>
--   <li><a>rsgeIPProtocol</a> - The IP protocol name or number. We
--   recommend that you specify the protocol in a set of IP permissions
--   instead.</li>
--   <li><a>rsgeToPort</a> - The end of port range for the TCP and UDP
--   protocols, or an ICMP type number. We recommend that you specify the
--   port range in a set of IP permissions instead.</li>
--   <li><a>rsgeCidrIP</a> - The CIDR IP address range. We recommend that
--   you specify the CIDR range in a set of IP permissions instead.</li>
--   <li><a>rsgeSourceSecurityGroupOwnerId</a> - The AWS account number for
--   a destination security group. To revoke outbound access to a
--   destination security group, we recommend that you use a set of IP
--   permissions instead.</li>
--   <li><a>rsgeSourceSecurityGroupName</a> - The name of a destination
--   security group. To revoke outbound access to a destination security
--   group, we recommend that you use a set of IP permissions instead.</li>
--   <li><a>rsgeDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>rsgeGroupId</a> - The ID of the security group.</li>
--   </ul>
revokeSecurityGroupEgress :: Text -> RevokeSecurityGroupEgress

-- | Contains the parameters for RevokeSecurityGroupEgress.
--   
--   <i>See:</i> <a>revokeSecurityGroupEgress</a> smart constructor.
data RevokeSecurityGroupEgress

-- | The start of port range for the TCP and UDP protocols, or an ICMP type
--   number. We recommend that you specify the port range in a set of IP
--   permissions instead.
rsgeFromPort :: Lens' RevokeSecurityGroupEgress (Maybe Int)

-- | A set of IP permissions. You can't specify a destination security
--   group and a CIDR IP address range.
rsgeIPPermissions :: Lens' RevokeSecurityGroupEgress [IPPermission]

-- | The IP protocol name or number. We recommend that you specify the
--   protocol in a set of IP permissions instead.
rsgeIPProtocol :: Lens' RevokeSecurityGroupEgress (Maybe Text)

-- | The end of port range for the TCP and UDP protocols, or an ICMP type
--   number. We recommend that you specify the port range in a set of IP
--   permissions instead.
rsgeToPort :: Lens' RevokeSecurityGroupEgress (Maybe Int)

-- | The CIDR IP address range. We recommend that you specify the CIDR
--   range in a set of IP permissions instead.
rsgeCidrIP :: Lens' RevokeSecurityGroupEgress (Maybe Text)

-- | The AWS account number for a destination security group. To revoke
--   outbound access to a destination security group, we recommend that you
--   use a set of IP permissions instead.
rsgeSourceSecurityGroupOwnerId :: Lens' RevokeSecurityGroupEgress (Maybe Text)

-- | The name of a destination security group. To revoke outbound access to
--   a destination security group, we recommend that you use a set of IP
--   permissions instead.
rsgeSourceSecurityGroupName :: Lens' RevokeSecurityGroupEgress (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rsgeDryRun :: Lens' RevokeSecurityGroupEgress (Maybe Bool)

-- | The ID of the security group.
rsgeGroupId :: Lens' RevokeSecurityGroupEgress Text

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

-- | <i>See:</i> <a>revokeSecurityGroupEgressResponse</a> smart
--   constructor.
data RevokeSecurityGroupEgressResponse
instance GHC.Generics.Generic Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgressResponse
instance Data.Data.Data Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgressResponse
instance GHC.Show.Show Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgressResponse
instance GHC.Read.Read Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgressResponse
instance GHC.Classes.Eq Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgressResponse
instance GHC.Generics.Generic Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgress
instance Data.Data.Data Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgress
instance GHC.Show.Show Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgress
instance GHC.Read.Read Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgress
instance GHC.Classes.Eq Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgress
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgress
instance Data.Hashable.Class.Hashable Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgress
instance Control.DeepSeq.NFData Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgress
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgress
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgress
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgress
instance Control.DeepSeq.NFData Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgressResponse


-- | Removes one or more ingress rules from a security group. The values
--   that you specify in the revoke request (for example, ports) must match
--   the existing rule's values for the rule to be removed.
--   
--   Each rule consists of the protocol and the CIDR range or source
--   security group. For the TCP and UDP protocols, you must also specify
--   the destination port or range of ports. For the ICMP protocol, you
--   must also specify the ICMP type and code.
--   
--   Rule changes are propagated to instances within the security group as
--   quickly as possible. However, a small delay might occur.
module Network.AWS.EC2.RevokeSecurityGroupIngress

-- | Creates a value of <a>RevokeSecurityGroupIngress</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsgiFromPort</a> - The start of port range for the TCP and UDP
--   protocols, or an ICMP type number. For the ICMP type number, use
--   <tt>-1</tt> to specify all ICMP types.</li>
--   <li><a>rsgiIPPermissions</a> - A set of IP permissions. You can't
--   specify a source security group and a CIDR IP address range.</li>
--   <li><a>rsgiIPProtocol</a> - The IP protocol name (<tt>tcp</tt> ,
--   <tt>udp</tt> , <tt>icmp</tt> ) or number (see <a>Protocol Numbers</a>
--   ). Use <tt>-1</tt> to specify all.</li>
--   <li><a>rsgiGroupId</a> - The ID of the security group. Required for a
--   security group in a nondefault VPC.</li>
--   <li><a>rsgiToPort</a> - The end of port range for the TCP and UDP
--   protocols, or an ICMP code number. For the ICMP code number, use
--   <tt>-1</tt> to specify all ICMP codes for the ICMP type.</li>
--   <li><a>rsgiCidrIP</a> - The CIDR IP address range. You can't specify
--   this parameter when specifying a source security group.</li>
--   <li><a>rsgiSourceSecurityGroupOwnerId</a> - [EC2-Classic] The AWS
--   account ID of the source security group, if the source security group
--   is in a different account. You can't specify this parameter in
--   combination with the following parameters: the CIDR IP address range,
--   the IP protocol, the start of the port range, and the end of the port
--   range. To revoke a specific rule for an IP protocol and port range,
--   use a set of IP permissions instead.</li>
--   <li><a>rsgiGroupName</a> - [EC2-Classic, default VPC] The name of the
--   security group.</li>
--   <li><a>rsgiSourceSecurityGroupName</a> - [EC2-Classic, default VPC]
--   The name of the source security group. You can't specify this
--   parameter in combination with the following parameters: the CIDR IP
--   address range, the start of the port range, the IP protocol, and the
--   end of the port range. For EC2-VPC, the source security group must be
--   in the same VPC. To revoke a specific rule for an IP protocol and port
--   range, use a set of IP permissions instead.</li>
--   <li><a>rsgiDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
revokeSecurityGroupIngress :: RevokeSecurityGroupIngress

-- | Contains the parameters for RevokeSecurityGroupIngress.
--   
--   <i>See:</i> <a>revokeSecurityGroupIngress</a> smart constructor.
data RevokeSecurityGroupIngress

-- | The start of port range for the TCP and UDP protocols, or an ICMP type
--   number. For the ICMP type number, use <tt>-1</tt> to specify all ICMP
--   types.
rsgiFromPort :: Lens' RevokeSecurityGroupIngress (Maybe Int)

-- | A set of IP permissions. You can't specify a source security group and
--   a CIDR IP address range.
rsgiIPPermissions :: Lens' RevokeSecurityGroupIngress [IPPermission]

-- | The IP protocol name (<tt>tcp</tt> , <tt>udp</tt> , <tt>icmp</tt> ) or
--   number (see <a>Protocol Numbers</a> ). Use <tt>-1</tt> to specify all.
rsgiIPProtocol :: Lens' RevokeSecurityGroupIngress (Maybe Text)

-- | The ID of the security group. Required for a security group in a
--   nondefault VPC.
rsgiGroupId :: Lens' RevokeSecurityGroupIngress (Maybe Text)

-- | The end of port range for the TCP and UDP protocols, or an ICMP code
--   number. For the ICMP code number, use <tt>-1</tt> to specify all ICMP
--   codes for the ICMP type.
rsgiToPort :: Lens' RevokeSecurityGroupIngress (Maybe Int)

-- | The CIDR IP address range. You can't specify this parameter when
--   specifying a source security group.
rsgiCidrIP :: Lens' RevokeSecurityGroupIngress (Maybe Text)

-- | <ul>
--   <li><i>EC2-Classic</i> The AWS account ID of the source security
--   group, if the source security group is in a different account. You
--   can't specify this parameter in combination with the following
--   parameters: the CIDR IP address range, the IP protocol, the start of
--   the port range, and the end of the port range. To revoke a specific
--   rule for an IP protocol and port range, use a set of IP permissions
--   instead.</li>
--   </ul>
rsgiSourceSecurityGroupOwnerId :: Lens' RevokeSecurityGroupIngress (Maybe Text)

-- | <ul>
--   <li><i>EC2-Classic, default VPC</i> The name of the security
--   group.</li>
--   </ul>
rsgiGroupName :: Lens' RevokeSecurityGroupIngress (Maybe Text)

-- | <ul>
--   <li><i>EC2-Classic, default VPC</i> The name of the source security
--   group. You can't specify this parameter in combination with the
--   following parameters: the CIDR IP address range, the start of the port
--   range, the IP protocol, and the end of the port range. For EC2-VPC,
--   the source security group must be in the same VPC. To revoke a
--   specific rule for an IP protocol and port range, use a set of IP
--   permissions instead.</li>
--   </ul>
rsgiSourceSecurityGroupName :: Lens' RevokeSecurityGroupIngress (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rsgiDryRun :: Lens' RevokeSecurityGroupIngress (Maybe Bool)

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

-- | <i>See:</i> <a>revokeSecurityGroupIngressResponse</a> smart
--   constructor.
data RevokeSecurityGroupIngressResponse
instance GHC.Generics.Generic Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngressResponse
instance Data.Data.Data Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngressResponse
instance GHC.Show.Show Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngressResponse
instance GHC.Read.Read Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngressResponse
instance GHC.Classes.Eq Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngressResponse
instance GHC.Generics.Generic Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngress
instance Data.Data.Data Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngress
instance GHC.Show.Show Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngress
instance GHC.Read.Read Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngress
instance GHC.Classes.Eq Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngress
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngress
instance Data.Hashable.Class.Hashable Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngress
instance Control.DeepSeq.NFData Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngress
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngress
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngress
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngress
instance Control.DeepSeq.NFData Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngressResponse


-- | Launches the specified number of instances using an AMI for which you
--   have permissions.
--   
--   You can specify a number of options, or leave the default options. The
--   following rules apply:
--   
--   <ul>
--   <li>[EC2-VPC] If you don't specify a subnet ID, we choose a default
--   subnet from your default VPC for you. If you don't have a default VPC,
--   you must specify a subnet ID in the request.</li>
--   <li>[EC2-Classic] If don't specify an Availability Zone, we choose one
--   for you.</li>
--   <li>Some instance types must be launched into a VPC. If you do not
--   have a default VPC, or if you do not specify a subnet ID, the request
--   fails. For more information, see <a>Instance Types Available Only in a
--   VPC</a> .</li>
--   <li>[EC2-VPC] All instances have a network interface with a primary
--   private IPv4 address. If you don't specify this address, we choose one
--   from the IPv4 range of your subnet.</li>
--   <li>Not all instance types support IPv6 addresses. For more
--   information, see <a>Amazon EC2 Instance Types</a> .</li>
--   <li>If you don't specify a security group ID, we use the default
--   security group. For more information, see <a>Security Groups</a>
--   .</li>
--   <li>If any of the AMIs have a product code attached for which the user
--   has not subscribed, the request fails.</li>
--   </ul>
--   
--   To ensure faster instance launches, break up large requests into
--   smaller batches. For example, create 5 separate launch requests for
--   100 instances each instead of 1 launch request for 500 instances.
--   
--   An instance is ready for you to use when it's in the <tt>running</tt>
--   state. You can check the state of your instance using
--   <tt>DescribeInstances</tt> . After launch, you can apply tags to your
--   running instance (requires a resource ID). For more information, see
--   <tt>CreateTags</tt> and <a>Tagging Your Amazon EC2 Resources</a> .
--   
--   Linux instances have access to the public key of the key pair at boot.
--   You can use this key to provide secure access to the instance. Amazon
--   EC2 public images use this feature to provide secure access without
--   passwords. For more information, see <a>Key Pairs</a> in the <i>Amazon
--   Elastic Compute Cloud User Guide</i> .
--   
--   For troubleshooting, see <a>What To Do If An Instance Immediately
--   Terminates</a> , and <a>Troubleshooting Connecting to Your
--   Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.RunInstances

-- | Creates a value of <a>RunInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rAdditionalInfo</a> - Reserved.</li>
--   <li><a>rSecurityGroupIds</a> - One or more security group IDs. You can
--   create a security group using <tt>CreateSecurityGroup</tt> . Default:
--   Amazon EC2 uses the default security group.</li>
--   <li><a>rSecurityGroups</a> - [EC2-Classic, default VPC] One or more
--   security group names. For a nondefault VPC, you must use security
--   group IDs instead. Default: Amazon EC2 uses the default security
--   group.</li>
--   <li><a>rClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request. For more
--   information, see <a>Ensuring Idempotency</a> . Constraints: Maximum 64
--   ASCII characters</li>
--   <li><a>rDisableAPITermination</a> - If you set this parameter to
--   <tt>true</tt> , you can't terminate the instance using the Amazon EC2
--   console, CLI, or API; otherwise, you can. To change this attribute to
--   <tt>false</tt> after launch, use <tt>ModifyInstanceAttribute</tt> .
--   Alternatively, if you set <tt>InstanceInitiatedShutdownBehavior</tt>
--   to <tt>terminate</tt> , you can terminate the instance by running the
--   shutdown command from the instance. Default: <tt>false</tt></li>
--   <li><a>rKeyName</a> - The name of the key pair. You can create a key
--   pair using <tt>CreateKeyPair</tt> or <tt>ImportKeyPair</tt> .
--   <i>Important:</i> If you do not specify a key pair, you can't connect
--   to the instance unless you choose an AMI that is configured to allow
--   users another way to log in.</li>
--   <li><a>rNetworkInterfaces</a> - One or more network interfaces.</li>
--   <li><a>rRAMDiskId</a> - The ID of the RAM disk. <i>Important:</i> We
--   recommend that you use PV-GRUB instead of kernels and RAM disks. For
--   more information, see <a>PV-GRUB</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i> .</li>
--   <li><a>rSubnetId</a> - [EC2-VPC] The ID of the subnet to launch the
--   instance into.</li>
--   <li><a>rKernelId</a> - The ID of the kernel. <i>Important:</i> We
--   recommend that you use PV-GRUB instead of kernels and RAM disks. For
--   more information, see <a>PV-GRUB</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i> .</li>
--   <li><a>rInstanceType</a> - The instance type. For more information,
--   see <a>Instance Types</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> . Default: <tt>m1.small</tt></li>
--   <li><a>rEBSOptimized</a> - Indicates whether the instance is optimized
--   for EBS I<i>O. This optimization provides dedicated throughput to
--   Amazon EBS and an optimized configuration stack to provide optimal EBS
--   I</i>O performance. This optimization isn't available with all
--   instance types. Additional usage charges apply when using an
--   EBS-optimized instance. Default: <tt>false</tt></li>
--   <li><a>rUserData</a> - The user data to make available to the
--   instance. For more information, see <a>Running Commands on Your Linux
--   Instance at Launch</a> (Linux) and <a>Adding User Data</a> (Windows).
--   If you are using an AWS SDK or command line tool, Base64-encoding is
--   performed for you, and you can load the text from a file. Otherwise,
--   you must provide Base64-encoded text.</li>
--   <li><a>rMonitoring</a> - The monitoring for the instance.</li>
--   <li><a>rIPv6AddressCount</a> - [EC2-VPC] A number of IPv6 addresses to
--   associate with the primary network interface. Amazon EC2 chooses the
--   IPv6 addresses from the range of your subnet. You cannot specify this
--   option and the option to assign specific IPv6 addresses in the same
--   request. You can specify this option if you've specified a minimum
--   number of instances to launch.</li>
--   <li><a>rIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>rPrivateIPAddress</a> - [EC2-VPC] The primary IPv4 address. You
--   must specify a value from the IPv4 address range of the subnet. Only
--   one private IP address can be designated as primary. You can't specify
--   this option if you've specified the option to designate a private IP
--   address as the primary IP address in a network interface
--   specification. You cannot specify this option if you're launching more
--   than one instance in the request.</li>
--   <li><a>rInstanceInitiatedShutdownBehavior</a> - Indicates whether an
--   instance stops or terminates when you initiate shutdown from the
--   instance (using the operating system command for system shutdown).
--   Default: <tt>stop</tt></li>
--   <li><a>rBlockDeviceMappings</a> - The block device mapping.
--   <i>Important:</i> Supplying both a snapshot ID and an encryption value
--   as arguments for block-device mapping results in an error. This is
--   because only blank volumes can be encrypted on start, and these are
--   not created from a snapshot. If a snapshot is the basis for the
--   volume, it contains data by definition and its encryption status
--   cannot be changed using this action.</li>
--   <li><a>rDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>rPlacement</a> - The placement for the instance.</li>
--   <li><a>rIPv6Addresses</a> - [EC2-VPC] Specify one or more IPv6
--   addresses from the range of the subnet to associate with the primary
--   network interface. You cannot specify this option and the option to
--   assign a number of IPv6 addresses in the same request. You cannot
--   specify this option if you've specified a minimum number of instances
--   to launch.</li>
--   <li><a>rImageId</a> - The ID of the AMI, which you can get by calling
--   <tt>DescribeImages</tt> .</li>
--   <li><a>rMinCount</a> - The minimum number of instances to launch. If
--   you specify a minimum that is more instances than Amazon EC2 can
--   launch in the target Availability Zone, Amazon EC2 launches no
--   instances. Constraints: Between 1 and the maximum number you're
--   allowed for the specified instance type. For more information about
--   the default limits, and how to request an increase, see <a>How many
--   instances can I run in Amazon EC2</a> in the Amazon EC2 General
--   FAQ.</li>
--   <li><a>rMaxCount</a> - The maximum number of instances to launch. If
--   you specify more instances than Amazon EC2 can launch in the target
--   Availability Zone, Amazon EC2 launches the largest possible number of
--   instances above <tt>MinCount</tt> . Constraints: Between 1 and the
--   maximum number you're allowed for the specified instance type. For
--   more information about the default limits, and how to request an
--   increase, see <a>How many instances can I run in Amazon EC2</a> in the
--   Amazon EC2 FAQ.</li>
--   </ul>
runInstances :: Text -> Int -> Int -> RunInstances

-- | Contains the parameters for RunInstances.
--   
--   <i>See:</i> <a>runInstances</a> smart constructor.
data RunInstances

-- | Reserved.
rAdditionalInfo :: Lens' RunInstances (Maybe Text)

-- | One or more security group IDs. You can create a security group using
--   <tt>CreateSecurityGroup</tt> . Default: Amazon EC2 uses the default
--   security group.
rSecurityGroupIds :: Lens' RunInstances [Text]

-- | <ul>
--   <li><i>EC2-Classic, default VPC</i> One or more security group names.
--   For a nondefault VPC, you must use security group IDs instead.
--   Default: Amazon EC2 uses the default security group.</li>
--   </ul>
rSecurityGroups :: Lens' RunInstances [Text]

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request. For more information, see <a>Ensuring
--   Idempotency</a> . Constraints: Maximum 64 ASCII characters
rClientToken :: Lens' RunInstances (Maybe Text)

-- | If you set this parameter to <tt>true</tt> , you can't terminate the
--   instance using the Amazon EC2 console, CLI, or API; otherwise, you
--   can. To change this attribute to <tt>false</tt> after launch, use
--   <tt>ModifyInstanceAttribute</tt> . Alternatively, if you set
--   <tt>InstanceInitiatedShutdownBehavior</tt> to <tt>terminate</tt> , you
--   can terminate the instance by running the shutdown command from the
--   instance. Default: <tt>false</tt>
rDisableAPITermination :: Lens' RunInstances (Maybe Bool)

-- | The name of the key pair. You can create a key pair using
--   <tt>CreateKeyPair</tt> or <tt>ImportKeyPair</tt> . <i>Important:</i>
--   If you do not specify a key pair, you can't connect to the instance
--   unless you choose an AMI that is configured to allow users another way
--   to log in.
rKeyName :: Lens' RunInstances (Maybe Text)

-- | One or more network interfaces.
rNetworkInterfaces :: Lens' RunInstances [InstanceNetworkInterfaceSpecification]

-- | The ID of the RAM disk. <i>Important:</i> We recommend that you use
--   PV-GRUB instead of kernels and RAM disks. For more information, see
--   <a>PV-GRUB</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
rRAMDiskId :: Lens' RunInstances (Maybe Text)

-- | <ul>
--   <li><i>EC2-VPC</i> The ID of the subnet to launch the instance
--   into.</li>
--   </ul>
rSubnetId :: Lens' RunInstances (Maybe Text)

-- | The ID of the kernel. <i>Important:</i> We recommend that you use
--   PV-GRUB instead of kernels and RAM disks. For more information, see
--   <a>PV-GRUB</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
rKernelId :: Lens' RunInstances (Maybe Text)

-- | The instance type. For more information, see <a>Instance Types</a> in
--   the <i>Amazon Elastic Compute Cloud User Guide</i> . Default:
--   <tt>m1.small</tt>
rInstanceType :: Lens' RunInstances (Maybe InstanceType)

-- | Indicates whether the instance is optimized for EBS I<i>O. This
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal EBS I</i>O
--   performance. This optimization isn't available with all instance
--   types. Additional usage charges apply when using an EBS-optimized
--   instance. Default: <tt>false</tt>
rEBSOptimized :: Lens' RunInstances (Maybe Bool)

-- | The user data to make available to the instance. For more information,
--   see <a>Running Commands on Your Linux Instance at Launch</a> (Linux)
--   and <a>Adding User Data</a> (Windows). If you are using an AWS SDK or
--   command line tool, Base64-encoding is performed for you, and you can
--   load the text from a file. Otherwise, you must provide Base64-encoded
--   text.
rUserData :: Lens' RunInstances (Maybe Text)

-- | The monitoring for the instance.
rMonitoring :: Lens' RunInstances (Maybe RunInstancesMonitoringEnabled)

-- | <ul>
--   <li><i>EC2-VPC</i> A number of IPv6 addresses to associate with the
--   primary network interface. Amazon EC2 chooses the IPv6 addresses from
--   the range of your subnet. You cannot specify this option and the
--   option to assign specific IPv6 addresses in the same request. You can
--   specify this option if you've specified a minimum number of instances
--   to launch.</li>
--   </ul>
rIPv6AddressCount :: Lens' RunInstances (Maybe Int)

-- | The IAM instance profile.
rIAMInstanceProfile :: Lens' RunInstances (Maybe IAMInstanceProfileSpecification)

-- | <ul>
--   <li><i>EC2-VPC</i> The primary IPv4 address. You must specify a value
--   from the IPv4 address range of the subnet. Only one private IP address
--   can be designated as primary. You can't specify this option if you've
--   specified the option to designate a private IP address as the primary
--   IP address in a network interface specification. You cannot specify
--   this option if you're launching more than one instance in the
--   request.</li>
--   </ul>
rPrivateIPAddress :: Lens' RunInstances (Maybe Text)

-- | Indicates whether an instance stops or terminates when you initiate
--   shutdown from the instance (using the operating system command for
--   system shutdown). Default: <tt>stop</tt>
rInstanceInitiatedShutdownBehavior :: Lens' RunInstances (Maybe ShutdownBehavior)

-- | The block device mapping. <i>Important:</i> Supplying both a snapshot
--   ID and an encryption value as arguments for block-device mapping
--   results in an error. This is because only blank volumes can be
--   encrypted on start, and these are not created from a snapshot. If a
--   snapshot is the basis for the volume, it contains data by definition
--   and its encryption status cannot be changed using this action.
rBlockDeviceMappings :: Lens' RunInstances [BlockDeviceMapping]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rDryRun :: Lens' RunInstances (Maybe Bool)

-- | The placement for the instance.
rPlacement :: Lens' RunInstances (Maybe Placement)

-- | <ul>
--   <li><i>EC2-VPC</i> Specify one or more IPv6 addresses from the range
--   of the subnet to associate with the primary network interface. You
--   cannot specify this option and the option to assign a number of IPv6
--   addresses in the same request. You cannot specify this option if
--   you've specified a minimum number of instances to launch.</li>
--   </ul>
rIPv6Addresses :: Lens' RunInstances [InstanceIPv6Address]

-- | The ID of the AMI, which you can get by calling
--   <tt>DescribeImages</tt> .
rImageId :: Lens' RunInstances Text

-- | The minimum number of instances to launch. If you specify a minimum
--   that is more instances than Amazon EC2 can launch in the target
--   Availability Zone, Amazon EC2 launches no instances. Constraints:
--   Between 1 and the maximum number you're allowed for the specified
--   instance type. For more information about the default limits, and how
--   to request an increase, see <a>How many instances can I run in Amazon
--   EC2</a> in the Amazon EC2 General FAQ.
rMinCount :: Lens' RunInstances Int

-- | The maximum number of instances to launch. If you specify more
--   instances than Amazon EC2 can launch in the target Availability Zone,
--   Amazon EC2 launches the largest possible number of instances above
--   <tt>MinCount</tt> . Constraints: Between 1 and the maximum number
--   you're allowed for the specified instance type. For more information
--   about the default limits, and how to request an increase, see <a>How
--   many instances can I run in Amazon EC2</a> in the Amazon EC2 FAQ.
rMaxCount :: Lens' RunInstances Int

-- | Creates a value of <a>Reservation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rGroups</a> - [EC2-Classic only] One or more security
--   groups.</li>
--   <li><a>rInstances</a> - One or more instances.</li>
--   <li><a>rRequesterId</a> - The ID of the requester that launched the
--   instances on your behalf (for example, AWS Management Console or Auto
--   Scaling).</li>
--   <li><a>rReservationId</a> - The ID of the reservation.</li>
--   <li><a>rOwnerId</a> - The ID of the AWS account that owns the
--   reservation.</li>
--   </ul>
reservation :: Text -> Text -> Reservation

-- | Describes a reservation.
--   
--   <i>See:</i> <a>reservation</a> smart constructor.
data Reservation

-- | <ul>
--   <li><i>EC2-Classic only</i> One or more security groups.</li>
--   </ul>
rGroups :: Lens' Reservation [GroupIdentifier]

-- | One or more instances.
rInstances :: Lens' Reservation [Instance]

-- | The ID of the requester that launched the instances on your behalf
--   (for example, AWS Management Console or Auto Scaling).
rRequesterId :: Lens' Reservation (Maybe Text)

-- | The ID of the reservation.
rReservationId :: Lens' Reservation Text

-- | The ID of the AWS account that owns the reservation.
rOwnerId :: Lens' Reservation Text
instance GHC.Generics.Generic Network.AWS.EC2.RunInstances.RunInstances
instance Data.Data.Data Network.AWS.EC2.RunInstances.RunInstances
instance GHC.Show.Show Network.AWS.EC2.RunInstances.RunInstances
instance GHC.Read.Read Network.AWS.EC2.RunInstances.RunInstances
instance GHC.Classes.Eq Network.AWS.EC2.RunInstances.RunInstances
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.RunInstances.RunInstances
instance Data.Hashable.Class.Hashable Network.AWS.EC2.RunInstances.RunInstances
instance Control.DeepSeq.NFData Network.AWS.EC2.RunInstances.RunInstances
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.RunInstances.RunInstances
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.RunInstances.RunInstances
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.RunInstances.RunInstances


-- | Launches the specified Scheduled Instances.
--   
--   Before you can launch a Scheduled Instance, you must purchase it and
--   obtain an identifier using <tt>PurchaseScheduledInstances</tt> .
--   
--   You must launch a Scheduled Instance during its scheduled time period.
--   You can't stop or reboot a Scheduled Instance, but you can terminate
--   it as needed. If you terminate a Scheduled Instance before the current
--   scheduled time period ends, you can launch it again after a few
--   minutes. For more information, see <a>Scheduled Instances</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.RunScheduledInstances

-- | Creates a value of <a>RunScheduledInstances</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsiClientToken</a> - Unique, case-sensitive identifier that
--   ensures the idempotency of the request. For more information, see
--   <a>Ensuring Idempotency</a> .</li>
--   <li><a>rsiInstanceCount</a> - The number of instances. Default: 1</li>
--   <li><a>rsiDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>rsiScheduledInstanceId</a> - The Scheduled Instance ID.</li>
--   <li><a>rsiLaunchSpecification</a> - The launch specification. You must
--   match the instance type, Availability Zone, network, and platform of
--   the schedule that you purchased.</li>
--   </ul>
runScheduledInstances :: Text -> ScheduledInstancesLaunchSpecification -> RunScheduledInstances

-- | Contains the parameters for RunScheduledInstances.
--   
--   <i>See:</i> <a>runScheduledInstances</a> smart constructor.
data RunScheduledInstances

-- | Unique, case-sensitive identifier that ensures the idempotency of the
--   request. For more information, see <a>Ensuring Idempotency</a> .
rsiClientToken :: Lens' RunScheduledInstances (Maybe Text)

-- | The number of instances. Default: 1
rsiInstanceCount :: Lens' RunScheduledInstances (Maybe Int)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rsiDryRun :: Lens' RunScheduledInstances (Maybe Bool)

-- | The Scheduled Instance ID.
rsiScheduledInstanceId :: Lens' RunScheduledInstances Text

-- | The launch specification. You must match the instance type,
--   Availability Zone, network, and platform of the schedule that you
--   purchased.
rsiLaunchSpecification :: Lens' RunScheduledInstances ScheduledInstancesLaunchSpecification

-- | Creates a value of <a>RunScheduledInstancesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrsInstanceIdSet</a> - The IDs of the newly launched
--   instances.</li>
--   <li><a>rrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
runScheduledInstancesResponse :: Int -> RunScheduledInstancesResponse

-- | Contains the output of RunScheduledInstances.
--   
--   <i>See:</i> <a>runScheduledInstancesResponse</a> smart constructor.
data RunScheduledInstancesResponse

-- | The IDs of the newly launched instances.
rrsInstanceIdSet :: Lens' RunScheduledInstancesResponse [Text]

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


-- | Starts an Amazon EBS-backed AMI that you've previously stopped.
--   
--   Instances that use Amazon EBS volumes as their root devices can be
--   quickly stopped and started. When an instance is stopped, the compute
--   resources are released and you are not billed for hourly instance
--   usage. However, your root partition Amazon EBS volume remains,
--   continues to persist your data, and you are charged for Amazon EBS
--   volume usage. You can restart your instance at any time. Each time you
--   transition an instance from stopped to started, Amazon EC2 charges a
--   full instance hour, even if transitions happen multiple times within a
--   single hour.
--   
--   Before stopping an instance, make sure it is in a state from which it
--   can be restarted. Stopping an instance does not preserve data stored
--   in RAM.
--   
--   Performing this operation on an instance that uses an instance store
--   as its root device returns an error.
--   
--   For more information, see <a>Stopping Instances</a> in the <i>Amazon
--   Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.StartInstances

-- | Creates a value of <a>StartInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sAdditionalInfo</a> - Reserved.</li>
--   <li><a>sDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>sInstanceIds</a> - One or more instance IDs.</li>
--   </ul>
startInstances :: StartInstances

-- | Contains the parameters for StartInstances.
--   
--   <i>See:</i> <a>startInstances</a> smart constructor.
data StartInstances

-- | Reserved.
sAdditionalInfo :: Lens' StartInstances (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
sDryRun :: Lens' StartInstances (Maybe Bool)

-- | One or more instance IDs.
sInstanceIds :: Lens' StartInstances [Text]

-- | Creates a value of <a>StartInstancesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>srsStartingInstances</a> - Information about one or more
--   started instances.</li>
--   <li><a>srsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
startInstancesResponse :: Int -> StartInstancesResponse

-- | Contains the output of StartInstances.
--   
--   <i>See:</i> <a>startInstancesResponse</a> smart constructor.
data StartInstancesResponse

-- | Information about one or more started instances.
srsStartingInstances :: Lens' StartInstancesResponse [InstanceStateChange]

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


-- | Stops an Amazon EBS-backed instance.
--   
--   We don't charge hourly usage for a stopped instance, or data transfer
--   fees; however, your root partition Amazon EBS volume remains,
--   continues to persist your data, and you are charged for Amazon EBS
--   volume usage. Each time you transition an instance from stopped to
--   started, Amazon EC2 charges a full instance hour, even if transitions
--   happen multiple times within a single hour.
--   
--   You can't start or stop Spot instances, and you can't stop instance
--   store-backed instances.
--   
--   When you stop an instance, we shut it down. You can restart your
--   instance at any time. Before stopping an instance, make sure it is in
--   a state from which it can be restarted. Stopping an instance does not
--   preserve data stored in RAM.
--   
--   Stopping an instance is different to rebooting or terminating it. For
--   example, when you stop an instance, the root device and any other
--   devices attached to the instance persist. When you terminate an
--   instance, the root device and any other devices attached during the
--   instance launch are automatically deleted. For more information about
--   the differences between rebooting, stopping, and terminating
--   instances, see <a>Instance Lifecycle</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> .
--   
--   When you stop an instance, we attempt to shut it down forcibly after a
--   short while. If your instance appears stuck in the stopping state
--   after a period of time, there may be an issue with the underlying host
--   computer. For more information, see <a>Troubleshooting Stopping Your
--   Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.StopInstances

-- | Creates a value of <a>StopInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siForce</a> - Forces the instances to stop. The instances do
--   not have an opportunity to flush file system caches or file system
--   metadata. If you use this option, you must perform file system check
--   and repair procedures. This option is not recommended for Windows
--   instances. Default: <tt>false</tt></li>
--   <li><a>siDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>siInstanceIds</a> - One or more instance IDs.</li>
--   </ul>
stopInstances :: StopInstances

-- | Contains the parameters for StopInstances.
--   
--   <i>See:</i> <a>stopInstances</a> smart constructor.
data StopInstances

-- | Forces the instances to stop. The instances do not have an opportunity
--   to flush file system caches or file system metadata. If you use this
--   option, you must perform file system check and repair procedures. This
--   option is not recommended for Windows instances. Default:
--   <tt>false</tt>
siForce :: Lens' StopInstances (Maybe Bool)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
siDryRun :: Lens' StopInstances (Maybe Bool)

-- | One or more instance IDs.
siInstanceIds :: Lens' StopInstances [Text]

-- | Creates a value of <a>StopInstancesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sirsStoppingInstances</a> - Information about one or more
--   stopped instances.</li>
--   <li><a>sirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
stopInstancesResponse :: Int -> StopInstancesResponse

-- | Contains the output of StopInstances.
--   
--   <i>See:</i> <a>stopInstancesResponse</a> smart constructor.
data StopInstancesResponse

-- | Information about one or more stopped instances.
sirsStoppingInstances :: Lens' StopInstancesResponse [InstanceStateChange]

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


-- | Shuts down one or more instances. This operation is idempotent; if you
--   terminate an instance more than once, each call succeeds.
--   
--   If you specify multiple instances and the request fails (for example,
--   because of a single incorrect instance ID), none of the instances are
--   terminated.
--   
--   Terminated instances remain visible after termination (for
--   approximately one hour).
--   
--   By default, Amazon EC2 deletes all EBS volumes that were attached when
--   the instance launched. Volumes attached after instance launch continue
--   running.
--   
--   You can stop, start, and terminate EBS-backed instances. You can only
--   terminate instance store-backed instances. What happens to an instance
--   differs if you stop it or terminate it. For example, when you stop an
--   instance, the root device and any other devices attached to the
--   instance persist. When you terminate an instance, any attached EBS
--   volumes with the <tt>DeleteOnTermination</tt> block device mapping
--   parameter set to <tt>true</tt> are automatically deleted. For more
--   information about the differences between stopping and terminating
--   instances, see <a>Instance Lifecycle</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> .
--   
--   For more information about troubleshooting, see <a>Troubleshooting
--   Terminating Your Instance</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
module Network.AWS.EC2.TerminateInstances

-- | Creates a value of <a>TerminateInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tiDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>tiInstanceIds</a> - One or more instance IDs. Constraints: Up
--   to 1000 instance IDs. We recommend breaking up this request into
--   smaller batches.</li>
--   </ul>
terminateInstances :: TerminateInstances

-- | Contains the parameters for TerminateInstances.
--   
--   <i>See:</i> <a>terminateInstances</a> smart constructor.
data TerminateInstances

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
tiDryRun :: Lens' TerminateInstances (Maybe Bool)

-- | One or more instance IDs. Constraints: Up to 1000 instance IDs. We
--   recommend breaking up this request into smaller batches.
tiInstanceIds :: Lens' TerminateInstances [Text]

-- | Creates a value of <a>TerminateInstancesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tirsTerminatingInstances</a> - Information about one or more
--   terminated instances.</li>
--   <li><a>tirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
terminateInstancesResponse :: Int -> TerminateInstancesResponse

-- | Contains the output of TerminateInstances.
--   
--   <i>See:</i> <a>terminateInstancesResponse</a> smart constructor.
data TerminateInstancesResponse

-- | Information about one or more terminated instances.
tirsTerminatingInstances :: Lens' TerminateInstancesResponse [InstanceStateChange]

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


-- | Unassigns one or more IPv6 addresses from a network interface.
module Network.AWS.EC2.UnassignIPv6Addresses

-- | Creates a value of <a>UnassignIPv6Addresses</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uiaNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>uiaIPv6Addresses</a> - The IPv6 addresses to unassign from the
--   network interface.</li>
--   </ul>
unassignIPv6Addresses :: Text -> UnassignIPv6Addresses

-- | <i>See:</i> <a>unassignIPv6Addresses</a> smart constructor.
data UnassignIPv6Addresses

-- | The ID of the network interface.
uiaNetworkInterfaceId :: Lens' UnassignIPv6Addresses Text

-- | The IPv6 addresses to unassign from the network interface.
uiaIPv6Addresses :: Lens' UnassignIPv6Addresses [Text]

-- | Creates a value of <a>UnassignIPv6AddressesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uiarsNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>uiarsUnassignedIPv6Addresses</a> - The IPv6 addresses that have
--   been unassigned from the network interface.</li>
--   <li><a>uiarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
unassignIPv6AddressesResponse :: Int -> UnassignIPv6AddressesResponse

-- | <i>See:</i> <a>unassignIPv6AddressesResponse</a> smart constructor.
data UnassignIPv6AddressesResponse

-- | The ID of the network interface.
uiarsNetworkInterfaceId :: Lens' UnassignIPv6AddressesResponse (Maybe Text)

-- | The IPv6 addresses that have been unassigned from the network
--   interface.
uiarsUnassignedIPv6Addresses :: Lens' UnassignIPv6AddressesResponse [Text]

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


-- | Unassigns one or more secondary private IP addresses from a network
--   interface.
module Network.AWS.EC2.UnassignPrivateIPAddresses

-- | Creates a value of <a>UnassignPrivateIPAddresses</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upiaNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>upiaPrivateIPAddresses</a> - The secondary private IP addresses
--   to unassign from the network interface. You can specify this option
--   multiple times to unassign more than one IP address.</li>
--   </ul>
unassignPrivateIPAddresses :: Text -> UnassignPrivateIPAddresses

-- | Contains the parameters for UnassignPrivateIpAddresses.
--   
--   <i>See:</i> <a>unassignPrivateIPAddresses</a> smart constructor.
data UnassignPrivateIPAddresses

-- | The ID of the network interface.
upiaNetworkInterfaceId :: Lens' UnassignPrivateIPAddresses Text

-- | The secondary private IP addresses to unassign from the network
--   interface. You can specify this option multiple times to unassign more
--   than one IP address.
upiaPrivateIPAddresses :: Lens' UnassignPrivateIPAddresses [Text]

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

-- | <i>See:</i> <a>unassignPrivateIPAddressesResponse</a> smart
--   constructor.
data UnassignPrivateIPAddressesResponse
instance GHC.Generics.Generic Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddressesResponse
instance Data.Data.Data Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddressesResponse
instance GHC.Show.Show Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddressesResponse
instance GHC.Read.Read Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddressesResponse
instance GHC.Classes.Eq Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddressesResponse
instance GHC.Generics.Generic Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddresses
instance Data.Data.Data Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddresses
instance GHC.Show.Show Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddresses
instance GHC.Read.Read Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddresses
instance GHC.Classes.Eq Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddresses
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddresses
instance Data.Hashable.Class.Hashable Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddresses
instance Control.DeepSeq.NFData Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddresses
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddresses
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddresses
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddresses
instance Control.DeepSeq.NFData Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddressesResponse


-- | Disables detailed monitoring for a running instance. For more
--   information, see <a>Monitoring Your Instances and Volumes</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.UnmonitorInstances

-- | Creates a value of <a>UnmonitorInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uiDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>uiInstanceIds</a> - One or more instance IDs.</li>
--   </ul>
unmonitorInstances :: UnmonitorInstances

-- | Contains the parameters for UnmonitorInstances.
--   
--   <i>See:</i> <a>unmonitorInstances</a> smart constructor.
data UnmonitorInstances

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
uiDryRun :: Lens' UnmonitorInstances (Maybe Bool)

-- | One or more instance IDs.
uiInstanceIds :: Lens' UnmonitorInstances [Text]

-- | Creates a value of <a>UnmonitorInstancesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uirsInstanceMonitorings</a> - The monitoring information.</li>
--   <li><a>uirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
unmonitorInstancesResponse :: Int -> UnmonitorInstancesResponse

-- | Contains the output of UnmonitorInstances.
--   
--   <i>See:</i> <a>unmonitorInstancesResponse</a> smart constructor.
data UnmonitorInstancesResponse

-- | The monitoring information.
uirsInstanceMonitorings :: Lens' UnmonitorInstancesResponse [InstanceMonitoring]

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


-- | Creates an import volume task using metadata from the specified disk
--   image.For more information, see <a>Importing Disks to Amazon EBS</a> .
--   
--   For information about the import manifest referenced by this API
--   action, see <a>VM Import Manifest</a> .
module Network.AWS.EC2.ImportVolume

-- | Creates a value of <a>ImportVolume</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ivDescription</a> - A description of the volume.</li>
--   <li><a>ivDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>ivAvailabilityZone</a> - The Availability Zone for the
--   resulting EBS volume.</li>
--   <li><a>ivImage</a> - The disk image.</li>
--   <li><a>ivVolume</a> - The volume size.</li>
--   </ul>
importVolume :: Text -> DiskImageDetail -> VolumeDetail -> ImportVolume

-- | Contains the parameters for ImportVolume.
--   
--   <i>See:</i> <a>importVolume</a> smart constructor.
data ImportVolume

-- | A description of the volume.
ivDescription :: Lens' ImportVolume (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
ivDryRun :: Lens' ImportVolume (Maybe Bool)

-- | The Availability Zone for the resulting EBS volume.
ivAvailabilityZone :: Lens' ImportVolume Text

-- | The disk image.
ivImage :: Lens' ImportVolume DiskImageDetail

-- | The volume size.
ivVolume :: Lens' ImportVolume VolumeDetail

-- | Creates a value of <a>ImportVolumeResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ivrsConversionTask</a> - Information about the conversion
--   task.</li>
--   <li><a>ivrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
importVolumeResponse :: Int -> ImportVolumeResponse

-- | Contains the output for ImportVolume.
--   
--   <i>See:</i> <a>importVolumeResponse</a> smart constructor.
data ImportVolumeResponse

-- | Information about the conversion task.
ivrsConversionTask :: Lens' ImportVolumeResponse (Maybe ConversionTask)

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


-- | Imports a disk into an EBS snapshot.
module Network.AWS.EC2.ImportSnapshot

-- | Creates a value of <a>ImportSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isDiskContainer</a> - Information about the disk
--   container.</li>
--   <li><a>isClientToken</a> - Token to enable idempotency for VM import
--   requests.</li>
--   <li><a>isRoleName</a> - The name of the role to use when not using the
--   default role, <tt>vmimport</tt>.</li>
--   <li><a>isDescription</a> - The description string for the import
--   snapshot task.</li>
--   <li><a>isDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>isClientData</a> - The client-specific data.</li>
--   </ul>
importSnapshot :: ImportSnapshot

-- | Contains the parameters for ImportSnapshot.
--   
--   <i>See:</i> <a>importSnapshot</a> smart constructor.
data ImportSnapshot

-- | Information about the disk container.
isDiskContainer :: Lens' ImportSnapshot (Maybe SnapshotDiskContainer)

-- | Token to enable idempotency for VM import requests.
isClientToken :: Lens' ImportSnapshot (Maybe Text)

-- | The name of the role to use when not using the default role,
--   <tt>vmimport</tt>.
isRoleName :: Lens' ImportSnapshot (Maybe Text)

-- | The description string for the import snapshot task.
isDescription :: Lens' ImportSnapshot (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
isDryRun :: Lens' ImportSnapshot (Maybe Bool)

-- | The client-specific data.
isClientData :: Lens' ImportSnapshot (Maybe ClientData)

-- | Creates a value of <a>ImportSnapshotResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isrsSnapshotTaskDetail</a> - Information about the import
--   snapshot task.</li>
--   <li><a>isrsImportTaskId</a> - The ID of the import snapshot task.</li>
--   <li><a>isrsDescription</a> - A description of the import snapshot
--   task.</li>
--   <li><a>isrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
importSnapshotResponse :: Int -> ImportSnapshotResponse

-- | Contains the output for ImportSnapshot.
--   
--   <i>See:</i> <a>importSnapshotResponse</a> smart constructor.
data ImportSnapshotResponse

-- | Information about the import snapshot task.
isrsSnapshotTaskDetail :: Lens' ImportSnapshotResponse (Maybe SnapshotTaskDetail)

-- | The ID of the import snapshot task.
isrsImportTaskId :: Lens' ImportSnapshotResponse (Maybe Text)

-- | A description of the import snapshot task.
isrsDescription :: Lens' ImportSnapshotResponse (Maybe Text)

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


-- | Imports the public key from an RSA key pair that you created with a
--   third-party tool. Compare this with <tt>CreateKeyPair</tt> , in which
--   AWS creates the key pair and gives the keys to you (AWS keeps a copy
--   of the public key). With ImportKeyPair, you create the key pair and
--   give AWS just the public key. The private key is never transferred
--   between you and AWS.
--   
--   For more information about key pairs, see <a>Key Pairs</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.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>ikpDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>ikpKeyName</a> - A unique name for the key pair.</li>
--   <li><a>ikpPublicKeyMaterial</a> - The public key. For API calls, the
--   text must be base64-encoded. For command line tools, base64 encoding
--   is performed for you.-- <i>Note:</i> This <tt>Lens</tt> automatically
--   encodes and decodes Base64 data. The underlying isomorphism will
--   encode to Base64 representation during serialisation, and decode from
--   Base64 representation during deserialisation. This <tt>Lens</tt>
--   accepts and returns only raw unencoded data.</li>
--   </ul>
importKeyPair :: Text -> ByteString -> ImportKeyPair

-- | Contains the parameters for ImportKeyPair.
--   
--   <i>See:</i> <a>importKeyPair</a> smart constructor.
data ImportKeyPair

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
ikpDryRun :: Lens' ImportKeyPair (Maybe Bool)

-- | A unique name for the key pair.
ikpKeyName :: Lens' ImportKeyPair Text

-- | The public key. For API calls, the text must be base64-encoded. For
--   command line tools, base64 encoding is performed for you.--
--   <i>Note:</i> This <tt>Lens</tt> automatically encodes and decodes
--   Base64 data. The underlying isomorphism will encode to Base64
--   representation during serialisation, and decode from Base64
--   representation during deserialisation. This <tt>Lens</tt> accepts and
--   returns only raw unencoded data.
ikpPublicKeyMaterial :: Lens' ImportKeyPair ByteString

-- | 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>ikprsKeyFingerprint</a> - The MD5 public key fingerprint as
--   specified in section 4 of RFC 4716.</li>
--   <li><a>ikprsKeyName</a> - The key pair name you provided.</li>
--   <li><a>ikprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
importKeyPairResponse :: Int -> ImportKeyPairResponse

-- | Contains the output of ImportKeyPair.
--   
--   <i>See:</i> <a>importKeyPairResponse</a> smart constructor.
data ImportKeyPairResponse

-- | The MD5 public key fingerprint as specified in section 4 of RFC 4716.
ikprsKeyFingerprint :: Lens' ImportKeyPairResponse (Maybe Text)

-- | The key pair name you provided.
ikprsKeyName :: Lens' ImportKeyPairResponse (Maybe Text)

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


-- | Creates an import instance task using metadata from the specified disk
--   image. <tt>ImportInstance</tt> only supports single-volume VMs. To
--   import multi-volume VMs, use <tt>ImportImage</tt> . For more
--   information, see <a>Importing a Virtual Machine Using the Amazon EC2
--   CLI</a> .
--   
--   For information about the import manifest referenced by this API
--   action, see <a>VM Import Manifest</a> .
module Network.AWS.EC2.ImportInstance

-- | Creates a value of <a>ImportInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iiLaunchSpecification</a> - The launch specification.</li>
--   <li><a>iiDiskImages</a> - The disk image.</li>
--   <li><a>iiDescription</a> - A description for the instance being
--   imported.</li>
--   <li><a>iiDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>iiPlatform</a> - The instance operating system.</li>
--   </ul>
importInstance :: PlatformValues -> ImportInstance

-- | Contains the parameters for ImportInstance.
--   
--   <i>See:</i> <a>importInstance</a> smart constructor.
data ImportInstance

-- | The launch specification.
iiLaunchSpecification :: Lens' ImportInstance (Maybe ImportInstanceLaunchSpecification)

-- | The disk image.
iiDiskImages :: Lens' ImportInstance [DiskImage]

-- | A description for the instance being imported.
iiDescription :: Lens' ImportInstance (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
iiDryRun :: Lens' ImportInstance (Maybe Bool)

-- | The instance operating system.
iiPlatform :: Lens' ImportInstance PlatformValues

-- | Creates a value of <a>ImportInstanceResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iirsConversionTask</a> - Information about the conversion
--   task.</li>
--   <li><a>iirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
importInstanceResponse :: Int -> ImportInstanceResponse

-- | Contains the output for ImportInstance.
--   
--   <i>See:</i> <a>importInstanceResponse</a> smart constructor.
data ImportInstanceResponse

-- | Information about the conversion task.
iirsConversionTask :: Lens' ImportInstanceResponse (Maybe ConversionTask)

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


-- | Import single or multi-volume disk images or EBS snapshots into an
--   Amazon Machine Image (AMI). For more information, see <a>Importing a
--   VM as an Image Using VM Import/Export</a> in the <i>VM Import/Export
--   User Guide</i> .
module Network.AWS.EC2.ImportImage

-- | Creates a value of <a>ImportImage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>impHypervisor</a> - The target hypervisor platform. Valid
--   values: <tt>xen</tt></li>
--   <li><a>impPlatform</a> - The operating system of the virtual machine.
--   Valid values: <tt>Windows</tt> | <tt>Linux</tt></li>
--   <li><a>impClientToken</a> - The token to enable idempotency for VM
--   import requests.</li>
--   <li><a>impLicenseType</a> - The license type to be used for the Amazon
--   Machine Image (AMI) after importing. <b>Note:</b> You may only use
--   BYOL if you have existing licenses with rights to use these licenses
--   in a third party cloud like AWS. For more information, see
--   <a>Prerequisites</a> in the VM Import/Export User Guide. Valid values:
--   <tt>AWS</tt> | <tt>BYOL</tt></li>
--   <li><a>impRoleName</a> - The name of the role to use when not using
--   the default role, <tt>vmimport</tt>.</li>
--   <li><a>impArchitecture</a> - The architecture of the virtual machine.
--   Valid values: <tt>i386</tt> | <tt>x86_64</tt></li>
--   <li><a>impDescription</a> - A description string for the import image
--   task.</li>
--   <li><a>impDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>impClientData</a> - The client-specific data.</li>
--   <li><a>impDiskContainers</a> - Information about the disk
--   containers.</li>
--   </ul>
importImage :: ImportImage

-- | Contains the parameters for ImportImage.
--   
--   <i>See:</i> <a>importImage</a> smart constructor.
data ImportImage

-- | The target hypervisor platform. Valid values: <tt>xen</tt>
impHypervisor :: Lens' ImportImage (Maybe Text)

-- | The operating system of the virtual machine. Valid values:
--   <tt>Windows</tt> | <tt>Linux</tt>
impPlatform :: Lens' ImportImage (Maybe Text)

-- | The token to enable idempotency for VM import requests.
impClientToken :: Lens' ImportImage (Maybe Text)

-- | The license type to be used for the Amazon Machine Image (AMI) after
--   importing. <b>Note:</b> You may only use BYOL if you have existing
--   licenses with rights to use these licenses in a third party cloud like
--   AWS. For more information, see <a>Prerequisites</a> in the VM
--   Import/Export User Guide. Valid values: <tt>AWS</tt> | <tt>BYOL</tt>
impLicenseType :: Lens' ImportImage (Maybe Text)

-- | The name of the role to use when not using the default role,
--   <tt>vmimport</tt>.
impRoleName :: Lens' ImportImage (Maybe Text)

-- | The architecture of the virtual machine. Valid values: <tt>i386</tt> |
--   <tt>x86_64</tt>
impArchitecture :: Lens' ImportImage (Maybe Text)

-- | A description string for the import image task.
impDescription :: Lens' ImportImage (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
impDryRun :: Lens' ImportImage (Maybe Bool)

-- | The client-specific data.
impClientData :: Lens' ImportImage (Maybe ClientData)

-- | Information about the disk containers.
impDiskContainers :: Lens' ImportImage [ImageDiskContainer]

-- | Creates a value of <a>ImportImageResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>irsStatus</a> - A brief status of the task.</li>
--   <li><a>irsHypervisor</a> - The target hypervisor of the import
--   task.</li>
--   <li><a>irsPlatform</a> - The operating system of the virtual
--   machine.</li>
--   <li><a>irsProgress</a> - The progress of the task.</li>
--   <li><a>irsLicenseType</a> - The license type of the virtual
--   machine.</li>
--   <li><a>irsSnapshotDetails</a> - Information about the snapshots.</li>
--   <li><a>irsStatusMessage</a> - A detailed status message of the import
--   task.</li>
--   <li><a>irsImageId</a> - The ID of the Amazon Machine Image (AMI)
--   created by the import task.</li>
--   <li><a>irsImportTaskId</a> - The task ID of the import image
--   task.</li>
--   <li><a>irsArchitecture</a> - The architecture of the virtual
--   machine.</li>
--   <li><a>irsDescription</a> - A description of the import task.</li>
--   <li><a>irsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
importImageResponse :: Int -> ImportImageResponse

-- | Contains the output for ImportImage.
--   
--   <i>See:</i> <a>importImageResponse</a> smart constructor.
data ImportImageResponse

-- | A brief status of the task.
irsStatus :: Lens' ImportImageResponse (Maybe Text)

-- | The target hypervisor of the import task.
irsHypervisor :: Lens' ImportImageResponse (Maybe Text)

-- | The operating system of the virtual machine.
irsPlatform :: Lens' ImportImageResponse (Maybe Text)

-- | The progress of the task.
irsProgress :: Lens' ImportImageResponse (Maybe Text)

-- | The license type of the virtual machine.
irsLicenseType :: Lens' ImportImageResponse (Maybe Text)

-- | Information about the snapshots.
irsSnapshotDetails :: Lens' ImportImageResponse [SnapshotDetail]

-- | A detailed status message of the import task.
irsStatusMessage :: Lens' ImportImageResponse (Maybe Text)

-- | The ID of the Amazon Machine Image (AMI) created by the import task.
irsImageId :: Lens' ImportImageResponse (Maybe Text)

-- | The task ID of the import image task.
irsImportTaskId :: Lens' ImportImageResponse (Maybe Text)

-- | The architecture of the virtual machine.
irsArchitecture :: Lens' ImportImageResponse (Maybe Text)

-- | A description of the import task.
irsDescription :: Lens' ImportImageResponse (Maybe Text)

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


-- | Returns details about the values and term of your specified
--   Convertible Reserved Instances. When a target configuration is
--   specified, it returns information about whether the exchange is valid
--   and can be performed.
module Network.AWS.EC2.GetReservedInstancesExchangeQuote

-- | Creates a value of <a>GetReservedInstancesExchangeQuote</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grieqTargetConfigurations</a> - The configuration requirements
--   of the Convertible Reserved Instances to exchange for your current
--   Convertible Reserved Instances.</li>
--   <li><a>grieqDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>grieqReservedInstanceIds</a> - The IDs of the Convertible
--   Reserved Instances to exchange.</li>
--   </ul>
getReservedInstancesExchangeQuote :: GetReservedInstancesExchangeQuote

-- | Contains the parameters for GetReservedInstanceExchangeQuote.
--   
--   <i>See:</i> <a>getReservedInstancesExchangeQuote</a> smart
--   constructor.
data GetReservedInstancesExchangeQuote

-- | The configuration requirements of the Convertible Reserved Instances
--   to exchange for your current Convertible Reserved Instances.
grieqTargetConfigurations :: Lens' GetReservedInstancesExchangeQuote [TargetConfigurationRequest]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
grieqDryRun :: Lens' GetReservedInstancesExchangeQuote (Maybe Bool)

-- | The IDs of the Convertible Reserved Instances to exchange.
grieqReservedInstanceIds :: Lens' GetReservedInstancesExchangeQuote [Text]

-- | Creates a value of <a>GetReservedInstancesExchangeQuoteResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grieqrsValidationFailureReason</a> - Describes the reason why
--   the exchange cannot be completed.</li>
--   <li><a>grieqrsTargetConfigurationValueRollup</a> - Undocumented
--   member.</li>
--   <li><a>grieqrsCurrencyCode</a> - The currency of the transaction.</li>
--   <li><a>grieqrsTargetConfigurationValueSet</a> - The values of the
--   target Convertible Reserved Instances.</li>
--   <li><a>grieqrsReservedInstanceValueRollup</a> - Undocumented
--   member.</li>
--   <li><a>grieqrsOutputReservedInstancesWillExpireAt</a> - The new end
--   date of the reservation term.</li>
--   <li><a>grieqrsReservedInstanceValueSet</a> - The configuration of your
--   Convertible Reserved Instances.</li>
--   <li><a>grieqrsIsValidExchange</a> - If <tt>true</tt> , the exchange is
--   valid. If <tt>false</tt> , the exchange cannot be completed.</li>
--   <li><a>grieqrsPaymentDue</a> - The total true upfront charge for the
--   exchange.</li>
--   <li><a>grieqrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getReservedInstancesExchangeQuoteResponse :: Int -> GetReservedInstancesExchangeQuoteResponse

-- | Contains the output of GetReservedInstancesExchangeQuote.
--   
--   <i>See:</i> <a>getReservedInstancesExchangeQuoteResponse</a> smart
--   constructor.
data GetReservedInstancesExchangeQuoteResponse

-- | Describes the reason why the exchange cannot be completed.
grieqrsValidationFailureReason :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe Text)

-- | Undocumented member.
grieqrsTargetConfigurationValueRollup :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe ReservationValue)

-- | The currency of the transaction.
grieqrsCurrencyCode :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe Text)

-- | The values of the target Convertible Reserved Instances.
grieqrsTargetConfigurationValueSet :: Lens' GetReservedInstancesExchangeQuoteResponse [TargetReservationValue]

-- | Undocumented member.
grieqrsReservedInstanceValueRollup :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe ReservationValue)

-- | The new end date of the reservation term.
grieqrsOutputReservedInstancesWillExpireAt :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe UTCTime)

-- | The configuration of your Convertible Reserved Instances.
grieqrsReservedInstanceValueSet :: Lens' GetReservedInstancesExchangeQuoteResponse [ReservedInstanceReservationValue]

-- | If <tt>true</tt> , the exchange is valid. If <tt>false</tt> , the
--   exchange cannot be completed.
grieqrsIsValidExchange :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe Bool)

-- | The total true upfront charge for the exchange.
grieqrsPaymentDue :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe Text)

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


-- | Retrieves the encrypted administrator password for an instance running
--   Windows.
--   
--   The Windows password is generated at boot if the <tt>EC2Config</tt>
--   service plugin, <tt>Ec2SetPassword</tt> , is enabled. This usually
--   only happens the first time an AMI is launched, and then
--   <tt>Ec2SetPassword</tt> is automatically disabled. The password is not
--   generated for rebundled AMIs unless <tt>Ec2SetPassword</tt> is enabled
--   before bundling.
--   
--   The password is encrypted using the key pair that you specified when
--   you launched the instance. You must provide the corresponding key pair
--   file.
--   
--   Password generation and encryption takes a few moments. We recommend
--   that you wait up to 15 minutes after launching an instance before
--   trying to retrieve the generated password.
module Network.AWS.EC2.GetPasswordData

-- | Creates a value of <a>GetPasswordData</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gpdDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>gpdInstanceId</a> - The ID of the Windows instance.</li>
--   </ul>
getPasswordData :: Text -> GetPasswordData

-- | Contains the parameters for GetPasswordData.
--   
--   <i>See:</i> <a>getPasswordData</a> smart constructor.
data GetPasswordData

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
gpdDryRun :: Lens' GetPasswordData (Maybe Bool)

-- | The ID of the Windows instance.
gpdInstanceId :: Lens' GetPasswordData Text

-- | Creates a value of <a>GetPasswordDataResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gpdrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gpdrsInstanceId</a> - The ID of the Windows instance.</li>
--   <li><a>gpdrsPasswordData</a> - The password of the instance.</li>
--   <li><a>gpdrsTimestamp</a> - The time the data was last updated.</li>
--   </ul>
getPasswordDataResponse :: Int -> Text -> Text -> UTCTime -> GetPasswordDataResponse

-- | Contains the output of GetPasswordData.
--   
--   <i>See:</i> <a>getPasswordDataResponse</a> smart constructor.
data GetPasswordDataResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gpdrsResponseStatus :: Lens' GetPasswordDataResponse Int

-- | The ID of the Windows instance.
gpdrsInstanceId :: Lens' GetPasswordDataResponse Text

-- | The password of the instance.
gpdrsPasswordData :: Lens' GetPasswordDataResponse Text

-- | The time the data was last updated.
gpdrsTimestamp :: Lens' GetPasswordDataResponse UTCTime
instance GHC.Generics.Generic Network.AWS.EC2.GetPasswordData.GetPasswordDataResponse
instance Data.Data.Data Network.AWS.EC2.GetPasswordData.GetPasswordDataResponse
instance GHC.Show.Show Network.AWS.EC2.GetPasswordData.GetPasswordDataResponse
instance GHC.Read.Read Network.AWS.EC2.GetPasswordData.GetPasswordDataResponse
instance GHC.Classes.Eq Network.AWS.EC2.GetPasswordData.GetPasswordDataResponse
instance GHC.Generics.Generic Network.AWS.EC2.GetPasswordData.GetPasswordData
instance Data.Data.Data Network.AWS.EC2.GetPasswordData.GetPasswordData
instance GHC.Show.Show Network.AWS.EC2.GetPasswordData.GetPasswordData
instance GHC.Read.Read Network.AWS.EC2.GetPasswordData.GetPasswordData
instance GHC.Classes.Eq Network.AWS.EC2.GetPasswordData.GetPasswordData
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.GetPasswordData.GetPasswordData
instance Data.Hashable.Class.Hashable Network.AWS.EC2.GetPasswordData.GetPasswordData
instance Control.DeepSeq.NFData Network.AWS.EC2.GetPasswordData.GetPasswordData
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.GetPasswordData.GetPasswordData
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.GetPasswordData.GetPasswordData
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.GetPasswordData.GetPasswordData
instance Control.DeepSeq.NFData Network.AWS.EC2.GetPasswordData.GetPasswordDataResponse


-- | Preview a reservation purchase with configurations that match those of
--   your Dedicated Host. You must have active Dedicated Hosts in your
--   account before you purchase a reservation.
--   
--   This is a preview of the <tt>PurchaseHostReservation</tt> action and
--   does not result in the offering being purchased.
module Network.AWS.EC2.GetHostReservationPurchasePreview

-- | Creates a value of <a>GetHostReservationPurchasePreview</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ghrppOfferingId</a> - The offering ID of the reservation.</li>
--   <li><a>ghrppHostIdSet</a> - The ID<i>s of the Dedicated Host</i>s that
--   the reservation will be associated with.</li>
--   </ul>
getHostReservationPurchasePreview :: Text -> GetHostReservationPurchasePreview

-- | <i>See:</i> <a>getHostReservationPurchasePreview</a> smart
--   constructor.
data GetHostReservationPurchasePreview

-- | The offering ID of the reservation.
ghrppOfferingId :: Lens' GetHostReservationPurchasePreview Text

-- | The ID<i>s of the Dedicated Host</i>s that the reservation will be
--   associated with.
ghrppHostIdSet :: Lens' GetHostReservationPurchasePreview [Text]

-- | Creates a value of <a>GetHostReservationPurchasePreviewResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ghrpprsCurrencyCode</a> - The currency in which the
--   <tt>totalUpfrontPrice</tt> and <tt>totalHourlyPrice</tt> amounts are
--   specified. At this time, the only supported currency is <tt>USD</tt>
--   .</li>
--   <li><a>ghrpprsTotalHourlyPrice</a> - The potential total hourly price
--   of the reservation per hour.</li>
--   <li><a>ghrpprsTotalUpfrontPrice</a> - The potential total upfront
--   price. This is billed immediately.</li>
--   <li><a>ghrpprsPurchase</a> - The purchase information of the Dedicated
--   Host Reservation and the Dedicated Hosts associated with it.</li>
--   <li><a>ghrpprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getHostReservationPurchasePreviewResponse :: Int -> GetHostReservationPurchasePreviewResponse

-- | <i>See:</i> <a>getHostReservationPurchasePreviewResponse</a> smart
--   constructor.
data GetHostReservationPurchasePreviewResponse

-- | The currency in which the <tt>totalUpfrontPrice</tt> and
--   <tt>totalHourlyPrice</tt> amounts are specified. At this time, the
--   only supported currency is <tt>USD</tt> .
ghrpprsCurrencyCode :: Lens' GetHostReservationPurchasePreviewResponse (Maybe CurrencyCodeValues)

-- | The potential total hourly price of the reservation per hour.
ghrpprsTotalHourlyPrice :: Lens' GetHostReservationPurchasePreviewResponse (Maybe Text)

-- | The potential total upfront price. This is billed immediately.
ghrpprsTotalUpfrontPrice :: Lens' GetHostReservationPurchasePreviewResponse (Maybe Text)

-- | The purchase information of the Dedicated Host Reservation and the
--   Dedicated Hosts associated with it.
ghrpprsPurchase :: Lens' GetHostReservationPurchasePreviewResponse [Purchase]

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


-- | Retrieve a JPG-format screenshot of a running instance to help with
--   troubleshooting.
--   
--   The returned content is Base64-encoded.
module Network.AWS.EC2.GetConsoleScreenshot

-- | Creates a value of <a>GetConsoleScreenshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcsWakeUp</a> - When set to <tt>true</tt> , acts as keystroke
--   input and wakes up an instance that's in standby or "sleep" mode.</li>
--   <li><a>gcsDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>gcsInstanceId</a> - The ID of the instance.</li>
--   </ul>
getConsoleScreenshot :: Text -> GetConsoleScreenshot

-- | Contains the parameters for the request.
--   
--   <i>See:</i> <a>getConsoleScreenshot</a> smart constructor.
data GetConsoleScreenshot

-- | When set to <tt>true</tt> , acts as keystroke input and wakes up an
--   instance that's in standby or "sleep" mode.
gcsWakeUp :: Lens' GetConsoleScreenshot (Maybe Bool)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
gcsDryRun :: Lens' GetConsoleScreenshot (Maybe Bool)

-- | The ID of the instance.
gcsInstanceId :: Lens' GetConsoleScreenshot Text

-- | Creates a value of <a>GetConsoleScreenshotResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcsrsInstanceId</a> - The ID of the instance.</li>
--   <li><a>gcsrsImageData</a> - The data that comprises the image.</li>
--   <li><a>gcsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getConsoleScreenshotResponse :: Int -> GetConsoleScreenshotResponse

-- | Contains the output of the request.
--   
--   <i>See:</i> <a>getConsoleScreenshotResponse</a> smart constructor.
data GetConsoleScreenshotResponse

-- | The ID of the instance.
gcsrsInstanceId :: Lens' GetConsoleScreenshotResponse (Maybe Text)

-- | The data that comprises the image.
gcsrsImageData :: Lens' GetConsoleScreenshotResponse (Maybe Text)

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


-- | Gets the console output for the specified instance.
--   
--   Instances do not have a physical monitor through which you can view
--   their console output. They also lack physical controls that allow you
--   to power up, reboot, or shut them down. To allow these actions, we
--   provide them through the Amazon EC2 API and command line interface.
--   
--   Instance console output is buffered and posted shortly after instance
--   boot, reboot, and termination. Amazon EC2 preserves the most recent 64
--   KB output which is available for at least one hour after the most
--   recent post.
--   
--   For Linux instances, the instance console output displays the exact
--   console output that would normally be displayed on a physical monitor
--   attached to a computer. This output is buffered because the instance
--   produces it and then posts it to a store where the instance's owner
--   can retrieve it.
--   
--   For Windows instances, the instance console output includes output
--   from the EC2Config service.
module Network.AWS.EC2.GetConsoleOutput

-- | Creates a value of <a>GetConsoleOutput</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcoDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>gcoInstanceId</a> - The ID of the instance.</li>
--   </ul>
getConsoleOutput :: Text -> GetConsoleOutput

-- | Contains the parameters for GetConsoleOutput.
--   
--   <i>See:</i> <a>getConsoleOutput</a> smart constructor.
data GetConsoleOutput

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
gcoDryRun :: Lens' GetConsoleOutput (Maybe Bool)

-- | The ID of the instance.
gcoInstanceId :: Lens' GetConsoleOutput Text

-- | Creates a value of <a>GetConsoleOutputResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcorsInstanceId</a> - The ID of the instance.</li>
--   <li><a>gcorsOutput</a> - The console output, Base64-encoded. If using
--   a command line tool, the tool decodes the output for you.</li>
--   <li><a>gcorsTimestamp</a> - The time the output was last updated.</li>
--   <li><a>gcorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getConsoleOutputResponse :: Int -> GetConsoleOutputResponse

-- | Contains the output of GetConsoleOutput.
--   
--   <i>See:</i> <a>getConsoleOutputResponse</a> smart constructor.
data GetConsoleOutputResponse

-- | The ID of the instance.
gcorsInstanceId :: Lens' GetConsoleOutputResponse (Maybe Text)

-- | The console output, Base64-encoded. If using a command line tool, the
--   tool decodes the output for you.
gcorsOutput :: Lens' GetConsoleOutputResponse (Maybe Text)

-- | The time the output was last updated.
gcorsTimestamp :: Lens' GetConsoleOutputResponse (Maybe UTCTime)

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


-- | Enables I<i>O operations for a volume that had I</i>O operations
--   disabled because the data on the volume was potentially inconsistent.
module Network.AWS.EC2.EnableVolumeIO

-- | Creates a value of <a>EnableVolumeIO</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>evioDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>evioVolumeId</a> - The ID of the volume.</li>
--   </ul>
enableVolumeIO :: Text -> EnableVolumeIO

-- | Contains the parameters for EnableVolumeIO.
--   
--   <i>See:</i> <a>enableVolumeIO</a> smart constructor.
data EnableVolumeIO

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
evioDryRun :: Lens' EnableVolumeIO (Maybe Bool)

-- | The ID of the volume.
evioVolumeId :: Lens' EnableVolumeIO Text

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

-- | <i>See:</i> <a>enableVolumeIOResponse</a> smart constructor.
data EnableVolumeIOResponse
instance GHC.Generics.Generic Network.AWS.EC2.EnableVolumeIO.EnableVolumeIOResponse
instance Data.Data.Data Network.AWS.EC2.EnableVolumeIO.EnableVolumeIOResponse
instance GHC.Show.Show Network.AWS.EC2.EnableVolumeIO.EnableVolumeIOResponse
instance GHC.Read.Read Network.AWS.EC2.EnableVolumeIO.EnableVolumeIOResponse
instance GHC.Classes.Eq Network.AWS.EC2.EnableVolumeIO.EnableVolumeIOResponse
instance GHC.Generics.Generic Network.AWS.EC2.EnableVolumeIO.EnableVolumeIO
instance Data.Data.Data Network.AWS.EC2.EnableVolumeIO.EnableVolumeIO
instance GHC.Show.Show Network.AWS.EC2.EnableVolumeIO.EnableVolumeIO
instance GHC.Read.Read Network.AWS.EC2.EnableVolumeIO.EnableVolumeIO
instance GHC.Classes.Eq Network.AWS.EC2.EnableVolumeIO.EnableVolumeIO
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.EnableVolumeIO.EnableVolumeIO
instance Data.Hashable.Class.Hashable Network.AWS.EC2.EnableVolumeIO.EnableVolumeIO
instance Control.DeepSeq.NFData Network.AWS.EC2.EnableVolumeIO.EnableVolumeIO
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.EnableVolumeIO.EnableVolumeIO
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.EnableVolumeIO.EnableVolumeIO
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.EnableVolumeIO.EnableVolumeIO
instance Control.DeepSeq.NFData Network.AWS.EC2.EnableVolumeIO.EnableVolumeIOResponse


-- | Enables a VPC to support DNS hostname resolution for ClassicLink. If
--   enabled, the DNS hostname of a linked EC2-Classic instance resolves to
--   its private IP address when addressed from an instance in the VPC to
--   which it's linked. Similarly, the DNS hostname of an instance in a VPC
--   resolves to its private IP address when addressed from a linked
--   EC2-Classic instance. For more information about ClassicLink, see
--   <a>ClassicLink</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .
module Network.AWS.EC2.EnableVPCClassicLinkDNSSupport

-- | Creates a value of <a>EnableVPCClassicLinkDNSSupport</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>evcldsVPCId</a> - The ID of the VPC.</li>
--   </ul>
enableVPCClassicLinkDNSSupport :: EnableVPCClassicLinkDNSSupport

-- | Contains the parameters for EnableVpcClassicLinkDnsSupport.
--   
--   <i>See:</i> <a>enableVPCClassicLinkDNSSupport</a> smart constructor.
data EnableVPCClassicLinkDNSSupport

-- | The ID of the VPC.
evcldsVPCId :: Lens' EnableVPCClassicLinkDNSSupport (Maybe Text)

-- | Creates a value of <a>EnableVPCClassicLinkDNSSupportResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>evcldsrsReturn</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>evcldsrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
enableVPCClassicLinkDNSSupportResponse :: Int -> EnableVPCClassicLinkDNSSupportResponse

-- | Contains the output of EnableVpcClassicLinkDnsSupport.
--   
--   <i>See:</i> <a>enableVPCClassicLinkDNSSupportResponse</a> smart
--   constructor.
data EnableVPCClassicLinkDNSSupportResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
evcldsrsReturn :: Lens' EnableVPCClassicLinkDNSSupportResponse (Maybe Bool)

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


-- | Enables a VPC for ClassicLink. You can then link EC2-Classic instances
--   to your ClassicLink-enabled VPC to allow communication over private IP
--   addresses. You cannot enable your VPC for ClassicLink if any of your
--   VPC's route tables have existing routes for address ranges within the
--   <tt>10.0.0.0/8</tt> IP address range, excluding local routes for VPCs
--   in the <tt>10.0.0.0/16</tt> and <tt>10.1.0.0/16</tt> IP address
--   ranges. For more information, see <a>ClassicLink</a> in the Amazon
--   Elastic Compute Cloud User Guide.
module Network.AWS.EC2.EnableVPCClassicLink

-- | Creates a value of <a>EnableVPCClassicLink</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>evclDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>evclVPCId</a> - The ID of the VPC.</li>
--   </ul>
enableVPCClassicLink :: Text -> EnableVPCClassicLink

-- | Contains the parameters for EnableVpcClassicLink.
--   
--   <i>See:</i> <a>enableVPCClassicLink</a> smart constructor.
data EnableVPCClassicLink

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
evclDryRun :: Lens' EnableVPCClassicLink (Maybe Bool)

-- | The ID of the VPC.
evclVPCId :: Lens' EnableVPCClassicLink Text

-- | Creates a value of <a>EnableVPCClassicLinkResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>evclrsReturn</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>evclrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
enableVPCClassicLinkResponse :: Int -> EnableVPCClassicLinkResponse

-- | Contains the output of EnableVpcClassicLink.
--   
--   <i>See:</i> <a>enableVPCClassicLinkResponse</a> smart constructor.
data EnableVPCClassicLinkResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
evclrsReturn :: Lens' EnableVPCClassicLinkResponse (Maybe Bool)

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


-- | Enables a virtual private gateway (VGW) to propagate routes to the
--   specified route table of a VPC.
module Network.AWS.EC2.EnableVGWRoutePropagation

-- | Creates a value of <a>EnableVGWRoutePropagation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>evrpRouteTableId</a> - The ID of the route table.</li>
--   <li><a>evrpGatewayId</a> - The ID of the virtual private gateway.</li>
--   </ul>
enableVGWRoutePropagation :: Text -> Text -> EnableVGWRoutePropagation

-- | Contains the parameters for EnableVgwRoutePropagation.
--   
--   <i>See:</i> <a>enableVGWRoutePropagation</a> smart constructor.
data EnableVGWRoutePropagation

-- | The ID of the route table.
evrpRouteTableId :: Lens' EnableVGWRoutePropagation Text

-- | The ID of the virtual private gateway.
evrpGatewayId :: Lens' EnableVGWRoutePropagation Text

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

-- | <i>See:</i> <a>enableVGWRoutePropagationResponse</a> smart
--   constructor.
data EnableVGWRoutePropagationResponse
instance GHC.Generics.Generic Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagationResponse
instance Data.Data.Data Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagationResponse
instance GHC.Show.Show Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagationResponse
instance GHC.Read.Read Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagationResponse
instance GHC.Classes.Eq Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagationResponse
instance GHC.Generics.Generic Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagation
instance Data.Data.Data Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagation
instance GHC.Show.Show Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagation
instance GHC.Read.Read Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagation
instance GHC.Classes.Eq Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagation
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagation
instance Data.Hashable.Class.Hashable Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagation
instance Control.DeepSeq.NFData Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagation
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagation
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagation
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagation
instance Control.DeepSeq.NFData Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagationResponse


-- | Disassociates a CIDR block from a VPC. Currently, you can disassociate
--   an IPv6 CIDR block only. You must detach or delete all gateways and
--   resources that are associated with the CIDR block before you can
--   disassociate it.
module Network.AWS.EC2.DisassociateVPCCidrBlock

-- | Creates a value of <a>DisassociateVPCCidrBlock</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvcbAssociationId</a> - The association ID for the CIDR
--   block.</li>
--   </ul>
disassociateVPCCidrBlock :: Text -> DisassociateVPCCidrBlock

-- | <i>See:</i> <a>disassociateVPCCidrBlock</a> smart constructor.
data DisassociateVPCCidrBlock

-- | The association ID for the CIDR block.
dvcbAssociationId :: Lens' DisassociateVPCCidrBlock Text

-- | Creates a value of <a>DisassociateVPCCidrBlockResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvcbrsVPCId</a> - The ID of the VPC.</li>
--   <li><a>dvcbrsIPv6CidrBlockAssociation</a> - Information about the IPv6
--   CIDR block association.</li>
--   <li><a>dvcbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
disassociateVPCCidrBlockResponse :: Int -> DisassociateVPCCidrBlockResponse

-- | <i>See:</i> <a>disassociateVPCCidrBlockResponse</a> smart constructor.
data DisassociateVPCCidrBlockResponse

-- | The ID of the VPC.
dvcbrsVPCId :: Lens' DisassociateVPCCidrBlockResponse (Maybe Text)

-- | Information about the IPv6 CIDR block association.
dvcbrsIPv6CidrBlockAssociation :: Lens' DisassociateVPCCidrBlockResponse (Maybe VPCIPv6CidrBlockAssociation)

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


-- | Disassociates a CIDR block from a subnet. Currently, you can
--   disassociate an IPv6 CIDR block only. You must detach or delete all
--   gateways and resources that are associated with the CIDR block before
--   you can disassociate it.
module Network.AWS.EC2.DisassociateSubnetCidrBlock

-- | Creates a value of <a>DisassociateSubnetCidrBlock</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dscbAssociationId</a> - The association ID for the CIDR
--   block.</li>
--   </ul>
disassociateSubnetCidrBlock :: Text -> DisassociateSubnetCidrBlock

-- | <i>See:</i> <a>disassociateSubnetCidrBlock</a> smart constructor.
data DisassociateSubnetCidrBlock

-- | The association ID for the CIDR block.
dscbAssociationId :: Lens' DisassociateSubnetCidrBlock Text

-- | Creates a value of <a>DisassociateSubnetCidrBlockResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dscbrsSubnetId</a> - The ID of the subnet.</li>
--   <li><a>dscbrsIPv6CidrBlockAssociation</a> - Information about the IPv6
--   CIDR block association.</li>
--   <li><a>dscbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
disassociateSubnetCidrBlockResponse :: Int -> DisassociateSubnetCidrBlockResponse

-- | <i>See:</i> <a>disassociateSubnetCidrBlockResponse</a> smart
--   constructor.
data DisassociateSubnetCidrBlockResponse

-- | The ID of the subnet.
dscbrsSubnetId :: Lens' DisassociateSubnetCidrBlockResponse (Maybe Text)

-- | Information about the IPv6 CIDR block association.
dscbrsIPv6CidrBlockAssociation :: Lens' DisassociateSubnetCidrBlockResponse (Maybe SubnetIPv6CidrBlockAssociation)

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


-- | Disassociates a subnet from a route table.
--   
--   After you perform this action, the subnet no longer uses the routes in
--   the route table. Instead, it uses the routes in the VPC's main route
--   table. For more information about route tables, see <a>Route
--   Tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.DisassociateRouteTable

-- | Creates a value of <a>DisassociateRouteTable</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drtDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>drtAssociationId</a> - The association ID representing the
--   current association between the route table and subnet.</li>
--   </ul>
disassociateRouteTable :: Text -> DisassociateRouteTable

-- | Contains the parameters for DisassociateRouteTable.
--   
--   <i>See:</i> <a>disassociateRouteTable</a> smart constructor.
data DisassociateRouteTable

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
drtDryRun :: Lens' DisassociateRouteTable (Maybe Bool)

-- | The association ID representing the current association between the
--   route table and subnet.
drtAssociationId :: Lens' DisassociateRouteTable Text

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

-- | <i>See:</i> <a>disassociateRouteTableResponse</a> smart constructor.
data DisassociateRouteTableResponse
instance GHC.Generics.Generic Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTableResponse
instance Data.Data.Data Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTableResponse
instance GHC.Show.Show Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTableResponse
instance GHC.Read.Read Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTableResponse
instance GHC.Classes.Eq Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTableResponse
instance GHC.Generics.Generic Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTable
instance Data.Data.Data Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTable
instance GHC.Show.Show Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTable
instance GHC.Read.Read Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTable
instance GHC.Classes.Eq Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTable
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTable
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTable
instance Control.DeepSeq.NFData Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTable
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTable
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTable
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTable
instance Control.DeepSeq.NFData Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTableResponse


-- | Disassociates an Elastic IP address from the instance or network
--   interface it's associated with.
--   
--   An Elastic IP address is for use in either the EC2-Classic platform or
--   in a VPC. For more information, see <a>Elastic IP Addresses</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
--   
--   This is an idempotent operation. If you perform the operation more
--   than once, Amazon EC2 doesn't return an error.
module Network.AWS.EC2.DisassociateAddress

-- | Creates a value of <a>DisassociateAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dasAssociationId</a> - [EC2-VPC] The association ID. Required
--   for EC2-VPC.</li>
--   <li><a>dasPublicIP</a> - [EC2-Classic] The Elastic IP address.
--   Required for EC2-Classic.</li>
--   <li><a>dasDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
disassociateAddress :: DisassociateAddress

-- | Contains the parameters for DisassociateAddress.
--   
--   <i>See:</i> <a>disassociateAddress</a> smart constructor.
data DisassociateAddress

-- | <ul>
--   <li><i>EC2-VPC</i> The association ID. Required for EC2-VPC.</li>
--   </ul>
dasAssociationId :: Lens' DisassociateAddress (Maybe Text)

-- | <ul>
--   <li><i>EC2-Classic</i> The Elastic IP address. Required for
--   EC2-Classic.</li>
--   </ul>
dasPublicIP :: Lens' DisassociateAddress (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dasDryRun :: Lens' DisassociateAddress (Maybe Bool)

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

-- | <i>See:</i> <a>disassociateAddressResponse</a> smart constructor.
data DisassociateAddressResponse
instance GHC.Generics.Generic Network.AWS.EC2.DisassociateAddress.DisassociateAddressResponse
instance Data.Data.Data Network.AWS.EC2.DisassociateAddress.DisassociateAddressResponse
instance GHC.Show.Show Network.AWS.EC2.DisassociateAddress.DisassociateAddressResponse
instance GHC.Read.Read Network.AWS.EC2.DisassociateAddress.DisassociateAddressResponse
instance GHC.Classes.Eq Network.AWS.EC2.DisassociateAddress.DisassociateAddressResponse
instance GHC.Generics.Generic Network.AWS.EC2.DisassociateAddress.DisassociateAddress
instance Data.Data.Data Network.AWS.EC2.DisassociateAddress.DisassociateAddress
instance GHC.Show.Show Network.AWS.EC2.DisassociateAddress.DisassociateAddress
instance GHC.Read.Read Network.AWS.EC2.DisassociateAddress.DisassociateAddress
instance GHC.Classes.Eq Network.AWS.EC2.DisassociateAddress.DisassociateAddress
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DisassociateAddress.DisassociateAddress
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DisassociateAddress.DisassociateAddress
instance Control.DeepSeq.NFData Network.AWS.EC2.DisassociateAddress.DisassociateAddress
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DisassociateAddress.DisassociateAddress
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DisassociateAddress.DisassociateAddress
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DisassociateAddress.DisassociateAddress
instance Control.DeepSeq.NFData Network.AWS.EC2.DisassociateAddress.DisassociateAddressResponse


-- | Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames
--   resolve to public IP addresses when addressed between a linked
--   EC2-Classic instance and instances in the VPC to which it's linked.
--   For more information about ClassicLink, see <a>ClassicLink</a> in the
--   Amazon Elastic Compute Cloud User Guide.
module Network.AWS.EC2.DisableVPCClassicLinkDNSSupport

-- | Creates a value of <a>DisableVPCClassicLinkDNSSupport</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvcldsVPCId</a> - The ID of the VPC.</li>
--   </ul>
disableVPCClassicLinkDNSSupport :: DisableVPCClassicLinkDNSSupport

-- | Contains the parameters for DisableVpcClassicLinkDnsSupport.
--   
--   <i>See:</i> <a>disableVPCClassicLinkDNSSupport</a> smart constructor.
data DisableVPCClassicLinkDNSSupport

-- | The ID of the VPC.
dvcldsVPCId :: Lens' DisableVPCClassicLinkDNSSupport (Maybe Text)

-- | Creates a value of <a>DisableVPCClassicLinkDNSSupportResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvcldsrsReturn</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>dvcldsrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
disableVPCClassicLinkDNSSupportResponse :: Int -> DisableVPCClassicLinkDNSSupportResponse

-- | Contains the output of DisableVpcClassicLinkDnsSupport.
--   
--   <i>See:</i> <a>disableVPCClassicLinkDNSSupportResponse</a> smart
--   constructor.
data DisableVPCClassicLinkDNSSupportResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
dvcldsrsReturn :: Lens' DisableVPCClassicLinkDNSSupportResponse (Maybe Bool)

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


-- | Disables ClassicLink for a VPC. You cannot disable ClassicLink for a
--   VPC that has EC2-Classic instances linked to it.
module Network.AWS.EC2.DisableVPCClassicLink

-- | Creates a value of <a>DisableVPCClassicLink</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcclDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dvpcclVPCId</a> - The ID of the VPC.</li>
--   </ul>
disableVPCClassicLink :: Text -> DisableVPCClassicLink

-- | Contains the parameters for DisableVpcClassicLink.
--   
--   <i>See:</i> <a>disableVPCClassicLink</a> smart constructor.
data DisableVPCClassicLink

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvpcclDryRun :: Lens' DisableVPCClassicLink (Maybe Bool)

-- | The ID of the VPC.
dvpcclVPCId :: Lens' DisableVPCClassicLink Text

-- | Creates a value of <a>DisableVPCClassicLinkResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcclrsReturn</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>dvpcclrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
disableVPCClassicLinkResponse :: Int -> DisableVPCClassicLinkResponse

-- | Contains the output of DisableVpcClassicLink.
--   
--   <i>See:</i> <a>disableVPCClassicLinkResponse</a> smart constructor.
data DisableVPCClassicLinkResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
dvpcclrsReturn :: Lens' DisableVPCClassicLinkResponse (Maybe Bool)

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


-- | Disables a virtual private gateway (VGW) from propagating routes to a
--   specified route table of a VPC.
module Network.AWS.EC2.DisableVGWRoutePropagation

-- | Creates a value of <a>DisableVGWRoutePropagation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvrpRouteTableId</a> - The ID of the route table.</li>
--   <li><a>dvrpGatewayId</a> - The ID of the virtual private gateway.</li>
--   </ul>
disableVGWRoutePropagation :: Text -> Text -> DisableVGWRoutePropagation

-- | Contains the parameters for DisableVgwRoutePropagation.
--   
--   <i>See:</i> <a>disableVGWRoutePropagation</a> smart constructor.
data DisableVGWRoutePropagation

-- | The ID of the route table.
dvrpRouteTableId :: Lens' DisableVGWRoutePropagation Text

-- | The ID of the virtual private gateway.
dvrpGatewayId :: Lens' DisableVGWRoutePropagation Text

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

-- | <i>See:</i> <a>disableVGWRoutePropagationResponse</a> smart
--   constructor.
data DisableVGWRoutePropagationResponse
instance GHC.Generics.Generic Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagationResponse
instance Data.Data.Data Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagationResponse
instance GHC.Show.Show Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagationResponse
instance GHC.Read.Read Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagationResponse
instance GHC.Classes.Eq Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagationResponse
instance GHC.Generics.Generic Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagation
instance Data.Data.Data Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagation
instance GHC.Show.Show Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagation
instance GHC.Read.Read Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagation
instance GHC.Classes.Eq Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagation
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagation
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagation
instance Control.DeepSeq.NFData Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagation
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagation
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagation
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagation
instance Control.DeepSeq.NFData Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagationResponse


-- | Detaches an EBS volume from an instance. Make sure to unmount any file
--   systems on the device within your operating system before detaching
--   the volume. Failure to do so can result in the volume becoming stuck
--   in the <tt>busy</tt> state while detaching. If this happens,
--   detachment can be delayed indefinitely until you unmount the volume,
--   force detachment, reboot the instance, or all three. If an EBS volume
--   is the root device of an instance, it can't be detached while the
--   instance is running. To detach the root volume, stop the instance
--   first.
--   
--   When a volume with an AWS Marketplace product code is detached from an
--   instance, the product code is no longer associated with the instance.
--   
--   For more information, see <a>Detaching an Amazon EBS Volume</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.DetachVolume

-- | Creates a value of <a>DetachVolume</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvInstanceId</a> - The ID of the instance.</li>
--   <li><a>dvForce</a> - Forces detachment if the previous detachment
--   attempt did not occur cleanly (for example, logging into an instance,
--   unmounting the volume, and detaching normally). This option can lead
--   to data loss or a corrupted file system. Use this option only as a
--   last resort to detach a volume from a failed instance. The instance
--   won't have an opportunity to flush file system caches or file system
--   metadata. If you use this option, you must perform file system check
--   and repair procedures.</li>
--   <li><a>dvDevice</a> - The device name.</li>
--   <li><a>dvDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dvVolumeId</a> - The ID of the volume.</li>
--   </ul>
detachVolume :: Text -> DetachVolume

-- | Contains the parameters for DetachVolume.
--   
--   <i>See:</i> <a>detachVolume</a> smart constructor.
data DetachVolume

-- | The ID of the instance.
dvInstanceId :: Lens' DetachVolume (Maybe Text)

-- | Forces detachment if the previous detachment attempt did not occur
--   cleanly (for example, logging into an instance, unmounting the volume,
--   and detaching normally). This option can lead to data loss or a
--   corrupted file system. Use this option only as a last resort to detach
--   a volume from a failed instance. The instance won't have an
--   opportunity to flush file system caches or file system metadata. If
--   you use this option, you must perform file system check and repair
--   procedures.
dvForce :: Lens' DetachVolume (Maybe Bool)

-- | The device name.
dvDevice :: Lens' DetachVolume (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvDryRun :: Lens' DetachVolume (Maybe Bool)

-- | The ID of the volume.
dvVolumeId :: Lens' DetachVolume Text

-- | Creates a value of <a>VolumeAttachment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>volInstanceId</a> - The ID of the instance.</li>
--   <li><a>volDeleteOnTermination</a> - Indicates whether the EBS volume
--   is deleted on instance termination.</li>
--   <li><a>volState</a> - The attachment state of the volume.</li>
--   <li><a>volDevice</a> - The device name.</li>
--   <li><a>volVolumeId</a> - The ID of the volume.</li>
--   <li><a>volAttachTime</a> - The time stamp when the attachment
--   initiated.</li>
--   </ul>
volumeAttachment :: VolumeAttachment

-- | Describes volume attachment details.
--   
--   <i>See:</i> <a>volumeAttachment</a> smart constructor.
data VolumeAttachment

-- | The ID of the instance.
volInstanceId :: Lens' VolumeAttachment (Maybe Text)

-- | Indicates whether the EBS volume is deleted on instance termination.
volDeleteOnTermination :: Lens' VolumeAttachment (Maybe Bool)

-- | The attachment state of the volume.
volState :: Lens' VolumeAttachment (Maybe VolumeAttachmentState)

-- | The device name.
volDevice :: Lens' VolumeAttachment (Maybe Text)

-- | The ID of the volume.
volVolumeId :: Lens' VolumeAttachment (Maybe Text)

-- | The time stamp when the attachment initiated.
volAttachTime :: Lens' VolumeAttachment (Maybe UTCTime)
instance GHC.Generics.Generic Network.AWS.EC2.DetachVolume.DetachVolume
instance Data.Data.Data Network.AWS.EC2.DetachVolume.DetachVolume
instance GHC.Show.Show Network.AWS.EC2.DetachVolume.DetachVolume
instance GHC.Read.Read Network.AWS.EC2.DetachVolume.DetachVolume
instance GHC.Classes.Eq Network.AWS.EC2.DetachVolume.DetachVolume
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DetachVolume.DetachVolume
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DetachVolume.DetachVolume
instance Control.DeepSeq.NFData Network.AWS.EC2.DetachVolume.DetachVolume
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DetachVolume.DetachVolume
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DetachVolume.DetachVolume
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DetachVolume.DetachVolume


-- | Detaches a virtual private gateway from a VPC. You do this if you're
--   planning to turn off the VPC and not use it anymore. You can confirm a
--   virtual private gateway has been completely detached from a VPC by
--   describing the virtual private gateway (any attachments to the virtual
--   private gateway are also described).
--   
--   You must wait for the attachment's state to switch to
--   <tt>detached</tt> before you can delete the VPC or attach a different
--   VPC to the virtual private gateway.
module Network.AWS.EC2.DetachVPNGateway

-- | Creates a value of <a>DetachVPNGateway</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpngDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dvpngVPNGatewayId</a> - The ID of the virtual private
--   gateway.</li>
--   <li><a>dvpngVPCId</a> - The ID of the VPC.</li>
--   </ul>
detachVPNGateway :: Text -> Text -> DetachVPNGateway

-- | Contains the parameters for DetachVpnGateway.
--   
--   <i>See:</i> <a>detachVPNGateway</a> smart constructor.
data DetachVPNGateway

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvpngDryRun :: Lens' DetachVPNGateway (Maybe Bool)

-- | The ID of the virtual private gateway.
dvpngVPNGatewayId :: Lens' DetachVPNGateway Text

-- | The ID of the VPC.
dvpngVPCId :: Lens' DetachVPNGateway Text

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

-- | <i>See:</i> <a>detachVPNGatewayResponse</a> smart constructor.
data DetachVPNGatewayResponse
instance GHC.Generics.Generic Network.AWS.EC2.DetachVPNGateway.DetachVPNGatewayResponse
instance Data.Data.Data Network.AWS.EC2.DetachVPNGateway.DetachVPNGatewayResponse
instance GHC.Show.Show Network.AWS.EC2.DetachVPNGateway.DetachVPNGatewayResponse
instance GHC.Read.Read Network.AWS.EC2.DetachVPNGateway.DetachVPNGatewayResponse
instance GHC.Classes.Eq Network.AWS.EC2.DetachVPNGateway.DetachVPNGatewayResponse
instance GHC.Generics.Generic Network.AWS.EC2.DetachVPNGateway.DetachVPNGateway
instance Data.Data.Data Network.AWS.EC2.DetachVPNGateway.DetachVPNGateway
instance GHC.Show.Show Network.AWS.EC2.DetachVPNGateway.DetachVPNGateway
instance GHC.Read.Read Network.AWS.EC2.DetachVPNGateway.DetachVPNGateway
instance GHC.Classes.Eq Network.AWS.EC2.DetachVPNGateway.DetachVPNGateway
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DetachVPNGateway.DetachVPNGateway
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DetachVPNGateway.DetachVPNGateway
instance Control.DeepSeq.NFData Network.AWS.EC2.DetachVPNGateway.DetachVPNGateway
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DetachVPNGateway.DetachVPNGateway
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DetachVPNGateway.DetachVPNGateway
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DetachVPNGateway.DetachVPNGateway
instance Control.DeepSeq.NFData Network.AWS.EC2.DetachVPNGateway.DetachVPNGatewayResponse


-- | Detaches a network interface from an instance.
module Network.AWS.EC2.DetachNetworkInterface

-- | Creates a value of <a>DetachNetworkInterface</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dniForce</a> - Specifies whether to force a detachment.</li>
--   <li><a>dniDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dniAttachmentId</a> - The ID of the attachment.</li>
--   </ul>
detachNetworkInterface :: Text -> DetachNetworkInterface

-- | Contains the parameters for DetachNetworkInterface.
--   
--   <i>See:</i> <a>detachNetworkInterface</a> smart constructor.
data DetachNetworkInterface

-- | Specifies whether to force a detachment.
dniForce :: Lens' DetachNetworkInterface (Maybe Bool)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dniDryRun :: Lens' DetachNetworkInterface (Maybe Bool)

-- | The ID of the attachment.
dniAttachmentId :: Lens' DetachNetworkInterface Text

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

-- | <i>See:</i> <a>detachNetworkInterfaceResponse</a> smart constructor.
data DetachNetworkInterfaceResponse
instance GHC.Generics.Generic Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterfaceResponse
instance Data.Data.Data Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterfaceResponse
instance GHC.Show.Show Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterfaceResponse
instance GHC.Read.Read Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterfaceResponse
instance GHC.Classes.Eq Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterfaceResponse
instance GHC.Generics.Generic Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterface
instance Data.Data.Data Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterface
instance GHC.Show.Show Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterface
instance GHC.Read.Read Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterface
instance GHC.Classes.Eq Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterface
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterface
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterface
instance Control.DeepSeq.NFData Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterface
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterface
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterface
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterface
instance Control.DeepSeq.NFData Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterfaceResponse


-- | Detaches an Internet gateway from a VPC, disabling connectivity
--   between the Internet and the VPC. The VPC must not contain any running
--   instances with Elastic IP addresses.
module Network.AWS.EC2.DetachInternetGateway

-- | Creates a value of <a>DetachInternetGateway</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>digDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>digInternetGatewayId</a> - The ID of the Internet gateway.</li>
--   <li><a>digVPCId</a> - The ID of the VPC.</li>
--   </ul>
detachInternetGateway :: Text -> Text -> DetachInternetGateway

-- | Contains the parameters for DetachInternetGateway.
--   
--   <i>See:</i> <a>detachInternetGateway</a> smart constructor.
data DetachInternetGateway

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
digDryRun :: Lens' DetachInternetGateway (Maybe Bool)

-- | The ID of the Internet gateway.
digInternetGatewayId :: Lens' DetachInternetGateway Text

-- | The ID of the VPC.
digVPCId :: Lens' DetachInternetGateway Text

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

-- | <i>See:</i> <a>detachInternetGatewayResponse</a> smart constructor.
data DetachInternetGatewayResponse
instance GHC.Generics.Generic Network.AWS.EC2.DetachInternetGateway.DetachInternetGatewayResponse
instance Data.Data.Data Network.AWS.EC2.DetachInternetGateway.DetachInternetGatewayResponse
instance GHC.Show.Show Network.AWS.EC2.DetachInternetGateway.DetachInternetGatewayResponse
instance GHC.Read.Read Network.AWS.EC2.DetachInternetGateway.DetachInternetGatewayResponse
instance GHC.Classes.Eq Network.AWS.EC2.DetachInternetGateway.DetachInternetGatewayResponse
instance GHC.Generics.Generic Network.AWS.EC2.DetachInternetGateway.DetachInternetGateway
instance Data.Data.Data Network.AWS.EC2.DetachInternetGateway.DetachInternetGateway
instance GHC.Show.Show Network.AWS.EC2.DetachInternetGateway.DetachInternetGateway
instance GHC.Read.Read Network.AWS.EC2.DetachInternetGateway.DetachInternetGateway
instance GHC.Classes.Eq Network.AWS.EC2.DetachInternetGateway.DetachInternetGateway
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DetachInternetGateway.DetachInternetGateway
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DetachInternetGateway.DetachInternetGateway
instance Control.DeepSeq.NFData Network.AWS.EC2.DetachInternetGateway.DetachInternetGateway
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DetachInternetGateway.DetachInternetGateway
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DetachInternetGateway.DetachInternetGateway
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DetachInternetGateway.DetachInternetGateway
instance Control.DeepSeq.NFData Network.AWS.EC2.DetachInternetGateway.DetachInternetGatewayResponse


-- | Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the
--   instance has been unlinked, the VPC security groups are no longer
--   associated with it. An instance is automatically unlinked from a VPC
--   when it's stopped.
module Network.AWS.EC2.DetachClassicLinkVPC

-- | Creates a value of <a>DetachClassicLinkVPC</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dclvDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dclvInstanceId</a> - The ID of the instance to unlink from the
--   VPC.</li>
--   <li><a>dclvVPCId</a> - The ID of the VPC to which the instance is
--   linked.</li>
--   </ul>
detachClassicLinkVPC :: Text -> Text -> DetachClassicLinkVPC

-- | Contains the parameters for DetachClassicLinkVpc.
--   
--   <i>See:</i> <a>detachClassicLinkVPC</a> smart constructor.
data DetachClassicLinkVPC

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dclvDryRun :: Lens' DetachClassicLinkVPC (Maybe Bool)

-- | The ID of the instance to unlink from the VPC.
dclvInstanceId :: Lens' DetachClassicLinkVPC Text

-- | The ID of the VPC to which the instance is linked.
dclvVPCId :: Lens' DetachClassicLinkVPC Text

-- | Creates a value of <a>DetachClassicLinkVPCResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dclvrsReturn</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>dclvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
detachClassicLinkVPCResponse :: Int -> DetachClassicLinkVPCResponse

-- | Contains the output of DetachClassicLinkVpc.
--   
--   <i>See:</i> <a>detachClassicLinkVPCResponse</a> smart constructor.
data DetachClassicLinkVPCResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
dclvrsReturn :: Lens' DetachClassicLinkVPCResponse (Maybe Bool)

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


-- | Describes the specified EBS volumes.
--   
--   If you are describing a long list of volumes, you can paginate the
--   output to make the list more manageable. The <tt>MaxResults</tt>
--   parameter sets the maximum number of results returned in a single
--   page. If the list of results exceeds your <tt>MaxResults</tt> value,
--   then that number of results is returned along with a
--   <tt>NextToken</tt> value that can be passed to a subsequent
--   <tt>DescribeVolumes</tt> request to retrieve the remaining results.
--   
--   For more information about EBS volumes, see <a>Amazon EBS Volumes</a>
--   in the <i>Amazon Elastic Compute Cloud User Guide</i> .
--   
--   This operation returns paginated results.
module Network.AWS.EC2.DescribeVolumes

-- | Creates a value of <a>DescribeVolumes</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>desFilters</a> - One or more filters. *
--   <tt>attachment.attach-time</tt> - The time stamp when the attachment
--   initiated. * <tt>attachment.delete-on-termination</tt> - Whether the
--   volume is deleted on instance termination. *
--   <tt>attachment.device</tt> - The device name that is exposed to the
--   instance (for example, <tt><i>dev</i>sda1</tt> ). *
--   <tt>attachment.instance-id</tt> - The ID of the instance the volume is
--   attached to. * <tt>attachment.status</tt> - The attachment state
--   (<tt>attaching</tt> | <tt>attached</tt> | <tt>detaching</tt> |
--   <tt>detached</tt> ). * <tt>availability-zone</tt> - The Availability
--   Zone in which the volume was created. * <tt>create-time</tt> - The
--   time stamp when the volume was created. * <tt>encrypted</tt> - The
--   encryption status of the volume. * <tt>size</tt> - The size of the
--   volume, in GiB. * <tt>snapshot-id</tt> - The snapshot from which the
--   volume was created. * <tt>status</tt> - The status of the volume
--   (<tt>creating</tt> | <tt>available</tt> | <tt>in-use</tt> |
--   <tt>deleting</tt> | <tt>deleted</tt> | <tt>error</tt> ). *
--   <tt>tag</tt> :<i>key</i> =<i>value</i> - The key<i>value combination
--   of a tag assigned to the resource. * <tt>tag-key</tt> - The key of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-value</tt> filter. For example, if you use both the filter
--   "tag-key=Purpose" and the filter "tag-value=X", you get any resources
--   assigned both the tag key Purpose (regardless of what the tag's value
--   is), and the tag value X (regardless of what the tag's key is). If you
--   want to list only resources where Purpose is X, see the <tt>tag</tt>
--   :</i>key<i> =</i>value/ filter. * <tt>tag-value</tt> - The value of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter. * <tt>volume-id</tt> - The volume ID. *
--   <tt>volume-type</tt> - The Amazon EBS volume type. This can be
--   <tt>gp2</tt> for General Purpose SSD, <tt>io1</tt> for Provisioned
--   IOPS SSD, <tt>st1</tt> for Throughput Optimized HDD, <tt>sc1</tt> for
--   Cold HDD, or <tt>standard</tt> for Magnetic volumes.</li>
--   <li><a>desVolumeIds</a> - One or more volume IDs.</li>
--   <li><a>desNextToken</a> - The <tt>NextToken</tt> value returned from a
--   previous paginated <tt>DescribeVolumes</tt> request where
--   <tt>MaxResults</tt> was used and the results exceeded the value of
--   that parameter. Pagination continues from the end of the previous
--   results that returned the <tt>NextToken</tt> value. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>desDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>desMaxResults</a> - The maximum number of volume results
--   returned by <tt>DescribeVolumes</tt> in paginated output. When this
--   parameter is used, <tt>DescribeVolumes</tt> only returns
--   <tt>MaxResults</tt> results in a single page along with a
--   <tt>NextToken</tt> response element. The remaining results of the
--   initial request can be seen by sending another
--   <tt>DescribeVolumes</tt> request with the returned <tt>NextToken</tt>
--   value. This value can be between 5 and 1000; if <tt>MaxResults</tt> is
--   given a value larger than 1000, only 1000 results are returned. If
--   this parameter is not used, then <tt>DescribeVolumes</tt> returns all
--   results. You cannot specify this parameter and the volume IDs
--   parameter in the same request.</li>
--   </ul>
describeVolumes :: DescribeVolumes

-- | Contains the parameters for DescribeVolumes.
--   
--   <i>See:</i> <a>describeVolumes</a> smart constructor.
data DescribeVolumes

-- | One or more filters. * <tt>attachment.attach-time</tt> - The time
--   stamp when the attachment initiated. *
--   <tt>attachment.delete-on-termination</tt> - Whether the volume is
--   deleted on instance termination. * <tt>attachment.device</tt> - The
--   device name that is exposed to the instance (for example,
--   <tt><i>dev</i>sda1</tt> ). * <tt>attachment.instance-id</tt> - The ID
--   of the instance the volume is attached to. *
--   <tt>attachment.status</tt> - The attachment state (<tt>attaching</tt>
--   | <tt>attached</tt> | <tt>detaching</tt> | <tt>detached</tt> ). *
--   <tt>availability-zone</tt> - The Availability Zone in which the volume
--   was created. * <tt>create-time</tt> - The time stamp when the volume
--   was created. * <tt>encrypted</tt> - The encryption status of the
--   volume. * <tt>size</tt> - The size of the volume, in GiB. *
--   <tt>snapshot-id</tt> - The snapshot from which the volume was created.
--   * <tt>status</tt> - The status of the volume (<tt>creating</tt> |
--   <tt>available</tt> | <tt>in-use</tt> | <tt>deleting</tt> |
--   <tt>deleted</tt> | <tt>error</tt> ). * <tt>tag</tt> :<i>key</i>
--   =<i>value</i> - The key<i>value combination of a tag assigned to the
--   resource. * <tt>tag-key</tt> - The key of a tag assigned to the
--   resource. This filter is independent of the <tt>tag-value</tt> filter.
--   For example, if you use both the filter "tag-key=Purpose" and the
--   filter "tag-value=X", you get any resources assigned both the tag key
--   Purpose (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>volume-id</tt> - The volume ID. * <tt>volume-type</tt> -
--   The Amazon EBS volume type. This can be <tt>gp2</tt> for General
--   Purpose SSD, <tt>io1</tt> for Provisioned IOPS SSD, <tt>st1</tt> for
--   Throughput Optimized HDD, <tt>sc1</tt> for Cold HDD, or
--   <tt>standard</tt> for Magnetic volumes.
desFilters :: Lens' DescribeVolumes [Filter]

-- | One or more volume IDs.
desVolumeIds :: Lens' DescribeVolumes [Text]

-- | The <tt>NextToken</tt> value returned from a previous paginated
--   <tt>DescribeVolumes</tt> request where <tt>MaxResults</tt> was used
--   and the results exceeded the value of that parameter. Pagination
--   continues from the end of the previous results that returned the
--   <tt>NextToken</tt> value. This value is <tt>null</tt> when there are
--   no more results to return.
desNextToken :: Lens' DescribeVolumes (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
desDryRun :: Lens' DescribeVolumes (Maybe Bool)

-- | The maximum number of volume results returned by
--   <tt>DescribeVolumes</tt> in paginated output. When this parameter is
--   used, <tt>DescribeVolumes</tt> only returns <tt>MaxResults</tt>
--   results in a single page along with a <tt>NextToken</tt> response
--   element. The remaining results of the initial request can be seen by
--   sending another <tt>DescribeVolumes</tt> request with the returned
--   <tt>NextToken</tt> value. This value can be between 5 and 1000; if
--   <tt>MaxResults</tt> is given a value larger than 1000, only 1000
--   results are returned. If this parameter is not used, then
--   <tt>DescribeVolumes</tt> returns all results. You cannot specify this
--   parameter and the volume IDs parameter in the same request.
desMaxResults :: Lens' DescribeVolumes (Maybe Int)

-- | Creates a value of <a>DescribeVolumesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvvrsNextToken</a> - The <tt>NextToken</tt> value to include in
--   a future <tt>DescribeVolumes</tt> request. When the results of a
--   <tt>DescribeVolumes</tt> request exceed <tt>MaxResults</tt> , this
--   value can be used to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>dvvrsVolumes</a> - Information about the volumes.</li>
--   <li><a>dvvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVolumesResponse :: Int -> DescribeVolumesResponse

-- | Contains the output of DescribeVolumes.
--   
--   <i>See:</i> <a>describeVolumesResponse</a> smart constructor.
data DescribeVolumesResponse

-- | The <tt>NextToken</tt> value to include in a future
--   <tt>DescribeVolumes</tt> request. When the results of a
--   <tt>DescribeVolumes</tt> request exceed <tt>MaxResults</tt> , this
--   value can be used to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
dvvrsNextToken :: Lens' DescribeVolumesResponse (Maybe Text)

-- | Information about the volumes.
dvvrsVolumes :: Lens' DescribeVolumesResponse [Volume]

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


-- | Describes the status of the specified volumes. Volume status provides
--   the result of the checks performed on your volumes to determine events
--   that can impair the performance of your volumes. The performance of a
--   volume can be affected if an issue occurs on the volume's underlying
--   host. If the volume's underlying host experiences a power outage or
--   system issue, after the system is restored, there could be data
--   inconsistencies on the volume. Volume events notify you if this
--   occurs. Volume actions notify you if any action needs to be taken in
--   response to the event.
--   
--   The <tt>DescribeVolumeStatus</tt> operation provides the following
--   information about the specified volumes:
--   
--   <i>Status</i> : Reflects the current status of the volume. The
--   possible values are <tt>ok</tt> , <tt>impaired</tt> , <tt>warning</tt>
--   , or <tt>insufficient-data</tt> . If all checks pass, the overall
--   status of the volume is <tt>ok</tt> . If the check fails, the overall
--   status is <tt>impaired</tt> . If the status is
--   <tt>insufficient-data</tt> , then the checks may still be taking place
--   on your volume at the time. We recommend that you retry the request.
--   For more information on volume status, see <a>Monitoring the Status of
--   Your Volumes</a> .
--   
--   <i>Events</i> : Reflect the cause of a volume status and may require
--   you to take action. For example, if your volume returns an
--   <tt>impaired</tt> status, then the volume event might be
--   <tt>potential-data-inconsistency</tt> . This means that your volume
--   has been affected by an issue with the underlying host, has all I/O
--   operations disabled, and may have inconsistent data.
--   
--   <i>Actions</i> : Reflect the actions you may have to take in response
--   to an event. For example, if the status of the volume is
--   <tt>impaired</tt> and the volume event shows
--   <tt>potential-data-inconsistency</tt> , then the action shows
--   <tt>enable-volume-io</tt> . This means that you may want to enable the
--   I/O operations for the volume by calling the <tt>EnableVolumeIO</tt>
--   action and then check the volume for data consistency.
--   
--   This operation returns paginated results.
module Network.AWS.EC2.DescribeVolumeStatus

-- | Creates a value of <a>DescribeVolumeStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvssFilters</a> - One or more filters. * <tt>action.code</tt> -
--   The action code for the event (for example, <tt>enable-volume-io</tt>
--   ). * <tt>action.description</tt> - A description of the action. *
--   <tt>action.event-id</tt> - The event ID associated with the action. *
--   <tt>availability-zone</tt> - The Availability Zone of the instance. *
--   <tt>event.description</tt> - A description of the event. *
--   <tt>event.event-id</tt> - The event ID. * <tt>event.event-type</tt> -
--   The event type (for <tt>io-enabled</tt> : <tt>passed</tt> |
--   <tt>failed</tt> ; for <tt>io-performance</tt> :
--   <tt>io-performance:degraded</tt> |
--   <tt>io-performance:severely-degraded</tt> |
--   <tt>io-performance:stalled</tt> ). * <tt>event.not-after</tt> - The
--   latest end time for the event. * <tt>event.not-before</tt> - The
--   earliest start time for the event. *
--   <tt>volume-status.details-name</tt> - The cause for
--   <tt>volume-status.status</tt> (<tt>io-enabled</tt> |
--   <tt>io-performance</tt> ). * <tt>volume-status.details-status</tt> -
--   The status of <tt>volume-status.details-name</tt> (for
--   <tt>io-enabled</tt> : <tt>passed</tt> | <tt>failed</tt> ; for
--   <tt>io-performance</tt> : <tt>normal</tt> | <tt>degraded</tt> |
--   <tt>severely-degraded</tt> | <tt>stalled</tt> ). *
--   <tt>volume-status.status</tt> - The status of the volume (<tt>ok</tt>
--   | <tt>impaired</tt> | <tt>warning</tt> | <tt>insufficient-data</tt>
--   ).</li>
--   <li><a>dvssVolumeIds</a> - One or more volume IDs. Default: Describes
--   all your volumes.</li>
--   <li><a>dvssNextToken</a> - The <tt>NextToken</tt> value to include in
--   a future <tt>DescribeVolumeStatus</tt> request. When the results of
--   the request exceed <tt>MaxResults</tt> , this value can be used to
--   retrieve the next page of results. This value is <tt>null</tt> when
--   there are no more results to return.</li>
--   <li><a>dvssDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dvssMaxResults</a> - The maximum number of volume results
--   returned by <tt>DescribeVolumeStatus</tt> in paginated output. When
--   this parameter is used, the request only returns <tt>MaxResults</tt>
--   results in a single page along with a <tt>NextToken</tt> response
--   element. The remaining results of the initial request can be seen by
--   sending another request with the returned <tt>NextToken</tt> value.
--   This value can be between 5 and 1000; if <tt>MaxResults</tt> is given
--   a value larger than 1000, only 1000 results are returned. If this
--   parameter is not used, then <tt>DescribeVolumeStatus</tt> returns all
--   results. You cannot specify this parameter and the volume IDs
--   parameter in the same request.</li>
--   </ul>
describeVolumeStatus :: DescribeVolumeStatus

-- | Contains the parameters for DescribeVolumeStatus.
--   
--   <i>See:</i> <a>describeVolumeStatus</a> smart constructor.
data DescribeVolumeStatus

-- | One or more filters. * <tt>action.code</tt> - The action code for the
--   event (for example, <tt>enable-volume-io</tt> ). *
--   <tt>action.description</tt> - A description of the action. *
--   <tt>action.event-id</tt> - The event ID associated with the action. *
--   <tt>availability-zone</tt> - The Availability Zone of the instance. *
--   <tt>event.description</tt> - A description of the event. *
--   <tt>event.event-id</tt> - The event ID. * <tt>event.event-type</tt> -
--   The event type (for <tt>io-enabled</tt> : <tt>passed</tt> |
--   <tt>failed</tt> ; for <tt>io-performance</tt> :
--   <tt>io-performance:degraded</tt> |
--   <tt>io-performance:severely-degraded</tt> |
--   <tt>io-performance:stalled</tt> ). * <tt>event.not-after</tt> - The
--   latest end time for the event. * <tt>event.not-before</tt> - The
--   earliest start time for the event. *
--   <tt>volume-status.details-name</tt> - The cause for
--   <tt>volume-status.status</tt> (<tt>io-enabled</tt> |
--   <tt>io-performance</tt> ). * <tt>volume-status.details-status</tt> -
--   The status of <tt>volume-status.details-name</tt> (for
--   <tt>io-enabled</tt> : <tt>passed</tt> | <tt>failed</tt> ; for
--   <tt>io-performance</tt> : <tt>normal</tt> | <tt>degraded</tt> |
--   <tt>severely-degraded</tt> | <tt>stalled</tt> ). *
--   <tt>volume-status.status</tt> - The status of the volume (<tt>ok</tt>
--   | <tt>impaired</tt> | <tt>warning</tt> | <tt>insufficient-data</tt> ).
dvssFilters :: Lens' DescribeVolumeStatus [Filter]

-- | One or more volume IDs. Default: Describes all your volumes.
dvssVolumeIds :: Lens' DescribeVolumeStatus [Text]

-- | The <tt>NextToken</tt> value to include in a future
--   <tt>DescribeVolumeStatus</tt> request. When the results of the request
--   exceed <tt>MaxResults</tt> , this value can be used to retrieve the
--   next page of results. This value is <tt>null</tt> when there are no
--   more results to return.
dvssNextToken :: Lens' DescribeVolumeStatus (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvssDryRun :: Lens' DescribeVolumeStatus (Maybe Bool)

-- | The maximum number of volume results returned by
--   <tt>DescribeVolumeStatus</tt> in paginated output. When this parameter
--   is used, the request only returns <tt>MaxResults</tt> results in a
--   single page along with a <tt>NextToken</tt> response element. The
--   remaining results of the initial request can be seen by sending
--   another request with the returned <tt>NextToken</tt> value. This value
--   can be between 5 and 1000; if <tt>MaxResults</tt> is given a value
--   larger than 1000, only 1000 results are returned. If this parameter is
--   not used, then <tt>DescribeVolumeStatus</tt> returns all results. You
--   cannot specify this parameter and the volume IDs parameter in the same
--   request.
dvssMaxResults :: Lens' DescribeVolumeStatus (Maybe Int)

-- | Creates a value of <a>DescribeVolumeStatusResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvsrsNextToken</a> - The token to use to retrieve the next page
--   of results. This value is <tt>null</tt> when there are no more results
--   to return.</li>
--   <li><a>dvsrsVolumeStatuses</a> - A list of volumes.</li>
--   <li><a>dvsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVolumeStatusResponse :: Int -> DescribeVolumeStatusResponse

-- | Contains the output of DescribeVolumeStatus.
--   
--   <i>See:</i> <a>describeVolumeStatusResponse</a> smart constructor.
data DescribeVolumeStatusResponse

-- | The token to use to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
dvsrsNextToken :: Lens' DescribeVolumeStatusResponse (Maybe Text)

-- | A list of volumes.
dvsrsVolumeStatuses :: Lens' DescribeVolumeStatusResponse [VolumeStatusItem]

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


-- | Describes the specified attribute of the specified volume. You can
--   specify only one attribute at a time.
--   
--   For more information about EBS volumes, see <a>Amazon EBS Volumes</a>
--   in the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.DescribeVolumeAttribute

-- | Creates a value of <a>DescribeVolumeAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvaAttribute</a> - The instance attribute.</li>
--   <li><a>dvaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dvaVolumeId</a> - The ID of the volume.</li>
--   </ul>
describeVolumeAttribute :: Text -> DescribeVolumeAttribute

-- | Contains the parameters for DescribeVolumeAttribute.
--   
--   <i>See:</i> <a>describeVolumeAttribute</a> smart constructor.
data DescribeVolumeAttribute

-- | The instance attribute.
dvaAttribute :: Lens' DescribeVolumeAttribute (Maybe VolumeAttributeName)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvaDryRun :: Lens' DescribeVolumeAttribute (Maybe Bool)

-- | The ID of the volume.
dvaVolumeId :: Lens' DescribeVolumeAttribute Text

-- | Creates a value of <a>DescribeVolumeAttributeResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvarsVolumeId</a> - The ID of the volume.</li>
--   <li><a>dvarsProductCodes</a> - A list of product codes.</li>
--   <li><a>dvarsAutoEnableIO</a> - The state of <tt>autoEnableIO</tt>
--   attribute.</li>
--   <li><a>dvarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVolumeAttributeResponse :: Int -> DescribeVolumeAttributeResponse

-- | Contains the output of DescribeVolumeAttribute.
--   
--   <i>See:</i> <a>describeVolumeAttributeResponse</a> smart constructor.
data DescribeVolumeAttributeResponse

-- | The ID of the volume.
dvarsVolumeId :: Lens' DescribeVolumeAttributeResponse (Maybe Text)

-- | A list of product codes.
dvarsProductCodes :: Lens' DescribeVolumeAttributeResponse [ProductCode]

-- | The state of <tt>autoEnableIO</tt> attribute.
dvarsAutoEnableIO :: Lens' DescribeVolumeAttributeResponse (Maybe AttributeBooleanValue)

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


-- | Describes one or more of your virtual private gateways.
--   
--   For more information about virtual private gateways, see <a>Adding an
--   IPsec Hardware VPN to Your VPC</a> in the <i>Amazon Virtual Private
--   Cloud User Guide</i> .
module Network.AWS.EC2.DescribeVPNGateways

-- | Creates a value of <a>DescribeVPNGateways</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvgsFilters</a> - One or more filters. *
--   <tt>attachment.state</tt> - The current state of the attachment
--   between the gateway and the VPC (<tt>attaching</tt> |
--   <tt>attached</tt> | <tt>detaching</tt> | <tt>detached</tt> ). *
--   <tt>attachment.vpc-id</tt> - The ID of an attached VPC. *
--   <tt>availability-zone</tt> - The Availability Zone for the virtual
--   private gateway (if applicable). * <tt>state</tt> - The state of the
--   virtual private gateway (<tt>pending</tt> | <tt>available</tt> |
--   <tt>deleting</tt> | <tt>deleted</tt> ). * <tt>tag</tt> :<i>key</i>
--   =<i>value</i> - The key<i>value combination of a tag assigned to the
--   resource. * <tt>tag-key</tt> - The key of a tag assigned to the
--   resource. This filter is independent of the <tt>tag-value</tt> filter.
--   For example, if you use both the filter "tag-key=Purpose" and the
--   filter "tag-value=X", you get any resources assigned both the tag key
--   Purpose (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>type</tt> - The type of virtual private gateway.
--   Currently the only supported type is <tt>ipsec.1</tt> . *
--   <tt>vpn-gateway-id</tt> - The ID of the virtual private gateway.</li>
--   <li><a>dvgsVPNGatewayIds</a> - One or more virtual private gateway
--   IDs. Default: Describes all your virtual private gateways.</li>
--   <li><a>dvgsDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeVPNGateways :: DescribeVPNGateways

-- | Contains the parameters for DescribeVpnGateways.
--   
--   <i>See:</i> <a>describeVPNGateways</a> smart constructor.
data DescribeVPNGateways

-- | One or more filters. * <tt>attachment.state</tt> - The current state
--   of the attachment between the gateway and the VPC (<tt>attaching</tt>
--   | <tt>attached</tt> | <tt>detaching</tt> | <tt>detached</tt> ). *
--   <tt>attachment.vpc-id</tt> - The ID of an attached VPC. *
--   <tt>availability-zone</tt> - The Availability Zone for the virtual
--   private gateway (if applicable). * <tt>state</tt> - The state of the
--   virtual private gateway (<tt>pending</tt> | <tt>available</tt> |
--   <tt>deleting</tt> | <tt>deleted</tt> ). * <tt>tag</tt> :<i>key</i>
--   =<i>value</i> - The key<i>value combination of a tag assigned to the
--   resource. * <tt>tag-key</tt> - The key of a tag assigned to the
--   resource. This filter is independent of the <tt>tag-value</tt> filter.
--   For example, if you use both the filter "tag-key=Purpose" and the
--   filter "tag-value=X", you get any resources assigned both the tag key
--   Purpose (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>type</tt> - The type of virtual private gateway.
--   Currently the only supported type is <tt>ipsec.1</tt> . *
--   <tt>vpn-gateway-id</tt> - The ID of the virtual private gateway.
dvgsFilters :: Lens' DescribeVPNGateways [Filter]

-- | One or more virtual private gateway IDs. Default: Describes all your
--   virtual private gateways.
dvgsVPNGatewayIds :: Lens' DescribeVPNGateways [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvgsDryRun :: Lens' DescribeVPNGateways (Maybe Bool)

-- | Creates a value of <a>DescribeVPNGatewaysResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvgrsVPNGateways</a> - Information about one or more virtual
--   private gateways.</li>
--   <li><a>dvgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVPNGatewaysResponse :: Int -> DescribeVPNGatewaysResponse

-- | Contains the output of DescribeVpnGateways.
--   
--   <i>See:</i> <a>describeVPNGatewaysResponse</a> smart constructor.
data DescribeVPNGatewaysResponse

-- | Information about one or more virtual private gateways.
dvgrsVPNGateways :: Lens' DescribeVPNGatewaysResponse [VPNGateway]

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


-- | Describes one or more of your VPN connections.
--   
--   For more information about VPN connections, see <a>Adding a Hardware
--   Virtual Private Gateway to Your VPC</a> in the <i>Amazon Virtual
--   Private Cloud User Guide</i> .
module Network.AWS.EC2.DescribeVPNConnections

-- | Creates a value of <a>DescribeVPNConnections</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpncFilters</a> - One or more filters. *
--   <tt>customer-gateway-configuration</tt> - The configuration
--   information for the customer gateway. * <tt>customer-gateway-id</tt> -
--   The ID of a customer gateway associated with the VPN connection. *
--   <tt>state</tt> - The state of the VPN connection (<tt>pending</tt> |
--   <tt>available</tt> | <tt>deleting</tt> | <tt>deleted</tt> ). *
--   <tt>option.static-routes-only</tt> - Indicates whether the connection
--   has static routes only. Used for devices that do not support Border
--   Gateway Protocol (BGP). * <tt>route.destination-cidr-block</tt> - The
--   destination CIDR block. This corresponds to the subnet used in a
--   customer data center. * <tt>bgp-asn</tt> - The BGP Autonomous System
--   Number (ASN) associated with a BGP device. * <tt>tag</tt> :<i>key</i>
--   =<i>value</i> - The key<i>value combination of a tag assigned to the
--   resource. * <tt>tag-key</tt> - The key of a tag assigned to the
--   resource. This filter is independent of the <tt>tag-value</tt> filter.
--   For example, if you use both the filter "tag-key=Purpose" and the
--   filter "tag-value=X", you get any resources assigned both the tag key
--   Purpose (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>type</tt> - The type of VPN connection. Currently the
--   only supported type is <tt>ipsec.1</tt> . * <tt>vpn-connection-id</tt>
--   - The ID of the VPN connection. * <tt>vpn-gateway-id</tt> - The ID of
--   a virtual private gateway associated with the VPN connection.</li>
--   <li><a>dvpncVPNConnectionIds</a> - One or more VPN connection IDs.
--   Default: Describes your VPN connections.</li>
--   <li><a>dvpncDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeVPNConnections :: DescribeVPNConnections

-- | Contains the parameters for DescribeVpnConnections.
--   
--   <i>See:</i> <a>describeVPNConnections</a> smart constructor.
data DescribeVPNConnections

-- | One or more filters. * <tt>customer-gateway-configuration</tt> - The
--   configuration information for the customer gateway. *
--   <tt>customer-gateway-id</tt> - The ID of a customer gateway associated
--   with the VPN connection. * <tt>state</tt> - The state of the VPN
--   connection (<tt>pending</tt> | <tt>available</tt> | <tt>deleting</tt>
--   | <tt>deleted</tt> ). * <tt>option.static-routes-only</tt> - Indicates
--   whether the connection has static routes only. Used for devices that
--   do not support Border Gateway Protocol (BGP). *
--   <tt>route.destination-cidr-block</tt> - The destination CIDR block.
--   This corresponds to the subnet used in a customer data center. *
--   <tt>bgp-asn</tt> - The BGP Autonomous System Number (ASN) associated
--   with a BGP device. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>type</tt> - The type of VPN connection. Currently the
--   only supported type is <tt>ipsec.1</tt> . * <tt>vpn-connection-id</tt>
--   - The ID of the VPN connection. * <tt>vpn-gateway-id</tt> - The ID of
--   a virtual private gateway associated with the VPN connection.
dvpncFilters :: Lens' DescribeVPNConnections [Filter]

-- | One or more VPN connection IDs. Default: Describes your VPN
--   connections.
dvpncVPNConnectionIds :: Lens' DescribeVPNConnections [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvpncDryRun :: Lens' DescribeVPNConnections (Maybe Bool)

-- | Creates a value of <a>DescribeVPNConnectionsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvcrsVPNConnections</a> - Information about one or more VPN
--   connections.</li>
--   <li><a>dvcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVPNConnectionsResponse :: Int -> DescribeVPNConnectionsResponse

-- | Contains the output of DescribeVpnConnections.
--   
--   <i>See:</i> <a>describeVPNConnectionsResponse</a> smart constructor.
data DescribeVPNConnectionsResponse

-- | Information about one or more VPN connections.
dvcrsVPNConnections :: Lens' DescribeVPNConnectionsResponse [VPNConnection]

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


-- | Describes one or more of your VPCs.
module Network.AWS.EC2.DescribeVPCs

-- | Creates a value of <a>DescribeVPCs</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvsFilters</a> - One or more filters. * <tt>cidr</tt> - The
--   IPv4 CIDR block of the VPC. The CIDR block you specify must exactly
--   match the VPC's CIDR block for information to be returned for the VPC.
--   Must contain the slash followed by one or two digits (for example,
--   <tt>/28</tt> ). * <tt>dhcp-options-id</tt> - The ID of a set of DHCP
--   options. * <tt>ipv6-cidr-block-association.ipv6-cidr-block</tt> - An
--   IPv6 CIDR block associated with the VPC. *
--   <tt>ipv6-cidr-block-association.association-id</tt> - The association
--   ID for an IPv6 CIDR block associated with the VPC. *
--   <tt>ipv6-cidr-block-association.state</tt> - The state of an IPv6 CIDR
--   block associated with the VPC. * <tt>isDefault</tt> - Indicates
--   whether the VPC is the default VPC. * <tt>state</tt> - The state of
--   the VPC (<tt>pending</tt> | <tt>available</tt> ). * <tt>tag</tt>
--   :<i>key</i> =<i>value</i> - The key<i>value combination of a tag
--   assigned to the resource. * <tt>tag-key</tt> - The key of a tag
--   assigned to the resource. This filter is independent of the
--   <tt>tag-value</tt> filter. For example, if you use both the filter
--   "tag-key=Purpose" and the filter "tag-value=X", you get any resources
--   assigned both the tag key Purpose (regardless of what the tag's value
--   is), and the tag value X (regardless of what the tag's key is). If you
--   want to list only resources where Purpose is X, see the <tt>tag</tt>
--   :</i>key<i> =</i>value/ filter. * <tt>tag-value</tt> - The value of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter. * <tt>vpc-id</tt> - The ID of the VPC.</li>
--   <li><a>dvsVPCIds</a> - One or more VPC IDs. Default: Describes all
--   your VPCs.</li>
--   <li><a>dvsDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeVPCs :: DescribeVPCs

-- | Contains the parameters for DescribeVpcs.
--   
--   <i>See:</i> <a>describeVPCs</a> smart constructor.
data DescribeVPCs

-- | One or more filters. * <tt>cidr</tt> - The IPv4 CIDR block of the VPC.
--   The CIDR block you specify must exactly match the VPC's CIDR block for
--   information to be returned for the VPC. Must contain the slash
--   followed by one or two digits (for example, <tt>/28</tt> ). *
--   <tt>dhcp-options-id</tt> - The ID of a set of DHCP options. *
--   <tt>ipv6-cidr-block-association.ipv6-cidr-block</tt> - An IPv6 CIDR
--   block associated with the VPC. *
--   <tt>ipv6-cidr-block-association.association-id</tt> - The association
--   ID for an IPv6 CIDR block associated with the VPC. *
--   <tt>ipv6-cidr-block-association.state</tt> - The state of an IPv6 CIDR
--   block associated with the VPC. * <tt>isDefault</tt> - Indicates
--   whether the VPC is the default VPC. * <tt>state</tt> - The state of
--   the VPC (<tt>pending</tt> | <tt>available</tt> ). * <tt>tag</tt>
--   :<i>key</i> =<i>value</i> - The key<i>value combination of a tag
--   assigned to the resource. * <tt>tag-key</tt> - The key of a tag
--   assigned to the resource. This filter is independent of the
--   <tt>tag-value</tt> filter. For example, if you use both the filter
--   "tag-key=Purpose" and the filter "tag-value=X", you get any resources
--   assigned both the tag key Purpose (regardless of what the tag's value
--   is), and the tag value X (regardless of what the tag's key is). If you
--   want to list only resources where Purpose is X, see the <tt>tag</tt>
--   :</i>key<i> =</i>value/ filter. * <tt>tag-value</tt> - The value of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter. * <tt>vpc-id</tt> - The ID of the VPC.
dvsFilters :: Lens' DescribeVPCs [Filter]

-- | One or more VPC IDs. Default: Describes all your VPCs.
dvsVPCIds :: Lens' DescribeVPCs [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvsDryRun :: Lens' DescribeVPCs (Maybe Bool)

-- | Creates a value of <a>DescribeVPCsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvrsVPCs</a> - Information about one or more VPCs.</li>
--   <li><a>dvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVPCsResponse :: Int -> DescribeVPCsResponse

-- | Contains the output of DescribeVpcs.
--   
--   <i>See:</i> <a>describeVPCsResponse</a> smart constructor.
data DescribeVPCsResponse

-- | Information about one or more VPCs.
dvrsVPCs :: Lens' DescribeVPCsResponse [VPC]

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


-- | Describes one or more of your VPC peering connections.
module Network.AWS.EC2.DescribeVPCPeeringConnections

-- | Creates a value of <a>DescribeVPCPeeringConnections</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcpcFilters</a> - One or more filters. *
--   <tt>accepter-vpc-info.cidr-block</tt> - The IPv4 CIDR block of the
--   peer VPC. * <tt>accepter-vpc-info.owner-id</tt> - The AWS account ID
--   of the owner of the peer VPC. * <tt>accepter-vpc-info.vpc-id</tt> -
--   The ID of the peer VPC. * <tt>expiration-time</tt> - The expiration
--   date and time for the VPC peering connection. *
--   <tt>requester-vpc-info.cidr-block</tt> - The IPv4 CIDR block of the
--   requester's VPC. * <tt>requester-vpc-info.owner-id</tt> - The AWS
--   account ID of the owner of the requester VPC. *
--   <tt>requester-vpc-info.vpc-id</tt> - The ID of the requester VPC. *
--   <tt>status-code</tt> - The status of the VPC peering connection
--   (<tt>pending-acceptance</tt> | <tt>failed</tt> | <tt>expired</tt> |
--   <tt>provisioning</tt> | <tt>active</tt> | <tt>deleted</tt> |
--   <tt>rejected</tt> ). * <tt>status-message</tt> - A message that
--   provides more information about the status of the VPC peering
--   connection, if applicable. * <tt>tag</tt> :<i>key</i> =<i>value</i> -
--   The key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>vpc-peering-connection-id</tt> - The ID of the VPC
--   peering connection.</li>
--   <li><a>dvpcpcVPCPeeringConnectionIds</a> - One or more VPC peering
--   connection IDs. Default: Describes all your VPC peering
--   connections.</li>
--   <li><a>dvpcpcDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeVPCPeeringConnections :: DescribeVPCPeeringConnections

-- | Contains the parameters for DescribeVpcPeeringConnections.
--   
--   <i>See:</i> <a>describeVPCPeeringConnections</a> smart constructor.
data DescribeVPCPeeringConnections

-- | One or more filters. * <tt>accepter-vpc-info.cidr-block</tt> - The
--   IPv4 CIDR block of the peer VPC. * <tt>accepter-vpc-info.owner-id</tt>
--   - The AWS account ID of the owner of the peer VPC. *
--   <tt>accepter-vpc-info.vpc-id</tt> - The ID of the peer VPC. *
--   <tt>expiration-time</tt> - The expiration date and time for the VPC
--   peering connection. * <tt>requester-vpc-info.cidr-block</tt> - The
--   IPv4 CIDR block of the requester's VPC. *
--   <tt>requester-vpc-info.owner-id</tt> - The AWS account ID of the owner
--   of the requester VPC. * <tt>requester-vpc-info.vpc-id</tt> - The ID of
--   the requester VPC. * <tt>status-code</tt> - The status of the VPC
--   peering connection (<tt>pending-acceptance</tt> | <tt>failed</tt> |
--   <tt>expired</tt> | <tt>provisioning</tt> | <tt>active</tt> |
--   <tt>deleted</tt> | <tt>rejected</tt> ). * <tt>status-message</tt> - A
--   message that provides more information about the status of the VPC
--   peering connection, if applicable. * <tt>tag</tt> :<i>key</i>
--   =<i>value</i> - The key<i>value combination of a tag assigned to the
--   resource. * <tt>tag-key</tt> - The key of a tag assigned to the
--   resource. This filter is independent of the <tt>tag-value</tt> filter.
--   For example, if you use both the filter "tag-key=Purpose" and the
--   filter "tag-value=X", you get any resources assigned both the tag key
--   Purpose (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>vpc-peering-connection-id</tt> - The ID of the VPC
--   peering connection.
dvpcpcFilters :: Lens' DescribeVPCPeeringConnections [Filter]

-- | One or more VPC peering connection IDs. Default: Describes all your
--   VPC peering connections.
dvpcpcVPCPeeringConnectionIds :: Lens' DescribeVPCPeeringConnections [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvpcpcDryRun :: Lens' DescribeVPCPeeringConnections (Maybe Bool)

-- | Creates a value of <a>DescribeVPCPeeringConnectionsResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcpcrsVPCPeeringConnections</a> - Information about the VPC
--   peering connections.</li>
--   <li><a>dvpcpcrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
describeVPCPeeringConnectionsResponse :: Int -> DescribeVPCPeeringConnectionsResponse

-- | Contains the output of DescribeVpcPeeringConnections.
--   
--   <i>See:</i> <a>describeVPCPeeringConnectionsResponse</a> smart
--   constructor.
data DescribeVPCPeeringConnectionsResponse

-- | Information about the VPC peering connections.
dvpcpcrsVPCPeeringConnections :: Lens' DescribeVPCPeeringConnectionsResponse [VPCPeeringConnection]

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


-- | Describes one or more of your VPC endpoints.
module Network.AWS.EC2.DescribeVPCEndpoints

-- | Creates a value of <a>DescribeVPCEndpoints</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpceFilters</a> - One or more filters. * <tt>service-name</tt>
--   : The name of the AWS service. * <tt>vpc-id</tt> : The ID of the VPC
--   in which the endpoint resides. * <tt>vpc-endpoint-id</tt> : The ID of
--   the endpoint. * <tt>vpc-endpoint-state</tt> : The state of the
--   endpoint. (<tt>pending</tt> | <tt>available</tt> | <tt>deleting</tt> |
--   <tt>deleted</tt> )</li>
--   <li><a>dvpceNextToken</a> - The token for the next set of items to
--   return. (You received this token from a prior call.)</li>
--   <li><a>dvpceVPCEndpointIds</a> - One or more endpoint IDs.</li>
--   <li><a>dvpceDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dvpceMaxResults</a> - The maximum number of items to return for
--   this request. The request returns a token that you can specify in a
--   subsequent call to get the next set of results. Constraint: If the
--   value is greater than 1000, we return only 1000 items.</li>
--   </ul>
describeVPCEndpoints :: DescribeVPCEndpoints

-- | Contains the parameters for DescribeVpcEndpoints.
--   
--   <i>See:</i> <a>describeVPCEndpoints</a> smart constructor.
data DescribeVPCEndpoints

-- | One or more filters. * <tt>service-name</tt> : The name of the AWS
--   service. * <tt>vpc-id</tt> : The ID of the VPC in which the endpoint
--   resides. * <tt>vpc-endpoint-id</tt> : The ID of the endpoint. *
--   <tt>vpc-endpoint-state</tt> : The state of the endpoint.
--   (<tt>pending</tt> | <tt>available</tt> | <tt>deleting</tt> |
--   <tt>deleted</tt> )
dvpceFilters :: Lens' DescribeVPCEndpoints [Filter]

-- | The token for the next set of items to return. (You received this
--   token from a prior call.)
dvpceNextToken :: Lens' DescribeVPCEndpoints (Maybe Text)

-- | One or more endpoint IDs.
dvpceVPCEndpointIds :: Lens' DescribeVPCEndpoints [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvpceDryRun :: Lens' DescribeVPCEndpoints (Maybe Bool)

-- | The maximum number of items to return for this request. The request
--   returns a token that you can specify in a subsequent call to get the
--   next set of results. Constraint: If the value is greater than 1000, we
--   return only 1000 items.
dvpceMaxResults :: Lens' DescribeVPCEndpoints (Maybe Int)

-- | Creates a value of <a>DescribeVPCEndpointsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcersNextToken</a> - The token to use when requesting the
--   next set of items. If there are no additional items to return, the
--   string is empty.</li>
--   <li><a>dvpcersVPCEndpoints</a> - Information about the endpoints.</li>
--   <li><a>dvpcersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVPCEndpointsResponse :: Int -> DescribeVPCEndpointsResponse

-- | Contains the output of DescribeVpcEndpoints.
--   
--   <i>See:</i> <a>describeVPCEndpointsResponse</a> smart constructor.
data DescribeVPCEndpointsResponse

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dvpcersNextToken :: Lens' DescribeVPCEndpointsResponse (Maybe Text)

-- | Information about the endpoints.
dvpcersVPCEndpoints :: Lens' DescribeVPCEndpointsResponse [VPCEndpoint]

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


-- | Describes all supported AWS services that can be specified when
--   creating a VPC endpoint.
module Network.AWS.EC2.DescribeVPCEndpointServices

-- | Creates a value of <a>DescribeVPCEndpointServices</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvesNextToken</a> - The token for the next set of items to
--   return. (You received this token from a prior call.)</li>
--   <li><a>dvesDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dvesMaxResults</a> - The maximum number of items to return for
--   this request. The request returns a token that you can specify in a
--   subsequent call to get the next set of results. Constraint: If the
--   value is greater than 1000, we return only 1000 items.</li>
--   </ul>
describeVPCEndpointServices :: DescribeVPCEndpointServices

-- | Contains the parameters for DescribeVpcEndpointServices.
--   
--   <i>See:</i> <a>describeVPCEndpointServices</a> smart constructor.
data DescribeVPCEndpointServices

-- | The token for the next set of items to return. (You received this
--   token from a prior call.)
dvesNextToken :: Lens' DescribeVPCEndpointServices (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvesDryRun :: Lens' DescribeVPCEndpointServices (Maybe Bool)

-- | The maximum number of items to return for this request. The request
--   returns a token that you can specify in a subsequent call to get the
--   next set of results. Constraint: If the value is greater than 1000, we
--   return only 1000 items.
dvesMaxResults :: Lens' DescribeVPCEndpointServices (Maybe Int)

-- | Creates a value of <a>DescribeVPCEndpointServicesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvesrsServiceNames</a> - A list of supported AWS services.</li>
--   <li><a>dvesrsNextToken</a> - The token to use when requesting the next
--   set of items. If there are no additional items to return, the string
--   is empty.</li>
--   <li><a>dvesrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVPCEndpointServicesResponse :: Int -> DescribeVPCEndpointServicesResponse

-- | Contains the output of DescribeVpcEndpointServices.
--   
--   <i>See:</i> <a>describeVPCEndpointServicesResponse</a> smart
--   constructor.
data DescribeVPCEndpointServicesResponse

-- | A list of supported AWS services.
dvesrsServiceNames :: Lens' DescribeVPCEndpointServicesResponse [Text]

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dvesrsNextToken :: Lens' DescribeVPCEndpointServicesResponse (Maybe Text)

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


-- | Describes the ClassicLink DNS support status of one or more VPCs. If
--   enabled, the DNS hostname of a linked EC2-Classic instance resolves to
--   its private IP address when addressed from an instance in the VPC to
--   which it's linked. Similarly, the DNS hostname of an instance in a VPC
--   resolves to its private IP address when addressed from a linked
--   EC2-Classic instance. For more information about ClassicLink, see
--   <a>ClassicLink</a> in the Amazon Elastic Compute Cloud User Guide.
module Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport

-- | Creates a value of <a>DescribeVPCClassicLinkDNSSupport</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvcldsNextToken</a> - The token for the next set of items to
--   return. (You received this token from a prior call.)</li>
--   <li><a>dvcldsVPCIds</a> - One or more VPC IDs.</li>
--   <li><a>dvcldsMaxResults</a> - The maximum number of items to return
--   for this request. The request returns a token that you can specify in
--   a subsequent call to get the next set of results.</li>
--   </ul>
describeVPCClassicLinkDNSSupport :: DescribeVPCClassicLinkDNSSupport

-- | Contains the parameters for DescribeVpcClassicLinkDnsSupport.
--   
--   <i>See:</i> <a>describeVPCClassicLinkDNSSupport</a> smart constructor.
data DescribeVPCClassicLinkDNSSupport

-- | The token for the next set of items to return. (You received this
--   token from a prior call.)
dvcldsNextToken :: Lens' DescribeVPCClassicLinkDNSSupport (Maybe Text)

-- | One or more VPC IDs.
dvcldsVPCIds :: Lens' DescribeVPCClassicLinkDNSSupport [Text]

-- | The maximum number of items to return for this request. The request
--   returns a token that you can specify in a subsequent call to get the
--   next set of results.
dvcldsMaxResults :: Lens' DescribeVPCClassicLinkDNSSupport (Maybe Natural)

-- | Creates a value of <a>DescribeVPCClassicLinkDNSSupportResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpccldnssrsVPCs</a> - Information about the ClassicLink DNS
--   support status of the VPCs.</li>
--   <li><a>dvpccldnssrsNextToken</a> - The token to use when requesting
--   the next set of items.</li>
--   <li><a>dvpccldnssrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
describeVPCClassicLinkDNSSupportResponse :: Int -> DescribeVPCClassicLinkDNSSupportResponse

-- | Contains the output of DescribeVpcClassicLinkDnsSupport.
--   
--   <i>See:</i> <a>describeVPCClassicLinkDNSSupportResponse</a> smart
--   constructor.
data DescribeVPCClassicLinkDNSSupportResponse

-- | Information about the ClassicLink DNS support status of the VPCs.
dvpccldnssrsVPCs :: Lens' DescribeVPCClassicLinkDNSSupportResponse [ClassicLinkDNSSupport]

-- | The token to use when requesting the next set of items.
dvpccldnssrsNextToken :: Lens' DescribeVPCClassicLinkDNSSupportResponse (Maybe Text)

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


-- | Describes the ClassicLink status of one or more VPCs.
module Network.AWS.EC2.DescribeVPCClassicLink

-- | Creates a value of <a>DescribeVPCClassicLink</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvclFilters</a> - One or more filters. *
--   <tt>is-classic-link-enabled</tt> - Whether the VPC is enabled for
--   ClassicLink (<tt>true</tt> | <tt>false</tt> ). * <tt>tag</tt>
--   :<i>key</i> =<i>value</i> - The key<i>value combination of a tag
--   assigned to the resource. * <tt>tag-key</tt> - The key of a tag
--   assigned to the resource. This filter is independent of the
--   <tt>tag-value</tt> filter. For example, if you use both the filter
--   "tag-key=Purpose" and the filter "tag-value=X", you get any resources
--   assigned both the tag key Purpose (regardless of what the tag's value
--   is), and the tag value X (regardless of what the tag's key is). If you
--   want to list only resources where Purpose is X, see the <tt>tag</tt>
--   :</i>key<i> =</i>value/ filter. * <tt>tag-value</tt> - The value of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter.</li>
--   <li><a>dvclVPCIds</a> - One or more VPCs for which you want to
--   describe the ClassicLink status.</li>
--   <li><a>dvclDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeVPCClassicLink :: DescribeVPCClassicLink

-- | Contains the parameters for DescribeVpcClassicLink.
--   
--   <i>See:</i> <a>describeVPCClassicLink</a> smart constructor.
data DescribeVPCClassicLink

-- | One or more filters. * <tt>is-classic-link-enabled</tt> - Whether the
--   VPC is enabled for ClassicLink (<tt>true</tt> | <tt>false</tt> ). *
--   <tt>tag</tt> :<i>key</i> =<i>value</i> - The key<i>value combination
--   of a tag assigned to the resource. * <tt>tag-key</tt> - The key of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-value</tt> filter. For example, if you use both the filter
--   "tag-key=Purpose" and the filter "tag-value=X", you get any resources
--   assigned both the tag key Purpose (regardless of what the tag's value
--   is), and the tag value X (regardless of what the tag's key is). If you
--   want to list only resources where Purpose is X, see the <tt>tag</tt>
--   :</i>key<i> =</i>value/ filter. * <tt>tag-value</tt> - The value of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter.
dvclFilters :: Lens' DescribeVPCClassicLink [Filter]

-- | One or more VPCs for which you want to describe the ClassicLink
--   status.
dvclVPCIds :: Lens' DescribeVPCClassicLink [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvclDryRun :: Lens' DescribeVPCClassicLink (Maybe Bool)

-- | Creates a value of <a>DescribeVPCClassicLinkResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvclrsVPCs</a> - The ClassicLink status of one or more
--   VPCs.</li>
--   <li><a>dvclrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVPCClassicLinkResponse :: Int -> DescribeVPCClassicLinkResponse

-- | Contains the output of DescribeVpcClassicLink.
--   
--   <i>See:</i> <a>describeVPCClassicLinkResponse</a> smart constructor.
data DescribeVPCClassicLinkResponse

-- | The ClassicLink status of one or more VPCs.
dvclrsVPCs :: Lens' DescribeVPCClassicLinkResponse [VPCClassicLink]

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


-- | Describes the specified attribute of the specified VPC. You can
--   specify only one attribute at a time.
module Network.AWS.EC2.DescribeVPCAttribute

-- | Creates a value of <a>DescribeVPCAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dvpcaVPCId</a> - The ID of the VPC.</li>
--   <li><a>dvpcaAttribute</a> - The VPC attribute.</li>
--   </ul>
describeVPCAttribute :: Text -> VPCAttributeName -> DescribeVPCAttribute

-- | Contains the parameters for DescribeVpcAttribute.
--   
--   <i>See:</i> <a>describeVPCAttribute</a> smart constructor.
data DescribeVPCAttribute

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvpcaDryRun :: Lens' DescribeVPCAttribute (Maybe Bool)

-- | The ID of the VPC.
dvpcaVPCId :: Lens' DescribeVPCAttribute Text

-- | The VPC attribute.
dvpcaAttribute :: Lens' DescribeVPCAttribute VPCAttributeName

-- | Creates a value of <a>DescribeVPCAttributeResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcarsEnableDNSHostnames</a> - Indicates whether the instances
--   launched in the VPC get DNS hostnames. If this attribute is
--   <tt>true</tt> , instances in the VPC get DNS hostnames; otherwise,
--   they do not.</li>
--   <li><a>dvpcarsEnableDNSSupport</a> - Indicates whether DNS resolution
--   is enabled for the VPC. If this attribute is <tt>true</tt> , the
--   Amazon DNS server resolves DNS hostnames for your instances to their
--   corresponding IP addresses; otherwise, it does not.</li>
--   <li><a>dvpcarsVPCId</a> - The ID of the VPC.</li>
--   <li><a>dvpcarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVPCAttributeResponse :: Int -> DescribeVPCAttributeResponse

-- | Contains the output of DescribeVpcAttribute.
--   
--   <i>See:</i> <a>describeVPCAttributeResponse</a> smart constructor.
data DescribeVPCAttributeResponse

-- | Indicates whether the instances launched in the VPC get DNS hostnames.
--   If this attribute is <tt>true</tt> , instances in the VPC get DNS
--   hostnames; otherwise, they do not.
dvpcarsEnableDNSHostnames :: Lens' DescribeVPCAttributeResponse (Maybe AttributeBooleanValue)

-- | Indicates whether DNS resolution is enabled for the VPC. If this
--   attribute is <tt>true</tt> , the Amazon DNS server resolves DNS
--   hostnames for your instances to their corresponding IP addresses;
--   otherwise, it does not.
dvpcarsEnableDNSSupport :: Lens' DescribeVPCAttributeResponse (Maybe AttributeBooleanValue)

-- | The ID of the VPC.
dvpcarsVPCId :: Lens' DescribeVPCAttributeResponse (Maybe Text)

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


-- | Describes one or more of the tags for your EC2 resources.
--   
--   For more information about tags, see <a>Tagging Your Resources</a> in
--   the <i>Amazon Elastic Compute Cloud User Guide</i> .
--   
--   This operation returns paginated results.
module Network.AWS.EC2.DescribeTags

-- | Creates a value of <a>DescribeTags</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtFilters</a> - One or more filters. * <tt>key</tt> - The tag
--   key. * <tt>resource-id</tt> - The resource ID. *
--   <tt>resource-type</tt> - The resource type (<tt>customer-gateway</tt>
--   | <tt>dhcp-options</tt> | <tt>image</tt> | <tt>instance</tt> |
--   <tt>internet-gateway</tt> | <tt>network-acl</tt> |
--   <tt>network-interface</tt> | <tt>reserved-instances</tt> |
--   <tt>route-table</tt> | <tt>security-group</tt> | <tt>snapshot</tt> |
--   <tt>spot-instances-request</tt> | <tt>subnet</tt> | <tt>volume</tt> |
--   <tt>vpc</tt> | <tt>vpn-connection</tt> | <tt>vpn-gateway</tt> ). *
--   <tt>value</tt> - The tag value.</li>
--   <li><a>dtNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   <li><a>dtDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dtMaxResults</a> - The maximum number of results to return in a
--   single call. This value can be between 5 and 1000. To retrieve the
--   remaining results, make another call with the returned
--   <tt>NextToken</tt> value.</li>
--   </ul>
describeTags :: DescribeTags

-- | Contains the parameters for DescribeTags.
--   
--   <i>See:</i> <a>describeTags</a> smart constructor.
data DescribeTags

-- | One or more filters. * <tt>key</tt> - The tag key. *
--   <tt>resource-id</tt> - The resource ID. * <tt>resource-type</tt> - The
--   resource type (<tt>customer-gateway</tt> | <tt>dhcp-options</tt> |
--   <tt>image</tt> | <tt>instance</tt> | <tt>internet-gateway</tt> |
--   <tt>network-acl</tt> | <tt>network-interface</tt> |
--   <tt>reserved-instances</tt> | <tt>route-table</tt> |
--   <tt>security-group</tt> | <tt>snapshot</tt> |
--   <tt>spot-instances-request</tt> | <tt>subnet</tt> | <tt>volume</tt> |
--   <tt>vpc</tt> | <tt>vpn-connection</tt> | <tt>vpn-gateway</tt> ). *
--   <tt>value</tt> - The tag value.
dtFilters :: Lens' DescribeTags [Filter]

-- | The token to retrieve the next page of results.
dtNextToken :: Lens' DescribeTags (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dtDryRun :: Lens' DescribeTags (Maybe Bool)

-- | The maximum number of results to return in a single call. This value
--   can be between 5 and 1000. To retrieve the remaining results, make
--   another call with the returned <tt>NextToken</tt> value.
dtMaxResults :: Lens' DescribeTags (Maybe Int)

-- | Creates a value of <a>DescribeTagsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtrsNextToken</a> - The token to use to retrieve the next page
--   of results. This value is <tt>null</tt> when there are no more results
--   to return..</li>
--   <li><a>dtrsTags</a> - A list of tags.</li>
--   <li><a>dtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeTagsResponse :: Int -> DescribeTagsResponse

-- | Contains the output of DescribeTags.
--   
--   <i>See:</i> <a>describeTagsResponse</a> smart constructor.
data DescribeTagsResponse

-- | The token to use to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return..
dtrsNextToken :: Lens' DescribeTagsResponse (Maybe Text)

-- | A list of tags.
dtrsTags :: Lens' DescribeTagsResponse [TagDescription]

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


-- | Describes one or more of your subnets.
--   
--   For more information about subnets, see <a>Your VPC and Subnets</a> in
--   the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.DescribeSubnets

-- | Creates a value of <a>DescribeSubnets</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsSubnetIds</a> - One or more subnet IDs. Default: Describes
--   all your subnets.</li>
--   <li><a>dsFilters</a> - One or more filters. *
--   <tt>availabilityZone</tt> - The Availability Zone for the subnet. You
--   can also use <tt>availability-zone</tt> as the filter name. *
--   <tt>available-ip-address-count</tt> - The number of IPv4 addresses in
--   the subnet that are available. * <tt>cidrBlock</tt> - The IPv4 CIDR
--   block of the subnet. The CIDR block you specify must exactly match the
--   subnet's CIDR block for information to be returned for the subnet. You
--   can also use <tt>cidr</tt> or <tt>cidr-block</tt> as the filter names.
--   * <tt>defaultForAz</tt> - Indicates whether this is the default subnet
--   for the Availability Zone. You can also use <tt>default-for-az</tt> as
--   the filter name. *
--   <tt>ipv6-cidr-block-association.ipv6-cidr-block</tt> - An IPv6 CIDR
--   block associated with the subnet. *
--   <tt>ipv6-cidr-block-association.association-id</tt> - An association
--   ID for an IPv6 CIDR block associated with the subnet. *
--   <tt>ipv6-cidr-block-association.state</tt> - The state of an IPv6 CIDR
--   block associated with the subnet. * <tt>state</tt> - The state of the
--   subnet (<tt>pending</tt> | <tt>available</tt> ). * <tt>subnet-id</tt>
--   - The ID of the subnet. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>vpc-id</tt> - The ID of the VPC for the subnet.</li>
--   <li><a>dsDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeSubnets :: DescribeSubnets

-- | Contains the parameters for DescribeSubnets.
--   
--   <i>See:</i> <a>describeSubnets</a> smart constructor.
data DescribeSubnets

-- | One or more subnet IDs. Default: Describes all your subnets.
dsSubnetIds :: Lens' DescribeSubnets [Text]

-- | One or more filters. * <tt>availabilityZone</tt> - The Availability
--   Zone for the subnet. You can also use <tt>availability-zone</tt> as
--   the filter name. * <tt>available-ip-address-count</tt> - The number of
--   IPv4 addresses in the subnet that are available. * <tt>cidrBlock</tt>
--   - The IPv4 CIDR block of the subnet. The CIDR block you specify must
--   exactly match the subnet's CIDR block for information to be returned
--   for the subnet. You can also use <tt>cidr</tt> or <tt>cidr-block</tt>
--   as the filter names. * <tt>defaultForAz</tt> - Indicates whether this
--   is the default subnet for the Availability Zone. You can also use
--   <tt>default-for-az</tt> as the filter name. *
--   <tt>ipv6-cidr-block-association.ipv6-cidr-block</tt> - An IPv6 CIDR
--   block associated with the subnet. *
--   <tt>ipv6-cidr-block-association.association-id</tt> - An association
--   ID for an IPv6 CIDR block associated with the subnet. *
--   <tt>ipv6-cidr-block-association.state</tt> - The state of an IPv6 CIDR
--   block associated with the subnet. * <tt>state</tt> - The state of the
--   subnet (<tt>pending</tt> | <tt>available</tt> ). * <tt>subnet-id</tt>
--   - The ID of the subnet. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>vpc-id</tt> - The ID of the VPC for the subnet.
dsFilters :: Lens' DescribeSubnets [Filter]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dsDryRun :: Lens' DescribeSubnets (Maybe Bool)

-- | Creates a value of <a>DescribeSubnetsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsrsSubnets</a> - Information about one or more subnets.</li>
--   <li><a>dsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeSubnetsResponse :: Int -> DescribeSubnetsResponse

-- | Contains the output of DescribeSubnets.
--   
--   <i>See:</i> <a>describeSubnetsResponse</a> smart constructor.
data DescribeSubnetsResponse

-- | Information about one or more subnets.
dsrsSubnets :: Lens' DescribeSubnetsResponse [Subnet]

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


-- | <ul>
--   <li><i>EC2-VPC only</i> Describes the stale security group rules for
--   security groups in a specified VPC. Rules are stale when they
--   reference a deleted security group in a peer VPC, or a security group
--   in a peer VPC for which the VPC peering connection has been
--   deleted.</li>
--   </ul>
module Network.AWS.EC2.DescribeStaleSecurityGroups

-- | Creates a value of <a>DescribeStaleSecurityGroups</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dssgNextToken</a> - The token for the next set of items to
--   return. (You received this token from a prior call.)</li>
--   <li><a>dssgDryRun</a> - Checks whether you have the required
--   permissions for the operation, without actually making the request,
--   and provides an error response. If you have the required permissions,
--   the error response is DryRunOperation. Otherwise, it is
--   UnauthorizedOperation.</li>
--   <li><a>dssgMaxResults</a> - The maximum number of items to return for
--   this request. The request returns a token that you can specify in a
--   subsequent call to get the next set of results.</li>
--   <li><a>dssgVPCId</a> - The ID of the VPC.</li>
--   </ul>
describeStaleSecurityGroups :: Text -> DescribeStaleSecurityGroups

-- | <i>See:</i> <a>describeStaleSecurityGroups</a> smart constructor.
data DescribeStaleSecurityGroups

-- | The token for the next set of items to return. (You received this
--   token from a prior call.)
dssgNextToken :: Lens' DescribeStaleSecurityGroups (Maybe Text)

-- | Checks whether you have the required permissions for the operation,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   DryRunOperation. Otherwise, it is UnauthorizedOperation.
dssgDryRun :: Lens' DescribeStaleSecurityGroups (Maybe Bool)

-- | The maximum number of items to return for this request. The request
--   returns a token that you can specify in a subsequent call to get the
--   next set of results.
dssgMaxResults :: Lens' DescribeStaleSecurityGroups (Maybe Natural)

-- | The ID of the VPC.
dssgVPCId :: Lens' DescribeStaleSecurityGroups Text

-- | Creates a value of <a>DescribeStaleSecurityGroupsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dssgrsStaleSecurityGroupSet</a> - Information about the stale
--   security groups.</li>
--   <li><a>dssgrsNextToken</a> - The token to use when requesting the next
--   set of items. If there are no additional items to return, the string
--   is empty.</li>
--   <li><a>dssgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeStaleSecurityGroupsResponse :: Int -> DescribeStaleSecurityGroupsResponse

-- | <i>See:</i> <a>describeStaleSecurityGroupsResponse</a> smart
--   constructor.
data DescribeStaleSecurityGroupsResponse

-- | Information about the stale security groups.
dssgrsStaleSecurityGroupSet :: Lens' DescribeStaleSecurityGroupsResponse [StaleSecurityGroup]

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dssgrsNextToken :: Lens' DescribeStaleSecurityGroupsResponse (Maybe Text)

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


-- | Describes the Spot price history. For more information, see <a>Spot
--   Instance Pricing History</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
--   
--   When you specify a start and end time, this operation returns the
--   prices of the instance types within the time range that you specified
--   and the time when the price changed. The price is valid within the
--   time period that you specified; the response merely indicates the last
--   time that the price changed.
--   
--   This operation returns paginated results.
module Network.AWS.EC2.DescribeSpotPriceHistory

-- | Creates a value of <a>DescribeSpotPriceHistory</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsphInstanceTypes</a> - Filters the results by the specified
--   instance types. Note that T2 and HS1 instance types are not
--   supported.</li>
--   <li><a>dsphStartTime</a> - The date and time, up to the past 90 days,
--   from which to start retrieving the price history data, in UTC format
--   (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i>
--   :<i>SS</i> Z).</li>
--   <li><a>dsphFilters</a> - One or more filters. *
--   <tt>availability-zone</tt> - The Availability Zone for which prices
--   should be returned. * <tt>instance-type</tt> - The type of instance
--   (for example, <tt>m3.medium</tt> ). * <tt>product-description</tt> -
--   The product description for the Spot price (<tt>Linux/UNIX</tt> |
--   <tt>SUSE Linux</tt> | <tt>Windows</tt> | <tt>Linux/UNIX (Amazon
--   VPC)</tt> | <tt>SUSE Linux (Amazon VPC)</tt> | <tt>Windows (Amazon
--   VPC)</tt> ). * <tt>spot-price</tt> - The Spot price. The value must
--   match exactly (or use wildcards; greater than or less than comparison
--   is not supported). * <tt>timestamp</tt> - The timestamp of the Spot
--   price history, in UTC format (for example, <i>YYYY</i> -<i>MM</i>
--   -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z). You can use wildcards
--   (* and ?). Greater than or less than comparison is not supported.</li>
--   <li><a>dsphNextToken</a> - The token for the next set of results.</li>
--   <li><a>dsphAvailabilityZone</a> - Filters the results by the specified
--   Availability Zone.</li>
--   <li><a>dsphEndTime</a> - The date and time, up to the current date,
--   from which to stop retrieving the price history data, in UTC format
--   (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i>
--   :<i>SS</i> Z).</li>
--   <li><a>dsphProductDescriptions</a> - Filters the results by the
--   specified basic product descriptions.</li>
--   <li><a>dsphDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dsphMaxResults</a> - The maximum number of results to return in
--   a single call. Specify a value between 1 and 1000. The default value
--   is 1000. To retrieve the remaining results, make another call with the
--   returned <tt>NextToken</tt> value.</li>
--   </ul>
describeSpotPriceHistory :: DescribeSpotPriceHistory

-- | Contains the parameters for DescribeSpotPriceHistory.
--   
--   <i>See:</i> <a>describeSpotPriceHistory</a> smart constructor.
data DescribeSpotPriceHistory

-- | Filters the results by the specified instance types. Note that T2 and
--   HS1 instance types are not supported.
dsphInstanceTypes :: Lens' DescribeSpotPriceHistory [InstanceType]

-- | The date and time, up to the past 90 days, from which to start
--   retrieving the price history data, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
dsphStartTime :: Lens' DescribeSpotPriceHistory (Maybe UTCTime)

-- | One or more filters. * <tt>availability-zone</tt> - The Availability
--   Zone for which prices should be returned. * <tt>instance-type</tt> -
--   The type of instance (for example, <tt>m3.medium</tt> ). *
--   <tt>product-description</tt> - The product description for the Spot
--   price (<tt>Linux/UNIX</tt> | <tt>SUSE Linux</tt> | <tt>Windows</tt> |
--   <tt>Linux/UNIX (Amazon VPC)</tt> | <tt>SUSE Linux (Amazon VPC)</tt> |
--   <tt>Windows (Amazon VPC)</tt> ). * <tt>spot-price</tt> - The Spot
--   price. The value must match exactly (or use wildcards; greater than or
--   less than comparison is not supported). * <tt>timestamp</tt> - The
--   timestamp of the Spot price history, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
--   You can use wildcards (* and ?). Greater than or less than comparison
--   is not supported.
dsphFilters :: Lens' DescribeSpotPriceHistory [Filter]

-- | The token for the next set of results.
dsphNextToken :: Lens' DescribeSpotPriceHistory (Maybe Text)

-- | Filters the results by the specified Availability Zone.
dsphAvailabilityZone :: Lens' DescribeSpotPriceHistory (Maybe Text)

-- | The date and time, up to the current date, from which to stop
--   retrieving the price history data, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
dsphEndTime :: Lens' DescribeSpotPriceHistory (Maybe UTCTime)

-- | Filters the results by the specified basic product descriptions.
dsphProductDescriptions :: Lens' DescribeSpotPriceHistory [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dsphDryRun :: Lens' DescribeSpotPriceHistory (Maybe Bool)

-- | The maximum number of results to return in a single call. Specify a
--   value between 1 and 1000. The default value is 1000. To retrieve the
--   remaining results, make another call with the returned
--   <tt>NextToken</tt> value.
dsphMaxResults :: Lens' DescribeSpotPriceHistory (Maybe Int)

-- | Creates a value of <a>DescribeSpotPriceHistoryResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsphrsNextToken</a> - The token required to retrieve the next
--   set of results. This value is <tt>null</tt> when there are no more
--   results to return.</li>
--   <li><a>dsphrsSpotPriceHistory</a> - The historical Spot prices.</li>
--   <li><a>dsphrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeSpotPriceHistoryResponse :: Int -> DescribeSpotPriceHistoryResponse

-- | Contains the output of DescribeSpotPriceHistory.
--   
--   <i>See:</i> <a>describeSpotPriceHistoryResponse</a> smart constructor.
data DescribeSpotPriceHistoryResponse

-- | The token required to retrieve the next set of results. This value is
--   <tt>null</tt> when there are no more results to return.
dsphrsNextToken :: Lens' DescribeSpotPriceHistoryResponse (Maybe Text)

-- | The historical Spot prices.
dsphrsSpotPriceHistory :: Lens' DescribeSpotPriceHistoryResponse [SpotPrice]

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


-- | Describes the Spot instance requests that belong to your account. Spot
--   instances are instances that Amazon EC2 launches when the bid price
--   that you specify exceeds the current Spot price. Amazon EC2
--   periodically sets the Spot price based on available Spot instance
--   capacity and current Spot instance requests. For more information, see
--   <a>Spot Instance Requests</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
--   
--   You can use <tt>DescribeSpotInstanceRequests</tt> to find a running
--   Spot instance by examining the response. If the status of the Spot
--   instance is <tt>fulfilled</tt> , the instance ID appears in the
--   response and contains the identifier of the instance. Alternatively,
--   you can use <tt>DescribeInstances</tt> with a filter to look for
--   instances where the instance lifecycle is <tt>spot</tt> .
--   
--   Spot instance requests are deleted 4 hours after they are canceled and
--   their instances are terminated.
module Network.AWS.EC2.DescribeSpotInstanceRequests

-- | Creates a value of <a>DescribeSpotInstanceRequests</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsirFilters</a> - One or more filters. *
--   <tt>availability-zone-group</tt> - The Availability Zone group. *
--   <tt>create-time</tt> - The time stamp when the Spot instance request
--   was created. * <tt>fault-code</tt> - The fault code related to the
--   request. * <tt>fault-message</tt> - The fault message related to the
--   request. * <tt>instance-id</tt> - The ID of the instance that
--   fulfilled the request. * <tt>launch-group</tt> - The Spot instance
--   launch group. *
--   <tt>launch.block-device-mapping.delete-on-termination</tt> - Indicates
--   whether the Amazon EBS volume is deleted on instance termination. *
--   <tt>launch.block-device-mapping.device-name</tt> - The device name for
--   the Amazon EBS volume (for example, <tt><i>dev</i>sdh</tt> ). *
--   <tt>launch.block-device-mapping.snapshot-id</tt> - The ID of the
--   snapshot used for the Amazon EBS volume. *
--   <tt>launch.block-device-mapping.volume-size</tt> - The size of the
--   Amazon EBS volume, in GiB. *
--   <tt>launch.block-device-mapping.volume-type</tt> - The type of the
--   Amazon EBS volume: <tt>gp2</tt> for General Purpose SSD, <tt>io1</tt>
--   for Provisioned IOPS SSD, <tt>st1</tt> for Throughput Optimized HDD,
--   <tt>sc1</tt> for Cold HDD, or <tt>standard</tt> for Magnetic. *
--   <tt>launch.group-id</tt> - The security group for the instance. *
--   <tt>launch.image-id</tt> - The ID of the AMI. *
--   <tt>launch.instance-type</tt> - The type of instance (for example,
--   <tt>m3.medium</tt> ). * <tt>launch.kernel-id</tt> - The kernel ID. *
--   <tt>launch.key-name</tt> - The name of the key pair the instance
--   launched with. * <tt>launch.monitoring-enabled</tt> - Whether
--   monitoring is enabled for the Spot instance. *
--   <tt>launch.ramdisk-id</tt> - The RAM disk ID. *
--   <tt>network-interface.network-interface-id</tt> - The ID of the
--   network interface. * <tt>network-interface.device-index</tt> - The
--   index of the device for the network interface attachment on the
--   instance. * <tt>network-interface.subnet-id</tt> - The ID of the
--   subnet for the instance. * <tt>network-interface.description</tt> - A
--   description of the network interface. *
--   <tt>network-interface.private-ip-address</tt> - The primary private IP
--   address of the network interface. *
--   <tt>network-interface.delete-on-termination</tt> - Indicates whether
--   the network interface is deleted when the instance is terminated. *
--   <tt>network-interface.group-id</tt> - The ID of the security group
--   associated with the network interface. *
--   <tt>network-interface.group-name</tt> - The name of the security group
--   associated with the network interface. *
--   <tt>network-interface.addresses.primary</tt> - Indicates whether the
--   IP address is the primary private IP address. *
--   <tt>product-description</tt> - The product description associated with
--   the instance (<tt>Linux/UNIX</tt> | <tt>Windows</tt> ). *
--   <tt>spot-instance-request-id</tt> - The Spot instance request ID. *
--   <tt>spot-price</tt> - The maximum hourly price for any Spot instance
--   launched to fulfill the request. * <tt>state</tt> - The state of the
--   Spot instance request (<tt>open</tt> | <tt>active</tt> |
--   <tt>closed</tt> | <tt>cancelled</tt> | <tt>failed</tt> ). Spot bid
--   status information can help you track your Amazon EC2 Spot instance
--   requests. For more information, see <a>Spot Bid Status</a> in the
--   Amazon Elastic Compute Cloud User Guide. * <tt>status-code</tt> - The
--   short code describing the most recent evaluation of your Spot instance
--   request. * <tt>status-message</tt> - The message explaining the status
--   of the Spot instance request. * <tt>tag</tt> :<i>key</i> =<i>value</i>
--   - The key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>type</tt> - The type of Spot instance request
--   (<tt>one-time</tt> | <tt>persistent</tt> ). *
--   <tt>launched-availability-zone</tt> - The Availability Zone in which
--   the bid is launched. * <tt>valid-from</tt> - The start date of the
--   request. * <tt>valid-until</tt> - The end date of the request.</li>
--   <li><a>dsirSpotInstanceRequestIds</a> - One or more Spot instance
--   request IDs.</li>
--   <li><a>dsirDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeSpotInstanceRequests :: DescribeSpotInstanceRequests

-- | Contains the parameters for DescribeSpotInstanceRequests.
--   
--   <i>See:</i> <a>describeSpotInstanceRequests</a> smart constructor.
data DescribeSpotInstanceRequests

-- | One or more filters. * <tt>availability-zone-group</tt> - The
--   Availability Zone group. * <tt>create-time</tt> - The time stamp when
--   the Spot instance request was created. * <tt>fault-code</tt> - The
--   fault code related to the request. * <tt>fault-message</tt> - The
--   fault message related to the request. * <tt>instance-id</tt> - The ID
--   of the instance that fulfilled the request. * <tt>launch-group</tt> -
--   The Spot instance launch group. *
--   <tt>launch.block-device-mapping.delete-on-termination</tt> - Indicates
--   whether the Amazon EBS volume is deleted on instance termination. *
--   <tt>launch.block-device-mapping.device-name</tt> - The device name for
--   the Amazon EBS volume (for example, <tt><i>dev</i>sdh</tt> ). *
--   <tt>launch.block-device-mapping.snapshot-id</tt> - The ID of the
--   snapshot used for the Amazon EBS volume. *
--   <tt>launch.block-device-mapping.volume-size</tt> - The size of the
--   Amazon EBS volume, in GiB. *
--   <tt>launch.block-device-mapping.volume-type</tt> - The type of the
--   Amazon EBS volume: <tt>gp2</tt> for General Purpose SSD, <tt>io1</tt>
--   for Provisioned IOPS SSD, <tt>st1</tt> for Throughput Optimized HDD,
--   <tt>sc1</tt> for Cold HDD, or <tt>standard</tt> for Magnetic. *
--   <tt>launch.group-id</tt> - The security group for the instance. *
--   <tt>launch.image-id</tt> - The ID of the AMI. *
--   <tt>launch.instance-type</tt> - The type of instance (for example,
--   <tt>m3.medium</tt> ). * <tt>launch.kernel-id</tt> - The kernel ID. *
--   <tt>launch.key-name</tt> - The name of the key pair the instance
--   launched with. * <tt>launch.monitoring-enabled</tt> - Whether
--   monitoring is enabled for the Spot instance. *
--   <tt>launch.ramdisk-id</tt> - The RAM disk ID. *
--   <tt>network-interface.network-interface-id</tt> - The ID of the
--   network interface. * <tt>network-interface.device-index</tt> - The
--   index of the device for the network interface attachment on the
--   instance. * <tt>network-interface.subnet-id</tt> - The ID of the
--   subnet for the instance. * <tt>network-interface.description</tt> - A
--   description of the network interface. *
--   <tt>network-interface.private-ip-address</tt> - The primary private IP
--   address of the network interface. *
--   <tt>network-interface.delete-on-termination</tt> - Indicates whether
--   the network interface is deleted when the instance is terminated. *
--   <tt>network-interface.group-id</tt> - The ID of the security group
--   associated with the network interface. *
--   <tt>network-interface.group-name</tt> - The name of the security group
--   associated with the network interface. *
--   <tt>network-interface.addresses.primary</tt> - Indicates whether the
--   IP address is the primary private IP address. *
--   <tt>product-description</tt> - The product description associated with
--   the instance (<tt>Linux/UNIX</tt> | <tt>Windows</tt> ). *
--   <tt>spot-instance-request-id</tt> - The Spot instance request ID. *
--   <tt>spot-price</tt> - The maximum hourly price for any Spot instance
--   launched to fulfill the request. * <tt>state</tt> - The state of the
--   Spot instance request (<tt>open</tt> | <tt>active</tt> |
--   <tt>closed</tt> | <tt>cancelled</tt> | <tt>failed</tt> ). Spot bid
--   status information can help you track your Amazon EC2 Spot instance
--   requests. For more information, see <a>Spot Bid Status</a> in the
--   Amazon Elastic Compute Cloud User Guide. * <tt>status-code</tt> - The
--   short code describing the most recent evaluation of your Spot instance
--   request. * <tt>status-message</tt> - The message explaining the status
--   of the Spot instance request. * <tt>tag</tt> :<i>key</i> =<i>value</i>
--   - The key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>type</tt> - The type of Spot instance request
--   (<tt>one-time</tt> | <tt>persistent</tt> ). *
--   <tt>launched-availability-zone</tt> - The Availability Zone in which
--   the bid is launched. * <tt>valid-from</tt> - The start date of the
--   request. * <tt>valid-until</tt> - The end date of the request.
dsirFilters :: Lens' DescribeSpotInstanceRequests [Filter]

-- | One or more Spot instance request IDs.
dsirSpotInstanceRequestIds :: Lens' DescribeSpotInstanceRequests [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dsirDryRun :: Lens' DescribeSpotInstanceRequests (Maybe Bool)

-- | Creates a value of <a>DescribeSpotInstanceRequestsResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsirrsSpotInstanceRequests</a> - One or more Spot instance
--   requests.</li>
--   <li><a>dsirrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeSpotInstanceRequestsResponse :: Int -> DescribeSpotInstanceRequestsResponse

-- | Contains the output of DescribeSpotInstanceRequests.
--   
--   <i>See:</i> <a>describeSpotInstanceRequestsResponse</a> smart
--   constructor.
data DescribeSpotInstanceRequestsResponse

-- | One or more Spot instance requests.
dsirrsSpotInstanceRequests :: Lens' DescribeSpotInstanceRequestsResponse [SpotInstanceRequest]

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


-- | Describes your Spot fleet requests.
--   
--   Spot fleet requests are deleted 48 hours after they are canceled and
--   their instances are terminated.
--   
--   This operation returns paginated results.
module Network.AWS.EC2.DescribeSpotFleetRequests

-- | Creates a value of <a>DescribeSpotFleetRequests</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsfrSpotFleetRequestIds</a> - The IDs of the Spot fleet
--   requests.</li>
--   <li><a>dsfrNextToken</a> - The token for the next set of results.</li>
--   <li><a>dsfrDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dsfrMaxResults</a> - The maximum number of results to return in
--   a single call. Specify a value between 1 and 1000. The default value
--   is 1000. To retrieve the remaining results, make another call with the
--   returned <tt>NextToken</tt> value.</li>
--   </ul>
describeSpotFleetRequests :: DescribeSpotFleetRequests

-- | Contains the parameters for DescribeSpotFleetRequests.
--   
--   <i>See:</i> <a>describeSpotFleetRequests</a> smart constructor.
data DescribeSpotFleetRequests

-- | The IDs of the Spot fleet requests.
dsfrSpotFleetRequestIds :: Lens' DescribeSpotFleetRequests [Text]

-- | The token for the next set of results.
dsfrNextToken :: Lens' DescribeSpotFleetRequests (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dsfrDryRun :: Lens' DescribeSpotFleetRequests (Maybe Bool)

-- | The maximum number of results to return in a single call. Specify a
--   value between 1 and 1000. The default value is 1000. To retrieve the
--   remaining results, make another call with the returned
--   <tt>NextToken</tt> value.
dsfrMaxResults :: Lens' DescribeSpotFleetRequests (Maybe Int)

-- | Creates a value of <a>DescribeSpotFleetRequestsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsfrrsNextToken</a> - The token required to retrieve the next
--   set of results. This value is <tt>null</tt> when there are no more
--   results to return.</li>
--   <li><a>dsfrrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dsfrrsSpotFleetRequestConfigs</a> - Information about the
--   configuration of your Spot fleet.</li>
--   </ul>
describeSpotFleetRequestsResponse :: Int -> DescribeSpotFleetRequestsResponse

-- | Contains the output of DescribeSpotFleetRequests.
--   
--   <i>See:</i> <a>describeSpotFleetRequestsResponse</a> smart
--   constructor.
data DescribeSpotFleetRequestsResponse

-- | The token required to retrieve the next set of results. This value is
--   <tt>null</tt> when there are no more results to return.
dsfrrsNextToken :: Lens' DescribeSpotFleetRequestsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsfrrsResponseStatus :: Lens' DescribeSpotFleetRequestsResponse Int

-- | Information about the configuration of your Spot fleet.
dsfrrsSpotFleetRequestConfigs :: Lens' DescribeSpotFleetRequestsResponse [SpotFleetRequestConfig]
instance GHC.Generics.Generic Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequestsResponse
instance Data.Data.Data Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequestsResponse
instance GHC.Show.Show Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequestsResponse
instance GHC.Read.Read Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequestsResponse
instance GHC.Classes.Eq Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequestsResponse
instance GHC.Generics.Generic Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
instance Data.Data.Data Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
instance GHC.Show.Show Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
instance GHC.Read.Read Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
instance GHC.Classes.Eq Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
instance Network.AWS.Pager.AWSPager Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequestsResponse


-- | Describes the events for the specified Spot fleet request during the
--   specified time.
--   
--   Spot fleet events are delayed by up to 30 seconds before they can be
--   described. This ensures that you can query by the last evaluated time
--   and not miss a recorded event.
module Network.AWS.EC2.DescribeSpotFleetRequestHistory

-- | Creates a value of <a>DescribeSpotFleetRequestHistory</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsfrhNextToken</a> - The token for the next set of
--   results.</li>
--   <li><a>dsfrhEventType</a> - The type of events to describe. By
--   default, all events are described.</li>
--   <li><a>dsfrhDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dsfrhMaxResults</a> - The maximum number of results to return
--   in a single call. Specify a value between 1 and 1000. The default
--   value is 1000. To retrieve the remaining results, make another call
--   with the returned <tt>NextToken</tt> value.</li>
--   <li><a>dsfrhSpotFleetRequestId</a> - The ID of the Spot fleet
--   request.</li>
--   <li><a>dsfrhStartTime</a> - The starting date and time for the events,
--   in UTC format (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i>
--   T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).</li>
--   </ul>
describeSpotFleetRequestHistory :: Text -> UTCTime -> DescribeSpotFleetRequestHistory

-- | Contains the parameters for DescribeSpotFleetRequestHistory.
--   
--   <i>See:</i> <a>describeSpotFleetRequestHistory</a> smart constructor.
data DescribeSpotFleetRequestHistory

-- | The token for the next set of results.
dsfrhNextToken :: Lens' DescribeSpotFleetRequestHistory (Maybe Text)

-- | The type of events to describe. By default, all events are described.
dsfrhEventType :: Lens' DescribeSpotFleetRequestHistory (Maybe EventType)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dsfrhDryRun :: Lens' DescribeSpotFleetRequestHistory (Maybe Bool)

-- | The maximum number of results to return in a single call. Specify a
--   value between 1 and 1000. The default value is 1000. To retrieve the
--   remaining results, make another call with the returned
--   <tt>NextToken</tt> value.
dsfrhMaxResults :: Lens' DescribeSpotFleetRequestHistory (Maybe Int)

-- | The ID of the Spot fleet request.
dsfrhSpotFleetRequestId :: Lens' DescribeSpotFleetRequestHistory Text

-- | The starting date and time for the events, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
dsfrhStartTime :: Lens' DescribeSpotFleetRequestHistory UTCTime

-- | Creates a value of <a>DescribeSpotFleetRequestHistoryResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsfrhrsNextToken</a> - The token required to retrieve the next
--   set of results. This value is <tt>null</tt> when there are no more
--   results to return.</li>
--   <li><a>dsfrhrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dsfrhrsSpotFleetRequestId</a> - The ID of the Spot fleet
--   request.</li>
--   <li><a>dsfrhrsStartTime</a> - The starting date and time for the
--   events, in UTC format (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i>
--   T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).</li>
--   <li><a>dsfrhrsLastEvaluatedTime</a> - The last date and time for the
--   events, in UTC format (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i>
--   T<i>HH</i> :<i>MM</i> :<i>SS</i> Z). All records up to this time were
--   retrieved. If <tt>nextToken</tt> indicates that there are more
--   results, this value is not present.</li>
--   <li><a>dsfrhrsHistoryRecords</a> - Information about the events in the
--   history of the Spot fleet request.</li>
--   </ul>
describeSpotFleetRequestHistoryResponse :: Int -> Text -> UTCTime -> UTCTime -> DescribeSpotFleetRequestHistoryResponse

-- | Contains the output of DescribeSpotFleetRequestHistory.
--   
--   <i>See:</i> <a>describeSpotFleetRequestHistoryResponse</a> smart
--   constructor.
data DescribeSpotFleetRequestHistoryResponse

-- | The token required to retrieve the next set of results. This value is
--   <tt>null</tt> when there are no more results to return.
dsfrhrsNextToken :: Lens' DescribeSpotFleetRequestHistoryResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsfrhrsResponseStatus :: Lens' DescribeSpotFleetRequestHistoryResponse Int

-- | The ID of the Spot fleet request.
dsfrhrsSpotFleetRequestId :: Lens' DescribeSpotFleetRequestHistoryResponse Text

-- | The starting date and time for the events, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
dsfrhrsStartTime :: Lens' DescribeSpotFleetRequestHistoryResponse UTCTime

-- | The last date and time for the events, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
--   All records up to this time were retrieved. If <tt>nextToken</tt>
--   indicates that there are more results, this value is not present.
dsfrhrsLastEvaluatedTime :: Lens' DescribeSpotFleetRequestHistoryResponse UTCTime

-- | Information about the events in the history of the Spot fleet request.
dsfrhrsHistoryRecords :: Lens' DescribeSpotFleetRequestHistoryResponse [HistoryRecord]
instance GHC.Generics.Generic Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistoryResponse
instance Data.Data.Data Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistoryResponse
instance GHC.Show.Show Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistoryResponse
instance GHC.Read.Read Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistoryResponse
instance GHC.Classes.Eq Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistoryResponse
instance GHC.Generics.Generic Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistory
instance Data.Data.Data Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistory
instance GHC.Show.Show Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistory
instance GHC.Read.Read Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistory
instance GHC.Classes.Eq Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistory
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistory
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistory
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistory
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistory
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistory
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistory
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistoryResponse


-- | Describes the running instances for the specified Spot fleet.
module Network.AWS.EC2.DescribeSpotFleetInstances

-- | Creates a value of <a>DescribeSpotFleetInstances</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsfiNextToken</a> - The token for the next set of results.</li>
--   <li><a>dsfiDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dsfiMaxResults</a> - The maximum number of results to return in
--   a single call. Specify a value between 1 and 1000. The default value
--   is 1000. To retrieve the remaining results, make another call with the
--   returned <tt>NextToken</tt> value.</li>
--   <li><a>dsfiSpotFleetRequestId</a> - The ID of the Spot fleet
--   request.</li>
--   </ul>
describeSpotFleetInstances :: Text -> DescribeSpotFleetInstances

-- | Contains the parameters for DescribeSpotFleetInstances.
--   
--   <i>See:</i> <a>describeSpotFleetInstances</a> smart constructor.
data DescribeSpotFleetInstances

-- | The token for the next set of results.
dsfiNextToken :: Lens' DescribeSpotFleetInstances (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dsfiDryRun :: Lens' DescribeSpotFleetInstances (Maybe Bool)

-- | The maximum number of results to return in a single call. Specify a
--   value between 1 and 1000. The default value is 1000. To retrieve the
--   remaining results, make another call with the returned
--   <tt>NextToken</tt> value.
dsfiMaxResults :: Lens' DescribeSpotFleetInstances (Maybe Int)

-- | The ID of the Spot fleet request.
dsfiSpotFleetRequestId :: Lens' DescribeSpotFleetInstances Text

-- | Creates a value of <a>DescribeSpotFleetInstancesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsfirsNextToken</a> - The token required to retrieve the next
--   set of results. This value is <tt>null</tt> when there are no more
--   results to return.</li>
--   <li><a>dsfirsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dsfirsSpotFleetRequestId</a> - The ID of the Spot fleet
--   request.</li>
--   <li><a>dsfirsActiveInstances</a> - The running instances. Note that
--   this list is refreshed periodically and might be out of date.</li>
--   </ul>
describeSpotFleetInstancesResponse :: Int -> Text -> DescribeSpotFleetInstancesResponse

-- | Contains the output of DescribeSpotFleetInstances.
--   
--   <i>See:</i> <a>describeSpotFleetInstancesResponse</a> smart
--   constructor.
data DescribeSpotFleetInstancesResponse

-- | The token required to retrieve the next set of results. This value is
--   <tt>null</tt> when there are no more results to return.
dsfirsNextToken :: Lens' DescribeSpotFleetInstancesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsfirsResponseStatus :: Lens' DescribeSpotFleetInstancesResponse Int

-- | The ID of the Spot fleet request.
dsfirsSpotFleetRequestId :: Lens' DescribeSpotFleetInstancesResponse Text

-- | The running instances. Note that this list is refreshed periodically
--   and might be out of date.
dsfirsActiveInstances :: Lens' DescribeSpotFleetInstancesResponse [ActiveInstance]
instance GHC.Generics.Generic Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstancesResponse
instance Data.Data.Data Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstancesResponse
instance GHC.Show.Show Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstancesResponse
instance GHC.Read.Read Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstancesResponse
instance GHC.Classes.Eq Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstancesResponse
instance GHC.Generics.Generic Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstances
instance Data.Data.Data Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstances
instance GHC.Show.Show Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstances
instance GHC.Read.Read Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstances
instance GHC.Classes.Eq Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstances
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstances
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstances
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstances
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstances
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstances
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstances
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstancesResponse


-- | Describes the data feed for Spot instances. For more information, see
--   <a>Spot Instance Data Feed</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
module Network.AWS.EC2.DescribeSpotDatafeedSubscription

-- | Creates a value of <a>DescribeSpotDatafeedSubscription</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsdsDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeSpotDatafeedSubscription :: DescribeSpotDatafeedSubscription

-- | Contains the parameters for DescribeSpotDatafeedSubscription.
--   
--   <i>See:</i> <a>describeSpotDatafeedSubscription</a> smart constructor.
data DescribeSpotDatafeedSubscription

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dsdsDryRun :: Lens' DescribeSpotDatafeedSubscription (Maybe Bool)

-- | Creates a value of <a>DescribeSpotDatafeedSubscriptionResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsdsrsSpotDatafeedSubscription</a> - The Spot instance data
--   feed subscription.</li>
--   <li><a>dsdsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeSpotDatafeedSubscriptionResponse :: Int -> DescribeSpotDatafeedSubscriptionResponse

-- | Contains the output of DescribeSpotDatafeedSubscription.
--   
--   <i>See:</i> <a>describeSpotDatafeedSubscriptionResponse</a> smart
--   constructor.
data DescribeSpotDatafeedSubscriptionResponse

-- | The Spot instance data feed subscription.
dsdsrsSpotDatafeedSubscription :: Lens' DescribeSpotDatafeedSubscriptionResponse (Maybe SpotDatafeedSubscription)

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


-- | Describes one or more of the EBS snapshots available to you. Available
--   snapshots include public snapshots available for any AWS account to
--   launch, private snapshots that you own, and private snapshots owned by
--   another AWS account but for which you've been given explicit create
--   volume permissions.
--   
--   The create volume permissions fall into the following categories:
--   
--   <ul>
--   <li><i>public</i> : The owner of the snapshot granted create volume
--   permissions for the snapshot to the <tt>all</tt> group. All AWS
--   accounts have create volume permissions for these snapshots.</li>
--   <li><i>explicit</i> : The owner of the snapshot granted create volume
--   permissions to a specific AWS account.</li>
--   <li><i>implicit</i> : An AWS account has implicit create volume
--   permissions for all snapshots it owns.</li>
--   </ul>
--   
--   The list of snapshots returned can be modified by specifying snapshot
--   IDs, snapshot owners, or AWS accounts with create volume permissions.
--   If no options are specified, Amazon EC2 returns all snapshots for
--   which you have create volume permissions.
--   
--   If you specify one or more snapshot IDs, only snapshots that have the
--   specified IDs are returned. If you specify an invalid snapshot ID, an
--   error is returned. If you specify a snapshot ID for which you do not
--   have access, it is not included in the returned results.
--   
--   If you specify one or more snapshot owners using the <tt>OwnerIds</tt>
--   option, only snapshots from the specified owners and for which you
--   have access are returned. The results can include the AWS account IDs
--   of the specified owners, <tt>amazon</tt> for snapshots owned by
--   Amazon, or <tt>self</tt> for snapshots that you own.
--   
--   If you specify a list of restorable users, only snapshots with create
--   snapshot permissions for those users are returned. You can specify AWS
--   account IDs (if you own the snapshots), <tt>self</tt> for snapshots
--   for which you own or have explicit permissions, or <tt>all</tt> for
--   public snapshots.
--   
--   If you are describing a long list of snapshots, you can paginate the
--   output to make the list more manageable. The <tt>MaxResults</tt>
--   parameter sets the maximum number of results returned in a single
--   page. If the list of results exceeds your <tt>MaxResults</tt> value,
--   then that number of results is returned along with a
--   <tt>NextToken</tt> value that can be passed to a subsequent
--   <tt>DescribeSnapshots</tt> request to retrieve the remaining results.
--   
--   For more information about EBS snapshots, see <a>Amazon EBS
--   Snapshots</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
--   
--   This operation returns paginated results.
module Network.AWS.EC2.DescribeSnapshots

-- | Creates a value of <a>DescribeSnapshots</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dssOwnerIds</a> - Returns the snapshots owned by the specified
--   owner. Multiple owners can be specified.</li>
--   <li><a>dssFilters</a> - One or more filters. * <tt>description</tt> -
--   A description of the snapshot. * <tt>owner-alias</tt> - Value from an
--   Amazon-maintained list (<tt>amazon</tt> | <tt>aws-marketplace</tt> |
--   <tt>microsoft</tt> ) of snapshot owners. Not to be confused with the
--   user-configured AWS account alias, which is set from the IAM consolew.
--   * <tt>owner-id</tt> - The ID of the AWS account that owns the
--   snapshot. * <tt>progress</tt> - The progress of the snapshot, as a
--   percentage (for example, 80%). * <tt>snapshot-id</tt> - The snapshot
--   ID. * <tt>start-time</tt> - The time stamp when the snapshot was
--   initiated. * <tt>status</tt> - The status of the snapshot
--   (<tt>pending</tt> | <tt>completed</tt> | <tt>error</tt> ). *
--   <tt>tag</tt> :<i>key</i> =<i>value</i> - The key<i>value combination
--   of a tag assigned to the resource. * <tt>tag-key</tt> - The key of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-value</tt> filter. For example, if you use both the filter
--   "tag-key=Purpose" and the filter "tag-value=X", you get any resources
--   assigned both the tag key Purpose (regardless of what the tag's value
--   is), and the tag value X (regardless of what the tag's key is). If you
--   want to list only resources where Purpose is X, see the <tt>tag</tt>
--   :</i>key<i> =</i>value/ filter. * <tt>tag-value</tt> - The value of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter. * <tt>volume-id</tt> - The ID of the volume
--   the snapshot is for. * <tt>volume-size</tt> - The size of the volume,
--   in GiB.</li>
--   <li><a>dssNextToken</a> - The <tt>NextToken</tt> value returned from a
--   previous paginated <tt>DescribeSnapshots</tt> request where
--   <tt>MaxResults</tt> was used and the results exceeded the value of
--   that parameter. Pagination continues from the end of the previous
--   results that returned the <tt>NextToken</tt> value. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>dssSnapshotIds</a> - One or more snapshot IDs. Default:
--   Describes snapshots for which you have launch permissions.</li>
--   <li><a>dssRestorableByUserIds</a> - One or more AWS accounts IDs that
--   can create volumes from the snapshot.</li>
--   <li><a>dssDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dssMaxResults</a> - The maximum number of snapshot results
--   returned by <tt>DescribeSnapshots</tt> in paginated output. When this
--   parameter is used, <tt>DescribeSnapshots</tt> only returns
--   <tt>MaxResults</tt> results in a single page along with a
--   <tt>NextToken</tt> response element. The remaining results of the
--   initial request can be seen by sending another
--   <tt>DescribeSnapshots</tt> request with the returned
--   <tt>NextToken</tt> value. This value can be between 5 and 1000; if
--   <tt>MaxResults</tt> is given a value larger than 1000, only 1000
--   results are returned. If this parameter is not used, then
--   <tt>DescribeSnapshots</tt> returns all results. You cannot specify
--   this parameter and the snapshot IDs parameter in the same
--   request.</li>
--   </ul>
describeSnapshots :: DescribeSnapshots

-- | Contains the parameters for DescribeSnapshots.
--   
--   <i>See:</i> <a>describeSnapshots</a> smart constructor.
data DescribeSnapshots

-- | Returns the snapshots owned by the specified owner. Multiple owners
--   can be specified.
dssOwnerIds :: Lens' DescribeSnapshots [Text]

-- | One or more filters. * <tt>description</tt> - A description of the
--   snapshot. * <tt>owner-alias</tt> - Value from an Amazon-maintained
--   list (<tt>amazon</tt> | <tt>aws-marketplace</tt> | <tt>microsoft</tt>
--   ) of snapshot owners. Not to be confused with the user-configured AWS
--   account alias, which is set from the IAM consolew. * <tt>owner-id</tt>
--   - The ID of the AWS account that owns the snapshot. *
--   <tt>progress</tt> - The progress of the snapshot, as a percentage (for
--   example, 80%). * <tt>snapshot-id</tt> - The snapshot ID. *
--   <tt>start-time</tt> - The time stamp when the snapshot was initiated.
--   * <tt>status</tt> - The status of the snapshot (<tt>pending</tt> |
--   <tt>completed</tt> | <tt>error</tt> ). * <tt>tag</tt> :<i>key</i>
--   =<i>value</i> - The key<i>value combination of a tag assigned to the
--   resource. * <tt>tag-key</tt> - The key of a tag assigned to the
--   resource. This filter is independent of the <tt>tag-value</tt> filter.
--   For example, if you use both the filter "tag-key=Purpose" and the
--   filter "tag-value=X", you get any resources assigned both the tag key
--   Purpose (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>volume-id</tt> - The ID of the volume the snapshot is
--   for. * <tt>volume-size</tt> - The size of the volume, in GiB.
dssFilters :: Lens' DescribeSnapshots [Filter]

-- | The <tt>NextToken</tt> value returned from a previous paginated
--   <tt>DescribeSnapshots</tt> request where <tt>MaxResults</tt> was used
--   and the results exceeded the value of that parameter. Pagination
--   continues from the end of the previous results that returned the
--   <tt>NextToken</tt> value. This value is <tt>null</tt> when there are
--   no more results to return.
dssNextToken :: Lens' DescribeSnapshots (Maybe Text)

-- | One or more snapshot IDs. Default: Describes snapshots for which you
--   have launch permissions.
dssSnapshotIds :: Lens' DescribeSnapshots [Text]

-- | One or more AWS accounts IDs that can create volumes from the
--   snapshot.
dssRestorableByUserIds :: Lens' DescribeSnapshots [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dssDryRun :: Lens' DescribeSnapshots (Maybe Bool)

-- | The maximum number of snapshot results returned by
--   <tt>DescribeSnapshots</tt> in paginated output. When this parameter is
--   used, <tt>DescribeSnapshots</tt> only returns <tt>MaxResults</tt>
--   results in a single page along with a <tt>NextToken</tt> response
--   element. The remaining results of the initial request can be seen by
--   sending another <tt>DescribeSnapshots</tt> request with the returned
--   <tt>NextToken</tt> value. This value can be between 5 and 1000; if
--   <tt>MaxResults</tt> is given a value larger than 1000, only 1000
--   results are returned. If this parameter is not used, then
--   <tt>DescribeSnapshots</tt> returns all results. You cannot specify
--   this parameter and the snapshot IDs parameter in the same request.
dssMaxResults :: Lens' DescribeSnapshots (Maybe Int)

-- | Creates a value of <a>DescribeSnapshotsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dssrsNextToken</a> - The <tt>NextToken</tt> value to include in
--   a future <tt>DescribeSnapshots</tt> request. When the results of a
--   <tt>DescribeSnapshots</tt> request exceed <tt>MaxResults</tt> , this
--   value can be used to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>dssrsSnapshots</a> - Information about the snapshots.</li>
--   <li><a>dssrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeSnapshotsResponse :: Int -> DescribeSnapshotsResponse

-- | Contains the output of DescribeSnapshots.
--   
--   <i>See:</i> <a>describeSnapshotsResponse</a> smart constructor.
data DescribeSnapshotsResponse

-- | The <tt>NextToken</tt> value to include in a future
--   <tt>DescribeSnapshots</tt> request. When the results of a
--   <tt>DescribeSnapshots</tt> request exceed <tt>MaxResults</tt> , this
--   value can be used to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
dssrsNextToken :: Lens' DescribeSnapshotsResponse (Maybe Text)

-- | Information about the snapshots.
dssrsSnapshots :: Lens' DescribeSnapshotsResponse [Snapshot]

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


-- | Describes the specified attribute of the specified snapshot. You can
--   specify only one attribute at a time.
--   
--   For more information about EBS snapshots, see <a>Amazon EBS
--   Snapshots</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.DescribeSnapshotAttribute

-- | Creates a value of <a>DescribeSnapshotAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dsaSnapshotId</a> - The ID of the EBS snapshot.</li>
--   <li><a>dsaAttribute</a> - The snapshot attribute you would like to
--   view.</li>
--   </ul>
describeSnapshotAttribute :: Text -> SnapshotAttributeName -> DescribeSnapshotAttribute

-- | Contains the parameters for DescribeSnapshotAttribute.
--   
--   <i>See:</i> <a>describeSnapshotAttribute</a> smart constructor.
data DescribeSnapshotAttribute

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dsaDryRun :: Lens' DescribeSnapshotAttribute (Maybe Bool)

-- | The ID of the EBS snapshot.
dsaSnapshotId :: Lens' DescribeSnapshotAttribute Text

-- | The snapshot attribute you would like to view.
dsaAttribute :: Lens' DescribeSnapshotAttribute SnapshotAttributeName

-- | Creates a value of <a>DescribeSnapshotAttributeResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsarsCreateVolumePermissions</a> - A list of permissions for
--   creating volumes from the snapshot.</li>
--   <li><a>dsarsProductCodes</a> - A list of product codes.</li>
--   <li><a>dsarsSnapshotId</a> - The ID of the EBS snapshot.</li>
--   <li><a>dsarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeSnapshotAttributeResponse :: Int -> DescribeSnapshotAttributeResponse

-- | Contains the output of DescribeSnapshotAttribute.
--   
--   <i>See:</i> <a>describeSnapshotAttributeResponse</a> smart
--   constructor.
data DescribeSnapshotAttributeResponse

-- | A list of permissions for creating volumes from the snapshot.
dsarsCreateVolumePermissions :: Lens' DescribeSnapshotAttributeResponse [CreateVolumePermission]

-- | A list of product codes.
dsarsProductCodes :: Lens' DescribeSnapshotAttributeResponse [ProductCode]

-- | The ID of the EBS snapshot.
dsarsSnapshotId :: Lens' DescribeSnapshotAttributeResponse (Maybe Text)

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


-- | Describes one or more of your security groups.
--   
--   A security group is for use with instances either in the EC2-Classic
--   platform or in a specific VPC. For more information, see <a>Amazon EC2
--   Security Groups</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> and <a>Security Groups for Your VPC</a> in the <i>Amazon
--   Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.DescribeSecurityGroups

-- | Creates a value of <a>DescribeSecurityGroups</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsgsFilters</a> - One or more filters. If using multiple
--   filters for rules, the results include security groups for which any
--   combination of rules - not necessarily a single rule - match all
--   filters. * <tt>description</tt> - The description of the security
--   group. * <tt>egress.ip-permission.prefix-list-id</tt> - The ID
--   (prefix) of the AWS service to which the security group allows access.
--   * <tt>group-id</tt> - The ID of the security group. *
--   <tt>group-name</tt> - The name of the security group. *
--   <tt>ip-permission.cidr</tt> - An IPv4 CIDR range that has been granted
--   permission in a security group rule. *
--   <tt>ip-permission.from-port</tt> - The start of port range for the TCP
--   and UDP protocols, or an ICMP type number. *
--   <tt>ip-permission.group-id</tt> - The ID of a security group that has
--   been granted permission. * <tt>ip-permission.group-name</tt> - The
--   name of a security group that has been granted permission. *
--   <tt>ip-permission.ipv6-cidr</tt> - An IPv6 CIDR range that has been
--   granted permission in a security group rule. *
--   <tt>ip-permission.protocol</tt> - The IP protocol for the permission
--   (<tt>tcp</tt> | <tt>udp</tt> | <tt>icmp</tt> or a protocol number). *
--   <tt>ip-permission.to-port</tt> - The end of port range for the TCP and
--   UDP protocols, or an ICMP code. * <tt>ip-permission.user-id</tt> - The
--   ID of an AWS account that has been granted permission. *
--   <tt>owner-id</tt> - The AWS account ID of the owner of the security
--   group. * <tt>tag-key</tt> - The key of a tag assigned to the security
--   group. * <tt>tag-value</tt> - The value of a tag assigned to the
--   security group. * <tt>vpc-id</tt> - The ID of the VPC specified when
--   the security group was created.</li>
--   <li><a>dsgsGroupNames</a> - [EC2-Classic and default VPC only] One or
--   more security group names. You can specify either the security group
--   name or the security group ID. For security groups in a nondefault
--   VPC, use the <tt>group-name</tt> filter to describe security groups by
--   name. Default: Describes all your security groups.</li>
--   <li><a>dsgsGroupIds</a> - One or more security group IDs. Required for
--   security groups in a nondefault VPC. Default: Describes all your
--   security groups.</li>
--   <li><a>dsgsDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeSecurityGroups :: DescribeSecurityGroups

-- | Contains the parameters for DescribeSecurityGroups.
--   
--   <i>See:</i> <a>describeSecurityGroups</a> smart constructor.
data DescribeSecurityGroups

-- | One or more filters. If using multiple filters for rules, the results
--   include security groups for which any combination of rules - not
--   necessarily a single rule - match all filters. * <tt>description</tt>
--   - The description of the security group. *
--   <tt>egress.ip-permission.prefix-list-id</tt> - The ID (prefix) of the
--   AWS service to which the security group allows access. *
--   <tt>group-id</tt> - The ID of the security group. *
--   <tt>group-name</tt> - The name of the security group. *
--   <tt>ip-permission.cidr</tt> - An IPv4 CIDR range that has been granted
--   permission in a security group rule. *
--   <tt>ip-permission.from-port</tt> - The start of port range for the TCP
--   and UDP protocols, or an ICMP type number. *
--   <tt>ip-permission.group-id</tt> - The ID of a security group that has
--   been granted permission. * <tt>ip-permission.group-name</tt> - The
--   name of a security group that has been granted permission. *
--   <tt>ip-permission.ipv6-cidr</tt> - An IPv6 CIDR range that has been
--   granted permission in a security group rule. *
--   <tt>ip-permission.protocol</tt> - The IP protocol for the permission
--   (<tt>tcp</tt> | <tt>udp</tt> | <tt>icmp</tt> or a protocol number). *
--   <tt>ip-permission.to-port</tt> - The end of port range for the TCP and
--   UDP protocols, or an ICMP code. * <tt>ip-permission.user-id</tt> - The
--   ID of an AWS account that has been granted permission. *
--   <tt>owner-id</tt> - The AWS account ID of the owner of the security
--   group. * <tt>tag-key</tt> - The key of a tag assigned to the security
--   group. * <tt>tag-value</tt> - The value of a tag assigned to the
--   security group. * <tt>vpc-id</tt> - The ID of the VPC specified when
--   the security group was created.
dsgsFilters :: Lens' DescribeSecurityGroups [Filter]

-- | <ul>
--   <li><i>EC2-Classic and default VPC only</i> One or more security group
--   names. You can specify either the security group name or the security
--   group ID. For security groups in a nondefault VPC, use the
--   <tt>group-name</tt> filter to describe security groups by name.
--   Default: Describes all your security groups.</li>
--   </ul>
dsgsGroupNames :: Lens' DescribeSecurityGroups [Text]

-- | One or more security group IDs. Required for security groups in a
--   nondefault VPC. Default: Describes all your security groups.
dsgsGroupIds :: Lens' DescribeSecurityGroups [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dsgsDryRun :: Lens' DescribeSecurityGroups (Maybe Bool)

-- | Creates a value of <a>DescribeSecurityGroupsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsgrsSecurityGroups</a> - Information about one or more
--   security groups.</li>
--   <li><a>dsgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeSecurityGroupsResponse :: Int -> DescribeSecurityGroupsResponse

-- | Contains the output of DescribeSecurityGroups.
--   
--   <i>See:</i> <a>describeSecurityGroupsResponse</a> smart constructor.
data DescribeSecurityGroupsResponse

-- | Information about one or more security groups.
dsgrsSecurityGroups :: Lens' DescribeSecurityGroupsResponse [SecurityGroup]

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


-- | <ul>
--   <li><i>EC2-VPC only</i> Describes the VPCs on the other side of a VPC
--   peering connection that are referencing the security groups you've
--   specified in this request.</li>
--   </ul>
module Network.AWS.EC2.DescribeSecurityGroupReferences

-- | Creates a value of <a>DescribeSecurityGroupReferences</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsgrDryRun</a> - Checks whether you have the required
--   permissions for the operation, without actually making the request,
--   and provides an error response. If you have the required permissions,
--   the error response is DryRunOperation. Otherwise, it is
--   UnauthorizedOperation.</li>
--   <li><a>dsgrGroupId</a> - One or more security group IDs in your
--   account.</li>
--   </ul>
describeSecurityGroupReferences :: DescribeSecurityGroupReferences

-- | <i>See:</i> <a>describeSecurityGroupReferences</a> smart constructor.
data DescribeSecurityGroupReferences

-- | Checks whether you have the required permissions for the operation,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   DryRunOperation. Otherwise, it is UnauthorizedOperation.
dsgrDryRun :: Lens' DescribeSecurityGroupReferences (Maybe Bool)

-- | One or more security group IDs in your account.
dsgrGroupId :: Lens' DescribeSecurityGroupReferences [Text]

-- | Creates a value of <a>DescribeSecurityGroupReferencesResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsgrrsSecurityGroupReferenceSet</a> - Information about the
--   VPCs with the referencing security groups.</li>
--   <li><a>dsgrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeSecurityGroupReferencesResponse :: Int -> DescribeSecurityGroupReferencesResponse

-- | <i>See:</i> <a>describeSecurityGroupReferencesResponse</a> smart
--   constructor.
data DescribeSecurityGroupReferencesResponse

-- | Information about the VPCs with the referencing security groups.
dsgrrsSecurityGroupReferenceSet :: Lens' DescribeSecurityGroupReferencesResponse [SecurityGroupReference]

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


-- | Describes one or more of your Scheduled Instances.
module Network.AWS.EC2.DescribeScheduledInstances

-- | Creates a value of <a>DescribeScheduledInstances</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsiFilters</a> - One or more filters. *
--   <tt>availability-zone</tt> - The Availability Zone (for example,
--   <tt>us-west-2a</tt> ). * <tt>instance-type</tt> - The instance type
--   (for example, <tt>c4.large</tt> ). * <tt>network-platform</tt> - The
--   network platform (<tt>EC2-Classic</tt> or <tt>EC2-VPC</tt> ). *
--   <tt>platform</tt> - The platform (<tt>Linux/UNIX</tt> or
--   <tt>Windows</tt> ).</li>
--   <li><a>dsiSlotStartTimeRange</a> - The time period for the first
--   schedule to start.</li>
--   <li><a>dsiNextToken</a> - The token for the next set of results.</li>
--   <li><a>dsiScheduledInstanceIds</a> - One or more Scheduled Instance
--   IDs.</li>
--   <li><a>dsiDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dsiMaxResults</a> - The maximum number of results to return in
--   a single call. This value can be between 5 and 300. The default value
--   is 100. To retrieve the remaining results, make another call with the
--   returned <tt>NextToken</tt> value.</li>
--   </ul>
describeScheduledInstances :: DescribeScheduledInstances

-- | Contains the parameters for DescribeScheduledInstances.
--   
--   <i>See:</i> <a>describeScheduledInstances</a> smart constructor.
data DescribeScheduledInstances

-- | One or more filters. * <tt>availability-zone</tt> - The Availability
--   Zone (for example, <tt>us-west-2a</tt> ). * <tt>instance-type</tt> -
--   The instance type (for example, <tt>c4.large</tt> ). *
--   <tt>network-platform</tt> - The network platform (<tt>EC2-Classic</tt>
--   or <tt>EC2-VPC</tt> ). * <tt>platform</tt> - The platform
--   (<tt>Linux/UNIX</tt> or <tt>Windows</tt> ).
dsiFilters :: Lens' DescribeScheduledInstances [Filter]

-- | The time period for the first schedule to start.
dsiSlotStartTimeRange :: Lens' DescribeScheduledInstances (Maybe SlotStartTimeRangeRequest)

-- | The token for the next set of results.
dsiNextToken :: Lens' DescribeScheduledInstances (Maybe Text)

-- | One or more Scheduled Instance IDs.
dsiScheduledInstanceIds :: Lens' DescribeScheduledInstances [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dsiDryRun :: Lens' DescribeScheduledInstances (Maybe Bool)

-- | The maximum number of results to return in a single call. This value
--   can be between 5 and 300. The default value is 100. To retrieve the
--   remaining results, make another call with the returned
--   <tt>NextToken</tt> value.
dsiMaxResults :: Lens' DescribeScheduledInstances (Maybe Int)

-- | Creates a value of <a>DescribeScheduledInstancesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsirsNextToken</a> - The token required to retrieve the next
--   set of results. This value is <tt>null</tt> when there are no more
--   results to return.</li>
--   <li><a>dsirsScheduledInstanceSet</a> - Information about the Scheduled
--   Instances.</li>
--   <li><a>dsirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeScheduledInstancesResponse :: Int -> DescribeScheduledInstancesResponse

-- | Contains the output of DescribeScheduledInstances.
--   
--   <i>See:</i> <a>describeScheduledInstancesResponse</a> smart
--   constructor.
data DescribeScheduledInstancesResponse

-- | The token required to retrieve the next set of results. This value is
--   <tt>null</tt> when there are no more results to return.
dsirsNextToken :: Lens' DescribeScheduledInstancesResponse (Maybe Text)

-- | Information about the Scheduled Instances.
dsirsScheduledInstanceSet :: Lens' DescribeScheduledInstancesResponse [ScheduledInstance]

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


-- | Finds available schedules that meet the specified criteria.
--   
--   You can search for an available schedule no more than 3 months in
--   advance. You must meet the minimum required duration of 1,200 hours
--   per year. For example, the minimum daily schedule is 4 hours, the
--   minimum weekly schedule is 24 hours, and the minimum monthly schedule
--   is 100 hours.
--   
--   After you find a schedule that meets your needs, call
--   <tt>PurchaseScheduledInstances</tt> to purchase Scheduled Instances
--   with that schedule.
module Network.AWS.EC2.DescribeScheduledInstanceAvailability

-- | Creates a value of <a>DescribeScheduledInstanceAvailability</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsiaMinSlotDurationInHours</a> - The minimum available
--   duration, in hours. The minimum required duration is 1,200 hours per
--   year. For example, the minimum daily schedule is 4 hours, the minimum
--   weekly schedule is 24 hours, and the minimum monthly schedule is 100
--   hours.</li>
--   <li><a>dsiaFilters</a> - One or more filters. *
--   <tt>availability-zone</tt> - The Availability Zone (for example,
--   <tt>us-west-2a</tt> ). * <tt>instance-type</tt> - The instance type
--   (for example, <tt>c4.large</tt> ). * <tt>network-platform</tt> - The
--   network platform (<tt>EC2-Classic</tt> or <tt>EC2-VPC</tt> ). *
--   <tt>platform</tt> - The platform (<tt>Linux/UNIX</tt> or
--   <tt>Windows</tt> ).</li>
--   <li><a>dsiaNextToken</a> - The token for the next set of results.</li>
--   <li><a>dsiaMaxSlotDurationInHours</a> - The maximum available
--   duration, in hours. This value must be greater than
--   <tt>MinSlotDurationInHours</tt> and less than 1,720.</li>
--   <li><a>dsiaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dsiaMaxResults</a> - The maximum number of results to return in
--   a single call. This value can be between 5 and 300. The default value
--   is 300. To retrieve the remaining results, make another call with the
--   returned <tt>NextToken</tt> value.</li>
--   <li><a>dsiaRecurrence</a> - The schedule recurrence.</li>
--   <li><a>dsiaFirstSlotStartTimeRange</a> - The time period for the first
--   schedule to start.</li>
--   </ul>
describeScheduledInstanceAvailability :: ScheduledInstanceRecurrenceRequest -> SlotDateTimeRangeRequest -> DescribeScheduledInstanceAvailability

-- | Contains the parameters for DescribeScheduledInstanceAvailability.
--   
--   <i>See:</i> <a>describeScheduledInstanceAvailability</a> smart
--   constructor.
data DescribeScheduledInstanceAvailability

-- | The minimum available duration, in hours. The minimum required
--   duration is 1,200 hours per year. For example, the minimum daily
--   schedule is 4 hours, the minimum weekly schedule is 24 hours, and the
--   minimum monthly schedule is 100 hours.
dsiaMinSlotDurationInHours :: Lens' DescribeScheduledInstanceAvailability (Maybe Int)

-- | One or more filters. * <tt>availability-zone</tt> - The Availability
--   Zone (for example, <tt>us-west-2a</tt> ). * <tt>instance-type</tt> -
--   The instance type (for example, <tt>c4.large</tt> ). *
--   <tt>network-platform</tt> - The network platform (<tt>EC2-Classic</tt>
--   or <tt>EC2-VPC</tt> ). * <tt>platform</tt> - The platform
--   (<tt>Linux/UNIX</tt> or <tt>Windows</tt> ).
dsiaFilters :: Lens' DescribeScheduledInstanceAvailability [Filter]

-- | The token for the next set of results.
dsiaNextToken :: Lens' DescribeScheduledInstanceAvailability (Maybe Text)

-- | The maximum available duration, in hours. This value must be greater
--   than <tt>MinSlotDurationInHours</tt> and less than 1,720.
dsiaMaxSlotDurationInHours :: Lens' DescribeScheduledInstanceAvailability (Maybe Int)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dsiaDryRun :: Lens' DescribeScheduledInstanceAvailability (Maybe Bool)

-- | The maximum number of results to return in a single call. This value
--   can be between 5 and 300. The default value is 300. To retrieve the
--   remaining results, make another call with the returned
--   <tt>NextToken</tt> value.
dsiaMaxResults :: Lens' DescribeScheduledInstanceAvailability (Maybe Int)

-- | The schedule recurrence.
dsiaRecurrence :: Lens' DescribeScheduledInstanceAvailability ScheduledInstanceRecurrenceRequest

-- | The time period for the first schedule to start.
dsiaFirstSlotStartTimeRange :: Lens' DescribeScheduledInstanceAvailability SlotDateTimeRangeRequest

-- | Creates a value of
--   <a>DescribeScheduledInstanceAvailabilityResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsiarsScheduledInstanceAvailabilitySet</a> - Information about
--   the available Scheduled Instances.</li>
--   <li><a>dsiarsNextToken</a> - The token required to retrieve the next
--   set of results. This value is <tt>null</tt> when there are no more
--   results to return.</li>
--   <li><a>dsiarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeScheduledInstanceAvailabilityResponse :: Int -> DescribeScheduledInstanceAvailabilityResponse

-- | Contains the output of DescribeScheduledInstanceAvailability.
--   
--   <i>See:</i> <a>describeScheduledInstanceAvailabilityResponse</a> smart
--   constructor.
data DescribeScheduledInstanceAvailabilityResponse

-- | Information about the available Scheduled Instances.
dsiarsScheduledInstanceAvailabilitySet :: Lens' DescribeScheduledInstanceAvailabilityResponse [ScheduledInstanceAvailability]

-- | The token required to retrieve the next set of results. This value is
--   <tt>null</tt> when there are no more results to return.
dsiarsNextToken :: Lens' DescribeScheduledInstanceAvailabilityResponse (Maybe Text)

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


-- | Describes one or more of your route tables.
--   
--   Each subnet in your VPC must be associated with a route table. If a
--   subnet is not explicitly associated with any route table, it is
--   implicitly associated with the main route table. This command does not
--   return the subnet ID for implicit associations.
--   
--   For more information about route tables, see <a>Route Tables</a> in
--   the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.DescribeRouteTables

-- | Creates a value of <a>DescribeRouteTables</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drtsFilters</a> - One or more filters. *
--   <tt>association.route-table-association-id</tt> - The ID of an
--   association ID for the route table. *
--   <tt>association.route-table-id</tt> - The ID of the route table
--   involved in the association. * <tt>association.subnet-id</tt> - The ID
--   of the subnet involved in the association. * <tt>association.main</tt>
--   - Indicates whether the route table is the main route table for the
--   VPC (<tt>true</tt> | <tt>false</tt> ). * <tt>route-table-id</tt> - The
--   ID of the route table. * <tt>route.destination-cidr-block</tt> - The
--   IPv4 CIDR range specified in a route in the table. *
--   <tt>route.destination-ipv6-cidr-block</tt> - The IPv6 CIDR range
--   specified in a route in the route table. *
--   <tt>route.destination-prefix-list-id</tt> - The ID (prefix) of the AWS
--   service specified in a route in the table. *
--   <tt>route.egress-only-internet-gateway-id</tt> - The ID of an
--   egress-only Internet gateway specified in a route in the route table.
--   * <tt>route.gateway-id</tt> - The ID of a gateway specified in a route
--   in the table. * <tt>route.instance-id</tt> - The ID of an instance
--   specified in a route in the table. * <tt>route.nat-gateway-id</tt> -
--   The ID of a NAT gateway. * <tt>route.origin</tt> - Describes how the
--   route was created. <tt>CreateRouteTable</tt> indicates that the route
--   was automatically created when the route table was created;
--   <tt>CreateRoute</tt> indicates that the route was manually added to
--   the route table; <tt>EnableVgwRoutePropagation</tt> indicates that the
--   route was propagated by route propagation. * <tt>route.state</tt> -
--   The state of a route in the route table (<tt>active</tt> |
--   <tt>blackhole</tt> ). The blackhole state indicates that the route's
--   target isn't available (for example, the specified gateway isn't
--   attached to the VPC, the specified NAT instance has been terminated,
--   and so on). * <tt>route.vpc-peering-connection-id</tt> - The ID of a
--   VPC peering connection specified in a route in the table. *
--   <tt>tag</tt> :<i>key</i> =<i>value</i> - The key<i>value combination
--   of a tag assigned to the resource. * <tt>tag-key</tt> - The key of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-value</tt> filter. For example, if you use both the filter
--   "tag-key=Purpose" and the filter "tag-value=X", you get any resources
--   assigned both the tag key Purpose (regardless of what the tag's value
--   is), and the tag value X (regardless of what the tag's key is). If you
--   want to list only resources where Purpose is X, see the <tt>tag</tt>
--   :</i>key<i> =</i>value/ filter. * <tt>tag-value</tt> - The value of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter. * <tt>vpc-id</tt> - The ID of the VPC for the
--   route table.</li>
--   <li><a>drtsDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>drtsRouteTableIds</a> - One or more route table IDs. Default:
--   Describes all your route tables.</li>
--   </ul>
describeRouteTables :: DescribeRouteTables

-- | Contains the parameters for DescribeRouteTables.
--   
--   <i>See:</i> <a>describeRouteTables</a> smart constructor.
data DescribeRouteTables

-- | One or more filters. * <tt>association.route-table-association-id</tt>
--   - The ID of an association ID for the route table. *
--   <tt>association.route-table-id</tt> - The ID of the route table
--   involved in the association. * <tt>association.subnet-id</tt> - The ID
--   of the subnet involved in the association. * <tt>association.main</tt>
--   - Indicates whether the route table is the main route table for the
--   VPC (<tt>true</tt> | <tt>false</tt> ). * <tt>route-table-id</tt> - The
--   ID of the route table. * <tt>route.destination-cidr-block</tt> - The
--   IPv4 CIDR range specified in a route in the table. *
--   <tt>route.destination-ipv6-cidr-block</tt> - The IPv6 CIDR range
--   specified in a route in the route table. *
--   <tt>route.destination-prefix-list-id</tt> - The ID (prefix) of the AWS
--   service specified in a route in the table. *
--   <tt>route.egress-only-internet-gateway-id</tt> - The ID of an
--   egress-only Internet gateway specified in a route in the route table.
--   * <tt>route.gateway-id</tt> - The ID of a gateway specified in a route
--   in the table. * <tt>route.instance-id</tt> - The ID of an instance
--   specified in a route in the table. * <tt>route.nat-gateway-id</tt> -
--   The ID of a NAT gateway. * <tt>route.origin</tt> - Describes how the
--   route was created. <tt>CreateRouteTable</tt> indicates that the route
--   was automatically created when the route table was created;
--   <tt>CreateRoute</tt> indicates that the route was manually added to
--   the route table; <tt>EnableVgwRoutePropagation</tt> indicates that the
--   route was propagated by route propagation. * <tt>route.state</tt> -
--   The state of a route in the route table (<tt>active</tt> |
--   <tt>blackhole</tt> ). The blackhole state indicates that the route's
--   target isn't available (for example, the specified gateway isn't
--   attached to the VPC, the specified NAT instance has been terminated,
--   and so on). * <tt>route.vpc-peering-connection-id</tt> - The ID of a
--   VPC peering connection specified in a route in the table. *
--   <tt>tag</tt> :<i>key</i> =<i>value</i> - The key<i>value combination
--   of a tag assigned to the resource. * <tt>tag-key</tt> - The key of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-value</tt> filter. For example, if you use both the filter
--   "tag-key=Purpose" and the filter "tag-value=X", you get any resources
--   assigned both the tag key Purpose (regardless of what the tag's value
--   is), and the tag value X (regardless of what the tag's key is). If you
--   want to list only resources where Purpose is X, see the <tt>tag</tt>
--   :</i>key<i> =</i>value/ filter. * <tt>tag-value</tt> - The value of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter. * <tt>vpc-id</tt> - The ID of the VPC for the
--   route table.
drtsFilters :: Lens' DescribeRouteTables [Filter]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
drtsDryRun :: Lens' DescribeRouteTables (Maybe Bool)

-- | One or more route table IDs. Default: Describes all your route tables.
drtsRouteTableIds :: Lens' DescribeRouteTables [Text]

-- | Creates a value of <a>DescribeRouteTablesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drtrsRouteTables</a> - Information about one or more route
--   tables.</li>
--   <li><a>drtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeRouteTablesResponse :: Int -> DescribeRouteTablesResponse

-- | Contains the output of DescribeRouteTables.
--   
--   <i>See:</i> <a>describeRouteTablesResponse</a> smart constructor.
data DescribeRouteTablesResponse

-- | Information about one or more route tables.
drtrsRouteTables :: Lens' DescribeRouteTablesResponse [RouteTable]

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


-- | Describes Reserved Instance offerings that are available for purchase.
--   With Reserved Instances, you purchase the right to launch instances
--   for a period of time. During that time period, you do not receive
--   insufficient capacity errors, and you pay a lower usage rate than the
--   rate charged for On-Demand instances for the actual time used.
--   
--   If you have listed your own Reserved Instances for sale in the
--   Reserved Instance Marketplace, they will be excluded from these
--   results. This is to ensure that you do not purchase your own Reserved
--   Instances.
--   
--   For more information, see <a>Reserved Instance Marketplace</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
--   
--   This operation returns paginated results.
module Network.AWS.EC2.DescribeReservedInstancesOfferings

-- | Creates a value of <a>DescribeReservedInstancesOfferings</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drioMaxDuration</a> - The maximum duration (in seconds) to
--   filter when searching for offerings. Default: 94608000 (3 years)</li>
--   <li><a>drioProductDescription</a> - The Reserved Instance product
--   platform description. Instances that include <tt>(Amazon VPC)</tt> in
--   the description are for use with Amazon VPC.</li>
--   <li><a>drioFilters</a> - One or more filters. *
--   <tt>availability-zone</tt> - The Availability Zone where the Reserved
--   Instance can be used. * <tt>duration</tt> - The duration of the
--   Reserved Instance (for example, one year or three years), in seconds
--   (<tt>31536000</tt> | <tt>94608000</tt> ). * <tt>fixed-price</tt> - The
--   purchase price of the Reserved Instance (for example, 9800.0). *
--   <tt>instance-type</tt> - The instance type that is covered by the
--   reservation. * <tt>marketplace</tt> - Set to <tt>true</tt> to show
--   only Reserved Instance Marketplace offerings. When this filter is not
--   used, which is the default behavior, all offerings from both AWS and
--   the Reserved Instance Marketplace are listed. *
--   <tt>product-description</tt> - The Reserved Instance product platform
--   description. Instances that include <tt>(Amazon VPC)</tt> in the
--   product platform description will only be displayed to EC2-Classic
--   account holders and are for use with Amazon VPC. (<tt>Linux/UNIX</tt>
--   | <tt>Linux/UNIX (Amazon VPC)</tt> | <tt>SUSE Linux</tt> | <tt>SUSE
--   Linux (Amazon VPC)</tt> | <tt>Red Hat Enterprise Linux</tt> | <tt>Red
--   Hat Enterprise Linux (Amazon VPC)</tt> | <tt>Windows</tt> |
--   <tt>Windows (Amazon VPC)</tt> | <tt>Windows with SQL Server
--   Standard</tt> | <tt>Windows with SQL Server Standard (Amazon VPC)</tt>
--   | <tt>Windows with SQL Server Web</tt> | <tt>Windows with SQL Server
--   Web (Amazon VPC)</tt> | <tt>Windows with SQL Server Enterprise</tt> |
--   <tt>Windows with SQL Server Enterprise (Amazon VPC)</tt> ) *
--   <tt>reserved-instances-offering-id</tt> - The Reserved Instances
--   offering ID. * <tt>scope</tt> - The scope of the Reserved Instance
--   (<tt>Availability Zone</tt> or <tt>Region</tt> ). *
--   <tt>usage-price</tt> - The usage price of the Reserved Instance, per
--   hour (for example, 0.84).</li>
--   <li><a>drioIncludeMarketplace</a> - Include Reserved Instance
--   Marketplace offerings in the response.</li>
--   <li><a>drioInstanceType</a> - The instance type that the reservation
--   will cover (for example, <tt>m1.small</tt> ). For more information,
--   see <a>Instance Types</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>drioNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   <li><a>drioMinDuration</a> - The minimum duration (in seconds) to
--   filter when searching for offerings. Default: 2592000 (1 month)</li>
--   <li><a>drioAvailabilityZone</a> - The Availability Zone in which the
--   Reserved Instance can be used.</li>
--   <li><a>drioOfferingType</a> - The Reserved Instance offering type. If
--   you are using tools that predate the 2011-11-01 API version, you only
--   have access to the <tt>Medium Utilization</tt> Reserved Instance
--   offering type.</li>
--   <li><a>drioReservedInstancesOfferingIds</a> - One or more Reserved
--   Instances offering IDs.</li>
--   <li><a>drioInstanceTenancy</a> - The tenancy of the instances covered
--   by the reservation. A Reserved Instance with a tenancy of
--   <tt>dedicated</tt> is applied to instances that run in a VPC on
--   single-tenant hardware (i.e., Dedicated Instances). Default:
--   <tt>default</tt></li>
--   <li><a>drioOfferingClass</a> - The offering class of the Reserved
--   Instance. Can be <tt>standard</tt> or <tt>convertible</tt> .</li>
--   <li><a>drioMaxInstanceCount</a> - The maximum number of instances to
--   filter when searching for offerings. Default: 20</li>
--   <li><a>drioDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>drioMaxResults</a> - The maximum number of results to return
--   for the request in a single page. The remaining results of the initial
--   request can be seen by sending another request with the returned
--   <tt>NextToken</tt> value. The maximum is 100. Default: 100</li>
--   </ul>
describeReservedInstancesOfferings :: DescribeReservedInstancesOfferings

-- | Contains the parameters for DescribeReservedInstancesOfferings.
--   
--   <i>See:</i> <a>describeReservedInstancesOfferings</a> smart
--   constructor.
data DescribeReservedInstancesOfferings

-- | The maximum duration (in seconds) to filter when searching for
--   offerings. Default: 94608000 (3 years)
drioMaxDuration :: Lens' DescribeReservedInstancesOfferings (Maybe Integer)

-- | The Reserved Instance product platform description. Instances that
--   include <tt>(Amazon VPC)</tt> in the description are for use with
--   Amazon VPC.
drioProductDescription :: Lens' DescribeReservedInstancesOfferings (Maybe RIProductDescription)

-- | One or more filters. * <tt>availability-zone</tt> - The Availability
--   Zone where the Reserved Instance can be used. * <tt>duration</tt> -
--   The duration of the Reserved Instance (for example, one year or three
--   years), in seconds (<tt>31536000</tt> | <tt>94608000</tt> ). *
--   <tt>fixed-price</tt> - The purchase price of the Reserved Instance
--   (for example, 9800.0). * <tt>instance-type</tt> - The instance type
--   that is covered by the reservation. * <tt>marketplace</tt> - Set to
--   <tt>true</tt> to show only Reserved Instance Marketplace offerings.
--   When this filter is not used, which is the default behavior, all
--   offerings from both AWS and the Reserved Instance Marketplace are
--   listed. * <tt>product-description</tt> - The Reserved Instance product
--   platform description. Instances that include <tt>(Amazon VPC)</tt> in
--   the product platform description will only be displayed to EC2-Classic
--   account holders and are for use with Amazon VPC. (<tt>Linux/UNIX</tt>
--   | <tt>Linux/UNIX (Amazon VPC)</tt> | <tt>SUSE Linux</tt> | <tt>SUSE
--   Linux (Amazon VPC)</tt> | <tt>Red Hat Enterprise Linux</tt> | <tt>Red
--   Hat Enterprise Linux (Amazon VPC)</tt> | <tt>Windows</tt> |
--   <tt>Windows (Amazon VPC)</tt> | <tt>Windows with SQL Server
--   Standard</tt> | <tt>Windows with SQL Server Standard (Amazon VPC)</tt>
--   | <tt>Windows with SQL Server Web</tt> | <tt>Windows with SQL Server
--   Web (Amazon VPC)</tt> | <tt>Windows with SQL Server Enterprise</tt> |
--   <tt>Windows with SQL Server Enterprise (Amazon VPC)</tt> ) *
--   <tt>reserved-instances-offering-id</tt> - The Reserved Instances
--   offering ID. * <tt>scope</tt> - The scope of the Reserved Instance
--   (<tt>Availability Zone</tt> or <tt>Region</tt> ). *
--   <tt>usage-price</tt> - The usage price of the Reserved Instance, per
--   hour (for example, 0.84).
drioFilters :: Lens' DescribeReservedInstancesOfferings [Filter]

-- | Include Reserved Instance Marketplace offerings in the response.
drioIncludeMarketplace :: Lens' DescribeReservedInstancesOfferings (Maybe Bool)

-- | The instance type that the reservation will cover (for example,
--   <tt>m1.small</tt> ). For more information, see <a>Instance Types</a>
--   in the <i>Amazon Elastic Compute Cloud User Guide</i> .
drioInstanceType :: Lens' DescribeReservedInstancesOfferings (Maybe InstanceType)

-- | The token to retrieve the next page of results.
drioNextToken :: Lens' DescribeReservedInstancesOfferings (Maybe Text)

-- | The minimum duration (in seconds) to filter when searching for
--   offerings. Default: 2592000 (1 month)
drioMinDuration :: Lens' DescribeReservedInstancesOfferings (Maybe Integer)

-- | The Availability Zone in which the Reserved Instance can be used.
drioAvailabilityZone :: Lens' DescribeReservedInstancesOfferings (Maybe Text)

-- | The Reserved Instance offering type. If you are using tools that
--   predate the 2011-11-01 API version, you only have access to the
--   <tt>Medium Utilization</tt> Reserved Instance offering type.
drioOfferingType :: Lens' DescribeReservedInstancesOfferings (Maybe OfferingTypeValues)

-- | One or more Reserved Instances offering IDs.
drioReservedInstancesOfferingIds :: Lens' DescribeReservedInstancesOfferings [Text]

-- | The tenancy of the instances covered by the reservation. A Reserved
--   Instance with a tenancy of <tt>dedicated</tt> is applied to instances
--   that run in a VPC on single-tenant hardware (i.e., Dedicated
--   Instances). Default: <tt>default</tt>
drioInstanceTenancy :: Lens' DescribeReservedInstancesOfferings (Maybe Tenancy)

-- | The offering class of the Reserved Instance. Can be <tt>standard</tt>
--   or <tt>convertible</tt> .
drioOfferingClass :: Lens' DescribeReservedInstancesOfferings (Maybe OfferingClassType)

-- | The maximum number of instances to filter when searching for
--   offerings. Default: 20
drioMaxInstanceCount :: Lens' DescribeReservedInstancesOfferings (Maybe Int)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
drioDryRun :: Lens' DescribeReservedInstancesOfferings (Maybe Bool)

-- | The maximum number of results to return for the request in a single
--   page. The remaining results of the initial request can be seen by
--   sending another request with the returned <tt>NextToken</tt> value.
--   The maximum is 100. Default: 100
drioMaxResults :: Lens' DescribeReservedInstancesOfferings (Maybe Int)

-- | Creates a value of <a>DescribeReservedInstancesOfferingsResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>driorsNextToken</a> - The token to use to retrieve the next
--   page of results. This value is <tt>null</tt> when there are no more
--   results to return.</li>
--   <li><a>driorsReservedInstancesOfferings</a> - A list of Reserved
--   Instances offerings.</li>
--   <li><a>driorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeReservedInstancesOfferingsResponse :: Int -> DescribeReservedInstancesOfferingsResponse

-- | Contains the output of DescribeReservedInstancesOfferings.
--   
--   <i>See:</i> <a>describeReservedInstancesOfferingsResponse</a> smart
--   constructor.
data DescribeReservedInstancesOfferingsResponse

-- | The token to use to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
driorsNextToken :: Lens' DescribeReservedInstancesOfferingsResponse (Maybe Text)

-- | A list of Reserved Instances offerings.
driorsReservedInstancesOfferings :: Lens' DescribeReservedInstancesOfferingsResponse [ReservedInstancesOffering]

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


-- | Describes the modifications made to your Reserved Instances. If no
--   parameter is specified, information about all your Reserved Instances
--   modification requests is returned. If a modification ID is specified,
--   only information about the specific modification is returned.
--   
--   For more information, see <a>Modifying Reserved Instances</a> in the
--   Amazon Elastic Compute Cloud User Guide.
--   
--   This operation returns paginated results.
module Network.AWS.EC2.DescribeReservedInstancesModifications

-- | Creates a value of <a>DescribeReservedInstancesModifications</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drimFilters</a> - One or more filters. * <tt>client-token</tt>
--   - The idempotency token for the modification request. *
--   <tt>create-date</tt> - The time when the modification request was
--   created. * <tt>effective-date</tt> - The time when the modification
--   becomes effective. *
--   <tt>modification-result.reserved-instances-id</tt> - The ID for the
--   Reserved Instances created as part of the modification request. This
--   ID is only available when the status of the modification is
--   <tt>fulfilled</tt> . *
--   <tt>modification-result.target-configuration.availability-zone</tt> -
--   The Availability Zone for the new Reserved Instances. *
--   <tt>modification-result.target-configuration.instance-count </tt> -
--   The number of new Reserved Instances. *
--   <tt>modification-result.target-configuration.instance-type</tt> - The
--   instance type of the new Reserved Instances. *
--   <tt>modification-result.target-configuration.platform</tt> - The
--   network platform of the new Reserved Instances (<tt>EC2-Classic</tt> |
--   <tt>EC2-VPC</tt> ). * <tt>reserved-instances-id</tt> - The ID of the
--   Reserved Instances modified. *
--   <tt>reserved-instances-modification-id</tt> - The ID of the
--   modification request. * <tt>status</tt> - The status of the Reserved
--   Instances modification request (<tt>processing</tt> |
--   <tt>fulfilled</tt> | <tt>failed</tt> ). * <tt>status-message</tt> -
--   The reason for the status. * <tt>update-date</tt> - The time when the
--   modification request was last updated.</li>
--   <li><a>drimReservedInstancesModificationIds</a> - IDs for the
--   submitted modification request.</li>
--   <li><a>drimNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   </ul>
describeReservedInstancesModifications :: DescribeReservedInstancesModifications

-- | Contains the parameters for DescribeReservedInstancesModifications.
--   
--   <i>See:</i> <a>describeReservedInstancesModifications</a> smart
--   constructor.
data DescribeReservedInstancesModifications

-- | One or more filters. * <tt>client-token</tt> - The idempotency token
--   for the modification request. * <tt>create-date</tt> - The time when
--   the modification request was created. * <tt>effective-date</tt> - The
--   time when the modification becomes effective. *
--   <tt>modification-result.reserved-instances-id</tt> - The ID for the
--   Reserved Instances created as part of the modification request. This
--   ID is only available when the status of the modification is
--   <tt>fulfilled</tt> . *
--   <tt>modification-result.target-configuration.availability-zone</tt> -
--   The Availability Zone for the new Reserved Instances. *
--   <tt>modification-result.target-configuration.instance-count </tt> -
--   The number of new Reserved Instances. *
--   <tt>modification-result.target-configuration.instance-type</tt> - The
--   instance type of the new Reserved Instances. *
--   <tt>modification-result.target-configuration.platform</tt> - The
--   network platform of the new Reserved Instances (<tt>EC2-Classic</tt> |
--   <tt>EC2-VPC</tt> ). * <tt>reserved-instances-id</tt> - The ID of the
--   Reserved Instances modified. *
--   <tt>reserved-instances-modification-id</tt> - The ID of the
--   modification request. * <tt>status</tt> - The status of the Reserved
--   Instances modification request (<tt>processing</tt> |
--   <tt>fulfilled</tt> | <tt>failed</tt> ). * <tt>status-message</tt> -
--   The reason for the status. * <tt>update-date</tt> - The time when the
--   modification request was last updated.
drimFilters :: Lens' DescribeReservedInstancesModifications [Filter]

-- | IDs for the submitted modification request.
drimReservedInstancesModificationIds :: Lens' DescribeReservedInstancesModifications [Text]

-- | The token to retrieve the next page of results.
drimNextToken :: Lens' DescribeReservedInstancesModifications (Maybe Text)

-- | Creates a value of
--   <a>DescribeReservedInstancesModificationsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drimrsNextToken</a> - The token to use to retrieve the next
--   page of results. This value is <tt>null</tt> when there are no more
--   results to return.</li>
--   <li><a>drimrsReservedInstancesModifications</a> - The Reserved
--   Instance modification information.</li>
--   <li><a>drimrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeReservedInstancesModificationsResponse :: Int -> DescribeReservedInstancesModificationsResponse

-- | Contains the output of DescribeReservedInstancesModifications.
--   
--   <i>See:</i> <a>describeReservedInstancesModificationsResponse</a>
--   smart constructor.
data DescribeReservedInstancesModificationsResponse

-- | The token to use to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
drimrsNextToken :: Lens' DescribeReservedInstancesModificationsResponse (Maybe Text)

-- | The Reserved Instance modification information.
drimrsReservedInstancesModifications :: Lens' DescribeReservedInstancesModificationsResponse [ReservedInstancesModification]

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


-- | Describes your account's Reserved Instance listings in the Reserved
--   Instance Marketplace.
--   
--   The Reserved Instance Marketplace matches sellers who want to resell
--   Reserved Instance capacity that they no longer need with buyers who
--   want to purchase additional capacity. Reserved Instances bought and
--   sold through the Reserved Instance Marketplace work like any other
--   Reserved Instances.
--   
--   As a seller, you choose to list some or all of your Reserved
--   Instances, and you specify the upfront price to receive for them. Your
--   Reserved Instances are then listed in the Reserved Instance
--   Marketplace and are available for purchase.
--   
--   As a buyer, you specify the configuration of the Reserved Instance to
--   purchase, and the Marketplace matches what you're searching for with
--   what's available. The Marketplace first sells the lowest priced
--   Reserved Instances to you, and continues to sell available Reserved
--   Instance listings to you until your demand is met. You are charged
--   based on the total price of all of the listings that you purchase.
--   
--   For more information, see <a>Reserved Instance Marketplace</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.DescribeReservedInstancesListings

-- | Creates a value of <a>DescribeReservedInstancesListings</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drilFilters</a> - One or more filters. *
--   <tt>reserved-instances-id</tt> - The ID of the Reserved Instances. *
--   <tt>reserved-instances-listing-id</tt> - The ID of the Reserved
--   Instances listing. * <tt>status</tt> - The status of the Reserved
--   Instance listing (<tt>pending</tt> | <tt>active</tt> |
--   <tt>cancelled</tt> | <tt>closed</tt> ). * <tt>status-message</tt> -
--   The reason for the status.</li>
--   <li><a>drilReservedInstancesId</a> - One or more Reserved Instance
--   IDs.</li>
--   <li><a>drilReservedInstancesListingId</a> - One or more Reserved
--   Instance listing IDs.</li>
--   </ul>
describeReservedInstancesListings :: DescribeReservedInstancesListings

-- | Contains the parameters for DescribeReservedInstancesListings.
--   
--   <i>See:</i> <a>describeReservedInstancesListings</a> smart
--   constructor.
data DescribeReservedInstancesListings

-- | One or more filters. * <tt>reserved-instances-id</tt> - The ID of the
--   Reserved Instances. * <tt>reserved-instances-listing-id</tt> - The ID
--   of the Reserved Instances listing. * <tt>status</tt> - The status of
--   the Reserved Instance listing (<tt>pending</tt> | <tt>active</tt> |
--   <tt>cancelled</tt> | <tt>closed</tt> ). * <tt>status-message</tt> -
--   The reason for the status.
drilFilters :: Lens' DescribeReservedInstancesListings [Filter]

-- | One or more Reserved Instance IDs.
drilReservedInstancesId :: Lens' DescribeReservedInstancesListings (Maybe Text)

-- | One or more Reserved Instance listing IDs.
drilReservedInstancesListingId :: Lens' DescribeReservedInstancesListings (Maybe Text)

-- | Creates a value of <a>DescribeReservedInstancesListingsResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drilrsReservedInstancesListings</a> - Information about the
--   Reserved Instance listing.</li>
--   <li><a>drilrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeReservedInstancesListingsResponse :: Int -> DescribeReservedInstancesListingsResponse

-- | Contains the output of DescribeReservedInstancesListings.
--   
--   <i>See:</i> <a>describeReservedInstancesListingsResponse</a> smart
--   constructor.
data DescribeReservedInstancesListingsResponse

-- | Information about the Reserved Instance listing.
drilrsReservedInstancesListings :: Lens' DescribeReservedInstancesListingsResponse [ReservedInstancesListing]

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


-- | Describes one or more of the Reserved Instances that you purchased.
--   
--   For more information about Reserved Instances, see <a>Reserved
--   Instances</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.DescribeReservedInstances

-- | Creates a value of <a>DescribeReservedInstances</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>driFilters</a> - One or more filters. *
--   <tt>availability-zone</tt> - The Availability Zone where the Reserved
--   Instance can be used. * <tt>duration</tt> - The duration of the
--   Reserved Instance (one year or three years), in seconds
--   (<tt>31536000</tt> | <tt>94608000</tt> ). * <tt>end</tt> - The time
--   when the Reserved Instance expires (for example,
--   2015-08-07T11:54:42.000Z). * <tt>fixed-price</tt> - The purchase price
--   of the Reserved Instance (for example, 9800.0). *
--   <tt>instance-type</tt> - The instance type that is covered by the
--   reservation. * <tt>scope</tt> - The scope of the Reserved Instance
--   (<tt>Region</tt> or <tt>Availability Zone</tt> ). *
--   <tt>product-description</tt> - The Reserved Instance product platform
--   description. Instances that include <tt>(Amazon VPC)</tt> in the
--   product platform description will only be displayed to EC2-Classic
--   account holders and are for use with Amazon VPC (<tt>Linux/UNIX</tt> |
--   <tt>Linux/UNIX (Amazon VPC)</tt> | <tt>SUSE Linux</tt> | <tt>SUSE
--   Linux (Amazon VPC)</tt> | <tt>Red Hat Enterprise Linux</tt> | <tt>Red
--   Hat Enterprise Linux (Amazon VPC)</tt> | <tt>Windows</tt> |
--   <tt>Windows (Amazon VPC)</tt> | <tt>Windows with SQL Server
--   Standard</tt> | <tt>Windows with SQL Server Standard (Amazon VPC)</tt>
--   | <tt>Windows with SQL Server Web</tt> | <tt>Windows with SQL Server
--   Web (Amazon VPC)</tt> | <tt>Windows with SQL Server Enterprise</tt> |
--   <tt>Windows with SQL Server Enterprise (Amazon VPC)</tt> ). *
--   <tt>reserved-instances-id</tt> - The ID of the Reserved Instance. *
--   <tt>start</tt> - The time at which the Reserved Instance purchase
--   request was placed (for example, 2014-08-07T11:54:42.000Z). *
--   <tt>state</tt> - The state of the Reserved Instance
--   (<tt>payment-pending</tt> | <tt>active</tt> | <tt>payment-failed</tt>
--   | <tt>retired</tt> ). * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>usage-price</tt> - The usage price of the Reserved
--   Instance, per hour (for example, 0.84).</li>
--   <li><a>driReservedInstancesIds</a> - One or more Reserved Instance
--   IDs. Default: Describes all your Reserved Instances, or only those
--   otherwise specified.</li>
--   <li><a>driOfferingType</a> - The Reserved Instance offering type. If
--   you are using tools that predate the 2011-11-01 API version, you only
--   have access to the <tt>Medium Utilization</tt> Reserved Instance
--   offering type.</li>
--   <li><a>driOfferingClass</a> - Describes whether the Reserved Instance
--   is Standard or Convertible.</li>
--   <li><a>driDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeReservedInstances :: DescribeReservedInstances

-- | Contains the parameters for DescribeReservedInstances.
--   
--   <i>See:</i> <a>describeReservedInstances</a> smart constructor.
data DescribeReservedInstances

-- | One or more filters. * <tt>availability-zone</tt> - The Availability
--   Zone where the Reserved Instance can be used. * <tt>duration</tt> -
--   The duration of the Reserved Instance (one year or three years), in
--   seconds (<tt>31536000</tt> | <tt>94608000</tt> ). * <tt>end</tt> - The
--   time when the Reserved Instance expires (for example,
--   2015-08-07T11:54:42.000Z). * <tt>fixed-price</tt> - The purchase price
--   of the Reserved Instance (for example, 9800.0). *
--   <tt>instance-type</tt> - The instance type that is covered by the
--   reservation. * <tt>scope</tt> - The scope of the Reserved Instance
--   (<tt>Region</tt> or <tt>Availability Zone</tt> ). *
--   <tt>product-description</tt> - The Reserved Instance product platform
--   description. Instances that include <tt>(Amazon VPC)</tt> in the
--   product platform description will only be displayed to EC2-Classic
--   account holders and are for use with Amazon VPC (<tt>Linux/UNIX</tt> |
--   <tt>Linux/UNIX (Amazon VPC)</tt> | <tt>SUSE Linux</tt> | <tt>SUSE
--   Linux (Amazon VPC)</tt> | <tt>Red Hat Enterprise Linux</tt> | <tt>Red
--   Hat Enterprise Linux (Amazon VPC)</tt> | <tt>Windows</tt> |
--   <tt>Windows (Amazon VPC)</tt> | <tt>Windows with SQL Server
--   Standard</tt> | <tt>Windows with SQL Server Standard (Amazon VPC)</tt>
--   | <tt>Windows with SQL Server Web</tt> | <tt>Windows with SQL Server
--   Web (Amazon VPC)</tt> | <tt>Windows with SQL Server Enterprise</tt> |
--   <tt>Windows with SQL Server Enterprise (Amazon VPC)</tt> ). *
--   <tt>reserved-instances-id</tt> - The ID of the Reserved Instance. *
--   <tt>start</tt> - The time at which the Reserved Instance purchase
--   request was placed (for example, 2014-08-07T11:54:42.000Z). *
--   <tt>state</tt> - The state of the Reserved Instance
--   (<tt>payment-pending</tt> | <tt>active</tt> | <tt>payment-failed</tt>
--   | <tt>retired</tt> ). * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>usage-price</tt> - The usage price of the Reserved
--   Instance, per hour (for example, 0.84).
driFilters :: Lens' DescribeReservedInstances [Filter]

-- | One or more Reserved Instance IDs. Default: Describes all your
--   Reserved Instances, or only those otherwise specified.
driReservedInstancesIds :: Lens' DescribeReservedInstances [Text]

-- | The Reserved Instance offering type. If you are using tools that
--   predate the 2011-11-01 API version, you only have access to the
--   <tt>Medium Utilization</tt> Reserved Instance offering type.
driOfferingType :: Lens' DescribeReservedInstances (Maybe OfferingTypeValues)

-- | Describes whether the Reserved Instance is Standard or Convertible.
driOfferingClass :: Lens' DescribeReservedInstances (Maybe OfferingClassType)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
driDryRun :: Lens' DescribeReservedInstances (Maybe Bool)

-- | Creates a value of <a>DescribeReservedInstancesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drirsReservedInstances</a> - A list of Reserved Instances.</li>
--   <li><a>drirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeReservedInstancesResponse :: Int -> DescribeReservedInstancesResponse

-- | Contains the output for DescribeReservedInstances.
--   
--   <i>See:</i> <a>describeReservedInstancesResponse</a> smart
--   constructor.
data DescribeReservedInstancesResponse

-- | A list of Reserved Instances.
drirsReservedInstances :: Lens' DescribeReservedInstancesResponse [ReservedInstances]

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


-- | Describes one or more regions that are currently available to you.
--   
--   For a list of the regions supported by Amazon EC2, see <a>Regions and
--   Endpoints</a> .
module Network.AWS.EC2.DescribeRegions

-- | Creates a value of <a>DescribeRegions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsRegionNames</a> - The names of one or more regions.</li>
--   <li><a>drsFilters</a> - One or more filters. * <tt>endpoint</tt> - The
--   endpoint of the region (for example,
--   <tt>ec2.us-east-1.amazonaws.com</tt> ). * <tt>region-name</tt> - The
--   name of the region (for example, <tt>us-east-1</tt> ).</li>
--   <li><a>drsDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeRegions :: DescribeRegions

-- | Contains the parameters for DescribeRegions.
--   
--   <i>See:</i> <a>describeRegions</a> smart constructor.
data DescribeRegions

-- | The names of one or more regions.
drsRegionNames :: Lens' DescribeRegions [Text]

-- | One or more filters. * <tt>endpoint</tt> - The endpoint of the region
--   (for example, <tt>ec2.us-east-1.amazonaws.com</tt> ). *
--   <tt>region-name</tt> - The name of the region (for example,
--   <tt>us-east-1</tt> ).
drsFilters :: Lens' DescribeRegions [Filter]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
drsDryRun :: Lens' DescribeRegions (Maybe Bool)

-- | Creates a value of <a>DescribeRegionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drrsRegions</a> - Information about one or more regions.</li>
--   <li><a>drrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeRegionsResponse :: Int -> DescribeRegionsResponse

-- | Contains the output of DescribeRegions.
--   
--   <i>See:</i> <a>describeRegionsResponse</a> smart constructor.
data DescribeRegionsResponse

-- | Information about one or more regions.
drrsRegions :: Lens' DescribeRegionsResponse [RegionInfo]

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


-- | Describes available AWS services in a prefix list format, which
--   includes the prefix list name and prefix list ID of the service and
--   the IP address range for the service. A prefix list ID is required for
--   creating an outbound security group rule that allows traffic from a
--   VPC to access an AWS service through a VPC endpoint.
module Network.AWS.EC2.DescribePrefixLists

-- | Creates a value of <a>DescribePrefixLists</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dplFilters</a> - One or more filters. * <tt>prefix-list-id</tt>
--   : The ID of a prefix list. * <tt>prefix-list-name</tt> : The name of a
--   prefix list.</li>
--   <li><a>dplPrefixListIds</a> - One or more prefix list IDs.</li>
--   <li><a>dplNextToken</a> - The token for the next set of items to
--   return. (You received this token from a prior call.)</li>
--   <li><a>dplDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dplMaxResults</a> - The maximum number of items to return for
--   this request. The request returns a token that you can specify in a
--   subsequent call to get the next set of results. Constraint: If the
--   value specified is greater than 1000, we return only 1000 items.</li>
--   </ul>
describePrefixLists :: DescribePrefixLists

-- | Contains the parameters for DescribePrefixLists.
--   
--   <i>See:</i> <a>describePrefixLists</a> smart constructor.
data DescribePrefixLists

-- | One or more filters. * <tt>prefix-list-id</tt> : The ID of a prefix
--   list. * <tt>prefix-list-name</tt> : The name of a prefix list.
dplFilters :: Lens' DescribePrefixLists [Filter]

-- | One or more prefix list IDs.
dplPrefixListIds :: Lens' DescribePrefixLists [Text]

-- | The token for the next set of items to return. (You received this
--   token from a prior call.)
dplNextToken :: Lens' DescribePrefixLists (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dplDryRun :: Lens' DescribePrefixLists (Maybe Bool)

-- | The maximum number of items to return for this request. The request
--   returns a token that you can specify in a subsequent call to get the
--   next set of results. Constraint: If the value specified is greater
--   than 1000, we return only 1000 items.
dplMaxResults :: Lens' DescribePrefixLists (Maybe Int)

-- | Creates a value of <a>DescribePrefixListsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dplrsNextToken</a> - The token to use when requesting the next
--   set of items. If there are no additional items to return, the string
--   is empty.</li>
--   <li><a>dplrsPrefixLists</a> - All available prefix lists.</li>
--   <li><a>dplrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describePrefixListsResponse :: Int -> DescribePrefixListsResponse

-- | Contains the output of DescribePrefixLists.
--   
--   <i>See:</i> <a>describePrefixListsResponse</a> smart constructor.
data DescribePrefixListsResponse

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dplrsNextToken :: Lens' DescribePrefixListsResponse (Maybe Text)

-- | All available prefix lists.
dplrsPrefixLists :: Lens' DescribePrefixListsResponse [PrefixList]

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


-- | Describes one or more of your placement groups. For more information
--   about placement groups and cluster instances, see <a>Cluster
--   Instances</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.DescribePlacementGroups

-- | Creates a value of <a>DescribePlacementGroups</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpgsFilters</a> - One or more filters. * <tt>group-name</tt> -
--   The name of the placement group. * <tt>state</tt> - The state of the
--   placement group (<tt>pending</tt> | <tt>available</tt> |
--   <tt>deleting</tt> | <tt>deleted</tt> ). * <tt>strategy</tt> - The
--   strategy of the placement group (<tt>cluster</tt> ).</li>
--   <li><a>dpgsGroupNames</a> - One or more placement group names.
--   Default: Describes all your placement groups, or only those otherwise
--   specified.</li>
--   <li><a>dpgsDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describePlacementGroups :: DescribePlacementGroups

-- | Contains the parameters for DescribePlacementGroups.
--   
--   <i>See:</i> <a>describePlacementGroups</a> smart constructor.
data DescribePlacementGroups

-- | One or more filters. * <tt>group-name</tt> - The name of the placement
--   group. * <tt>state</tt> - The state of the placement group
--   (<tt>pending</tt> | <tt>available</tt> | <tt>deleting</tt> |
--   <tt>deleted</tt> ). * <tt>strategy</tt> - The strategy of the
--   placement group (<tt>cluster</tt> ).
dpgsFilters :: Lens' DescribePlacementGroups [Filter]

-- | One or more placement group names. Default: Describes all your
--   placement groups, or only those otherwise specified.
dpgsGroupNames :: Lens' DescribePlacementGroups [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dpgsDryRun :: Lens' DescribePlacementGroups (Maybe Bool)

-- | Creates a value of <a>DescribePlacementGroupsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpgrsPlacementGroups</a> - One or more placement groups.</li>
--   <li><a>dpgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describePlacementGroupsResponse :: Int -> DescribePlacementGroupsResponse

-- | Contains the output of DescribePlacementGroups.
--   
--   <i>See:</i> <a>describePlacementGroupsResponse</a> smart constructor.
data DescribePlacementGroupsResponse

-- | One or more placement groups.
dpgrsPlacementGroups :: Lens' DescribePlacementGroupsResponse [PlacementGroup]

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


-- | Describes one or more of your network interfaces.
module Network.AWS.EC2.DescribeNetworkInterfaces

-- | Creates a value of <a>DescribeNetworkInterfaces</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnisNetworkInterfaceIds</a> - One or more network interface
--   IDs. Default: Describes all your network interfaces.</li>
--   <li><a>dnisFilters</a> - One or more filters. *
--   <tt>addresses.private-ip-address</tt> - The private IPv4 addresses
--   associated with the network interface. * <tt>addresses.primary</tt> -
--   Whether the private IPv4 address is the primary IP address associated
--   with the network interface. * <tt>addresses.association.public-ip</tt>
--   - The association ID returned when the network interface was
--   associated with the Elastic IP address (IPv4). *
--   <tt>addresses.association.owner-id</tt> - The owner ID of the
--   addresses associated with the network interface. *
--   <tt>association.association-id</tt> - The association ID returned when
--   the network interface was associated with an IPv4 address. *
--   <tt>association.allocation-id</tt> - The allocation ID returned when
--   you allocated the Elastic IP address (IPv4) for your network
--   interface. * <tt>association.ip-owner-id</tt> - The owner of the
--   Elastic IP address (IPv4) associated with the network interface. *
--   <tt>association.public-ip</tt> - The address of the Elastic IP address
--   (IPv4) bound to the network interface. *
--   <tt>association.public-dns-name</tt> - The public DNS name for the
--   network interface (IPv4). * <tt>attachment.attachment-id</tt> - The ID
--   of the interface attachment. * <tt>attachment.attach.time</tt> - The
--   time that the network interface was attached to an instance. *
--   <tt>attachment.delete-on-termination</tt> - Indicates whether the
--   attachment is deleted when an instance is terminated. *
--   <tt>attachment.device-index</tt> - The device index to which the
--   network interface is attached. * <tt>attachment.instance-id</tt> - The
--   ID of the instance to which the network interface is attached. *
--   <tt>attachment.instance-owner-id</tt> - The owner ID of the instance
--   to which the network interface is attached. *
--   <tt>attachment.nat-gateway-id</tt> - The ID of the NAT gateway to
--   which the network interface is attached. * <tt>attachment.status</tt>
--   - The status of the attachment (<tt>attaching</tt> | <tt>attached</tt>
--   | <tt>detaching</tt> | <tt>detached</tt> ). *
--   <tt>availability-zone</tt> - The Availability Zone of the network
--   interface. * <tt>description</tt> - The description of the network
--   interface. * <tt>group-id</tt> - The ID of a security group associated
--   with the network interface. * <tt>group-name</tt> - The name of a
--   security group associated with the network interface. *
--   <tt>ipv6-addresses.ipv6-address</tt> - An IPv6 address associated with
--   the network interface. * <tt>mac-address</tt> - The MAC address of the
--   network interface. * <tt>network-interface-id</tt> - The ID of the
--   network interface. * <tt>owner-id</tt> - The AWS account ID of the
--   network interface owner. * <tt>private-ip-address</tt> - The private
--   IPv4 address or addresses of the network interface. *
--   <tt>private-dns-name</tt> - The private DNS name of the network
--   interface (IPv4). * <tt>requester-id</tt> - The ID of the entity that
--   launched the instance on your behalf (for example, AWS Management
--   Console, Auto Scaling, and so on). * <tt>requester-managed</tt> -
--   Indicates whether the network interface is being managed by an AWS
--   service (for example, AWS Management Console, Auto Scaling, and so
--   on). * <tt>source-desk-check</tt> - Indicates whether the network
--   interface performs source<i>destination checking. A value of
--   <tt>true</tt> means checking is enabled, and <tt>false</tt> means
--   checking is disabled. The value must be <tt>false</tt> for the network
--   interface to perform network address translation (NAT) in your VPC. *
--   <tt>status</tt> - The status of the network interface. If the network
--   interface is not attached to an instance, the status is
--   <tt>available</tt> ; if a network interface is attached to an instance
--   the status is <tt>in-use</tt> . * <tt>subnet-id</tt> - The ID of the
--   subnet for the network interface. * <tt>tag</tt> :</i>key<i>
--   =</i>value<i> - The key</i>value combination of a tag assigned to the
--   resource. * <tt>tag-key</tt> - The key of a tag assigned to the
--   resource. This filter is independent of the <tt>tag-value</tt> filter.
--   For example, if you use both the filter "tag-key=Purpose" and the
--   filter "tag-value=X", you get any resources assigned both the tag key
--   Purpose (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :<i>key</i>
--   =<i>value</i> filter. * <tt>tag-value</tt> - The value of a tag
--   assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter. * <tt>vpc-id</tt> - The ID of the VPC for the
--   network interface.</li>
--   <li><a>dnisDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeNetworkInterfaces :: DescribeNetworkInterfaces

-- | Contains the parameters for DescribeNetworkInterfaces.
--   
--   <i>See:</i> <a>describeNetworkInterfaces</a> smart constructor.
data DescribeNetworkInterfaces

-- | One or more network interface IDs. Default: Describes all your network
--   interfaces.
dnisNetworkInterfaceIds :: Lens' DescribeNetworkInterfaces [Text]

-- | One or more filters. * <tt>addresses.private-ip-address</tt> - The
--   private IPv4 addresses associated with the network interface. *
--   <tt>addresses.primary</tt> - Whether the private IPv4 address is the
--   primary IP address associated with the network interface. *
--   <tt>addresses.association.public-ip</tt> - The association ID returned
--   when the network interface was associated with the Elastic IP address
--   (IPv4). * <tt>addresses.association.owner-id</tt> - The owner ID of
--   the addresses associated with the network interface. *
--   <tt>association.association-id</tt> - The association ID returned when
--   the network interface was associated with an IPv4 address. *
--   <tt>association.allocation-id</tt> - The allocation ID returned when
--   you allocated the Elastic IP address (IPv4) for your network
--   interface. * <tt>association.ip-owner-id</tt> - The owner of the
--   Elastic IP address (IPv4) associated with the network interface. *
--   <tt>association.public-ip</tt> - The address of the Elastic IP address
--   (IPv4) bound to the network interface. *
--   <tt>association.public-dns-name</tt> - The public DNS name for the
--   network interface (IPv4). * <tt>attachment.attachment-id</tt> - The ID
--   of the interface attachment. * <tt>attachment.attach.time</tt> - The
--   time that the network interface was attached to an instance. *
--   <tt>attachment.delete-on-termination</tt> - Indicates whether the
--   attachment is deleted when an instance is terminated. *
--   <tt>attachment.device-index</tt> - The device index to which the
--   network interface is attached. * <tt>attachment.instance-id</tt> - The
--   ID of the instance to which the network interface is attached. *
--   <tt>attachment.instance-owner-id</tt> - The owner ID of the instance
--   to which the network interface is attached. *
--   <tt>attachment.nat-gateway-id</tt> - The ID of the NAT gateway to
--   which the network interface is attached. * <tt>attachment.status</tt>
--   - The status of the attachment (<tt>attaching</tt> | <tt>attached</tt>
--   | <tt>detaching</tt> | <tt>detached</tt> ). *
--   <tt>availability-zone</tt> - The Availability Zone of the network
--   interface. * <tt>description</tt> - The description of the network
--   interface. * <tt>group-id</tt> - The ID of a security group associated
--   with the network interface. * <tt>group-name</tt> - The name of a
--   security group associated with the network interface. *
--   <tt>ipv6-addresses.ipv6-address</tt> - An IPv6 address associated with
--   the network interface. * <tt>mac-address</tt> - The MAC address of the
--   network interface. * <tt>network-interface-id</tt> - The ID of the
--   network interface. * <tt>owner-id</tt> - The AWS account ID of the
--   network interface owner. * <tt>private-ip-address</tt> - The private
--   IPv4 address or addresses of the network interface. *
--   <tt>private-dns-name</tt> - The private DNS name of the network
--   interface (IPv4). * <tt>requester-id</tt> - The ID of the entity that
--   launched the instance on your behalf (for example, AWS Management
--   Console, Auto Scaling, and so on). * <tt>requester-managed</tt> -
--   Indicates whether the network interface is being managed by an AWS
--   service (for example, AWS Management Console, Auto Scaling, and so
--   on). * <tt>source-desk-check</tt> - Indicates whether the network
--   interface performs source<i>destination checking. A value of
--   <tt>true</tt> means checking is enabled, and <tt>false</tt> means
--   checking is disabled. The value must be <tt>false</tt> for the network
--   interface to perform network address translation (NAT) in your VPC. *
--   <tt>status</tt> - The status of the network interface. If the network
--   interface is not attached to an instance, the status is
--   <tt>available</tt> ; if a network interface is attached to an instance
--   the status is <tt>in-use</tt> . * <tt>subnet-id</tt> - The ID of the
--   subnet for the network interface. * <tt>tag</tt> :</i>key<i>
--   =</i>value<i> - The key</i>value combination of a tag assigned to the
--   resource. * <tt>tag-key</tt> - The key of a tag assigned to the
--   resource. This filter is independent of the <tt>tag-value</tt> filter.
--   For example, if you use both the filter "tag-key=Purpose" and the
--   filter "tag-value=X", you get any resources assigned both the tag key
--   Purpose (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :<i>key</i>
--   =<i>value</i> filter. * <tt>tag-value</tt> - The value of a tag
--   assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter. * <tt>vpc-id</tt> - The ID of the VPC for the
--   network interface.
dnisFilters :: Lens' DescribeNetworkInterfaces [Filter]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dnisDryRun :: Lens' DescribeNetworkInterfaces (Maybe Bool)

-- | Creates a value of <a>DescribeNetworkInterfacesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnirsNetworkInterfaces</a> - Information about one or more
--   network interfaces.</li>
--   <li><a>dnirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeNetworkInterfacesResponse :: Int -> DescribeNetworkInterfacesResponse

-- | Contains the output of DescribeNetworkInterfaces.
--   
--   <i>See:</i> <a>describeNetworkInterfacesResponse</a> smart
--   constructor.
data DescribeNetworkInterfacesResponse

-- | Information about one or more network interfaces.
dnirsNetworkInterfaces :: Lens' DescribeNetworkInterfacesResponse [NetworkInterface]

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


-- | Describes a network interface attribute. You can specify only one
--   attribute at a time.
module Network.AWS.EC2.DescribeNetworkInterfaceAttribute

-- | Creates a value of <a>DescribeNetworkInterfaceAttribute</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dniaAttribute</a> - The attribute of the network
--   interface.</li>
--   <li><a>dniaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dniaNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   </ul>
describeNetworkInterfaceAttribute :: Text -> DescribeNetworkInterfaceAttribute

-- | Contains the parameters for DescribeNetworkInterfaceAttribute.
--   
--   <i>See:</i> <a>describeNetworkInterfaceAttribute</a> smart
--   constructor.
data DescribeNetworkInterfaceAttribute

-- | The attribute of the network interface.
dniaAttribute :: Lens' DescribeNetworkInterfaceAttribute (Maybe NetworkInterfaceAttribute)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dniaDryRun :: Lens' DescribeNetworkInterfaceAttribute (Maybe Bool)

-- | The ID of the network interface.
dniaNetworkInterfaceId :: Lens' DescribeNetworkInterfaceAttribute Text

-- | Creates a value of <a>DescribeNetworkInterfaceAttributeResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dniarsGroups</a> - The security groups associated with the
--   network interface.</li>
--   <li><a>dniarsSourceDestCheck</a> - Indicates whether
--   source/destination checking is enabled.</li>
--   <li><a>dniarsNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>dniarsAttachment</a> - The attachment (if any) of the network
--   interface.</li>
--   <li><a>dniarsDescription</a> - The description of the network
--   interface.</li>
--   <li><a>dniarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeNetworkInterfaceAttributeResponse :: Int -> DescribeNetworkInterfaceAttributeResponse

-- | Contains the output of DescribeNetworkInterfaceAttribute.
--   
--   <i>See:</i> <a>describeNetworkInterfaceAttributeResponse</a> smart
--   constructor.
data DescribeNetworkInterfaceAttributeResponse

-- | The security groups associated with the network interface.
dniarsGroups :: Lens' DescribeNetworkInterfaceAttributeResponse [GroupIdentifier]

-- | Indicates whether source/destination checking is enabled.
dniarsSourceDestCheck :: Lens' DescribeNetworkInterfaceAttributeResponse (Maybe AttributeBooleanValue)

-- | The ID of the network interface.
dniarsNetworkInterfaceId :: Lens' DescribeNetworkInterfaceAttributeResponse (Maybe Text)

-- | The attachment (if any) of the network interface.
dniarsAttachment :: Lens' DescribeNetworkInterfaceAttributeResponse (Maybe NetworkInterfaceAttachment)

-- | The description of the network interface.
dniarsDescription :: Lens' DescribeNetworkInterfaceAttributeResponse (Maybe AttributeValue)

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


-- | Describes one or more of your network ACLs.
--   
--   For more information about network ACLs, see <a>Network ACLs</a> in
--   the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.DescribeNetworkACLs

-- | Creates a value of <a>DescribeNetworkACLs</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnaclFilters</a> - One or more filters. *
--   <tt>association.association-id</tt> - The ID of an association ID for
--   the ACL. * <tt>association.network-acl-id</tt> - The ID of the network
--   ACL involved in the association. * <tt>association.subnet-id</tt> -
--   The ID of the subnet involved in the association. * <tt>default</tt> -
--   Indicates whether the ACL is the default network ACL for the VPC. *
--   <tt>entry.cidr</tt> - The IPv4 CIDR range specified in the entry. *
--   <tt>entry.egress</tt> - Indicates whether the entry applies to egress
--   traffic. * <tt>entry.icmp.code</tt> - The ICMP code specified in the
--   entry, if any. * <tt>entry.icmp.type</tt> - The ICMP type specified in
--   the entry, if any. * <tt>entry.ipv6-cidr</tt> - The IPv6 CIDR range
--   specified in the entry. * <tt>entry.port-range.from</tt> - The start
--   of the port range specified in the entry. *
--   <tt>entry.port-range.to</tt> - The end of the port range specified in
--   the entry. * <tt>entry.protocol</tt> - The protocol specified in the
--   entry (<tt>tcp</tt> | <tt>udp</tt> | <tt>icmp</tt> or a protocol
--   number). * <tt>entry.rule-action</tt> - Allows or denies the matching
--   traffic (<tt>allow</tt> | <tt>deny</tt> ). *
--   <tt>entry.rule-number</tt> - The number of an entry (in other words,
--   rule) in the ACL's set of entries. * <tt>network-acl-id</tt> - The ID
--   of the network ACL. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>vpc-id</tt> - The ID of the VPC for the network
--   ACL.</li>
--   <li><a>dnaclNetworkACLIds</a> - One or more network ACL IDs. Default:
--   Describes all your network ACLs.</li>
--   <li><a>dnaclDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeNetworkACLs :: DescribeNetworkACLs

-- | Contains the parameters for DescribeNetworkAcls.
--   
--   <i>See:</i> <a>describeNetworkACLs</a> smart constructor.
data DescribeNetworkACLs

-- | One or more filters. * <tt>association.association-id</tt> - The ID of
--   an association ID for the ACL. * <tt>association.network-acl-id</tt> -
--   The ID of the network ACL involved in the association. *
--   <tt>association.subnet-id</tt> - The ID of the subnet involved in the
--   association. * <tt>default</tt> - Indicates whether the ACL is the
--   default network ACL for the VPC. * <tt>entry.cidr</tt> - The IPv4 CIDR
--   range specified in the entry. * <tt>entry.egress</tt> - Indicates
--   whether the entry applies to egress traffic. *
--   <tt>entry.icmp.code</tt> - The ICMP code specified in the entry, if
--   any. * <tt>entry.icmp.type</tt> - The ICMP type specified in the
--   entry, if any. * <tt>entry.ipv6-cidr</tt> - The IPv6 CIDR range
--   specified in the entry. * <tt>entry.port-range.from</tt> - The start
--   of the port range specified in the entry. *
--   <tt>entry.port-range.to</tt> - The end of the port range specified in
--   the entry. * <tt>entry.protocol</tt> - The protocol specified in the
--   entry (<tt>tcp</tt> | <tt>udp</tt> | <tt>icmp</tt> or a protocol
--   number). * <tt>entry.rule-action</tt> - Allows or denies the matching
--   traffic (<tt>allow</tt> | <tt>deny</tt> ). *
--   <tt>entry.rule-number</tt> - The number of an entry (in other words,
--   rule) in the ACL's set of entries. * <tt>network-acl-id</tt> - The ID
--   of the network ACL. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>vpc-id</tt> - The ID of the VPC for the network ACL.
dnaclFilters :: Lens' DescribeNetworkACLs [Filter]

-- | One or more network ACL IDs. Default: Describes all your network ACLs.
dnaclNetworkACLIds :: Lens' DescribeNetworkACLs [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dnaclDryRun :: Lens' DescribeNetworkACLs (Maybe Bool)

-- | Creates a value of <a>DescribeNetworkACLsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnarsNetworkACLs</a> - Information about one or more network
--   ACLs.</li>
--   <li><a>dnarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeNetworkACLsResponse :: Int -> DescribeNetworkACLsResponse

-- | Contains the output of DescribeNetworkAcls.
--   
--   <i>See:</i> <a>describeNetworkACLsResponse</a> smart constructor.
data DescribeNetworkACLsResponse

-- | Information about one or more network ACLs.
dnarsNetworkACLs :: Lens' DescribeNetworkACLsResponse [NetworkACL]

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


-- | Describes one or more of the your NAT gateways.
module Network.AWS.EC2.DescribeNatGateways

-- | Creates a value of <a>DescribeNatGateways</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dngNatGatewayIds</a> - One or more NAT gateway IDs.</li>
--   <li><a>dngNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   <li><a>dngFilter</a> - One or more filters. * <tt>nat-gateway-id</tt>
--   - The ID of the NAT gateway. * <tt>state</tt> - The state of the NAT
--   gateway (<tt>pending</tt> | <tt>failed</tt> | <tt>available</tt> |
--   <tt>deleting</tt> | <tt>deleted</tt> ). * <tt>subnet-id</tt> - The ID
--   of the subnet in which the NAT gateway resides. * <tt>vpc-id</tt> -
--   The ID of the VPC in which the NAT gateway resides.</li>
--   <li><a>dngMaxResults</a> - The maximum number of items to return for
--   this request. The request returns a token that you can specify in a
--   subsequent call to get the next set of results. Constraint: If the
--   value specified is greater than 1000, we return only 1000 items.</li>
--   </ul>
describeNatGateways :: DescribeNatGateways

-- | Contains the parameters for DescribeNatGateways.
--   
--   <i>See:</i> <a>describeNatGateways</a> smart constructor.
data DescribeNatGateways

-- | One or more NAT gateway IDs.
dngNatGatewayIds :: Lens' DescribeNatGateways [Text]

-- | The token to retrieve the next page of results.
dngNextToken :: Lens' DescribeNatGateways (Maybe Text)

-- | One or more filters. * <tt>nat-gateway-id</tt> - The ID of the NAT
--   gateway. * <tt>state</tt> - The state of the NAT gateway
--   (<tt>pending</tt> | <tt>failed</tt> | <tt>available</tt> |
--   <tt>deleting</tt> | <tt>deleted</tt> ). * <tt>subnet-id</tt> - The ID
--   of the subnet in which the NAT gateway resides. * <tt>vpc-id</tt> -
--   The ID of the VPC in which the NAT gateway resides.
dngFilter :: Lens' DescribeNatGateways [Filter]

-- | The maximum number of items to return for this request. The request
--   returns a token that you can specify in a subsequent call to get the
--   next set of results. Constraint: If the value specified is greater
--   than 1000, we return only 1000 items.
dngMaxResults :: Lens' DescribeNatGateways (Maybe Int)

-- | Creates a value of <a>DescribeNatGatewaysResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dngrsNatGateways</a> - Information about the NAT gateways.</li>
--   <li><a>dngrsNextToken</a> - The token to use to retrieve the next page
--   of results. This value is <tt>null</tt> when there are no more results
--   to return.</li>
--   <li><a>dngrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeNatGatewaysResponse :: Int -> DescribeNatGatewaysResponse

-- | Contains the output of DescribeNatGateways.
--   
--   <i>See:</i> <a>describeNatGatewaysResponse</a> smart constructor.
data DescribeNatGatewaysResponse

-- | Information about the NAT gateways.
dngrsNatGateways :: Lens' DescribeNatGatewaysResponse [NatGateway]

-- | The token to use to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
dngrsNextToken :: Lens' DescribeNatGatewaysResponse (Maybe Text)

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


-- | Describes your Elastic IP addresses that are being moved to the
--   EC2-VPC platform, or that are being restored to the EC2-Classic
--   platform. This request does not return information about any other
--   Elastic IP addresses in your account.
module Network.AWS.EC2.DescribeMovingAddresses

-- | Creates a value of <a>DescribeMovingAddresses</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmaFilters</a> - One or more filters. * <tt>moving-status</tt>
--   - The status of the Elastic IP address (<tt>MovingToVpc</tt> |
--   <tt>RestoringToClassic</tt> ).</li>
--   <li><a>dmaPublicIPs</a> - One or more Elastic IP addresses.</li>
--   <li><a>dmaNextToken</a> - The token to use to retrieve the next page
--   of results.</li>
--   <li><a>dmaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dmaMaxResults</a> - The maximum number of results to return for
--   the request in a single page. The remaining results of the initial
--   request can be seen by sending another request with the returned
--   <tt>NextToken</tt> value. This value can be between 5 and 1000; if
--   <tt>MaxResults</tt> is given a value outside of this range, an error
--   is returned. Default: If no value is provided, the default is
--   1000.</li>
--   </ul>
describeMovingAddresses :: DescribeMovingAddresses

-- | Contains the parameters for DescribeMovingAddresses.
--   
--   <i>See:</i> <a>describeMovingAddresses</a> smart constructor.
data DescribeMovingAddresses

-- | One or more filters. * <tt>moving-status</tt> - The status of the
--   Elastic IP address (<tt>MovingToVpc</tt> | <tt>RestoringToClassic</tt>
--   ).
dmaFilters :: Lens' DescribeMovingAddresses [Filter]

-- | One or more Elastic IP addresses.
dmaPublicIPs :: Lens' DescribeMovingAddresses [Text]

-- | The token to use to retrieve the next page of results.
dmaNextToken :: Lens' DescribeMovingAddresses (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dmaDryRun :: Lens' DescribeMovingAddresses (Maybe Bool)

-- | The maximum number of results to return for the request in a single
--   page. The remaining results of the initial request can be seen by
--   sending another request with the returned <tt>NextToken</tt> value.
--   This value can be between 5 and 1000; if <tt>MaxResults</tt> is given
--   a value outside of this range, an error is returned. Default: If no
--   value is provided, the default is 1000.
dmaMaxResults :: Lens' DescribeMovingAddresses (Maybe Int)

-- | Creates a value of <a>DescribeMovingAddressesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmarsMovingAddressStatuses</a> - The status for each Elastic IP
--   address.</li>
--   <li><a>dmarsNextToken</a> - The token to use to retrieve the next page
--   of results. This value is <tt>null</tt> when there are no more results
--   to return.</li>
--   <li><a>dmarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeMovingAddressesResponse :: Int -> DescribeMovingAddressesResponse

-- | Contains the output of DescribeMovingAddresses.
--   
--   <i>See:</i> <a>describeMovingAddressesResponse</a> smart constructor.
data DescribeMovingAddressesResponse

-- | The status for each Elastic IP address.
dmarsMovingAddressStatuses :: Lens' DescribeMovingAddressesResponse [MovingAddressStatus]

-- | The token to use to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
dmarsNextToken :: Lens' DescribeMovingAddressesResponse (Maybe Text)

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


-- | Describes one or more of your key pairs.
--   
--   For more information about key pairs, see <a>Key Pairs</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.DescribeKeyPairs

-- | Creates a value of <a>DescribeKeyPairs</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dkpsFilters</a> - One or more filters. * <tt>fingerprint</tt> -
--   The fingerprint of the key pair. * <tt>key-name</tt> - The name of the
--   key pair.</li>
--   <li><a>dkpsKeyNames</a> - One or more key pair names. Default:
--   Describes all your key pairs.</li>
--   <li><a>dkpsDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeKeyPairs :: DescribeKeyPairs

-- | Contains the parameters for DescribeKeyPairs.
--   
--   <i>See:</i> <a>describeKeyPairs</a> smart constructor.
data DescribeKeyPairs

-- | One or more filters. * <tt>fingerprint</tt> - The fingerprint of the
--   key pair. * <tt>key-name</tt> - The name of the key pair.
dkpsFilters :: Lens' DescribeKeyPairs [Filter]

-- | One or more key pair names. Default: Describes all your key pairs.
dkpsKeyNames :: Lens' DescribeKeyPairs [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dkpsDryRun :: Lens' DescribeKeyPairs (Maybe Bool)

-- | Creates a value of <a>DescribeKeyPairsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dkprsKeyPairs</a> - Information about one or more key
--   pairs.</li>
--   <li><a>dkprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeKeyPairsResponse :: Int -> DescribeKeyPairsResponse

-- | Contains the output of DescribeKeyPairs.
--   
--   <i>See:</i> <a>describeKeyPairsResponse</a> smart constructor.
data DescribeKeyPairsResponse

-- | Information about one or more key pairs.
dkprsKeyPairs :: Lens' DescribeKeyPairsResponse [KeyPairInfo]

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


-- | Describes one or more of your Internet gateways.
module Network.AWS.EC2.DescribeInternetGateways

-- | Creates a value of <a>DescribeInternetGateways</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dFilters</a> - One or more filters. * <tt>attachment.state</tt>
--   - The current state of the attachment between the gateway and the VPC
--   (<tt>available</tt> ). Present only if a VPC is attached. *
--   <tt>attachment.vpc-id</tt> - The ID of an attached VPC. *
--   <tt>internet-gateway-id</tt> - The ID of the Internet gateway. *
--   <tt>tag</tt> :<i>key</i> =<i>value</i> - The key<i>value combination
--   of a tag assigned to the resource. * <tt>tag-key</tt> - The key of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-value</tt> filter. For example, if you use both the filter
--   "tag-key=Purpose" and the filter "tag-value=X", you get any resources
--   assigned both the tag key Purpose (regardless of what the tag's value
--   is), and the tag value X (regardless of what the tag's key is). If you
--   want to list only resources where Purpose is X, see the <tt>tag</tt>
--   :</i>key<i> =</i>value/ filter. * <tt>tag-value</tt> - The value of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter.</li>
--   <li><a>dInternetGatewayIds</a> - One or more Internet gateway IDs.
--   Default: Describes all your Internet gateways.</li>
--   <li><a>dDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeInternetGateways :: DescribeInternetGateways

-- | Contains the parameters for DescribeInternetGateways.
--   
--   <i>See:</i> <a>describeInternetGateways</a> smart constructor.
data DescribeInternetGateways

-- | One or more filters. * <tt>attachment.state</tt> - The current state
--   of the attachment between the gateway and the VPC (<tt>available</tt>
--   ). Present only if a VPC is attached. * <tt>attachment.vpc-id</tt> -
--   The ID of an attached VPC. * <tt>internet-gateway-id</tt> - The ID of
--   the Internet gateway. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter.
dFilters :: Lens' DescribeInternetGateways [Filter]

-- | One or more Internet gateway IDs. Default: Describes all your Internet
--   gateways.
dInternetGatewayIds :: Lens' DescribeInternetGateways [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dDryRun :: Lens' DescribeInternetGateways (Maybe Bool)

-- | Creates a value of <a>DescribeInternetGatewaysResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>digrsInternetGateways</a> - Information about one or more
--   Internet gateways.</li>
--   <li><a>digrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeInternetGatewaysResponse :: Int -> DescribeInternetGatewaysResponse

-- | Contains the output of DescribeInternetGateways.
--   
--   <i>See:</i> <a>describeInternetGatewaysResponse</a> smart constructor.
data DescribeInternetGatewaysResponse

-- | Information about one or more Internet gateways.
digrsInternetGateways :: Lens' DescribeInternetGatewaysResponse [InternetGateway]

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


-- | Describes one or more of your instances.
--   
--   If you specify one or more instance IDs, Amazon EC2 returns
--   information for those instances. If you do not specify instance IDs,
--   Amazon EC2 returns information for all relevant instances. If you
--   specify an instance ID that is not valid, an error is returned. If you
--   specify an instance that you do not own, it is not included in the
--   returned results.
--   
--   Recently terminated instances might appear in the returned results.
--   This interval is usually less than one hour.
--   
--   If you describe instances in the rare case where an Availability Zone
--   is experiencing a service disruption and you specify instance IDs that
--   are in the affected zone, or do not specify any instance IDs at all,
--   the call fails. If you describe instances and specify only instance
--   IDs that are in an unaffected zone, the call works normally.
--   
--   This operation returns paginated results.
module Network.AWS.EC2.DescribeInstances

-- | Creates a value of <a>DescribeInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diiFilters</a> - One or more filters. * <tt>affinity</tt> - The
--   affinity setting for an instance running on a Dedicated Host
--   (<tt>default</tt> | <tt>host</tt> ). * <tt>architecture</tt> - The
--   instance architecture (<tt>i386</tt> | <tt>x86_64</tt> ). *
--   <tt>association.public-ip</tt> - The address of the Elastic IP address
--   (IPv4) bound to the network interface. *
--   <tt>association.ip-owner-id</tt> - The owner of the Elastic IP address
--   (IPv4) associated with the network interface. *
--   <tt>association.allocation-id</tt> - The allocation ID returned when
--   you allocated the Elastic IP address (IPv4) for your network
--   interface. * <tt>association.association-id</tt> - The association ID
--   returned when the network interface was associated with an IPv4
--   address. * <tt>availability-zone</tt> - The Availability Zone of the
--   instance. * <tt>block-device-mapping.attach-time</tt> - The attach
--   time for an EBS volume mapped to the instance, for example,
--   <tt>2010-09-15T17:15:20.000Z</tt> . *
--   <tt>block-device-mapping.delete-on-termination</tt> - A Boolean that
--   indicates whether the EBS volume is deleted on instance termination. *
--   <tt>block-device-mapping.device-name</tt> - The device name for the
--   EBS volume (for example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ). *
--   <tt>block-device-mapping.status</tt> - The status for the EBS volume
--   (<tt>attaching</tt> | <tt>attached</tt> | <tt>detaching</tt> |
--   <tt>detached</tt> ). * <tt>block-device-mapping.volume-id</tt> - The
--   volume ID of the EBS volume. * <tt>client-token</tt> - The idempotency
--   token you provided when you launched the instance. * <tt>dns-name</tt>
--   - The public DNS name of the instance. * <tt>group-id</tt> - The ID of
--   the security group for the instance. EC2-Classic only. *
--   <tt>group-name</tt> - The name of the security group for the instance.
--   EC2-Classic only. * <tt>host-id</tt> - The ID of the Dedicated Host on
--   which the instance is running, if applicable. * <tt>hypervisor</tt> -
--   The hypervisor type of the instance (<tt>ovm</tt> | <tt>xen</tt> ). *
--   <tt>iam-instance-profile.arn</tt> - The instance profile associated
--   with the instance. Specified as an ARN. * <tt>image-id</tt> - The ID
--   of the image used to launch the instance. * <tt>instance-id</tt> - The
--   ID of the instance. * <tt>instance-lifecycle</tt> - Indicates whether
--   this is a Spot Instance or a Scheduled Instance (<tt>spot</tt> |
--   <tt>scheduled</tt> ). * <tt>instance-state-code</tt> - The state of
--   the instance, as a 16-bit unsigned integer. The high byte is an opaque
--   internal value and should be ignored. The low byte is set based on the
--   state represented. The valid values are: 0 (pending), 16 (running), 32
--   (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped). *
--   <tt>instance-state-name</tt> - The state of the instance
--   (<tt>pending</tt> | <tt>running</tt> | <tt>shutting-down</tt> |
--   <tt>terminated</tt> | <tt>stopping</tt> | <tt>stopped</tt> ). *
--   <tt>instance-type</tt> - The type of instance (for example,
--   <tt>t2.micro</tt> ). * <tt>instance.group-id</tt> - The ID of the
--   security group for the instance. * <tt>instance.group-name</tt> - The
--   name of the security group for the instance. * <tt>ip-address</tt> -
--   The public IPv4 address of the instance. * <tt>kernel-id</tt> - The
--   kernel ID. * <tt>key-name</tt> - The name of the key pair used when
--   the instance was launched. * <tt>launch-index</tt> - When launching
--   multiple instances, this is the index for the instance in the launch
--   group (for example, 0, 1, 2, and so on). * <tt>launch-time</tt> - The
--   time when the instance was launched. * <tt>monitoring-state</tt> -
--   Indicates whether detailed monitoring is enabled (<tt>disabled</tt> |
--   <tt>enabled</tt> ). *
--   <tt>network-interface.addresses.private-ip-address</tt> - The private
--   IPv4 address associated with the network interface. *
--   <tt>network-interface.addresses.primary</tt> - Specifies whether the
--   IPv4 address of the network interface is the primary private IPv4
--   address. * <tt>network-interface.addresses.association.public-ip</tt>
--   - The ID of the association of an Elastic IP address (IPv4) with a
--   network interface. *
--   <tt>network-interface.addresses.association.ip-owner-id</tt> - The
--   owner ID of the private IPv4 address associated with the network
--   interface. * <tt>network-interface.attachment.attachment-id</tt> - The
--   ID of the interface attachment. *
--   <tt>network-interface.attachment.instance-id</tt> - The ID of the
--   instance to which the network interface is attached. *
--   <tt>network-interface.attachment.instance-owner-id</tt> - The owner ID
--   of the instance to which the network interface is attached. *
--   <tt>network-interface.attachment.device-index</tt> - The device index
--   to which the network interface is attached. *
--   <tt>network-interface.attachment.status</tt> - The status of the
--   attachment (<tt>attaching</tt> | <tt>attached</tt> |
--   <tt>detaching</tt> | <tt>detached</tt> ). *
--   <tt>network-interface.attachment.attach-time</tt> - The time that the
--   network interface was attached to an instance. *
--   <tt>network-interface.attachment.delete-on-termination</tt> -
--   Specifies whether the attachment is deleted when an instance is
--   terminated. * <tt>network-interface.availability-zone</tt> - The
--   Availability Zone for the network interface. *
--   <tt>network-interface.description</tt> - The description of the
--   network interface. * <tt>network-interface.group-id</tt> - The ID of a
--   security group associated with the network interface. *
--   <tt>network-interface.group-name</tt> - The name of a security group
--   associated with the network interface. *
--   <tt>network-interface.ipv6-addresses.ipv6-address</tt> - The IPv6
--   address associated with the network interface. *
--   <tt>network-interface.mac-address</tt> - The MAC address of the
--   network interface. * <tt>network-interface.network-interface-id</tt> -
--   The ID of the network interface. * <tt>network-interface.owner-id</tt>
--   - The ID of the owner of the network interface. *
--   <tt>network-interface.private-dns-name</tt> - The private DNS name of
--   the network interface. * <tt>network-interface.requester-id</tt> - The
--   requester ID for the network interface. *
--   <tt>network-interface.requester-managed</tt> - Indicates whether the
--   network interface is being managed by AWS. *
--   <tt>network-interface.status</tt> - The status of the network
--   interface (<tt>available</tt> ) | <tt>in-use</tt> ). *
--   <tt>network-interface.source-dest-check</tt> - Whether the network
--   interface performs source<i>destination checking. A value of
--   <tt>true</tt> means checking is enabled, and <tt>false</tt> means
--   checking is disabled. The value must be <tt>false</tt> for the network
--   interface to perform network address translation (NAT) in your VPC. *
--   <tt>network-interface.subnet-id</tt> - The ID of the subnet for the
--   network interface. * <tt>network-interface.vpc-id</tt> - The ID of the
--   VPC for the network interface. * <tt>owner-id</tt> - The AWS account
--   ID of the instance owner. * <tt>placement-group-name</tt> - The name
--   of the placement group for the instance. * <tt>platform</tt> - The
--   platform. Use <tt>windows</tt> if you have Windows instances;
--   otherwise, leave blank. * <tt>private-dns-name</tt> - The private IPv4
--   DNS name of the instance. * <tt>private-ip-address</tt> - The private
--   IPv4 address of the instance. * <tt>product-code</tt> - The product
--   code associated with the AMI used to launch the instance. *
--   <tt>product-code.type</tt> - The type of product code (<tt>devpay</tt>
--   | <tt>marketplace</tt> ). * <tt>ramdisk-id</tt> - The RAM disk ID. *
--   <tt>reason</tt> - The reason for the current state of the instance
--   (for example, shows "User Initiated [date]" when you stop or terminate
--   the instance). Similar to the state-reason-code filter. *
--   <tt>requester-id</tt> - The ID of the entity that launched the
--   instance on your behalf (for example, AWS Management Console, Auto
--   Scaling, and so on). * <tt>reservation-id</tt> - The ID of the
--   instance's reservation. A reservation ID is created any time you
--   launch an instance. A reservation ID has a one-to-one relationship
--   with an instance launch request, but can be associated with more than
--   one instance if you launch multiple instances using the same launch
--   request. For example, if you launch one instance, you'll get one
--   reservation ID. If you launch ten instances using the same launch
--   request, you'll also get one reservation ID. *
--   <tt>root-device-name</tt> - The name of the root device for the
--   instance (for example, @</i>dev<i>sda1<tt> or </tt></i>dev<i>xvda<tt>
--   ). * </tt>root-device-type<tt> - The type of root device that the
--   instance uses (</tt>ebs<tt> | </tt>instance-store<tt> ). *
--   </tt>source-dest-check@ - Indicates whether the instance performs
--   source</i>destination checking. A value of <tt>true</tt> means that
--   checking is enabled, and <tt>false</tt> means checking is disabled.
--   The value must be <tt>false</tt> for the instance to perform network
--   address translation (NAT) in your VPC. *
--   <tt>spot-instance-request-id</tt> - The ID of the Spot instance
--   request. * <tt>state-reason-code</tt> - The reason code for the state
--   change. * <tt>state-reason-message</tt> - A message that describes the
--   state change. * <tt>subnet-id</tt> - The ID of the subnet for the
--   instance. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The key<i>value
--   combination of a tag assigned to the resource, where <tt>tag</tt>
--   :</i>key<i> is the tag's key. * <tt>tag-key</tt> - The key of a tag
--   assigned to the resource. This filter is independent of the
--   <tt>tag-value</tt> filter. For example, if you use both the filter
--   "tag-key=Purpose" and the filter "tag-value=X", you get any resources
--   assigned both the tag key Purpose (regardless of what the tag's value
--   is), and the tag value X (regardless of what the tag's key is). If you
--   want to list only resources where Purpose is X, see the <tt>tag</tt>
--   :</i>key<i> =</i>value/ filter. * <tt>tag-value</tt> - The value of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter. * <tt>tenancy</tt> - The tenancy of an
--   instance (<tt>dedicated</tt> | <tt>default</tt> | <tt>host</tt> ). *
--   <tt>virtualization-type</tt> - The virtualization type of the instance
--   (<tt>paravirtual</tt> | <tt>hvm</tt> ). * <tt>vpc-id</tt> - The ID of
--   the VPC that the instance is running in.</li>
--   <li><a>diiNextToken</a> - The token to request the next page of
--   results.</li>
--   <li><a>diiInstanceIds</a> - One or more instance IDs. Default:
--   Describes all your instances.</li>
--   <li><a>diiDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>diiMaxResults</a> - The maximum number of results to return in
--   a single call. To retrieve the remaining results, make another call
--   with the returned <tt>NextToken</tt> value. This value can be between
--   5 and 1000. You cannot specify this parameter and the instance IDs
--   parameter or tag filters in the same call.</li>
--   </ul>
describeInstances :: DescribeInstances

-- | Contains the parameters for DescribeInstances.
--   
--   <i>See:</i> <a>describeInstances</a> smart constructor.
data DescribeInstances

-- | One or more filters. * <tt>affinity</tt> - The affinity setting for an
--   instance running on a Dedicated Host (<tt>default</tt> | <tt>host</tt>
--   ). * <tt>architecture</tt> - The instance architecture (<tt>i386</tt>
--   | <tt>x86_64</tt> ). * <tt>association.public-ip</tt> - The address of
--   the Elastic IP address (IPv4) bound to the network interface. *
--   <tt>association.ip-owner-id</tt> - The owner of the Elastic IP address
--   (IPv4) associated with the network interface. *
--   <tt>association.allocation-id</tt> - The allocation ID returned when
--   you allocated the Elastic IP address (IPv4) for your network
--   interface. * <tt>association.association-id</tt> - The association ID
--   returned when the network interface was associated with an IPv4
--   address. * <tt>availability-zone</tt> - The Availability Zone of the
--   instance. * <tt>block-device-mapping.attach-time</tt> - The attach
--   time for an EBS volume mapped to the instance, for example,
--   <tt>2010-09-15T17:15:20.000Z</tt> . *
--   <tt>block-device-mapping.delete-on-termination</tt> - A Boolean that
--   indicates whether the EBS volume is deleted on instance termination. *
--   <tt>block-device-mapping.device-name</tt> - The device name for the
--   EBS volume (for example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ). *
--   <tt>block-device-mapping.status</tt> - The status for the EBS volume
--   (<tt>attaching</tt> | <tt>attached</tt> | <tt>detaching</tt> |
--   <tt>detached</tt> ). * <tt>block-device-mapping.volume-id</tt> - The
--   volume ID of the EBS volume. * <tt>client-token</tt> - The idempotency
--   token you provided when you launched the instance. * <tt>dns-name</tt>
--   - The public DNS name of the instance. * <tt>group-id</tt> - The ID of
--   the security group for the instance. EC2-Classic only. *
--   <tt>group-name</tt> - The name of the security group for the instance.
--   EC2-Classic only. * <tt>host-id</tt> - The ID of the Dedicated Host on
--   which the instance is running, if applicable. * <tt>hypervisor</tt> -
--   The hypervisor type of the instance (<tt>ovm</tt> | <tt>xen</tt> ). *
--   <tt>iam-instance-profile.arn</tt> - The instance profile associated
--   with the instance. Specified as an ARN. * <tt>image-id</tt> - The ID
--   of the image used to launch the instance. * <tt>instance-id</tt> - The
--   ID of the instance. * <tt>instance-lifecycle</tt> - Indicates whether
--   this is a Spot Instance or a Scheduled Instance (<tt>spot</tt> |
--   <tt>scheduled</tt> ). * <tt>instance-state-code</tt> - The state of
--   the instance, as a 16-bit unsigned integer. The high byte is an opaque
--   internal value and should be ignored. The low byte is set based on the
--   state represented. The valid values are: 0 (pending), 16 (running), 32
--   (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped). *
--   <tt>instance-state-name</tt> - The state of the instance
--   (<tt>pending</tt> | <tt>running</tt> | <tt>shutting-down</tt> |
--   <tt>terminated</tt> | <tt>stopping</tt> | <tt>stopped</tt> ). *
--   <tt>instance-type</tt> - The type of instance (for example,
--   <tt>t2.micro</tt> ). * <tt>instance.group-id</tt> - The ID of the
--   security group for the instance. * <tt>instance.group-name</tt> - The
--   name of the security group for the instance. * <tt>ip-address</tt> -
--   The public IPv4 address of the instance. * <tt>kernel-id</tt> - The
--   kernel ID. * <tt>key-name</tt> - The name of the key pair used when
--   the instance was launched. * <tt>launch-index</tt> - When launching
--   multiple instances, this is the index for the instance in the launch
--   group (for example, 0, 1, 2, and so on). * <tt>launch-time</tt> - The
--   time when the instance was launched. * <tt>monitoring-state</tt> -
--   Indicates whether detailed monitoring is enabled (<tt>disabled</tt> |
--   <tt>enabled</tt> ). *
--   <tt>network-interface.addresses.private-ip-address</tt> - The private
--   IPv4 address associated with the network interface. *
--   <tt>network-interface.addresses.primary</tt> - Specifies whether the
--   IPv4 address of the network interface is the primary private IPv4
--   address. * <tt>network-interface.addresses.association.public-ip</tt>
--   - The ID of the association of an Elastic IP address (IPv4) with a
--   network interface. *
--   <tt>network-interface.addresses.association.ip-owner-id</tt> - The
--   owner ID of the private IPv4 address associated with the network
--   interface. * <tt>network-interface.attachment.attachment-id</tt> - The
--   ID of the interface attachment. *
--   <tt>network-interface.attachment.instance-id</tt> - The ID of the
--   instance to which the network interface is attached. *
--   <tt>network-interface.attachment.instance-owner-id</tt> - The owner ID
--   of the instance to which the network interface is attached. *
--   <tt>network-interface.attachment.device-index</tt> - The device index
--   to which the network interface is attached. *
--   <tt>network-interface.attachment.status</tt> - The status of the
--   attachment (<tt>attaching</tt> | <tt>attached</tt> |
--   <tt>detaching</tt> | <tt>detached</tt> ). *
--   <tt>network-interface.attachment.attach-time</tt> - The time that the
--   network interface was attached to an instance. *
--   <tt>network-interface.attachment.delete-on-termination</tt> -
--   Specifies whether the attachment is deleted when an instance is
--   terminated. * <tt>network-interface.availability-zone</tt> - The
--   Availability Zone for the network interface. *
--   <tt>network-interface.description</tt> - The description of the
--   network interface. * <tt>network-interface.group-id</tt> - The ID of a
--   security group associated with the network interface. *
--   <tt>network-interface.group-name</tt> - The name of a security group
--   associated with the network interface. *
--   <tt>network-interface.ipv6-addresses.ipv6-address</tt> - The IPv6
--   address associated with the network interface. *
--   <tt>network-interface.mac-address</tt> - The MAC address of the
--   network interface. * <tt>network-interface.network-interface-id</tt> -
--   The ID of the network interface. * <tt>network-interface.owner-id</tt>
--   - The ID of the owner of the network interface. *
--   <tt>network-interface.private-dns-name</tt> - The private DNS name of
--   the network interface. * <tt>network-interface.requester-id</tt> - The
--   requester ID for the network interface. *
--   <tt>network-interface.requester-managed</tt> - Indicates whether the
--   network interface is being managed by AWS. *
--   <tt>network-interface.status</tt> - The status of the network
--   interface (<tt>available</tt> ) | <tt>in-use</tt> ). *
--   <tt>network-interface.source-dest-check</tt> - Whether the network
--   interface performs source<i>destination checking. A value of
--   <tt>true</tt> means checking is enabled, and <tt>false</tt> means
--   checking is disabled. The value must be <tt>false</tt> for the network
--   interface to perform network address translation (NAT) in your VPC. *
--   <tt>network-interface.subnet-id</tt> - The ID of the subnet for the
--   network interface. * <tt>network-interface.vpc-id</tt> - The ID of the
--   VPC for the network interface. * <tt>owner-id</tt> - The AWS account
--   ID of the instance owner. * <tt>placement-group-name</tt> - The name
--   of the placement group for the instance. * <tt>platform</tt> - The
--   platform. Use <tt>windows</tt> if you have Windows instances;
--   otherwise, leave blank. * <tt>private-dns-name</tt> - The private IPv4
--   DNS name of the instance. * <tt>private-ip-address</tt> - The private
--   IPv4 address of the instance. * <tt>product-code</tt> - The product
--   code associated with the AMI used to launch the instance. *
--   <tt>product-code.type</tt> - The type of product code (<tt>devpay</tt>
--   | <tt>marketplace</tt> ). * <tt>ramdisk-id</tt> - The RAM disk ID. *
--   <tt>reason</tt> - The reason for the current state of the instance
--   (for example, shows "User Initiated [date]" when you stop or terminate
--   the instance). Similar to the state-reason-code filter. *
--   <tt>requester-id</tt> - The ID of the entity that launched the
--   instance on your behalf (for example, AWS Management Console, Auto
--   Scaling, and so on). * <tt>reservation-id</tt> - The ID of the
--   instance's reservation. A reservation ID is created any time you
--   launch an instance. A reservation ID has a one-to-one relationship
--   with an instance launch request, but can be associated with more than
--   one instance if you launch multiple instances using the same launch
--   request. For example, if you launch one instance, you'll get one
--   reservation ID. If you launch ten instances using the same launch
--   request, you'll also get one reservation ID. *
--   <tt>root-device-name</tt> - The name of the root device for the
--   instance (for example, @</i>dev<i>sda1<tt> or </tt></i>dev<i>xvda<tt>
--   ). * </tt>root-device-type<tt> - The type of root device that the
--   instance uses (</tt>ebs<tt> | </tt>instance-store<tt> ). *
--   </tt>source-dest-check@ - Indicates whether the instance performs
--   source</i>destination checking. A value of <tt>true</tt> means that
--   checking is enabled, and <tt>false</tt> means checking is disabled.
--   The value must be <tt>false</tt> for the instance to perform network
--   address translation (NAT) in your VPC. *
--   <tt>spot-instance-request-id</tt> - The ID of the Spot instance
--   request. * <tt>state-reason-code</tt> - The reason code for the state
--   change. * <tt>state-reason-message</tt> - A message that describes the
--   state change. * <tt>subnet-id</tt> - The ID of the subnet for the
--   instance. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The key<i>value
--   combination of a tag assigned to the resource, where <tt>tag</tt>
--   :</i>key<i> is the tag's key. * <tt>tag-key</tt> - The key of a tag
--   assigned to the resource. This filter is independent of the
--   <tt>tag-value</tt> filter. For example, if you use both the filter
--   "tag-key=Purpose" and the filter "tag-value=X", you get any resources
--   assigned both the tag key Purpose (regardless of what the tag's value
--   is), and the tag value X (regardless of what the tag's key is). If you
--   want to list only resources where Purpose is X, see the <tt>tag</tt>
--   :</i>key<i> =</i>value/ filter. * <tt>tag-value</tt> - The value of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter. * <tt>tenancy</tt> - The tenancy of an
--   instance (<tt>dedicated</tt> | <tt>default</tt> | <tt>host</tt> ). *
--   <tt>virtualization-type</tt> - The virtualization type of the instance
--   (<tt>paravirtual</tt> | <tt>hvm</tt> ). * <tt>vpc-id</tt> - The ID of
--   the VPC that the instance is running in.
diiFilters :: Lens' DescribeInstances [Filter]

-- | The token to request the next page of results.
diiNextToken :: Lens' DescribeInstances (Maybe Text)

-- | One or more instance IDs. Default: Describes all your instances.
diiInstanceIds :: Lens' DescribeInstances [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
diiDryRun :: Lens' DescribeInstances (Maybe Bool)

-- | The maximum number of results to return in a single call. To retrieve
--   the remaining results, make another call with the returned
--   <tt>NextToken</tt> value. This value can be between 5 and 1000. You
--   cannot specify this parameter and the instance IDs parameter or tag
--   filters in the same call.
diiMaxResults :: Lens' DescribeInstances (Maybe Int)

-- | Creates a value of <a>DescribeInstancesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dirsNextToken</a> - The token to use to retrieve the next page
--   of results. This value is <tt>null</tt> when there are no more results
--   to return.</li>
--   <li><a>dirsReservations</a> - Zero or more reservations.</li>
--   <li><a>dirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeInstancesResponse :: Int -> DescribeInstancesResponse

-- | Contains the output of DescribeInstances.
--   
--   <i>See:</i> <a>describeInstancesResponse</a> smart constructor.
data DescribeInstancesResponse

-- | The token to use to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
dirsNextToken :: Lens' DescribeInstancesResponse (Maybe Text)

-- | Zero or more reservations.
dirsReservations :: Lens' DescribeInstancesResponse [Reservation]

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


-- | Describes the status of one or more instances. By default, only
--   running instances are described, unless specified otherwise.
--   
--   Instance status includes the following components:
--   
--   <ul>
--   <li><b>Status checks</b> - Amazon EC2 performs status checks on
--   running EC2 instances to identify hardware and software issues. For
--   more information, see <a>Status Checks for Your Instances</a> and
--   <a>Troubleshooting Instances with Failed Status Checks</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .</li>
--   <li><b>Scheduled events</b> - Amazon EC2 can schedule events (such as
--   reboot, stop, or terminate) for your instances related to hardware
--   issues, software updates, or system maintenance. For more information,
--   see <a>Scheduled Events for Your Instances</a> in the <i>Amazon
--   Elastic Compute Cloud User Guide</i> .</li>
--   <li><b>Instance state</b> - You can manage your instances from the
--   moment you launch them through their termination. For more
--   information, see <a>Instance Lifecycle</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> .</li>
--   </ul>
--   
--   This operation returns paginated results.
module Network.AWS.EC2.DescribeInstanceStatus

-- | Creates a value of <a>DescribeInstanceStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>disIncludeAllInstances</a> - When <tt>true</tt> , includes the
--   health status for all instances. When <tt>false</tt> , includes the
--   health status for running instances only. Default: <tt>false</tt></li>
--   <li><a>disFilters</a> - One or more filters. *
--   <tt>availability-zone</tt> - The Availability Zone of the instance. *
--   <tt>event.code</tt> - The code for the scheduled event
--   (<tt>instance-reboot</tt> | <tt>system-reboot</tt> |
--   <tt>system-maintenance</tt> | <tt>instance-retirement</tt> |
--   <tt>instance-stop</tt> ). * <tt>event.description</tt> - A description
--   of the event. * <tt>event.not-after</tt> - The latest end time for the
--   scheduled event (for example, <tt>2014-09-15T17:15:20.000Z</tt> ). *
--   <tt>event.not-before</tt> - The earliest start time for the scheduled
--   event (for example, <tt>2014-09-15T17:15:20.000Z</tt> ). *
--   <tt>instance-state-code</tt> - The code for the instance state, as a
--   16-bit unsigned integer. The high byte is an opaque internal value and
--   should be ignored. The low byte is set based on the state represented.
--   The valid values are 0 (pending), 16 (running), 32 (shutting-down), 48
--   (terminated), 64 (stopping), and 80 (stopped). *
--   <tt>instance-state-name</tt> - The state of the instance
--   (<tt>pending</tt> | <tt>running</tt> | <tt>shutting-down</tt> |
--   <tt>terminated</tt> | <tt>stopping</tt> | <tt>stopped</tt> ). *
--   <tt>instance-status.reachability</tt> - Filters on instance status
--   where the name is <tt>reachability</tt> (<tt>passed</tt> |
--   <tt>failed</tt> | <tt>initializing</tt> | <tt>insufficient-data</tt>
--   ). * <tt>instance-status.status</tt> - The status of the instance
--   (<tt>ok</tt> | <tt>impaired</tt> | <tt>initializing</tt> |
--   <tt>insufficient-data</tt> | <tt>not-applicable</tt> ). *
--   <tt>system-status.reachability</tt> - Filters on system status where
--   the name is <tt>reachability</tt> (<tt>passed</tt> | <tt>failed</tt> |
--   <tt>initializing</tt> | <tt>insufficient-data</tt> ). *
--   <tt>system-status.status</tt> - The system status of the instance
--   (<tt>ok</tt> | <tt>impaired</tt> | <tt>initializing</tt> |
--   <tt>insufficient-data</tt> | <tt>not-applicable</tt> ).</li>
--   <li><a>disNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   <li><a>disInstanceIds</a> - One or more instance IDs. Default:
--   Describes all your instances. Constraints: Maximum 100 explicitly
--   specified instance IDs.</li>
--   <li><a>disDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>disMaxResults</a> - The maximum number of results to return in
--   a single call. To retrieve the remaining results, make another call
--   with the returned <tt>NextToken</tt> value. This value can be between
--   5 and 1000. You cannot specify this parameter and the instance IDs
--   parameter in the same call.</li>
--   </ul>
describeInstanceStatus :: DescribeInstanceStatus

-- | Contains the parameters for DescribeInstanceStatus.
--   
--   <i>See:</i> <a>describeInstanceStatus</a> smart constructor.
data DescribeInstanceStatus

-- | When <tt>true</tt> , includes the health status for all instances.
--   When <tt>false</tt> , includes the health status for running instances
--   only. Default: <tt>false</tt>
disIncludeAllInstances :: Lens' DescribeInstanceStatus (Maybe Bool)

-- | One or more filters. * <tt>availability-zone</tt> - The Availability
--   Zone of the instance. * <tt>event.code</tt> - The code for the
--   scheduled event (<tt>instance-reboot</tt> | <tt>system-reboot</tt> |
--   <tt>system-maintenance</tt> | <tt>instance-retirement</tt> |
--   <tt>instance-stop</tt> ). * <tt>event.description</tt> - A description
--   of the event. * <tt>event.not-after</tt> - The latest end time for the
--   scheduled event (for example, <tt>2014-09-15T17:15:20.000Z</tt> ). *
--   <tt>event.not-before</tt> - The earliest start time for the scheduled
--   event (for example, <tt>2014-09-15T17:15:20.000Z</tt> ). *
--   <tt>instance-state-code</tt> - The code for the instance state, as a
--   16-bit unsigned integer. The high byte is an opaque internal value and
--   should be ignored. The low byte is set based on the state represented.
--   The valid values are 0 (pending), 16 (running), 32 (shutting-down), 48
--   (terminated), 64 (stopping), and 80 (stopped). *
--   <tt>instance-state-name</tt> - The state of the instance
--   (<tt>pending</tt> | <tt>running</tt> | <tt>shutting-down</tt> |
--   <tt>terminated</tt> | <tt>stopping</tt> | <tt>stopped</tt> ). *
--   <tt>instance-status.reachability</tt> - Filters on instance status
--   where the name is <tt>reachability</tt> (<tt>passed</tt> |
--   <tt>failed</tt> | <tt>initializing</tt> | <tt>insufficient-data</tt>
--   ). * <tt>instance-status.status</tt> - The status of the instance
--   (<tt>ok</tt> | <tt>impaired</tt> | <tt>initializing</tt> |
--   <tt>insufficient-data</tt> | <tt>not-applicable</tt> ). *
--   <tt>system-status.reachability</tt> - Filters on system status where
--   the name is <tt>reachability</tt> (<tt>passed</tt> | <tt>failed</tt> |
--   <tt>initializing</tt> | <tt>insufficient-data</tt> ). *
--   <tt>system-status.status</tt> - The system status of the instance
--   (<tt>ok</tt> | <tt>impaired</tt> | <tt>initializing</tt> |
--   <tt>insufficient-data</tt> | <tt>not-applicable</tt> ).
disFilters :: Lens' DescribeInstanceStatus [Filter]

-- | The token to retrieve the next page of results.
disNextToken :: Lens' DescribeInstanceStatus (Maybe Text)

-- | One or more instance IDs. Default: Describes all your instances.
--   Constraints: Maximum 100 explicitly specified instance IDs.
disInstanceIds :: Lens' DescribeInstanceStatus [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
disDryRun :: Lens' DescribeInstanceStatus (Maybe Bool)

-- | The maximum number of results to return in a single call. To retrieve
--   the remaining results, make another call with the returned
--   <tt>NextToken</tt> value. This value can be between 5 and 1000. You
--   cannot specify this parameter and the instance IDs parameter in the
--   same call.
disMaxResults :: Lens' DescribeInstanceStatus (Maybe Int)

-- | Creates a value of <a>DescribeInstanceStatusResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>disrsInstanceStatuses</a> - One or more instance status
--   descriptions.</li>
--   <li><a>disrsNextToken</a> - The token to use to retrieve the next page
--   of results. This value is <tt>null</tt> when there are no more results
--   to return.</li>
--   <li><a>disrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeInstanceStatusResponse :: Int -> DescribeInstanceStatusResponse

-- | Contains the output of DescribeInstanceStatus.
--   
--   <i>See:</i> <a>describeInstanceStatusResponse</a> smart constructor.
data DescribeInstanceStatusResponse

-- | One or more instance status descriptions.
disrsInstanceStatuses :: Lens' DescribeInstanceStatusResponse [InstanceStatus]

-- | The token to use to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
disrsNextToken :: Lens' DescribeInstanceStatusResponse (Maybe Text)

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


-- | Describes the specified attribute of the specified instance. You can
--   specify only one attribute at a time. Valid attribute values are:
--   <tt>instanceType</tt> | <tt>kernel</tt> | <tt>ramdisk</tt> |
--   <tt>userData</tt> | <tt>disableApiTermination</tt> |
--   <tt>instanceInitiatedShutdownBehavior</tt> | <tt>rootDeviceName</tt> |
--   <tt>blockDeviceMapping</tt> | <tt>productCodes</tt> |
--   <tt>sourceDestCheck</tt> | <tt>groupSet</tt> | <tt>ebsOptimized</tt> |
--   <tt>sriovNetSupport</tt>
module Network.AWS.EC2.DescribeInstanceAttribute

-- | Creates a value of <a>DescribeInstanceAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>diaInstanceId</a> - The ID of the instance.</li>
--   <li><a>diaAttribute</a> - The instance attribute. Note: The
--   <tt>enaSupport</tt> attribute is not supported at this time.</li>
--   </ul>
describeInstanceAttribute :: Text -> InstanceAttributeName -> DescribeInstanceAttribute

-- | Contains the parameters for DescribeInstanceAttribute.
--   
--   <i>See:</i> <a>describeInstanceAttribute</a> smart constructor.
data DescribeInstanceAttribute

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
diaDryRun :: Lens' DescribeInstanceAttribute (Maybe Bool)

-- | The ID of the instance.
diaInstanceId :: Lens' DescribeInstanceAttribute Text

-- | The instance attribute. Note: The <tt>enaSupport</tt> attribute is not
--   supported at this time.
diaAttribute :: Lens' DescribeInstanceAttribute InstanceAttributeName

-- | Creates a value of <a>DescribeInstanceAttributeResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsInstanceId</a> - The ID of the instance.</li>
--   <li><a>drsGroups</a> - The security groups associated with the
--   instance.</li>
--   <li><a>drsEnaSupport</a> - Indicates whether enhanced networking with
--   ENA is enabled.</li>
--   <li><a>drsSourceDestCheck</a> - Indicates whether source/destination
--   checking is enabled. A value of <tt>true</tt> means checking is
--   enabled, and <tt>false</tt> means checking is disabled. This value
--   must be <tt>false</tt> for a NAT instance to perform NAT.</li>
--   <li><a>drsDisableAPITermination</a> - If the value is <tt>true</tt> ,
--   you can't terminate the instance through the Amazon EC2 console, CLI,
--   or API; otherwise, you can.</li>
--   <li><a>drsRAMDiskId</a> - The RAM disk ID.</li>
--   <li><a>drsKernelId</a> - The kernel ID.</li>
--   <li><a>drsRootDeviceName</a> - The name of the root device (for
--   example, <tt><i>dev</i>sda1</tt> or <tt><i>dev</i>xvda</tt> ).</li>
--   <li><a>drsInstanceType</a> - The instance type.</li>
--   <li><a>drsSRIOVNetSupport</a> - Indicates whether enhanced networking
--   with the Intel 82599 Virtual Function interface is enabled.</li>
--   <li><a>drsEBSOptimized</a> - Indicates whether the instance is
--   optimized for EBS I/O.</li>
--   <li><a>drsUserData</a> - The user data.</li>
--   <li><a>drsInstanceInitiatedShutdownBehavior</a> - Indicates whether an
--   instance stops or terminates when you initiate shutdown from the
--   instance (using the operating system command for system
--   shutdown).</li>
--   <li><a>drsProductCodes</a> - A list of product codes.</li>
--   <li><a>drsBlockDeviceMappings</a> - The block device mapping of the
--   instance.</li>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeInstanceAttributeResponse :: Int -> DescribeInstanceAttributeResponse

-- | Describes an instance attribute.
--   
--   <i>See:</i> <a>describeInstanceAttributeResponse</a> smart
--   constructor.
data DescribeInstanceAttributeResponse

-- | The ID of the instance.
drsInstanceId :: Lens' DescribeInstanceAttributeResponse (Maybe Text)

-- | The security groups associated with the instance.
drsGroups :: Lens' DescribeInstanceAttributeResponse [GroupIdentifier]

-- | Indicates whether enhanced networking with ENA is enabled.
drsEnaSupport :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)

-- | Indicates whether source/destination checking is enabled. A value of
--   <tt>true</tt> means checking is enabled, and <tt>false</tt> means
--   checking is disabled. This value must be <tt>false</tt> for a NAT
--   instance to perform NAT.
drsSourceDestCheck :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)

-- | If the value is <tt>true</tt> , you can't terminate the instance
--   through the Amazon EC2 console, CLI, or API; otherwise, you can.
drsDisableAPITermination :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)

-- | The RAM disk ID.
drsRAMDiskId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)

-- | The kernel ID.
drsKernelId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)

-- | The name of the root device (for example, <tt><i>dev</i>sda1</tt> or
--   <tt><i>dev</i>xvda</tt> ).
drsRootDeviceName :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)

-- | The instance type.
drsInstanceType :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)

-- | Indicates whether enhanced networking with the Intel 82599 Virtual
--   Function interface is enabled.
drsSRIOVNetSupport :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)

-- | Indicates whether the instance is optimized for EBS I/O.
drsEBSOptimized :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)

-- | The user data.
drsUserData :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)

-- | Indicates whether an instance stops or terminates when you initiate
--   shutdown from the instance (using the operating system command for
--   system shutdown).
drsInstanceInitiatedShutdownBehavior :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)

-- | A list of product codes.
drsProductCodes :: Lens' DescribeInstanceAttributeResponse [ProductCode]

-- | The block device mapping of the instance.
drsBlockDeviceMappings :: Lens' DescribeInstanceAttributeResponse [InstanceBlockDeviceMapping]

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


-- | Describes your import snapshot tasks.
module Network.AWS.EC2.DescribeImportSnapshotTasks

-- | Creates a value of <a>DescribeImportSnapshotTasks</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>distFilters</a> - One or more filters.</li>
--   <li><a>distImportTaskIds</a> - A list of import snapshot task
--   IDs.</li>
--   <li><a>distNextToken</a> - A token that indicates the next page of
--   results.</li>
--   <li><a>distDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>distMaxResults</a> - The maximum number of results to return in
--   a single call. To retrieve the remaining results, make another call
--   with the returned <tt>NextToken</tt> value.</li>
--   </ul>
describeImportSnapshotTasks :: DescribeImportSnapshotTasks

-- | Contains the parameters for DescribeImportSnapshotTasks.
--   
--   <i>See:</i> <a>describeImportSnapshotTasks</a> smart constructor.
data DescribeImportSnapshotTasks

-- | One or more filters.
distFilters :: Lens' DescribeImportSnapshotTasks [Filter]

-- | A list of import snapshot task IDs.
distImportTaskIds :: Lens' DescribeImportSnapshotTasks [Text]

-- | A token that indicates the next page of results.
distNextToken :: Lens' DescribeImportSnapshotTasks (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
distDryRun :: Lens' DescribeImportSnapshotTasks (Maybe Bool)

-- | The maximum number of results to return in a single call. To retrieve
--   the remaining results, make another call with the returned
--   <tt>NextToken</tt> value.
distMaxResults :: Lens' DescribeImportSnapshotTasks (Maybe Int)

-- | Creates a value of <a>DescribeImportSnapshotTasksResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>distrsNextToken</a> - The token to use to get the next page of
--   results. This value is <tt>null</tt> when there are no more results to
--   return.</li>
--   <li><a>distrsImportSnapshotTasks</a> - A list of zero or more import
--   snapshot tasks that are currently active or were completed or canceled
--   in the previous 7 days.</li>
--   <li><a>distrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeImportSnapshotTasksResponse :: Int -> DescribeImportSnapshotTasksResponse

-- | Contains the output for DescribeImportSnapshotTasks.
--   
--   <i>See:</i> <a>describeImportSnapshotTasksResponse</a> smart
--   constructor.
data DescribeImportSnapshotTasksResponse

-- | The token to use to get the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
distrsNextToken :: Lens' DescribeImportSnapshotTasksResponse (Maybe Text)

-- | A list of zero or more import snapshot tasks that are currently active
--   or were completed or canceled in the previous 7 days.
distrsImportSnapshotTasks :: Lens' DescribeImportSnapshotTasksResponse [ImportSnapshotTask]

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


-- | Displays details about an import virtual machine or import snapshot
--   tasks that are already created.
module Network.AWS.EC2.DescribeImportImageTasks

-- | Creates a value of <a>DescribeImportImageTasks</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diitFilters</a> - Filter tasks using the <tt>task-state</tt>
--   filter and one of the following values: active, completed, deleting,
--   deleted.</li>
--   <li><a>diitImportTaskIds</a> - A list of import image task IDs.</li>
--   <li><a>diitNextToken</a> - A token that indicates the next page of
--   results.</li>
--   <li><a>diitDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>diitMaxResults</a> - The maximum number of results to return in
--   a single call. To retrieve the remaining results, make another call
--   with the returned <tt>NextToken</tt> value.</li>
--   </ul>
describeImportImageTasks :: DescribeImportImageTasks

-- | Contains the parameters for DescribeImportImageTasks.
--   
--   <i>See:</i> <a>describeImportImageTasks</a> smart constructor.
data DescribeImportImageTasks

-- | Filter tasks using the <tt>task-state</tt> filter and one of the
--   following values: active, completed, deleting, deleted.
diitFilters :: Lens' DescribeImportImageTasks [Filter]

-- | A list of import image task IDs.
diitImportTaskIds :: Lens' DescribeImportImageTasks [Text]

-- | A token that indicates the next page of results.
diitNextToken :: Lens' DescribeImportImageTasks (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
diitDryRun :: Lens' DescribeImportImageTasks (Maybe Bool)

-- | The maximum number of results to return in a single call. To retrieve
--   the remaining results, make another call with the returned
--   <tt>NextToken</tt> value.
diitMaxResults :: Lens' DescribeImportImageTasks (Maybe Int)

-- | Creates a value of <a>DescribeImportImageTasksResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diitrsNextToken</a> - The token to use to get the next page of
--   results. This value is <tt>null</tt> when there are no more results to
--   return.</li>
--   <li><a>diitrsImportImageTasks</a> - A list of zero or more import
--   image tasks that are currently active or were completed or canceled in
--   the previous 7 days.</li>
--   <li><a>diitrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeImportImageTasksResponse :: Int -> DescribeImportImageTasksResponse

-- | Contains the output for DescribeImportImageTasks.
--   
--   <i>See:</i> <a>describeImportImageTasksResponse</a> smart constructor.
data DescribeImportImageTasksResponse

-- | The token to use to get the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
diitrsNextToken :: Lens' DescribeImportImageTasksResponse (Maybe Text)

-- | A list of zero or more import image tasks that are currently active or
--   were completed or canceled in the previous 7 days.
diitrsImportImageTasks :: Lens' DescribeImportImageTasksResponse [ImportImageTask]

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


-- | Describes one or more of the images (AMIs, AKIs, and ARIs) available
--   to you. Images available to you include public images, private images
--   that you own, and private images owned by other AWS accounts but for
--   which you have explicit launch permissions.
module Network.AWS.EC2.DescribeImages

-- | Creates a value of <a>DescribeImages</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deseOwners</a> - Filters the images by the owner. Specify an
--   AWS account ID, <tt>self</tt> (owner is the sender of the request), or
--   an AWS owner alias (valid values are <tt>amazon</tt> |
--   <tt>aws-marketplace</tt> | <tt>microsoft</tt> ). Omitting this option
--   returns all images for which you have launch permissions, regardless
--   of ownership.</li>
--   <li><a>deseExecutableUsers</a> - Scopes the images by users with
--   explicit launch permissions. Specify an AWS account ID, <tt>self</tt>
--   (the sender of the request), or <tt>all</tt> (public AMIs).</li>
--   <li><a>deseFilters</a> - One or more filters. * <tt>architecture</tt>
--   - The image architecture (<tt>i386</tt> | <tt>x86_64</tt> ). *
--   <tt>block-device-mapping.delete-on-termination</tt> - A Boolean value
--   that indicates whether the Amazon EBS volume is deleted on instance
--   termination. * <tt>block-device-mapping.device-name</tt> - The device
--   name for the EBS volume (for example, <tt><i>dev</i>sdh</tt> ). *
--   <tt>block-device-mapping.snapshot-id</tt> - The ID of the snapshot
--   used for the EBS volume. * <tt>block-device-mapping.volume-size</tt> -
--   The volume size of the EBS volume, in GiB. *
--   <tt>block-device-mapping.volume-type</tt> - The volume type of the EBS
--   volume (<tt>gp2</tt> | <tt>io1</tt> | <tt>st1 </tt> | <tt>sc1</tt> |
--   <tt>standard</tt> ). * <tt>description</tt> - The description of the
--   image (provided during image creation). * <tt>ena-support</tt> - A
--   Boolean that indicates whether enhanced networking with ENA is
--   enabled. * <tt>hypervisor</tt> - The hypervisor type (<tt>ovm</tt> |
--   <tt>xen</tt> ). * <tt>image-id</tt> - The ID of the image. *
--   <tt>image-type</tt> - The image type (<tt>machine</tt> |
--   <tt>kernel</tt> | <tt>ramdisk</tt> ). * <tt>is-public</tt> - A Boolean
--   that indicates whether the image is public. * <tt>kernel-id</tt> - The
--   kernel ID. * <tt>manifest-location</tt> - The location of the image
--   manifest. * <tt>name</tt> - The name of the AMI (provided during image
--   creation). * <tt>owner-alias</tt> - String value from an
--   Amazon-maintained list (<tt>amazon</tt> | <tt>aws-marketplace</tt> |
--   <tt>microsoft</tt> ) of snapshot owners. Not to be confused with the
--   user-configured AWS account alias, which is set from the IAM console.
--   * <tt>owner-id</tt> - The AWS account ID of the image owner. *
--   <tt>platform</tt> - The platform. To only list Windows-based AMIs, use
--   <tt>windows</tt> . * <tt>product-code</tt> - The product code. *
--   <tt>product-code.type</tt> - The type of the product code
--   (<tt>devpay</tt> | <tt>marketplace</tt> ). * <tt>ramdisk-id</tt> - The
--   RAM disk ID. * <tt>root-device-name</tt> - The name of the root device
--   volume (for example, <tt><i>dev</i>sda1</tt> ). *
--   <tt>root-device-type</tt> - The type of the root device volume
--   (<tt>ebs</tt> | <tt>instance-store</tt> ). * <tt>state</tt> - The
--   state of the image (<tt>available</tt> | <tt>pending</tt> |
--   <tt>failed</tt> ). * <tt>state-reason-code</tt> - The reason code for
--   the state change. * <tt>state-reason-message</tt> - The message for
--   the state change. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the tag-value filter. For example, if you use
--   both the filter "tag-key=Purpose" and the filter "tag-value=X", you
--   get any resources assigned both the tag key Purpose (regardless of
--   what the tag's value is), and the tag value X (regardless of what the
--   tag's key is). If you want to list only resources where Purpose is X,
--   see the <tt>tag</tt> :</i>key<i> =</i>value/ filter. *
--   <tt>tag-value</tt> - The value of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-key</tt> filter. *
--   <tt>virtualization-type</tt> - The virtualization type
--   (<tt>paravirtual</tt> | <tt>hvm</tt> ).</li>
--   <li><a>deseImageIds</a> - One or more image IDs. Default: Describes
--   all images available to you.</li>
--   <li><a>deseDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeImages :: DescribeImages

-- | Contains the parameters for DescribeImages.
--   
--   <i>See:</i> <a>describeImages</a> smart constructor.
data DescribeImages

-- | Filters the images by the owner. Specify an AWS account ID,
--   <tt>self</tt> (owner is the sender of the request), or an AWS owner
--   alias (valid values are <tt>amazon</tt> | <tt>aws-marketplace</tt> |
--   <tt>microsoft</tt> ). Omitting this option returns all images for
--   which you have launch permissions, regardless of ownership.
deseOwners :: Lens' DescribeImages [Text]

-- | Scopes the images by users with explicit launch permissions. Specify
--   an AWS account ID, <tt>self</tt> (the sender of the request), or
--   <tt>all</tt> (public AMIs).
deseExecutableUsers :: Lens' DescribeImages [Text]

-- | One or more filters. * <tt>architecture</tt> - The image architecture
--   (<tt>i386</tt> | <tt>x86_64</tt> ). *
--   <tt>block-device-mapping.delete-on-termination</tt> - A Boolean value
--   that indicates whether the Amazon EBS volume is deleted on instance
--   termination. * <tt>block-device-mapping.device-name</tt> - The device
--   name for the EBS volume (for example, <tt><i>dev</i>sdh</tt> ). *
--   <tt>block-device-mapping.snapshot-id</tt> - The ID of the snapshot
--   used for the EBS volume. * <tt>block-device-mapping.volume-size</tt> -
--   The volume size of the EBS volume, in GiB. *
--   <tt>block-device-mapping.volume-type</tt> - The volume type of the EBS
--   volume (<tt>gp2</tt> | <tt>io1</tt> | <tt>st1 </tt> | <tt>sc1</tt> |
--   <tt>standard</tt> ). * <tt>description</tt> - The description of the
--   image (provided during image creation). * <tt>ena-support</tt> - A
--   Boolean that indicates whether enhanced networking with ENA is
--   enabled. * <tt>hypervisor</tt> - The hypervisor type (<tt>ovm</tt> |
--   <tt>xen</tt> ). * <tt>image-id</tt> - The ID of the image. *
--   <tt>image-type</tt> - The image type (<tt>machine</tt> |
--   <tt>kernel</tt> | <tt>ramdisk</tt> ). * <tt>is-public</tt> - A Boolean
--   that indicates whether the image is public. * <tt>kernel-id</tt> - The
--   kernel ID. * <tt>manifest-location</tt> - The location of the image
--   manifest. * <tt>name</tt> - The name of the AMI (provided during image
--   creation). * <tt>owner-alias</tt> - String value from an
--   Amazon-maintained list (<tt>amazon</tt> | <tt>aws-marketplace</tt> |
--   <tt>microsoft</tt> ) of snapshot owners. Not to be confused with the
--   user-configured AWS account alias, which is set from the IAM console.
--   * <tt>owner-id</tt> - The AWS account ID of the image owner. *
--   <tt>platform</tt> - The platform. To only list Windows-based AMIs, use
--   <tt>windows</tt> . * <tt>product-code</tt> - The product code. *
--   <tt>product-code.type</tt> - The type of the product code
--   (<tt>devpay</tt> | <tt>marketplace</tt> ). * <tt>ramdisk-id</tt> - The
--   RAM disk ID. * <tt>root-device-name</tt> - The name of the root device
--   volume (for example, <tt><i>dev</i>sda1</tt> ). *
--   <tt>root-device-type</tt> - The type of the root device volume
--   (<tt>ebs</tt> | <tt>instance-store</tt> ). * <tt>state</tt> - The
--   state of the image (<tt>available</tt> | <tt>pending</tt> |
--   <tt>failed</tt> ). * <tt>state-reason-code</tt> - The reason code for
--   the state change. * <tt>state-reason-message</tt> - The message for
--   the state change. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the tag-value filter. For example, if you use
--   both the filter "tag-key=Purpose" and the filter "tag-value=X", you
--   get any resources assigned both the tag key Purpose (regardless of
--   what the tag's value is), and the tag value X (regardless of what the
--   tag's key is). If you want to list only resources where Purpose is X,
--   see the <tt>tag</tt> :</i>key<i> =</i>value/ filter. *
--   <tt>tag-value</tt> - The value of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-key</tt> filter. *
--   <tt>virtualization-type</tt> - The virtualization type
--   (<tt>paravirtual</tt> | <tt>hvm</tt> ).
deseFilters :: Lens' DescribeImages [Filter]

-- | One or more image IDs. Default: Describes all images available to you.
deseImageIds :: Lens' DescribeImages [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
deseDryRun :: Lens' DescribeImages (Maybe Bool)

-- | Creates a value of <a>DescribeImagesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>desrsImages</a> - Information about one or more images.</li>
--   <li><a>desrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeImagesResponse :: Int -> DescribeImagesResponse

-- | Contains the output of DescribeImages.
--   
--   <i>See:</i> <a>describeImagesResponse</a> smart constructor.
data DescribeImagesResponse

-- | Information about one or more images.
desrsImages :: Lens' DescribeImagesResponse [Image]

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


-- | Describes the specified attribute of the specified AMI. You can
--   specify only one attribute at a time.
module Network.AWS.EC2.DescribeImageAttribute

-- | Creates a value of <a>DescribeImageAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diaiDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>diaiImageId</a> - The ID of the AMI.</li>
--   <li><a>diaiAttribute</a> - The AMI attribute. <b>Note</b> : Depending
--   on your account privileges, the <tt>blockDeviceMapping</tt> attribute
--   may return a <tt>Client.AuthFailure</tt> error. If this happens, use
--   <tt>DescribeImages</tt> to get information about the block device
--   mapping for the AMI.</li>
--   </ul>
describeImageAttribute :: Text -> ImageAttributeName -> DescribeImageAttribute

-- | Contains the parameters for DescribeImageAttribute.
--   
--   <i>See:</i> <a>describeImageAttribute</a> smart constructor.
data DescribeImageAttribute

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
diaiDryRun :: Lens' DescribeImageAttribute (Maybe Bool)

-- | The ID of the AMI.
diaiImageId :: Lens' DescribeImageAttribute Text

-- | The AMI attribute. <b>Note</b> : Depending on your account privileges,
--   the <tt>blockDeviceMapping</tt> attribute may return a
--   <tt>Client.AuthFailure</tt> error. If this happens, use
--   <tt>DescribeImages</tt> to get information about the block device
--   mapping for the AMI.
diaiAttribute :: Lens' DescribeImageAttribute ImageAttributeName

-- | Creates a value of <a>DescribeImageAttributeResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diarsLaunchPermissions</a> - One or more launch
--   permissions.</li>
--   <li><a>diarsRAMDiskId</a> - The RAM disk ID.</li>
--   <li><a>diarsKernelId</a> - The kernel ID.</li>
--   <li><a>diarsSRIOVNetSupport</a> - Indicates whether enhanced
--   networking with the Intel 82599 Virtual Function interface is
--   enabled.</li>
--   <li><a>diarsImageId</a> - The ID of the AMI.</li>
--   <li><a>diarsProductCodes</a> - One or more product codes.</li>
--   <li><a>diarsDescription</a> - A description for the AMI.</li>
--   <li><a>diarsBlockDeviceMappings</a> - One or more block device mapping
--   entries.</li>
--   <li><a>diarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeImageAttributeResponse :: Int -> DescribeImageAttributeResponse

-- | Describes an image attribute.
--   
--   <i>See:</i> <a>describeImageAttributeResponse</a> smart constructor.
data DescribeImageAttributeResponse

-- | One or more launch permissions.
diarsLaunchPermissions :: Lens' DescribeImageAttributeResponse [LaunchPermission]

-- | The RAM disk ID.
diarsRAMDiskId :: Lens' DescribeImageAttributeResponse (Maybe AttributeValue)

-- | The kernel ID.
diarsKernelId :: Lens' DescribeImageAttributeResponse (Maybe AttributeValue)

-- | Indicates whether enhanced networking with the Intel 82599 Virtual
--   Function interface is enabled.
diarsSRIOVNetSupport :: Lens' DescribeImageAttributeResponse (Maybe AttributeValue)

-- | The ID of the AMI.
diarsImageId :: Lens' DescribeImageAttributeResponse (Maybe Text)

-- | One or more product codes.
diarsProductCodes :: Lens' DescribeImageAttributeResponse [ProductCode]

-- | A description for the AMI.
diarsDescription :: Lens' DescribeImageAttributeResponse (Maybe AttributeValue)

-- | One or more block device mapping entries.
diarsBlockDeviceMappings :: Lens' DescribeImageAttributeResponse [BlockDeviceMapping]

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


-- | Describes the ID format settings for resources for the specified IAM
--   user, IAM role, or root user. For example, you can view the resource
--   types that are enabled for longer IDs. This request only returns
--   information about resource types whose ID formats can be modified; it
--   does not return information about other resource types. For more
--   information, see <a>Resource IDs</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i> .
--   
--   The following resource types support longer IDs: <tt>instance</tt> |
--   <tt>reservation</tt> | <tt>snapshot</tt> | <tt>volume</tt> .
--   
--   These settings apply to the principal specified in the request. They
--   do not apply to the principal that makes the request.
module Network.AWS.EC2.DescribeIdentityIdFormat

-- | Creates a value of <a>DescribeIdentityIdFormat</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diifResource</a> - The type of resource: <tt>instance</tt> |
--   <tt>reservation</tt> | <tt>snapshot</tt> | <tt>volume</tt></li>
--   <li><a>diifPrincipalARN</a> - The ARN of the principal, which can be
--   an IAM role, IAM user, or the root user.</li>
--   </ul>
describeIdentityIdFormat :: Text -> DescribeIdentityIdFormat

-- | Contains the parameters for DescribeIdentityIdFormat.
--   
--   <i>See:</i> <a>describeIdentityIdFormat</a> smart constructor.
data DescribeIdentityIdFormat

-- | The type of resource: <tt>instance</tt> | <tt>reservation</tt> |
--   <tt>snapshot</tt> | <tt>volume</tt>
diifResource :: Lens' DescribeIdentityIdFormat (Maybe Text)

-- | The ARN of the principal, which can be an IAM role, IAM user, or the
--   root user.
diifPrincipalARN :: Lens' DescribeIdentityIdFormat Text

-- | Creates a value of <a>DescribeIdentityIdFormatResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diifrsStatuses</a> - Information about the ID format for the
--   resources.</li>
--   <li><a>diifrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeIdentityIdFormatResponse :: Int -> DescribeIdentityIdFormatResponse

-- | Contains the output of DescribeIdentityIdFormat.
--   
--   <i>See:</i> <a>describeIdentityIdFormatResponse</a> smart constructor.
data DescribeIdentityIdFormatResponse

-- | Information about the ID format for the resources.
diifrsStatuses :: Lens' DescribeIdentityIdFormatResponse [IdFormat]

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


-- | Describes the ID format settings for your resources on a per-region
--   basis, for example, to view which resource types are enabled for
--   longer IDs. This request only returns information about resource types
--   whose ID formats can be modified; it does not return information about
--   other resource types.
--   
--   The following resource types support longer IDs: <tt>instance</tt> |
--   <tt>reservation</tt> | <tt>snapshot</tt> | <tt>volume</tt> .
--   
--   These settings apply to the IAM user who makes the request; they do
--   not apply to the entire AWS account. By default, an IAM user defaults
--   to the same settings as the root user, unless they explicitly override
--   the settings by running the <tt>ModifyIdFormat</tt> command. Resources
--   created with longer IDs are visible to all IAM users, regardless of
--   these settings and provided that they have permission to use the
--   relevant <tt>Describe</tt> command for the resource type.
module Network.AWS.EC2.DescribeIdFormat

-- | Creates a value of <a>DescribeIdFormat</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>difResource</a> - The type of resource: <tt>instance</tt> |
--   <tt>reservation</tt> | <tt>snapshot</tt> | <tt>volume</tt></li>
--   </ul>
describeIdFormat :: DescribeIdFormat

-- | Contains the parameters for DescribeIdFormat.
--   
--   <i>See:</i> <a>describeIdFormat</a> smart constructor.
data DescribeIdFormat

-- | The type of resource: <tt>instance</tt> | <tt>reservation</tt> |
--   <tt>snapshot</tt> | <tt>volume</tt>
difResource :: Lens' DescribeIdFormat (Maybe Text)

-- | Creates a value of <a>DescribeIdFormatResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>difrsStatuses</a> - Information about the ID format for the
--   resource.</li>
--   <li><a>difrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeIdFormatResponse :: Int -> DescribeIdFormatResponse

-- | Contains the output of DescribeIdFormat.
--   
--   <i>See:</i> <a>describeIdFormatResponse</a> smart constructor.
data DescribeIdFormatResponse

-- | Information about the ID format for the resource.
difrsStatuses :: Lens' DescribeIdFormatResponse [IdFormat]

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


-- | Describes one or more of your Dedicated Hosts.
--   
--   The results describe only the Dedicated Hosts in the region you're
--   currently using. All listed instances consume capacity on your
--   Dedicated Host. Dedicated Hosts that have recently been released will
--   be listed with the state <tt>released</tt> .
module Network.AWS.EC2.DescribeHosts

-- | Creates a value of <a>DescribeHosts</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dhNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   <li><a>dhFilter</a> - One or more filters. * <tt>instance-type</tt> -
--   The instance type size that the Dedicated Host is configured to
--   support. * <tt>auto-placement</tt> - Whether auto-placement is enabled
--   or disabled (<tt>on</tt> | <tt>off</tt> ). *
--   <tt>host-reservation-id</tt> - The ID of the reservation assigned to
--   this host. * <tt>client-token</tt> - The idempotency token you
--   provided when you launched the instance * <tt>state</tt> - The
--   allocation state of the Dedicated Host (<tt>available</tt> |
--   <tt>under-assessment</tt> | <tt>permanent-failure</tt> |
--   <tt>released</tt> | <tt>released-permanent-failure</tt> ). *
--   <tt>availability-zone</tt> - The Availability Zone of the host.</li>
--   <li><a>dhHostIds</a> - The IDs of the Dedicated Hosts. The IDs are
--   used for targeted instance launches.</li>
--   <li><a>dhMaxResults</a> - The maximum number of results to return for
--   the request in a single page. The remaining results can be seen by
--   sending another request with the returned <tt>nextToken</tt> value.
--   This value can be between 5 and 500; if <tt>maxResults</tt> is given a
--   larger value than 500, you will receive an error. You cannot specify
--   this parameter and the host IDs parameter in the same request.</li>
--   </ul>
describeHosts :: DescribeHosts

-- | Contains the parameters for DescribeHosts.
--   
--   <i>See:</i> <a>describeHosts</a> smart constructor.
data DescribeHosts

-- | The token to retrieve the next page of results.
dhNextToken :: Lens' DescribeHosts (Maybe Text)

-- | One or more filters. * <tt>instance-type</tt> - The instance type size
--   that the Dedicated Host is configured to support. *
--   <tt>auto-placement</tt> - Whether auto-placement is enabled or
--   disabled (<tt>on</tt> | <tt>off</tt> ). * <tt>host-reservation-id</tt>
--   - The ID of the reservation assigned to this host. *
--   <tt>client-token</tt> - The idempotency token you provided when you
--   launched the instance * <tt>state</tt> - The allocation state of the
--   Dedicated Host (<tt>available</tt> | <tt>under-assessment</tt> |
--   <tt>permanent-failure</tt> | <tt>released</tt> |
--   <tt>released-permanent-failure</tt> ). * <tt>availability-zone</tt> -
--   The Availability Zone of the host.
dhFilter :: Lens' DescribeHosts [Filter]

-- | The IDs of the Dedicated Hosts. The IDs are used for targeted instance
--   launches.
dhHostIds :: Lens' DescribeHosts [Text]

-- | The maximum number of results to return for the request in a single
--   page. The remaining results can be seen by sending another request
--   with the returned <tt>nextToken</tt> value. This value can be between
--   5 and 500; if <tt>maxResults</tt> is given a larger value than 500,
--   you will receive an error. You cannot specify this parameter and the
--   host IDs parameter in the same request.
dhMaxResults :: Lens' DescribeHosts (Maybe Int)

-- | Creates a value of <a>DescribeHostsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dhrsHosts</a> - Information about the Dedicated Hosts.</li>
--   <li><a>dhrsNextToken</a> - The token to use to retrieve the next page
--   of results. This value is <tt>null</tt> when there are no more results
--   to return.</li>
--   <li><a>dhrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeHostsResponse :: Int -> DescribeHostsResponse

-- | Contains the output of DescribeHosts.
--   
--   <i>See:</i> <a>describeHostsResponse</a> smart constructor.
data DescribeHostsResponse

-- | Information about the Dedicated Hosts.
dhrsHosts :: Lens' DescribeHostsResponse [Host]

-- | The token to use to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
dhrsNextToken :: Lens' DescribeHostsResponse (Maybe Text)

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


-- | Describes Dedicated Host Reservations which are associated with
--   Dedicated Hosts in your account.
module Network.AWS.EC2.DescribeHostReservations

-- | Creates a value of <a>DescribeHostReservations</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dhrNextToken</a> - The token to use to retrieve the next page
--   of results.</li>
--   <li><a>dhrHostReservationIdSet</a> - One or more host reservation
--   IDs.</li>
--   <li><a>dhrFilter</a> - One or more filters. * <tt>instance-family</tt>
--   - The instance family (e.g., <tt>m4</tt> ). * <tt>payment-option</tt>
--   - The payment option (<tt>No Upfront</tt> | <tt>Partial Upfront</tt> |
--   <tt>All Upfront</tt> ). * <tt>state</tt> - The state of the
--   reservation (<tt>payment-pending</tt> | <tt>payment-failed</tt> |
--   <tt>active</tt> | <tt>retired</tt> ).</li>
--   <li><a>dhrMaxResults</a> - The maximum number of results to return for
--   the request in a single page. The remaining results can be seen by
--   sending another request with the returned <tt>nextToken</tt> value.
--   This value can be between 5 and 500; if <tt>maxResults</tt> is given a
--   larger value than 500, you will receive an error.</li>
--   </ul>
describeHostReservations :: DescribeHostReservations

-- | <i>See:</i> <a>describeHostReservations</a> smart constructor.
data DescribeHostReservations

-- | The token to use to retrieve the next page of results.
dhrNextToken :: Lens' DescribeHostReservations (Maybe Text)

-- | One or more host reservation IDs.
dhrHostReservationIdSet :: Lens' DescribeHostReservations [Text]

-- | One or more filters. * <tt>instance-family</tt> - The instance family
--   (e.g., <tt>m4</tt> ). * <tt>payment-option</tt> - The payment option
--   (<tt>No Upfront</tt> | <tt>Partial Upfront</tt> | <tt>All Upfront</tt>
--   ). * <tt>state</tt> - The state of the reservation
--   (<tt>payment-pending</tt> | <tt>payment-failed</tt> | <tt>active</tt>
--   | <tt>retired</tt> ).
dhrFilter :: Lens' DescribeHostReservations [Filter]

-- | The maximum number of results to return for the request in a single
--   page. The remaining results can be seen by sending another request
--   with the returned <tt>nextToken</tt> value. This value can be between
--   5 and 500; if <tt>maxResults</tt> is given a larger value than 500,
--   you will receive an error.
dhrMaxResults :: Lens' DescribeHostReservations (Maybe Int)

-- | Creates a value of <a>DescribeHostReservationsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dhrrsNextToken</a> - The token to use to retrieve the next page
--   of results. This value is <tt>null</tt> when there are no more results
--   to return.</li>
--   <li><a>dhrrsHostReservationSet</a> - Details about the reservation's
--   configuration.</li>
--   <li><a>dhrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeHostReservationsResponse :: Int -> DescribeHostReservationsResponse

-- | <i>See:</i> <a>describeHostReservationsResponse</a> smart constructor.
data DescribeHostReservationsResponse

-- | The token to use to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
dhrrsNextToken :: Lens' DescribeHostReservationsResponse (Maybe Text)

-- | Details about the reservation's configuration.
dhrrsHostReservationSet :: Lens' DescribeHostReservationsResponse [HostReservation]

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


-- | Describes the Dedicated Host Reservations that are available to
--   purchase.
--   
--   The results describe all the Dedicated Host Reservation offerings,
--   including offerings that may not match the instance family and region
--   of your Dedicated Hosts. When purchasing an offering, ensure that the
--   the instance family and region of the offering matches that of the
--   Dedicated Host<i>s it will be associated with. For an overview of
--   supported instance types, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>dedicated-hosts-overview.html
--   Dedicated Hosts Overview&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ .
module Network.AWS.EC2.DescribeHostReservationOfferings

-- | Creates a value of <a>DescribeHostReservationOfferings</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dhroMaxDuration</a> - This is the maximum duration of the
--   reservation you'd like to purchase, specified in seconds. Reservations
--   are available in one-year and three-year terms. The number of seconds
--   specified must be the number of seconds in a year (365x24x60x60) times
--   one of the supported durations (1 or 3). For example, specify 94608000
--   for three years.</li>
--   <li><a>dhroNextToken</a> - The token to use to retrieve the next page
--   of results.</li>
--   <li><a>dhroMinDuration</a> - This is the minimum duration of the
--   reservation you'd like to purchase, specified in seconds. Reservations
--   are available in one-year and three-year terms. The number of seconds
--   specified must be the number of seconds in a year (365x24x60x60) times
--   one of the supported durations (1 or 3). For example, specify 31536000
--   for one year.</li>
--   <li><a>dhroOfferingId</a> - The ID of the reservation offering.</li>
--   <li><a>dhroFilter</a> - One or more filters. *
--   <tt>instance-family</tt> - The instance family of the offering (e.g.,
--   <tt>m4</tt> ). * <tt>payment-option</tt> - The payment option (<tt>No
--   Upfront</tt> | <tt>Partial Upfront</tt> | <tt>All Upfront</tt> ).</li>
--   <li><a>dhroMaxResults</a> - The maximum number of results to return
--   for the request in a single page. The remaining results can be seen by
--   sending another request with the returned <tt>nextToken</tt> value.
--   This value can be between 5 and 500; if <tt>maxResults</tt> is given a
--   larger value than 500, you will receive an error.</li>
--   </ul>
describeHostReservationOfferings :: DescribeHostReservationOfferings

-- | <i>See:</i> <a>describeHostReservationOfferings</a> smart constructor.
data DescribeHostReservationOfferings

-- | This is the maximum duration of the reservation you'd like to
--   purchase, specified in seconds. Reservations are available in one-year
--   and three-year terms. The number of seconds specified must be the
--   number of seconds in a year (365x24x60x60) times one of the supported
--   durations (1 or 3). For example, specify 94608000 for three years.
dhroMaxDuration :: Lens' DescribeHostReservationOfferings (Maybe Int)

-- | The token to use to retrieve the next page of results.
dhroNextToken :: Lens' DescribeHostReservationOfferings (Maybe Text)

-- | This is the minimum duration of the reservation you'd like to
--   purchase, specified in seconds. Reservations are available in one-year
--   and three-year terms. The number of seconds specified must be the
--   number of seconds in a year (365x24x60x60) times one of the supported
--   durations (1 or 3). For example, specify 31536000 for one year.
dhroMinDuration :: Lens' DescribeHostReservationOfferings (Maybe Int)

-- | The ID of the reservation offering.
dhroOfferingId :: Lens' DescribeHostReservationOfferings (Maybe Text)

-- | One or more filters. * <tt>instance-family</tt> - The instance family
--   of the offering (e.g., <tt>m4</tt> ). * <tt>payment-option</tt> - The
--   payment option (<tt>No Upfront</tt> | <tt>Partial Upfront</tt> |
--   <tt>All Upfront</tt> ).
dhroFilter :: Lens' DescribeHostReservationOfferings [Filter]

-- | The maximum number of results to return for the request in a single
--   page. The remaining results can be seen by sending another request
--   with the returned <tt>nextToken</tt> value. This value can be between
--   5 and 500; if <tt>maxResults</tt> is given a larger value than 500,
--   you will receive an error.
dhroMaxResults :: Lens' DescribeHostReservationOfferings (Maybe Int)

-- | Creates a value of <a>DescribeHostReservationOfferingsResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dhrorsOfferingSet</a> - Information about the offerings.</li>
--   <li><a>dhrorsNextToken</a> - The token to use to retrieve the next
--   page of results. This value is <tt>null</tt> when there are no more
--   results to return.</li>
--   <li><a>dhrorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeHostReservationOfferingsResponse :: Int -> DescribeHostReservationOfferingsResponse

-- | <i>See:</i> <a>describeHostReservationOfferingsResponse</a> smart
--   constructor.
data DescribeHostReservationOfferingsResponse

-- | Information about the offerings.
dhrorsOfferingSet :: Lens' DescribeHostReservationOfferingsResponse [HostOffering]

-- | The token to use to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
dhrorsNextToken :: Lens' DescribeHostReservationOfferingsResponse (Maybe Text)

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


-- | Describes one or more flow logs. To view the information in your flow
--   logs (the log streams for the network interfaces), you must use the
--   CloudWatch Logs console or the CloudWatch Logs API.
module Network.AWS.EC2.DescribeFlowLogs

-- | Creates a value of <a>DescribeFlowLogs</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   <li><a>dFlowLogIds</a> - One or more flow log IDs.</li>
--   <li><a>dFilter</a> - One or more filters. *
--   <tt>deliver-log-status</tt> - The status of the logs delivery
--   (<tt>SUCCESS</tt> | <tt>FAILED</tt> ). * <tt>flow-log-id</tt> - The ID
--   of the flow log. * <tt>log-group-name</tt> - The name of the log
--   group. * <tt>resource-id</tt> - The ID of the VPC, subnet, or network
--   interface. * <tt>traffic-type</tt> - The type of traffic
--   (<tt>ACCEPT</tt> | <tt>REJECT</tt> | <tt>ALL</tt> )</li>
--   <li><a>dMaxResults</a> - The maximum number of results to return for
--   the request in a single page. The remaining results can be seen by
--   sending another request with the returned <tt>NextToken</tt> value.
--   This value can be between 5 and 1000; if <tt>MaxResults</tt> is given
--   a value larger than 1000, only 1000 results are returned. You cannot
--   specify this parameter and the flow log IDs parameter in the same
--   request.</li>
--   </ul>
describeFlowLogs :: DescribeFlowLogs

-- | Contains the parameters for DescribeFlowLogs.
--   
--   <i>See:</i> <a>describeFlowLogs</a> smart constructor.
data DescribeFlowLogs

-- | The token to retrieve the next page of results.
dNextToken :: Lens' DescribeFlowLogs (Maybe Text)

-- | One or more flow log IDs.
dFlowLogIds :: Lens' DescribeFlowLogs [Text]

-- | One or more filters. * <tt>deliver-log-status</tt> - The status of the
--   logs delivery (<tt>SUCCESS</tt> | <tt>FAILED</tt> ). *
--   <tt>flow-log-id</tt> - The ID of the flow log. *
--   <tt>log-group-name</tt> - The name of the log group. *
--   <tt>resource-id</tt> - The ID of the VPC, subnet, or network
--   interface. * <tt>traffic-type</tt> - The type of traffic
--   (<tt>ACCEPT</tt> | <tt>REJECT</tt> | <tt>ALL</tt> )
dFilter :: Lens' DescribeFlowLogs [Filter]

-- | The maximum number of results to return for the request in a single
--   page. The remaining results can be seen by sending another request
--   with the returned <tt>NextToken</tt> value. This value can be between
--   5 and 1000; if <tt>MaxResults</tt> is given a value larger than 1000,
--   only 1000 results are returned. You cannot specify this parameter and
--   the flow log IDs parameter in the same request.
dMaxResults :: Lens' DescribeFlowLogs (Maybe Int)

-- | Creates a value of <a>DescribeFlowLogsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dflsrsNextToken</a> - The token to use to retrieve the next
--   page of results. This value is <tt>null</tt> when there are no more
--   results to return.</li>
--   <li><a>dflsrsFlowLogs</a> - Information about the flow logs.</li>
--   <li><a>dflsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeFlowLogsResponse :: Int -> DescribeFlowLogsResponse

-- | Contains the output of DescribeFlowLogs.
--   
--   <i>See:</i> <a>describeFlowLogsResponse</a> smart constructor.
data DescribeFlowLogsResponse

-- | The token to use to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
dflsrsNextToken :: Lens' DescribeFlowLogsResponse (Maybe Text)

-- | Information about the flow logs.
dflsrsFlowLogs :: Lens' DescribeFlowLogsResponse [FlowLog]

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


-- | Describes one or more of your export tasks.
module Network.AWS.EC2.DescribeExportTasks

-- | Creates a value of <a>DescribeExportTasks</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>detExportTaskIds</a> - One or more export task IDs.</li>
--   </ul>
describeExportTasks :: DescribeExportTasks

-- | Contains the parameters for DescribeExportTasks.
--   
--   <i>See:</i> <a>describeExportTasks</a> smart constructor.
data DescribeExportTasks

-- | One or more export task IDs.
detExportTaskIds :: Lens' DescribeExportTasks [Text]

-- | Creates a value of <a>DescribeExportTasksResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>detrsExportTasks</a> - Information about the export tasks.</li>
--   <li><a>detrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeExportTasksResponse :: Int -> DescribeExportTasksResponse

-- | Contains the output for DescribeExportTasks.
--   
--   <i>See:</i> <a>describeExportTasksResponse</a> smart constructor.
data DescribeExportTasksResponse

-- | Information about the export tasks.
detrsExportTasks :: Lens' DescribeExportTasksResponse [ExportTask]

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


-- | Describes one or more of your egress-only Internet gateways.
module Network.AWS.EC2.DescribeEgressOnlyInternetGateways

-- | Creates a value of <a>DescribeEgressOnlyInternetGateways</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deoigEgressOnlyInternetGatewayIds</a> - One or more egress-only
--   Internet gateway IDs.</li>
--   <li><a>deoigNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   <li><a>deoigDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>deoigMaxResults</a> - The maximum number of results to return
--   for the request in a single page. The remaining results can be seen by
--   sending another request with the returned <tt>NextToken</tt> value.
--   This value can be between 5 and 1000; if <tt>MaxResults</tt> is given
--   a value larger than 1000, only 1000 results are returned.</li>
--   </ul>
describeEgressOnlyInternetGateways :: DescribeEgressOnlyInternetGateways

-- | <i>See:</i> <a>describeEgressOnlyInternetGateways</a> smart
--   constructor.
data DescribeEgressOnlyInternetGateways

-- | One or more egress-only Internet gateway IDs.
deoigEgressOnlyInternetGatewayIds :: Lens' DescribeEgressOnlyInternetGateways [Text]

-- | The token to retrieve the next page of results.
deoigNextToken :: Lens' DescribeEgressOnlyInternetGateways (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
deoigDryRun :: Lens' DescribeEgressOnlyInternetGateways (Maybe Bool)

-- | The maximum number of results to return for the request in a single
--   page. The remaining results can be seen by sending another request
--   with the returned <tt>NextToken</tt> value. This value can be between
--   5 and 1000; if <tt>MaxResults</tt> is given a value larger than 1000,
--   only 1000 results are returned.
deoigMaxResults :: Lens' DescribeEgressOnlyInternetGateways (Maybe Int)

-- | Creates a value of <a>DescribeEgressOnlyInternetGatewaysResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deoigrsEgressOnlyInternetGateways</a> - Information about the
--   egress-only Internet gateways.</li>
--   <li><a>deoigrsNextToken</a> - The token to use to retrieve the next
--   page of results.</li>
--   <li><a>deoigrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeEgressOnlyInternetGatewaysResponse :: Int -> DescribeEgressOnlyInternetGatewaysResponse

-- | <i>See:</i> <a>describeEgressOnlyInternetGatewaysResponse</a> smart
--   constructor.
data DescribeEgressOnlyInternetGatewaysResponse

-- | Information about the egress-only Internet gateways.
deoigrsEgressOnlyInternetGateways :: Lens' DescribeEgressOnlyInternetGatewaysResponse [EgressOnlyInternetGateway]

-- | The token to use to retrieve the next page of results.
deoigrsNextToken :: Lens' DescribeEgressOnlyInternetGatewaysResponse (Maybe Text)

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


-- | Describes one or more of your DHCP options sets.
--   
--   For more information about DHCP options sets, see <a>DHCP Options
--   Sets</a> in the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.DescribeDHCPOptions

-- | Creates a value of <a>DescribeDHCPOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddoFilters</a> - One or more filters. *
--   <tt>dhcp-options-id</tt> - The ID of a set of DHCP options. *
--   <tt>key</tt> - The key for one of the options (for example,
--   <tt>domain-name</tt> ). * <tt>value</tt> - The value for one of the
--   options. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The key<i>value
--   combination of a tag assigned to the resource. * <tt>tag-key</tt> -
--   The key of a tag assigned to the resource. This filter is independent
--   of the <tt>tag-value</tt> filter. For example, if you use both the
--   filter "tag-key=Purpose" and the filter "tag-value=X", you get any
--   resources assigned both the tag key Purpose (regardless of what the
--   tag's value is), and the tag value X (regardless of what the tag's key
--   is). If you want to list only resources where Purpose is X, see the
--   <tt>tag</tt> :</i>key<i> =</i>value/ filter. * <tt>tag-value</tt> -
--   The value of a tag assigned to the resource. This filter is
--   independent of the <tt>tag-key</tt> filter.</li>
--   <li><a>ddoDHCPOptionsIds</a> - The IDs of one or more DHCP options
--   sets. Default: Describes all your DHCP options sets.</li>
--   <li><a>ddoDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeDHCPOptions :: DescribeDHCPOptions

-- | Contains the parameters for DescribeDhcpOptions.
--   
--   <i>See:</i> <a>describeDHCPOptions</a> smart constructor.
data DescribeDHCPOptions

-- | One or more filters. * <tt>dhcp-options-id</tt> - The ID of a set of
--   DHCP options. * <tt>key</tt> - The key for one of the options (for
--   example, <tt>domain-name</tt> ). * <tt>value</tt> - The value for one
--   of the options. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter.
ddoFilters :: Lens' DescribeDHCPOptions [Filter]

-- | The IDs of one or more DHCP options sets. Default: Describes all your
--   DHCP options sets.
ddoDHCPOptionsIds :: Lens' DescribeDHCPOptions [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
ddoDryRun :: Lens' DescribeDHCPOptions (Maybe Bool)

-- | Creates a value of <a>DescribeDHCPOptionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddorsDHCPOptions</a> - Information about one or more DHCP
--   options sets.</li>
--   <li><a>ddorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeDHCPOptionsResponse :: Int -> DescribeDHCPOptionsResponse

-- | Contains the output of DescribeDhcpOptions.
--   
--   <i>See:</i> <a>describeDHCPOptionsResponse</a> smart constructor.
data DescribeDHCPOptionsResponse

-- | Information about one or more DHCP options sets.
ddorsDHCPOptions :: Lens' DescribeDHCPOptionsResponse [DHCPOptions]

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


-- | Describes one or more of your VPN customer gateways.
--   
--   For more information about VPN customer gateways, see <a>Adding a
--   Hardware Virtual Private Gateway to Your VPC</a> in the <i>Amazon
--   Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.DescribeCustomerGateways

-- | Creates a value of <a>DescribeCustomerGateways</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcgCustomerGatewayIds</a> - One or more customer gateway IDs.
--   Default: Describes all your customer gateways.</li>
--   <li><a>dcgFilters</a> - One or more filters. * <tt>bgp-asn</tt> - The
--   customer gateway's Border Gateway Protocol (BGP) Autonomous System
--   Number (ASN). * <tt>customer-gateway-id</tt> - The ID of the customer
--   gateway. * <tt>ip-address</tt> - The IP address of the customer
--   gateway's Internet-routable external interface. * <tt>state</tt> - The
--   state of the customer gateway (<tt>pending</tt> | <tt>available</tt> |
--   <tt>deleting</tt> | <tt>deleted</tt> ). * <tt>type</tt> - The type of
--   customer gateway. Currently, the only supported type is
--   <tt>ipsec.1</tt> . * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter.</li>
--   <li><a>dcgDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeCustomerGateways :: DescribeCustomerGateways

-- | Contains the parameters for DescribeCustomerGateways.
--   
--   <i>See:</i> <a>describeCustomerGateways</a> smart constructor.
data DescribeCustomerGateways

-- | One or more customer gateway IDs. Default: Describes all your customer
--   gateways.
dcgCustomerGatewayIds :: Lens' DescribeCustomerGateways [Text]

-- | One or more filters. * <tt>bgp-asn</tt> - The customer gateway's
--   Border Gateway Protocol (BGP) Autonomous System Number (ASN). *
--   <tt>customer-gateway-id</tt> - The ID of the customer gateway. *
--   <tt>ip-address</tt> - The IP address of the customer gateway's
--   Internet-routable external interface. * <tt>state</tt> - The state of
--   the customer gateway (<tt>pending</tt> | <tt>available</tt> |
--   <tt>deleting</tt> | <tt>deleted</tt> ). * <tt>type</tt> - The type of
--   customer gateway. Currently, the only supported type is
--   <tt>ipsec.1</tt> . * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter.
dcgFilters :: Lens' DescribeCustomerGateways [Filter]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dcgDryRun :: Lens' DescribeCustomerGateways (Maybe Bool)

-- | Creates a value of <a>DescribeCustomerGatewaysResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcgrsCustomerGateways</a> - Information about one or more
--   customer gateways.</li>
--   <li><a>dcgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeCustomerGatewaysResponse :: Int -> DescribeCustomerGatewaysResponse

-- | Contains the output of DescribeCustomerGateways.
--   
--   <i>See:</i> <a>describeCustomerGatewaysResponse</a> smart constructor.
data DescribeCustomerGatewaysResponse

-- | Information about one or more customer gateways.
dcgrsCustomerGateways :: Lens' DescribeCustomerGatewaysResponse [CustomerGateway]

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


-- | Describes one or more of your conversion tasks. For more information,
--   see the <a>VM Import/Export User Guide</a> .
--   
--   For information about the import manifest referenced by this API
--   action, see <a>VM Import Manifest</a> .
module Network.AWS.EC2.DescribeConversionTasks

-- | Creates a value of <a>DescribeConversionTasks</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dctConversionTaskIds</a> - One or more conversion task
--   IDs.</li>
--   <li><a>dctDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeConversionTasks :: DescribeConversionTasks

-- | Contains the parameters for DescribeConversionTasks.
--   
--   <i>See:</i> <a>describeConversionTasks</a> smart constructor.
data DescribeConversionTasks

-- | One or more conversion task IDs.
dctConversionTaskIds :: Lens' DescribeConversionTasks [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dctDryRun :: Lens' DescribeConversionTasks (Maybe Bool)

-- | Creates a value of <a>DescribeConversionTasksResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dctrsConversionTasks</a> - Information about the conversion
--   tasks.</li>
--   <li><a>dctrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeConversionTasksResponse :: Int -> DescribeConversionTasksResponse

-- | Contains the output for DescribeConversionTasks.
--   
--   <i>See:</i> <a>describeConversionTasksResponse</a> smart constructor.
data DescribeConversionTasksResponse

-- | Information about the conversion tasks.
dctrsConversionTasks :: Lens' DescribeConversionTasksResponse [ConversionTask]

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


-- | Describes one or more of your linked EC2-Classic instances. This
--   request only returns information about EC2-Classic instances linked to
--   a VPC through ClassicLink; you cannot use this request to return
--   information about other instances.
module Network.AWS.EC2.DescribeClassicLinkInstances

-- | Creates a value of <a>DescribeClassicLinkInstances</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcliFilters</a> - One or more filters. * <tt>group-id</tt> -
--   The ID of a VPC security group that's associated with the instance. *
--   <tt>instance-id</tt> - The ID of the instance. * <tt>tag</tt>
--   :<i>key</i> =<i>value</i> - The key<i>value combination of a tag
--   assigned to the resource. * <tt>tag-key</tt> - The key of a tag
--   assigned to the resource. This filter is independent of the
--   <tt>tag-value</tt> filter. For example, if you use both the filter
--   "tag-key=Purpose" and the filter "tag-value=X", you get any resources
--   assigned both the tag key Purpose (regardless of what the tag's value
--   is), and the tag value X (regardless of what the tag's key is). If you
--   want to list only resources where Purpose is X, see the <tt>tag</tt>
--   :</i>key<i> =</i>value/ filter. * <tt>tag-value</tt> - The value of a
--   tag assigned to the resource. This filter is independent of the
--   <tt>tag-key</tt> filter. * <tt>vpc-id</tt> - The ID of the VPC that
--   the instance is linked to.</li>
--   <li><a>dcliNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   <li><a>dcliInstanceIds</a> - One or more instance IDs. Must be
--   instances linked to a VPC through ClassicLink.</li>
--   <li><a>dcliDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dcliMaxResults</a> - The maximum number of results to return
--   for the request in a single page. The remaining results of the initial
--   request can be seen by sending another request with the returned
--   <tt>NextToken</tt> value. This value can be between 5 and 1000; if
--   <tt>MaxResults</tt> is given a value larger than 1000, only 1000
--   results are returned. You cannot specify this parameter and the
--   instance IDs parameter in the same request. Constraint: If the value
--   is greater than 1000, we return only 1000 items.</li>
--   </ul>
describeClassicLinkInstances :: DescribeClassicLinkInstances

-- | Contains the parameters for DescribeClassicLinkInstances.
--   
--   <i>See:</i> <a>describeClassicLinkInstances</a> smart constructor.
data DescribeClassicLinkInstances

-- | One or more filters. * <tt>group-id</tt> - The ID of a VPC security
--   group that's associated with the instance. * <tt>instance-id</tt> -
--   The ID of the instance. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. *
--   <tt>tag-key</tt> - The key of a tag assigned to the resource. This
--   filter is independent of the <tt>tag-value</tt> filter. For example,
--   if you use both the filter "tag-key=Purpose" and the filter
--   "tag-value=X", you get any resources assigned both the tag key Purpose
--   (regardless of what the tag's value is), and the tag value X
--   (regardless of what the tag's key is). If you want to list only
--   resources where Purpose is X, see the <tt>tag</tt> :</i>key<i>
--   =</i>value/ filter. * <tt>tag-value</tt> - The value of a tag assigned
--   to the resource. This filter is independent of the <tt>tag-key</tt>
--   filter. * <tt>vpc-id</tt> - The ID of the VPC that the instance is
--   linked to.
dcliFilters :: Lens' DescribeClassicLinkInstances [Filter]

-- | The token to retrieve the next page of results.
dcliNextToken :: Lens' DescribeClassicLinkInstances (Maybe Text)

-- | One or more instance IDs. Must be instances linked to a VPC through
--   ClassicLink.
dcliInstanceIds :: Lens' DescribeClassicLinkInstances [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dcliDryRun :: Lens' DescribeClassicLinkInstances (Maybe Bool)

-- | The maximum number of results to return for the request in a single
--   page. The remaining results of the initial request can be seen by
--   sending another request with the returned <tt>NextToken</tt> value.
--   This value can be between 5 and 1000; if <tt>MaxResults</tt> is given
--   a value larger than 1000, only 1000 results are returned. You cannot
--   specify this parameter and the instance IDs parameter in the same
--   request. Constraint: If the value is greater than 1000, we return only
--   1000 items.
dcliMaxResults :: Lens' DescribeClassicLinkInstances (Maybe Int)

-- | Creates a value of <a>DescribeClassicLinkInstancesResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dclirsNextToken</a> - The token to use to retrieve the next
--   page of results. This value is <tt>null</tt> when there are no more
--   results to return.</li>
--   <li><a>dclirsInstances</a> - Information about one or more linked
--   EC2-Classic instances.</li>
--   <li><a>dclirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeClassicLinkInstancesResponse :: Int -> DescribeClassicLinkInstancesResponse

-- | Contains the output of DescribeClassicLinkInstances.
--   
--   <i>See:</i> <a>describeClassicLinkInstancesResponse</a> smart
--   constructor.
data DescribeClassicLinkInstancesResponse

-- | The token to use to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
dclirsNextToken :: Lens' DescribeClassicLinkInstancesResponse (Maybe Text)

-- | Information about one or more linked EC2-Classic instances.
dclirsInstances :: Lens' DescribeClassicLinkInstancesResponse [ClassicLinkInstance]

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


-- | Describes one or more of your bundling tasks.
module Network.AWS.EC2.DescribeBundleTasks

-- | Creates a value of <a>DescribeBundleTasks</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbtBundleIds</a> - One or more bundle task IDs. Default:
--   Describes all your bundle tasks.</li>
--   <li><a>dbtFilters</a> - One or more filters. * <tt>bundle-id</tt> -
--   The ID of the bundle task. * <tt>error-code</tt> - If the task failed,
--   the error code returned. * <tt>error-message</tt> - If the task
--   failed, the error message returned. * <tt>instance-id</tt> - The ID of
--   the instance. * <tt>progress</tt> - The level of task completion, as a
--   percentage (for example, 20%). * <tt>s3-bucket</tt> - The Amazon S3
--   bucket to store the AMI. * <tt>s3-prefix</tt> - The beginning of the
--   AMI name. * <tt>start-time</tt> - The time the task started (for
--   example, 2013-09-15T17:15:20.000Z). * <tt>state</tt> - The state of
--   the task (<tt>pending</tt> | <tt>waiting-for-shutdown</tt> |
--   <tt>bundling</tt> | <tt>storing</tt> | <tt>cancelling</tt> |
--   <tt>complete</tt> | <tt>failed</tt> ). * <tt>update-time</tt> - The
--   time of the most recent update for the task.</li>
--   <li><a>dbtDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeBundleTasks :: DescribeBundleTasks

-- | Contains the parameters for DescribeBundleTasks.
--   
--   <i>See:</i> <a>describeBundleTasks</a> smart constructor.
data DescribeBundleTasks

-- | One or more bundle task IDs. Default: Describes all your bundle tasks.
dbtBundleIds :: Lens' DescribeBundleTasks [Text]

-- | One or more filters. * <tt>bundle-id</tt> - The ID of the bundle task.
--   * <tt>error-code</tt> - If the task failed, the error code returned. *
--   <tt>error-message</tt> - If the task failed, the error message
--   returned. * <tt>instance-id</tt> - The ID of the instance. *
--   <tt>progress</tt> - The level of task completion, as a percentage (for
--   example, 20%). * <tt>s3-bucket</tt> - The Amazon S3 bucket to store
--   the AMI. * <tt>s3-prefix</tt> - The beginning of the AMI name. *
--   <tt>start-time</tt> - The time the task started (for example,
--   2013-09-15T17:15:20.000Z). * <tt>state</tt> - The state of the task
--   (<tt>pending</tt> | <tt>waiting-for-shutdown</tt> | <tt>bundling</tt>
--   | <tt>storing</tt> | <tt>cancelling</tt> | <tt>complete</tt> |
--   <tt>failed</tt> ). * <tt>update-time</tt> - The time of the most
--   recent update for the task.
dbtFilters :: Lens' DescribeBundleTasks [Filter]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dbtDryRun :: Lens' DescribeBundleTasks (Maybe Bool)

-- | Creates a value of <a>DescribeBundleTasksResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbtrsBundleTasks</a> - Information about one or more bundle
--   tasks.</li>
--   <li><a>dbtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeBundleTasksResponse :: Int -> DescribeBundleTasksResponse

-- | Contains the output of DescribeBundleTasks.
--   
--   <i>See:</i> <a>describeBundleTasksResponse</a> smart constructor.
data DescribeBundleTasksResponse

-- | Information about one or more bundle tasks.
dbtrsBundleTasks :: Lens' DescribeBundleTasksResponse [BundleTask]

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


module Network.AWS.EC2.Waiters

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceTerminated :: Wait DescribeInstances

-- | Polls <a>DescribeVolumes</a> every 15 seconds until a successful state
--   is reached. An error is returned after 40 failed checks.
volumeInUse :: Wait DescribeVolumes

-- | Polls <a>DescribeNatGateways</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
natGatewayAvailable :: Wait DescribeNatGateways

-- | Polls <a>DescribeSubnets</a> every 15 seconds until a successful state
--   is reached. An error is returned after 40 failed checks.
subnetAvailable :: Wait DescribeSubnets

-- | Polls <a>DescribeNetworkInterfaces</a> every 20 seconds until a
--   successful state is reached. An error is returned after 10 failed
--   checks.
networkInterfaceAvailable :: Wait DescribeNetworkInterfaces

-- | Polls <a>DescribeInstanceStatus</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
systemStatusOK :: Wait DescribeInstanceStatus

-- | Polls <a>DescribeCustomerGateways</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
customerGatewayAvailable :: Wait DescribeCustomerGateways

-- | Polls <a>DescribeConversionTasks</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
conversionTaskCompleted :: Wait DescribeConversionTasks

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceStopped :: Wait DescribeInstances

-- | Polls <a>DescribeConversionTasks</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
conversionTaskDeleted :: Wait DescribeConversionTasks

-- | Polls <a>GetPasswordData</a> every 15 seconds until a successful state
--   is reached. An error is returned after 40 failed checks.
passwordDataAvailable :: Wait GetPasswordData

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceRunning :: Wait DescribeInstances

-- | Polls <a>DescribeSpotInstanceRequests</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
spotInstanceRequestFulfilled :: Wait DescribeSpotInstanceRequests

-- | Polls <a>DescribeVPCs</a> every 15 seconds until a successful state is
--   reached. An error is returned after 40 failed checks.
vpcAvailable :: Wait DescribeVPCs

-- | Polls <a>DescribeExportTasks</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
exportTaskCompleted :: Wait DescribeExportTasks

-- | Polls <a>DescribeVPNConnections</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
vpnConnectionAvailable :: Wait DescribeVPNConnections

-- | Polls <a>DescribeExportTasks</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
exportTaskCancelled :: Wait DescribeExportTasks

-- | Polls <a>DescribeVolumes</a> every 15 seconds until a successful state
--   is reached. An error is returned after 40 failed checks.
volumeDeleted :: Wait DescribeVolumes

-- | Polls <a>DescribeVPCs</a> every 1 seconds until a successful state is
--   reached. An error is returned after 5 failed checks.
vpcExists :: Wait DescribeVPCs

-- | Polls <a>DescribeBundleTasks</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
bundleTaskComplete :: Wait DescribeBundleTasks

-- | Polls <a>DescribeVPNConnections</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
vpnConnectionDeleted :: Wait DescribeVPNConnections

-- | Polls <a>DescribeConversionTasks</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
conversionTaskCancelled :: Wait DescribeConversionTasks

-- | Polls <a>DescribeImages</a> every 15 seconds until a successful state
--   is reached. An error is returned after 40 failed checks.
imageAvailable :: Wait DescribeImages

-- | Polls <a>DescribeVPCPeeringConnections</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
vpcPeeringConnectionExists :: Wait DescribeVPCPeeringConnections

-- | Polls <a>DescribeSnapshots</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
snapshotCompleted :: Wait DescribeSnapshots

-- | Polls <a>DescribeInstances</a> every 5 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceExists :: Wait DescribeInstances

-- | Polls <a>DescribeInstanceStatus</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
instanceStatusOK :: Wait DescribeInstanceStatus

-- | Polls <a>DescribeVolumes</a> every 15 seconds until a successful state
--   is reached. An error is returned after 40 failed checks.
volumeAvailable :: Wait DescribeVolumes


-- | Describes one or more of the Availability Zones that are available to
--   you. The results include zones only for the region you're currently
--   using. If there is an event impacting an Availability Zone, you can
--   use this request to view the state and any provided message for that
--   Availability Zone.
--   
--   For more information, see <a>Regions and Availability Zones</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.DescribeAvailabilityZones

-- | Creates a value of <a>DescribeAvailabilityZones</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dazZoneNames</a> - The names of one or more Availability
--   Zones.</li>
--   <li><a>dazFilters</a> - One or more filters. * <tt>message</tt> -
--   Information about the Availability Zone. * <tt>region-name</tt> - The
--   name of the region for the Availability Zone (for example,
--   <tt>us-east-1</tt> ). * <tt>state</tt> - The state of the Availability
--   Zone (<tt>available</tt> | <tt>information</tt> | <tt>impaired</tt> |
--   <tt>unavailable</tt> ). * <tt>zone-name</tt> - The name of the
--   Availability Zone (for example, <tt>us-east-1a</tt> ).</li>
--   <li><a>dazDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeAvailabilityZones :: DescribeAvailabilityZones

-- | Contains the parameters for DescribeAvailabilityZones.
--   
--   <i>See:</i> <a>describeAvailabilityZones</a> smart constructor.
data DescribeAvailabilityZones

-- | The names of one or more Availability Zones.
dazZoneNames :: Lens' DescribeAvailabilityZones [Text]

-- | One or more filters. * <tt>message</tt> - Information about the
--   Availability Zone. * <tt>region-name</tt> - The name of the region for
--   the Availability Zone (for example, <tt>us-east-1</tt> ). *
--   <tt>state</tt> - The state of the Availability Zone
--   (<tt>available</tt> | <tt>information</tt> | <tt>impaired</tt> |
--   <tt>unavailable</tt> ). * <tt>zone-name</tt> - The name of the
--   Availability Zone (for example, <tt>us-east-1a</tt> ).
dazFilters :: Lens' DescribeAvailabilityZones [Filter]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dazDryRun :: Lens' DescribeAvailabilityZones (Maybe Bool)

-- | Creates a value of <a>DescribeAvailabilityZonesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dazrsAvailabilityZones</a> - Information about one or more
--   Availability Zones.</li>
--   <li><a>dazrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAvailabilityZonesResponse :: Int -> DescribeAvailabilityZonesResponse

-- | Contains the output of DescribeAvailabiltyZones.
--   
--   <i>See:</i> <a>describeAvailabilityZonesResponse</a> smart
--   constructor.
data DescribeAvailabilityZonesResponse

-- | Information about one or more Availability Zones.
dazrsAvailabilityZones :: Lens' DescribeAvailabilityZonesResponse [AvailabilityZone]

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


-- | Describes one or more of your Elastic IP addresses.
--   
--   An Elastic IP address is for use in either the EC2-Classic platform or
--   in a VPC. For more information, see <a>Elastic IP Addresses</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.DescribeAddresses

-- | Creates a value of <a>DescribeAddresses</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daFilters</a> - One or more filters. Filter names and values
--   are case-sensitive. * <tt>allocation-id</tt> - [EC2-VPC] The
--   allocation ID for the address. * <tt>association-id</tt> - [EC2-VPC]
--   The association ID for the address. * <tt>domain</tt> - Indicates
--   whether the address is for use in EC2-Classic (<tt>standard</tt> ) or
--   in a VPC (<tt>vpc</tt> ). * <tt>instance-id</tt> - The ID of the
--   instance the address is associated with, if any. *
--   <tt>network-interface-id</tt> - [EC2-VPC] The ID of the network
--   interface that the address is associated with, if any. *
--   <tt>network-interface-owner-id</tt> - The AWS account ID of the owner.
--   * <tt>private-ip-address</tt> - [EC2-VPC] The private IP address
--   associated with the Elastic IP address. * <tt>public-ip</tt> - The
--   Elastic IP address.</li>
--   <li><a>daPublicIPs</a> - [EC2-Classic] One or more Elastic IP
--   addresses. Default: Describes all your Elastic IP addresses.</li>
--   <li><a>daAllocationIds</a> - [EC2-VPC] One or more allocation IDs.
--   Default: Describes all your Elastic IP addresses.</li>
--   <li><a>daDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeAddresses :: DescribeAddresses

-- | Contains the parameters for DescribeAddresses.
--   
--   <i>See:</i> <a>describeAddresses</a> smart constructor.
data DescribeAddresses

-- | One or more filters. Filter names and values are case-sensitive. *
--   <tt>allocation-id</tt> - [EC2-VPC] The allocation ID for the address.
--   * <tt>association-id</tt> - [EC2-VPC] The association ID for the
--   address. * <tt>domain</tt> - Indicates whether the address is for use
--   in EC2-Classic (<tt>standard</tt> ) or in a VPC (<tt>vpc</tt> ). *
--   <tt>instance-id</tt> - The ID of the instance the address is
--   associated with, if any. * <tt>network-interface-id</tt> - [EC2-VPC]
--   The ID of the network interface that the address is associated with,
--   if any. * <tt>network-interface-owner-id</tt> - The AWS account ID of
--   the owner. * <tt>private-ip-address</tt> - [EC2-VPC] The private IP
--   address associated with the Elastic IP address. * <tt>public-ip</tt> -
--   The Elastic IP address.
daFilters :: Lens' DescribeAddresses [Filter]

-- | <ul>
--   <li><i>EC2-Classic</i> One or more Elastic IP addresses. Default:
--   Describes all your Elastic IP addresses.</li>
--   </ul>
daPublicIPs :: Lens' DescribeAddresses [Text]

-- | <ul>
--   <li><i>EC2-VPC</i> One or more allocation IDs. Default: Describes all
--   your Elastic IP addresses.</li>
--   </ul>
daAllocationIds :: Lens' DescribeAddresses [Text]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
daDryRun :: Lens' DescribeAddresses (Maybe Bool)

-- | Creates a value of <a>DescribeAddressesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>darsAddresses</a> - Information about one or more Elastic IP
--   addresses.</li>
--   <li><a>darsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAddressesResponse :: Int -> DescribeAddressesResponse

-- | Contains the output of DescribeAddresses.
--   
--   <i>See:</i> <a>describeAddressesResponse</a> smart constructor.
data DescribeAddressesResponse

-- | Information about one or more Elastic IP addresses.
darsAddresses :: Lens' DescribeAddressesResponse [Address]

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


-- | Describes attributes of your AWS account. The following are the
--   supported account attributes:
--   
--   <ul>
--   <li><tt>supported-platforms</tt> : Indicates whether your account can
--   launch instances into EC2-Classic and EC2-VPC, or only into
--   EC2-VPC.</li>
--   <li><tt>default-vpc</tt> : The ID of the default VPC for your account,
--   or <tt>none</tt> .</li>
--   <li><tt>max-instances</tt> : The maximum number of On-Demand instances
--   that you can run.</li>
--   <li><tt>vpc-max-security-groups-per-interface</tt> : The maximum
--   number of security groups that you can assign to a network
--   interface.</li>
--   <li><tt>max-elastic-ips</tt> : The maximum number of Elastic IP
--   addresses that you can allocate for use with EC2-Classic.</li>
--   <li><tt>vpc-max-elastic-ips</tt> : The maximum number of Elastic IP
--   addresses that you can allocate for use with EC2-VPC.</li>
--   </ul>
module Network.AWS.EC2.DescribeAccountAttributes

-- | Creates a value of <a>DescribeAccountAttributes</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daaAttributeNames</a> - One or more account attribute
--   names.</li>
--   <li><a>daaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
describeAccountAttributes :: DescribeAccountAttributes

-- | Contains the parameters for DescribeAccountAttributes.
--   
--   <i>See:</i> <a>describeAccountAttributes</a> smart constructor.
data DescribeAccountAttributes

-- | One or more account attribute names.
daaAttributeNames :: Lens' DescribeAccountAttributes [AccountAttributeName]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
daaDryRun :: Lens' DescribeAccountAttributes (Maybe Bool)

-- | Creates a value of <a>DescribeAccountAttributesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daarsAccountAttributes</a> - Information about one or more
--   account attributes.</li>
--   <li><a>daarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAccountAttributesResponse :: Int -> DescribeAccountAttributesResponse

-- | Contains the output of DescribeAccountAttributes.
--   
--   <i>See:</i> <a>describeAccountAttributesResponse</a> smart
--   constructor.
data DescribeAccountAttributesResponse

-- | Information about one or more account attributes.
daarsAccountAttributes :: Lens' DescribeAccountAttributesResponse [AccountAttribute]

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


-- | Deregisters the specified AMI. After you deregister an AMI, it can't
--   be used to launch new instances.
--   
--   This command does not delete the AMI.
module Network.AWS.EC2.DeregisterImage

-- | Creates a value of <a>DeregisterImage</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>diImageId</a> - The ID of the AMI.</li>
--   </ul>
deregisterImage :: Text -> DeregisterImage

-- | Contains the parameters for DeregisterImage.
--   
--   <i>See:</i> <a>deregisterImage</a> smart constructor.
data DeregisterImage

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
diDryRun :: Lens' DeregisterImage (Maybe Bool)

-- | The ID of the AMI.
diImageId :: Lens' DeregisterImage Text

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

-- | <i>See:</i> <a>deregisterImageResponse</a> smart constructor.
data DeregisterImageResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeregisterImage.DeregisterImageResponse
instance Data.Data.Data Network.AWS.EC2.DeregisterImage.DeregisterImageResponse
instance GHC.Show.Show Network.AWS.EC2.DeregisterImage.DeregisterImageResponse
instance GHC.Read.Read Network.AWS.EC2.DeregisterImage.DeregisterImageResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeregisterImage.DeregisterImageResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeregisterImage.DeregisterImage
instance Data.Data.Data Network.AWS.EC2.DeregisterImage.DeregisterImage
instance GHC.Show.Show Network.AWS.EC2.DeregisterImage.DeregisterImage
instance GHC.Read.Read Network.AWS.EC2.DeregisterImage.DeregisterImage
instance GHC.Classes.Eq Network.AWS.EC2.DeregisterImage.DeregisterImage
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeregisterImage.DeregisterImage
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeregisterImage.DeregisterImage
instance Control.DeepSeq.NFData Network.AWS.EC2.DeregisterImage.DeregisterImage
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeregisterImage.DeregisterImage
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeregisterImage.DeregisterImage
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeregisterImage.DeregisterImage
instance Control.DeepSeq.NFData Network.AWS.EC2.DeregisterImage.DeregisterImageResponse


-- | Deletes the specified EBS volume. The volume must be in the
--   <tt>available</tt> state (not attached to an instance).
--   
--   For more information, see <a>Deleting an Amazon EBS Volume</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.DeleteVolume

-- | Creates a value of <a>DeleteVolume</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvvDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dvvVolumeId</a> - The ID of the volume.</li>
--   </ul>
deleteVolume :: Text -> DeleteVolume

-- | Contains the parameters for DeleteVolume.
--   
--   <i>See:</i> <a>deleteVolume</a> smart constructor.
data DeleteVolume

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvvDryRun :: Lens' DeleteVolume (Maybe Bool)

-- | The ID of the volume.
dvvVolumeId :: Lens' DeleteVolume Text

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

-- | <i>See:</i> <a>deleteVolumeResponse</a> smart constructor.
data DeleteVolumeResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteVolume.DeleteVolumeResponse
instance Data.Data.Data Network.AWS.EC2.DeleteVolume.DeleteVolumeResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteVolume.DeleteVolumeResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteVolume.DeleteVolumeResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteVolume.DeleteVolumeResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteVolume.DeleteVolume
instance Data.Data.Data Network.AWS.EC2.DeleteVolume.DeleteVolume
instance GHC.Show.Show Network.AWS.EC2.DeleteVolume.DeleteVolume
instance GHC.Read.Read Network.AWS.EC2.DeleteVolume.DeleteVolume
instance GHC.Classes.Eq Network.AWS.EC2.DeleteVolume.DeleteVolume
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteVolume.DeleteVolume
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteVolume.DeleteVolume
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteVolume.DeleteVolume
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteVolume.DeleteVolume
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteVolume.DeleteVolume
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteVolume.DeleteVolume
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteVolume.DeleteVolumeResponse


-- | Deletes the specified virtual private gateway. We recommend that
--   before you delete a virtual private gateway, you detach it from the
--   VPC and delete the VPN connection. Note that you don't need to delete
--   the virtual private gateway if you plan to delete and recreate the VPN
--   connection between your VPC and your network.
module Network.AWS.EC2.DeleteVPNGateway

-- | Creates a value of <a>DeleteVPNGateway</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvgDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dvgVPNGatewayId</a> - The ID of the virtual private
--   gateway.</li>
--   </ul>
deleteVPNGateway :: Text -> DeleteVPNGateway

-- | Contains the parameters for DeleteVpnGateway.
--   
--   <i>See:</i> <a>deleteVPNGateway</a> smart constructor.
data DeleteVPNGateway

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvgDryRun :: Lens' DeleteVPNGateway (Maybe Bool)

-- | The ID of the virtual private gateway.
dvgVPNGatewayId :: Lens' DeleteVPNGateway Text

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

-- | <i>See:</i> <a>deleteVPNGatewayResponse</a> smart constructor.
data DeleteVPNGatewayResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGatewayResponse
instance Data.Data.Data Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGatewayResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGatewayResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGatewayResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGatewayResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGateway
instance Data.Data.Data Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGateway
instance GHC.Show.Show Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGateway
instance GHC.Read.Read Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGateway
instance GHC.Classes.Eq Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGateway
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGateway
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGateway
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGateway
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGateway
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGateway
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGateway
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGatewayResponse


-- | Deletes the specified static route associated with a VPN connection
--   between an existing virtual private gateway and a VPN customer
--   gateway. The static route allows traffic to be routed from the virtual
--   private gateway to the VPN customer gateway.
module Network.AWS.EC2.DeleteVPNConnectionRoute

-- | Creates a value of <a>DeleteVPNConnectionRoute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvcrVPNConnectionId</a> - The ID of the VPN connection.</li>
--   <li><a>dvcrDestinationCidrBlock</a> - The CIDR block associated with
--   the local subnet of the customer network.</li>
--   </ul>
deleteVPNConnectionRoute :: Text -> Text -> DeleteVPNConnectionRoute

-- | Contains the parameters for DeleteVpnConnectionRoute.
--   
--   <i>See:</i> <a>deleteVPNConnectionRoute</a> smart constructor.
data DeleteVPNConnectionRoute

-- | The ID of the VPN connection.
dvcrVPNConnectionId :: Lens' DeleteVPNConnectionRoute Text

-- | The CIDR block associated with the local subnet of the customer
--   network.
dvcrDestinationCidrBlock :: Lens' DeleteVPNConnectionRoute Text

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

-- | <i>See:</i> <a>deleteVPNConnectionRouteResponse</a> smart constructor.
data DeleteVPNConnectionRouteResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRouteResponse
instance Data.Data.Data Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRouteResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRouteResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRouteResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRouteResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRoute
instance Data.Data.Data Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRoute
instance GHC.Show.Show Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRoute
instance GHC.Read.Read Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRoute
instance GHC.Classes.Eq Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRoute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRoute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRoute
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRoute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRoute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRoute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRoute
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRouteResponse


-- | Deletes the specified VPN connection.
--   
--   If you're deleting the VPC and its associated components, we recommend
--   that you detach the virtual private gateway from the VPC and delete
--   the VPC before deleting the VPN connection. If you believe that the
--   tunnel credentials for your VPN connection have been compromised, you
--   can delete the VPN connection and create a new one that has new keys,
--   without needing to delete the VPC or virtual private gateway. If you
--   create a new VPN connection, you must reconfigure the customer gateway
--   using the new configuration information returned with the new VPN
--   connection ID.
module Network.AWS.EC2.DeleteVPNConnection

-- | Creates a value of <a>DeleteVPNConnection</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvcDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dvcVPNConnectionId</a> - The ID of the VPN connection.</li>
--   </ul>
deleteVPNConnection :: Text -> DeleteVPNConnection

-- | Contains the parameters for DeleteVpnConnection.
--   
--   <i>See:</i> <a>deleteVPNConnection</a> smart constructor.
data DeleteVPNConnection

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvcDryRun :: Lens' DeleteVPNConnection (Maybe Bool)

-- | The ID of the VPN connection.
dvcVPNConnectionId :: Lens' DeleteVPNConnection Text

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

-- | <i>See:</i> <a>deleteVPNConnectionResponse</a> smart constructor.
data DeleteVPNConnectionResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnectionResponse
instance Data.Data.Data Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnectionResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnectionResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnectionResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnectionResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnection
instance Data.Data.Data Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnection
instance GHC.Show.Show Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnection
instance GHC.Read.Read Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnection
instance GHC.Classes.Eq Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnection
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnection
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnection
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnection
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnection
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnection
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnection
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnectionResponse


-- | Deletes a VPC peering connection. Either the owner of the requester
--   VPC or the owner of the peer VPC can delete the VPC peering connection
--   if it's in the <tt>active</tt> state. The owner of the requester VPC
--   can delete a VPC peering connection in the <tt>pending-acceptance</tt>
--   state.
module Network.AWS.EC2.DeleteVPCPeeringConnection

-- | Creates a value of <a>DeleteVPCPeeringConnection</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dvpcVPCPeeringConnectionId</a> - The ID of the VPC peering
--   connection.</li>
--   </ul>
deleteVPCPeeringConnection :: Text -> DeleteVPCPeeringConnection

-- | Contains the parameters for DeleteVpcPeeringConnection.
--   
--   <i>See:</i> <a>deleteVPCPeeringConnection</a> smart constructor.
data DeleteVPCPeeringConnection

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvpcDryRun :: Lens' DeleteVPCPeeringConnection (Maybe Bool)

-- | The ID of the VPC peering connection.
dvpcVPCPeeringConnectionId :: Lens' DeleteVPCPeeringConnection Text

-- | Creates a value of <a>DeleteVPCPeeringConnectionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcrsReturn</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>dvpcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteVPCPeeringConnectionResponse :: Int -> DeleteVPCPeeringConnectionResponse

-- | Contains the output of DeleteVpcPeeringConnection.
--   
--   <i>See:</i> <a>deleteVPCPeeringConnectionResponse</a> smart
--   constructor.
data DeleteVPCPeeringConnectionResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
dvpcrsReturn :: Lens' DeleteVPCPeeringConnectionResponse (Maybe Bool)

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


-- | Deletes one or more specified VPC endpoints. Deleting the endpoint
--   also deletes the endpoint routes in the route tables that were
--   associated with the endpoint.
module Network.AWS.EC2.DeleteVPCEndpoints

-- | Creates a value of <a>DeleteVPCEndpoints</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dveDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dveVPCEndpointIds</a> - One or more endpoint IDs.</li>
--   </ul>
deleteVPCEndpoints :: DeleteVPCEndpoints

-- | Contains the parameters for DeleteVpcEndpoints.
--   
--   <i>See:</i> <a>deleteVPCEndpoints</a> smart constructor.
data DeleteVPCEndpoints

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dveDryRun :: Lens' DeleteVPCEndpoints (Maybe Bool)

-- | One or more endpoint IDs.
dveVPCEndpointIds :: Lens' DeleteVPCEndpoints [Text]

-- | Creates a value of <a>DeleteVPCEndpointsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dversUnsuccessful</a> - Information about the endpoints that
--   were not successfully deleted.</li>
--   <li><a>dversResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteVPCEndpointsResponse :: Int -> DeleteVPCEndpointsResponse

-- | Contains the output of DeleteVpcEndpoints.
--   
--   <i>See:</i> <a>deleteVPCEndpointsResponse</a> smart constructor.
data DeleteVPCEndpointsResponse

-- | Information about the endpoints that were not successfully deleted.
dversUnsuccessful :: Lens' DeleteVPCEndpointsResponse [UnsuccessfulItem]

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


-- | Deletes the specified VPC. You must detach or delete all gateways and
--   resources that are associated with the VPC before you can delete it.
--   For example, you must terminate all instances running in the VPC,
--   delete all security groups associated with the VPC (except the default
--   one), delete all route tables associated with the VPC (except the
--   default one), and so on.
module Network.AWS.EC2.DeleteVPC

-- | Creates a value of <a>DeleteVPC</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>delDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>delVPCId</a> - The ID of the VPC.</li>
--   </ul>
deleteVPC :: Text -> DeleteVPC

-- | Contains the parameters for DeleteVpc.
--   
--   <i>See:</i> <a>deleteVPC</a> smart constructor.
data DeleteVPC

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
delDryRun :: Lens' DeleteVPC (Maybe Bool)

-- | The ID of the VPC.
delVPCId :: Lens' DeleteVPC Text

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

-- | <i>See:</i> <a>deleteVPCResponse</a> smart constructor.
data DeleteVPCResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteVPC.DeleteVPCResponse
instance Data.Data.Data Network.AWS.EC2.DeleteVPC.DeleteVPCResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteVPC.DeleteVPCResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteVPC.DeleteVPCResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteVPC.DeleteVPCResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteVPC.DeleteVPC
instance Data.Data.Data Network.AWS.EC2.DeleteVPC.DeleteVPC
instance GHC.Show.Show Network.AWS.EC2.DeleteVPC.DeleteVPC
instance GHC.Read.Read Network.AWS.EC2.DeleteVPC.DeleteVPC
instance GHC.Classes.Eq Network.AWS.EC2.DeleteVPC.DeleteVPC
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteVPC.DeleteVPC
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteVPC.DeleteVPC
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPC.DeleteVPC
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteVPC.DeleteVPC
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteVPC.DeleteVPC
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteVPC.DeleteVPC
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPC.DeleteVPCResponse


-- | Deletes the specified set of tags from the specified set of resources.
--   This call is designed to follow a <tt>DescribeTags</tt> request.
--   
--   For more information about tags, see <a>Tagging Your Resources</a> in
--   the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.DeleteTags

-- | Creates a value of <a>DeleteTags</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtsDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dtsTags</a> - One or more tags to delete. If you omit the
--   <tt>value</tt> parameter, we delete the tag regardless of its value.
--   If you specify this parameter with an empty string as the value, we
--   delete the key only if its value is an empty string.</li>
--   <li><a>dtsResources</a> - The ID of the resource. For example,
--   ami-1a2b3c4d. You can specify more than one resource ID.</li>
--   </ul>
deleteTags :: DeleteTags

-- | Contains the parameters for DeleteTags.
--   
--   <i>See:</i> <a>deleteTags</a> smart constructor.
data DeleteTags

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dtsDryRun :: Lens' DeleteTags (Maybe Bool)

-- | One or more tags to delete. If you omit the <tt>value</tt> parameter,
--   we delete the tag regardless of its value. If you specify this
--   parameter with an empty string as the value, we delete the key only if
--   its value is an empty string.
dtsTags :: Lens' DeleteTags [Tag]

-- | The ID of the resource. For example, ami-1a2b3c4d. You can specify
--   more than one resource ID.
dtsResources :: Lens' DeleteTags [Text]

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

-- | <i>See:</i> <a>deleteTagsResponse</a> smart constructor.
data DeleteTagsResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteTags.DeleteTagsResponse
instance Data.Data.Data Network.AWS.EC2.DeleteTags.DeleteTagsResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteTags.DeleteTagsResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteTags.DeleteTagsResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteTags.DeleteTagsResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteTags.DeleteTags
instance Data.Data.Data Network.AWS.EC2.DeleteTags.DeleteTags
instance GHC.Show.Show Network.AWS.EC2.DeleteTags.DeleteTags
instance GHC.Read.Read Network.AWS.EC2.DeleteTags.DeleteTags
instance GHC.Classes.Eq Network.AWS.EC2.DeleteTags.DeleteTags
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteTags.DeleteTags
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteTags.DeleteTags
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteTags.DeleteTags
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteTags.DeleteTags
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteTags.DeleteTags
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteTags.DeleteTags
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteTags.DeleteTagsResponse


-- | Deletes the specified subnet. You must terminate all running instances
--   in the subnet before you can delete the subnet.
module Network.AWS.EC2.DeleteSubnet

-- | Creates a value of <a>DeleteSubnet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>ddSubnetId</a> - The ID of the subnet.</li>
--   </ul>
deleteSubnet :: Text -> DeleteSubnet

-- | Contains the parameters for DeleteSubnet.
--   
--   <i>See:</i> <a>deleteSubnet</a> smart constructor.
data DeleteSubnet

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
ddDryRun :: Lens' DeleteSubnet (Maybe Bool)

-- | The ID of the subnet.
ddSubnetId :: Lens' DeleteSubnet Text

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

-- | <i>See:</i> <a>deleteSubnetResponse</a> smart constructor.
data DeleteSubnetResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteSubnet.DeleteSubnetResponse
instance Data.Data.Data Network.AWS.EC2.DeleteSubnet.DeleteSubnetResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteSubnet.DeleteSubnetResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteSubnet.DeleteSubnetResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteSubnet.DeleteSubnetResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteSubnet.DeleteSubnet
instance Data.Data.Data Network.AWS.EC2.DeleteSubnet.DeleteSubnet
instance GHC.Show.Show Network.AWS.EC2.DeleteSubnet.DeleteSubnet
instance GHC.Read.Read Network.AWS.EC2.DeleteSubnet.DeleteSubnet
instance GHC.Classes.Eq Network.AWS.EC2.DeleteSubnet.DeleteSubnet
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteSubnet.DeleteSubnet
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteSubnet.DeleteSubnet
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteSubnet.DeleteSubnet
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteSubnet.DeleteSubnet
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteSubnet.DeleteSubnet
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteSubnet.DeleteSubnet
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteSubnet.DeleteSubnetResponse


-- | Deletes the data feed for Spot instances.
module Network.AWS.EC2.DeleteSpotDatafeedSubscription

-- | Creates a value of <a>DeleteSpotDatafeedSubscription</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsdssDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
deleteSpotDatafeedSubscription :: DeleteSpotDatafeedSubscription

-- | Contains the parameters for DeleteSpotDatafeedSubscription.
--   
--   <i>See:</i> <a>deleteSpotDatafeedSubscription</a> smart constructor.
data DeleteSpotDatafeedSubscription

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dsdssDryRun :: Lens' DeleteSpotDatafeedSubscription (Maybe Bool)

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

-- | <i>See:</i> <a>deleteSpotDatafeedSubscriptionResponse</a> smart
--   constructor.
data DeleteSpotDatafeedSubscriptionResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscriptionResponse
instance Data.Data.Data Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscriptionResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscriptionResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscriptionResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscriptionResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscription
instance Data.Data.Data Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscription
instance GHC.Show.Show Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscription
instance GHC.Read.Read Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscription
instance GHC.Classes.Eq Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscription
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscription
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscription
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscription
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscription
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscription
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscription
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscriptionResponse


-- | Deletes the specified snapshot.
--   
--   When you make periodic snapshots of a volume, the snapshots are
--   incremental, and only the blocks on the device that have changed since
--   your last snapshot are saved in the new snapshot. When you delete a
--   snapshot, only the data not needed for any other snapshot is removed.
--   So regardless of which prior snapshots have been deleted, all active
--   snapshots will have access to all the information needed to restore
--   the volume.
--   
--   You cannot delete a snapshot of the root device of an EBS volume used
--   by a registered AMI. You must first de-register the AMI before you can
--   delete the snapshot.
--   
--   For more information, see <a>Deleting an Amazon EBS Snapshot</a> in
--   the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.DeleteSnapshot

-- | Creates a value of <a>DeleteSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deleDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>deleSnapshotId</a> - The ID of the EBS snapshot.</li>
--   </ul>
deleteSnapshot :: Text -> DeleteSnapshot

-- | Contains the parameters for DeleteSnapshot.
--   
--   <i>See:</i> <a>deleteSnapshot</a> smart constructor.
data DeleteSnapshot

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
deleDryRun :: Lens' DeleteSnapshot (Maybe Bool)

-- | The ID of the EBS snapshot.
deleSnapshotId :: Lens' DeleteSnapshot Text

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

-- | <i>See:</i> <a>deleteSnapshotResponse</a> smart constructor.
data DeleteSnapshotResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteSnapshot.DeleteSnapshotResponse
instance Data.Data.Data Network.AWS.EC2.DeleteSnapshot.DeleteSnapshotResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteSnapshot.DeleteSnapshotResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteSnapshot.DeleteSnapshotResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteSnapshot.DeleteSnapshotResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteSnapshot.DeleteSnapshot
instance Data.Data.Data Network.AWS.EC2.DeleteSnapshot.DeleteSnapshot
instance GHC.Show.Show Network.AWS.EC2.DeleteSnapshot.DeleteSnapshot
instance GHC.Read.Read Network.AWS.EC2.DeleteSnapshot.DeleteSnapshot
instance GHC.Classes.Eq Network.AWS.EC2.DeleteSnapshot.DeleteSnapshot
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteSnapshot.DeleteSnapshot
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteSnapshot.DeleteSnapshot
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteSnapshot.DeleteSnapshot
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteSnapshot.DeleteSnapshot
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteSnapshot.DeleteSnapshot
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteSnapshot.DeleteSnapshot
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteSnapshot.DeleteSnapshotResponse


-- | Deletes a security group.
--   
--   If you attempt to delete a security group that is associated with an
--   instance, or is referenced by another security group, the operation
--   fails with <tt>InvalidGroup.InUse</tt> in EC2-Classic or
--   <tt>DependencyViolation</tt> in EC2-VPC.
module Network.AWS.EC2.DeleteSecurityGroup

-- | Creates a value of <a>DeleteSecurityGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsgGroupId</a> - The ID of the security group. Required for a
--   nondefault VPC.</li>
--   <li><a>dsgGroupName</a> - [EC2-Classic, default VPC] The name of the
--   security group. You can specify either the security group name or the
--   security group ID.</li>
--   <li><a>dsgDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
deleteSecurityGroup :: DeleteSecurityGroup

-- | Contains the parameters for DeleteSecurityGroup.
--   
--   <i>See:</i> <a>deleteSecurityGroup</a> smart constructor.
data DeleteSecurityGroup

-- | The ID of the security group. Required for a nondefault VPC.
dsgGroupId :: Lens' DeleteSecurityGroup (Maybe Text)

-- | <ul>
--   <li><i>EC2-Classic, default VPC</i> The name of the security group.
--   You can specify either the security group name or the security group
--   ID.</li>
--   </ul>
dsgGroupName :: Lens' DeleteSecurityGroup (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dsgDryRun :: Lens' DeleteSecurityGroup (Maybe Bool)

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

-- | <i>See:</i> <a>deleteSecurityGroupResponse</a> smart constructor.
data DeleteSecurityGroupResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroupResponse
instance Data.Data.Data Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroupResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroupResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroupResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroupResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroup
instance Data.Data.Data Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroup
instance GHC.Show.Show Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroup
instance GHC.Read.Read Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroup
instance GHC.Classes.Eq Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroup
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroup
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroup
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroup
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroup
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroup
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroup
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroupResponse


-- | Deletes the specified route table. You must disassociate the route
--   table from any subnets before you can delete it. You can't delete the
--   main route table.
module Network.AWS.EC2.DeleteRouteTable

-- | Creates a value of <a>DeleteRouteTable</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drtrDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>drtrRouteTableId</a> - The ID of the route table.</li>
--   </ul>
deleteRouteTable :: Text -> DeleteRouteTable

-- | Contains the parameters for DeleteRouteTable.
--   
--   <i>See:</i> <a>deleteRouteTable</a> smart constructor.
data DeleteRouteTable

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
drtrDryRun :: Lens' DeleteRouteTable (Maybe Bool)

-- | The ID of the route table.
drtrRouteTableId :: Lens' DeleteRouteTable Text

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

-- | <i>See:</i> <a>deleteRouteTableResponse</a> smart constructor.
data DeleteRouteTableResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteRouteTable.DeleteRouteTableResponse
instance Data.Data.Data Network.AWS.EC2.DeleteRouteTable.DeleteRouteTableResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteRouteTable.DeleteRouteTableResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteRouteTable.DeleteRouteTableResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteRouteTable.DeleteRouteTableResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteRouteTable.DeleteRouteTable
instance Data.Data.Data Network.AWS.EC2.DeleteRouteTable.DeleteRouteTable
instance GHC.Show.Show Network.AWS.EC2.DeleteRouteTable.DeleteRouteTable
instance GHC.Read.Read Network.AWS.EC2.DeleteRouteTable.DeleteRouteTable
instance GHC.Classes.Eq Network.AWS.EC2.DeleteRouteTable.DeleteRouteTable
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteRouteTable.DeleteRouteTable
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteRouteTable.DeleteRouteTable
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteRouteTable.DeleteRouteTable
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteRouteTable.DeleteRouteTable
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteRouteTable.DeleteRouteTable
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteRouteTable.DeleteRouteTable
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteRouteTable.DeleteRouteTableResponse


-- | Deletes the specified route from the specified route table.
module Network.AWS.EC2.DeleteRoute

-- | Creates a value of <a>DeleteRoute</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drDestinationIPv6CidrBlock</a> - The IPv6 CIDR range for the
--   route. The value you specify must match the CIDR for the route
--   exactly.</li>
--   <li><a>drDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>drDestinationCidrBlock</a> - The IPv4 CIDR range for the route.
--   The value you specify must match the CIDR for the route exactly.</li>
--   <li><a>drRouteTableId</a> - The ID of the route table.</li>
--   </ul>
deleteRoute :: Text -> DeleteRoute

-- | Contains the parameters for DeleteRoute.
--   
--   <i>See:</i> <a>deleteRoute</a> smart constructor.
data DeleteRoute

-- | The IPv6 CIDR range for the route. The value you specify must match
--   the CIDR for the route exactly.
drDestinationIPv6CidrBlock :: Lens' DeleteRoute (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
drDryRun :: Lens' DeleteRoute (Maybe Bool)

-- | The IPv4 CIDR range for the route. The value you specify must match
--   the CIDR for the route exactly.
drDestinationCidrBlock :: Lens' DeleteRoute (Maybe Text)

-- | The ID of the route table.
drRouteTableId :: Lens' DeleteRoute Text

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

-- | <i>See:</i> <a>deleteRouteResponse</a> smart constructor.
data DeleteRouteResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteRoute.DeleteRouteResponse
instance Data.Data.Data Network.AWS.EC2.DeleteRoute.DeleteRouteResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteRoute.DeleteRouteResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteRoute.DeleteRouteResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteRoute.DeleteRouteResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteRoute.DeleteRoute
instance Data.Data.Data Network.AWS.EC2.DeleteRoute.DeleteRoute
instance GHC.Show.Show Network.AWS.EC2.DeleteRoute.DeleteRoute
instance GHC.Read.Read Network.AWS.EC2.DeleteRoute.DeleteRoute
instance GHC.Classes.Eq Network.AWS.EC2.DeleteRoute.DeleteRoute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteRoute.DeleteRoute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteRoute.DeleteRoute
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteRoute.DeleteRoute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteRoute.DeleteRoute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteRoute.DeleteRoute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteRoute.DeleteRoute
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteRoute.DeleteRouteResponse


-- | Deletes the specified placement group. You must terminate all
--   instances in the placement group before you can delete the placement
--   group. For more information about placement groups and cluster
--   instances, see <a>Cluster Instances</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> .
module Network.AWS.EC2.DeletePlacementGroup

-- | Creates a value of <a>DeletePlacementGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpgDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dpgGroupName</a> - The name of the placement group.</li>
--   </ul>
deletePlacementGroup :: Text -> DeletePlacementGroup

-- | Contains the parameters for DeletePlacementGroup.
--   
--   <i>See:</i> <a>deletePlacementGroup</a> smart constructor.
data DeletePlacementGroup

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dpgDryRun :: Lens' DeletePlacementGroup (Maybe Bool)

-- | The name of the placement group.
dpgGroupName :: Lens' DeletePlacementGroup Text

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

-- | <i>See:</i> <a>deletePlacementGroupResponse</a> smart constructor.
data DeletePlacementGroupResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroupResponse
instance Data.Data.Data Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroupResponse
instance GHC.Show.Show Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroupResponse
instance GHC.Read.Read Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroupResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroupResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroup
instance Data.Data.Data Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroup
instance GHC.Show.Show Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroup
instance GHC.Read.Read Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroup
instance GHC.Classes.Eq Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroup
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroup
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroup
instance Control.DeepSeq.NFData Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroup
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroup
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroup
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroup
instance Control.DeepSeq.NFData Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroupResponse


-- | Deletes the specified network interface. You must detach the network
--   interface before you can delete it.
module Network.AWS.EC2.DeleteNetworkInterface

-- | Creates a value of <a>DeleteNetworkInterface</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dninDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dninNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   </ul>
deleteNetworkInterface :: Text -> DeleteNetworkInterface

-- | Contains the parameters for DeleteNetworkInterface.
--   
--   <i>See:</i> <a>deleteNetworkInterface</a> smart constructor.
data DeleteNetworkInterface

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dninDryRun :: Lens' DeleteNetworkInterface (Maybe Bool)

-- | The ID of the network interface.
dninNetworkInterfaceId :: Lens' DeleteNetworkInterface Text

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

-- | <i>See:</i> <a>deleteNetworkInterfaceResponse</a> smart constructor.
data DeleteNetworkInterfaceResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterfaceResponse
instance Data.Data.Data Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterfaceResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterfaceResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterfaceResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterfaceResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterface
instance Data.Data.Data Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterface
instance GHC.Show.Show Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterface
instance GHC.Read.Read Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterface
instance GHC.Classes.Eq Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterface
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterface
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterface
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterface
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterface
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterface
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterface
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterfaceResponse


-- | Deletes the specified ingress or egress entry (rule) from the
--   specified network ACL.
module Network.AWS.EC2.DeleteNetworkACLEntry

-- | Creates a value of <a>DeleteNetworkACLEntry</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnaeDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dnaeNetworkACLId</a> - The ID of the network ACL.</li>
--   <li><a>dnaeRuleNumber</a> - The rule number of the entry to
--   delete.</li>
--   <li><a>dnaeEgress</a> - Indicates whether the rule is an egress
--   rule.</li>
--   </ul>
deleteNetworkACLEntry :: Text -> Int -> Bool -> DeleteNetworkACLEntry

-- | Contains the parameters for DeleteNetworkAclEntry.
--   
--   <i>See:</i> <a>deleteNetworkACLEntry</a> smart constructor.
data DeleteNetworkACLEntry

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dnaeDryRun :: Lens' DeleteNetworkACLEntry (Maybe Bool)

-- | The ID of the network ACL.
dnaeNetworkACLId :: Lens' DeleteNetworkACLEntry Text

-- | The rule number of the entry to delete.
dnaeRuleNumber :: Lens' DeleteNetworkACLEntry Int

-- | Indicates whether the rule is an egress rule.
dnaeEgress :: Lens' DeleteNetworkACLEntry Bool

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

-- | <i>See:</i> <a>deleteNetworkACLEntryResponse</a> smart constructor.
data DeleteNetworkACLEntryResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntryResponse
instance Data.Data.Data Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntryResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntryResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntryResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntryResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntry
instance Data.Data.Data Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntry
instance GHC.Show.Show Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntry
instance GHC.Read.Read Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntry
instance GHC.Classes.Eq Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntry
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntry
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntry
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntry
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntry
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntry
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntry
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntryResponse


-- | Deletes the specified network ACL. You can't delete the ACL if it's
--   associated with any subnets. You can't delete the default network ACL.
module Network.AWS.EC2.DeleteNetworkACL

-- | Creates a value of <a>DeleteNetworkACL</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dnaNetworkACLId</a> - The ID of the network ACL.</li>
--   </ul>
deleteNetworkACL :: Text -> DeleteNetworkACL

-- | Contains the parameters for DeleteNetworkAcl.
--   
--   <i>See:</i> <a>deleteNetworkACL</a> smart constructor.
data DeleteNetworkACL

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dnaDryRun :: Lens' DeleteNetworkACL (Maybe Bool)

-- | The ID of the network ACL.
dnaNetworkACLId :: Lens' DeleteNetworkACL Text

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

-- | <i>See:</i> <a>deleteNetworkACLResponse</a> smart constructor.
data DeleteNetworkACLResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACLResponse
instance Data.Data.Data Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACLResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACLResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACLResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACLResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACL
instance Data.Data.Data Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACL
instance GHC.Show.Show Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACL
instance GHC.Read.Read Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACL
instance GHC.Classes.Eq Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACL
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACL
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACL
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACL
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACL
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACL
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACL
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACLResponse


-- | Deletes the specified NAT gateway. Deleting a NAT gateway
--   disassociates its Elastic IP address, but does not release the address
--   from your account. Deleting a NAT gateway does not delete any NAT
--   gateway routes in your route tables.
module Network.AWS.EC2.DeleteNatGateway

-- | Creates a value of <a>DeleteNatGateway</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dngNatGatewayId</a> - The ID of the NAT gateway.</li>
--   </ul>
deleteNatGateway :: Text -> DeleteNatGateway

-- | Contains the parameters for DeleteNatGateway.
--   
--   <i>See:</i> <a>deleteNatGateway</a> smart constructor.
data DeleteNatGateway

-- | The ID of the NAT gateway.
dngNatGatewayId :: Lens' DeleteNatGateway Text

-- | Creates a value of <a>DeleteNatGatewayResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dngnrsNatGatewayId</a> - The ID of the NAT gateway.</li>
--   <li><a>dngnrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteNatGatewayResponse :: Int -> DeleteNatGatewayResponse

-- | Contains the output of DeleteNatGateway.
--   
--   <i>See:</i> <a>deleteNatGatewayResponse</a> smart constructor.
data DeleteNatGatewayResponse

-- | The ID of the NAT gateway.
dngnrsNatGatewayId :: Lens' DeleteNatGatewayResponse (Maybe Text)

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


-- | Deletes the specified key pair, by removing the public key from Amazon
--   EC2.
module Network.AWS.EC2.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>dkpDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dkpKeyName</a> - The name of the key pair.</li>
--   </ul>
deleteKeyPair :: Text -> DeleteKeyPair

-- | Contains the parameters for DeleteKeyPair.
--   
--   <i>See:</i> <a>deleteKeyPair</a> smart constructor.
data DeleteKeyPair

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dkpDryRun :: Lens' DeleteKeyPair (Maybe Bool)

-- | The name of the key pair.
dkpKeyName :: Lens' DeleteKeyPair Text

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

-- | <i>See:</i> <a>deleteKeyPairResponse</a> smart constructor.
data DeleteKeyPairResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteKeyPair.DeleteKeyPairResponse
instance Data.Data.Data Network.AWS.EC2.DeleteKeyPair.DeleteKeyPairResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteKeyPair.DeleteKeyPairResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteKeyPair.DeleteKeyPairResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteKeyPair.DeleteKeyPairResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteKeyPair.DeleteKeyPair
instance Data.Data.Data Network.AWS.EC2.DeleteKeyPair.DeleteKeyPair
instance GHC.Show.Show Network.AWS.EC2.DeleteKeyPair.DeleteKeyPair
instance GHC.Read.Read Network.AWS.EC2.DeleteKeyPair.DeleteKeyPair
instance GHC.Classes.Eq Network.AWS.EC2.DeleteKeyPair.DeleteKeyPair
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteKeyPair.DeleteKeyPair
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteKeyPair.DeleteKeyPair
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteKeyPair.DeleteKeyPair
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteKeyPair.DeleteKeyPair
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteKeyPair.DeleteKeyPair
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteKeyPair.DeleteKeyPair
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteKeyPair.DeleteKeyPairResponse


-- | Deletes the specified Internet gateway. You must detach the Internet
--   gateway from the VPC before you can delete it.
module Network.AWS.EC2.DeleteInternetGateway

-- | Creates a value of <a>DeleteInternetGateway</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>digiDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>digiInternetGatewayId</a> - The ID of the Internet
--   gateway.</li>
--   </ul>
deleteInternetGateway :: Text -> DeleteInternetGateway

-- | Contains the parameters for DeleteInternetGateway.
--   
--   <i>See:</i> <a>deleteInternetGateway</a> smart constructor.
data DeleteInternetGateway

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
digiDryRun :: Lens' DeleteInternetGateway (Maybe Bool)

-- | The ID of the Internet gateway.
digiInternetGatewayId :: Lens' DeleteInternetGateway Text

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

-- | <i>See:</i> <a>deleteInternetGatewayResponse</a> smart constructor.
data DeleteInternetGatewayResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGatewayResponse
instance Data.Data.Data Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGatewayResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGatewayResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGatewayResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGatewayResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGateway
instance Data.Data.Data Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGateway
instance GHC.Show.Show Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGateway
instance GHC.Read.Read Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGateway
instance GHC.Classes.Eq Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGateway
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGateway
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGateway
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGateway
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGateway
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGateway
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGateway
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGatewayResponse


-- | Deletes one or more flow logs.
module Network.AWS.EC2.DeleteFlowLogs

-- | Creates a value of <a>DeleteFlowLogs</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dflFlowLogIds</a> - One or more flow log IDs.</li>
--   </ul>
deleteFlowLogs :: DeleteFlowLogs

-- | Contains the parameters for DeleteFlowLogs.
--   
--   <i>See:</i> <a>deleteFlowLogs</a> smart constructor.
data DeleteFlowLogs

-- | One or more flow log IDs.
dflFlowLogIds :: Lens' DeleteFlowLogs [Text]

-- | Creates a value of <a>DeleteFlowLogsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dflrsUnsuccessful</a> - Information about the flow logs that
--   could not be deleted successfully.</li>
--   <li><a>dflrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteFlowLogsResponse :: Int -> DeleteFlowLogsResponse

-- | Contains the output of DeleteFlowLogs.
--   
--   <i>See:</i> <a>deleteFlowLogsResponse</a> smart constructor.
data DeleteFlowLogsResponse

-- | Information about the flow logs that could not be deleted
--   successfully.
dflrsUnsuccessful :: Lens' DeleteFlowLogsResponse [UnsuccessfulItem]

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


-- | Deletes an egress-only Internet gateway.
module Network.AWS.EC2.DeleteEgressOnlyInternetGateway

-- | Creates a value of <a>DeleteEgressOnlyInternetGateway</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deoigeDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>deoigeEgressOnlyInternetGatewayId</a> - The ID of the
--   egress-only Internet gateway.</li>
--   </ul>
deleteEgressOnlyInternetGateway :: Text -> DeleteEgressOnlyInternetGateway

-- | <i>See:</i> <a>deleteEgressOnlyInternetGateway</a> smart constructor.
data DeleteEgressOnlyInternetGateway

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
deoigeDryRun :: Lens' DeleteEgressOnlyInternetGateway (Maybe Bool)

-- | The ID of the egress-only Internet gateway.
deoigeEgressOnlyInternetGatewayId :: Lens' DeleteEgressOnlyInternetGateway Text

-- | Creates a value of <a>DeleteEgressOnlyInternetGatewayResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>delrsReturnCode</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>delrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteEgressOnlyInternetGatewayResponse :: Int -> DeleteEgressOnlyInternetGatewayResponse

-- | <i>See:</i> <a>deleteEgressOnlyInternetGatewayResponse</a> smart
--   constructor.
data DeleteEgressOnlyInternetGatewayResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
delrsReturnCode :: Lens' DeleteEgressOnlyInternetGatewayResponse (Maybe Bool)

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


-- | Deletes the specified set of DHCP options. You must disassociate the
--   set of DHCP options before you can delete it. You can disassociate the
--   set of DHCP options by associating either a new set of options or the
--   default set of options with the VPC.
module Network.AWS.EC2.DeleteDHCPOptions

-- | Creates a value of <a>DeleteDHCPOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddhcpoDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>ddhcpoDHCPOptionsId</a> - The ID of the DHCP options set.</li>
--   </ul>
deleteDHCPOptions :: Text -> DeleteDHCPOptions

-- | Contains the parameters for DeleteDhcpOptions.
--   
--   <i>See:</i> <a>deleteDHCPOptions</a> smart constructor.
data DeleteDHCPOptions

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
ddhcpoDryRun :: Lens' DeleteDHCPOptions (Maybe Bool)

-- | The ID of the DHCP options set.
ddhcpoDHCPOptionsId :: Lens' DeleteDHCPOptions Text

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

-- | <i>See:</i> <a>deleteDHCPOptionsResponse</a> smart constructor.
data DeleteDHCPOptionsResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptionsResponse
instance Data.Data.Data Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptionsResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptionsResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptionsResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptionsResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptions
instance Data.Data.Data Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptions
instance GHC.Show.Show Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptions
instance GHC.Read.Read Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptions
instance GHC.Classes.Eq Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptions
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptions
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptions
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptions
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptions
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptions
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptionsResponse


-- | Deletes the specified customer gateway. You must delete the VPN
--   connection before you can delete the customer gateway.
module Network.AWS.EC2.DeleteCustomerGateway

-- | Creates a value of <a>DeleteCustomerGateway</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcgcDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>dcgcCustomerGatewayId</a> - The ID of the customer
--   gateway.</li>
--   </ul>
deleteCustomerGateway :: Text -> DeleteCustomerGateway

-- | Contains the parameters for DeleteCustomerGateway.
--   
--   <i>See:</i> <a>deleteCustomerGateway</a> smart constructor.
data DeleteCustomerGateway

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dcgcDryRun :: Lens' DeleteCustomerGateway (Maybe Bool)

-- | The ID of the customer gateway.
dcgcCustomerGatewayId :: Lens' DeleteCustomerGateway Text

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

-- | <i>See:</i> <a>deleteCustomerGatewayResponse</a> smart constructor.
data DeleteCustomerGatewayResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGatewayResponse
instance Data.Data.Data Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGatewayResponse
instance GHC.Show.Show Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGatewayResponse
instance GHC.Read.Read Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGatewayResponse
instance GHC.Classes.Eq Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGatewayResponse
instance GHC.Generics.Generic Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGateway
instance Data.Data.Data Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGateway
instance GHC.Show.Show Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGateway
instance GHC.Read.Read Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGateway
instance GHC.Classes.Eq Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGateway
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGateway
instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGateway
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGateway
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGateway
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGateway
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGateway
instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGatewayResponse


-- | Creates an EBS volume that can be attached to an instance in the same
--   Availability Zone. The volume is created in the regional endpoint that
--   you send the HTTP request to. For more information see <a>Regions and
--   Endpoints</a> .
--   
--   You can create a new empty volume or restore a volume from an EBS
--   snapshot. Any AWS Marketplace product codes from the snapshot are
--   propagated to the volume.
--   
--   You can create encrypted volumes with the <tt>Encrypted</tt>
--   parameter. Encrypted volumes may only be attached to instances that
--   support Amazon EBS encryption. Volumes that are created from encrypted
--   snapshots are also automatically encrypted. For more information, see
--   <a>Amazon EBS Encryption</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
--   
--   For more information, see <a>Creating or Restoring an Amazon EBS
--   Volume</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.CreateVolume

-- | Creates a value of <a>CreateVolume</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>creSize</a> - The size of the volume, in GiBs. Constraints:
--   1-16384 for <tt>gp2</tt> , 4-16384 for <tt>io1</tt> , 500-16384 for
--   <tt>st1</tt> , 500-16384 for <tt>sc1</tt> , and 1-1024 for
--   <tt>standard</tt> . If you specify a snapshot, the volume size must be
--   equal to or larger than the snapshot size. Default: If you're creating
--   the volume from a snapshot and don't specify a volume size, the
--   default is the snapshot size.</li>
--   <li><a>creIOPS</a> - Only valid for Provisioned IOPS SSD volumes. The
--   number of I<i>O operations per second (IOPS) to provision for the
--   volume, with a maximum ratio of 50 IOPS</i>GiB. Constraint: Range is
--   100 to 20000 for Provisioned IOPS SSD volumes</li>
--   <li><a>creEncrypted</a> - Specifies whether the volume should be
--   encrypted. Encrypted Amazon EBS volumes may only be attached to
--   instances that support Amazon EBS encryption. Volumes that are created
--   from encrypted snapshots are automatically encrypted. There is no way
--   to create an encrypted volume from an unencrypted snapshot or vice
--   versa. If your AMI uses encrypted volumes, you can only launch it on
--   supported instance types. For more information, see <a>Amazon EBS
--   Encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
--   .</li>
--   <li><a>creKMSKeyId</a> - The full ARN of the AWS Key Management
--   Service (AWS KMS) customer master key (CMK) to use when creating the
--   encrypted volume. This parameter is only required if you want to use a
--   non-default CMK; if this parameter is not specified, the default CMK
--   for EBS is used. The ARN contains the <tt>arn:aws:kms</tt> namespace,
--   followed by the region of the CMK, the AWS account ID of the CMK
--   owner, the <tt>key</tt> namespace, and then the CMK ID. For example,
--   arn:aws:kms:<i>us-east-1</i> :<i>012345678910</i>
--   :key/<i>abcd1234-a123-456a-a12b-a123b4cd56ef</i> . If a
--   <tt>KmsKeyId</tt> is specified, the <tt>Encrypted</tt> flag must also
--   be set.</li>
--   <li><a>creVolumeType</a> - The volume type. This can be <tt>gp2</tt>
--   for General Purpose SSD, <tt>io1</tt> for Provisioned IOPS SSD,
--   <tt>st1</tt> for Throughput Optimized HDD, <tt>sc1</tt> for Cold HDD,
--   or <tt>standard</tt> for Magnetic volumes. Default:
--   <tt>standard</tt></li>
--   <li><a>creDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>creSnapshotId</a> - The snapshot from which to create the
--   volume.</li>
--   <li><a>creAvailabilityZone</a> - The Availability Zone in which to
--   create the volume. Use <tt>DescribeAvailabilityZones</tt> to list the
--   Availability Zones that are currently available to you.</li>
--   </ul>
createVolume :: Text -> CreateVolume

-- | Contains the parameters for CreateVolume.
--   
--   <i>See:</i> <a>createVolume</a> smart constructor.
data CreateVolume

-- | The size of the volume, in GiBs. Constraints: 1-16384 for <tt>gp2</tt>
--   , 4-16384 for <tt>io1</tt> , 500-16384 for <tt>st1</tt> , 500-16384
--   for <tt>sc1</tt> , and 1-1024 for <tt>standard</tt> . If you specify a
--   snapshot, the volume size must be equal to or larger than the snapshot
--   size. Default: If you're creating the volume from a snapshot and don't
--   specify a volume size, the default is the snapshot size.
creSize :: Lens' CreateVolume (Maybe Int)

-- | Only valid for Provisioned IOPS SSD volumes. The number of I<i>O
--   operations per second (IOPS) to provision for the volume, with a
--   maximum ratio of 50 IOPS</i>GiB. Constraint: Range is 100 to 20000 for
--   Provisioned IOPS SSD volumes
creIOPS :: Lens' CreateVolume (Maybe Int)

-- | Specifies whether the volume should be encrypted. Encrypted Amazon EBS
--   volumes may only be attached to instances that support Amazon EBS
--   encryption. Volumes that are created from encrypted snapshots are
--   automatically encrypted. There is no way to create an encrypted volume
--   from an unencrypted snapshot or vice versa. If your AMI uses encrypted
--   volumes, you can only launch it on supported instance types. For more
--   information, see <a>Amazon EBS Encryption</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> .
creEncrypted :: Lens' CreateVolume (Maybe Bool)

-- | The full ARN of the AWS Key Management Service (AWS KMS) customer
--   master key (CMK) to use when creating the encrypted volume. This
--   parameter is only required if you want to use a non-default CMK; if
--   this parameter is not specified, the default CMK for EBS is used. The
--   ARN contains the <tt>arn:aws:kms</tt> namespace, followed by the
--   region of the CMK, the AWS account ID of the CMK owner, the
--   <tt>key</tt> namespace, and then the CMK ID. For example,
--   arn:aws:kms:<i>us-east-1</i> :<i>012345678910</i>
--   :key/<i>abcd1234-a123-456a-a12b-a123b4cd56ef</i> . If a
--   <tt>KmsKeyId</tt> is specified, the <tt>Encrypted</tt> flag must also
--   be set.
creKMSKeyId :: Lens' CreateVolume (Maybe Text)

-- | The volume type. This can be <tt>gp2</tt> for General Purpose SSD,
--   <tt>io1</tt> for Provisioned IOPS SSD, <tt>st1</tt> for Throughput
--   Optimized HDD, <tt>sc1</tt> for Cold HDD, or <tt>standard</tt> for
--   Magnetic volumes. Default: <tt>standard</tt>
creVolumeType :: Lens' CreateVolume (Maybe VolumeType)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
creDryRun :: Lens' CreateVolume (Maybe Bool)

-- | The snapshot from which to create the volume.
creSnapshotId :: Lens' CreateVolume (Maybe Text)

-- | The Availability Zone in which to create the volume. Use
--   <tt>DescribeAvailabilityZones</tt> to list the Availability Zones that
--   are currently available to you.
creAvailabilityZone :: Lens' CreateVolume Text

-- | Creates a value of <a>Volume</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vAttachments</a> - Information about the volume
--   attachments.</li>
--   <li><a>vIOPS</a> - The number of I<i>O operations per second (IOPS)
--   that the volume supports. For Provisioned IOPS SSD volumes, this
--   represents the number of IOPS that are provisioned for the volume. For
--   General Purpose SSD volumes, this represents the baseline performance
--   of the volume and the rate at which the volume accumulates I</i>O
--   credits for bursting. For more information on General Purpose SSD
--   baseline performance, I<i>O credits, and bursting, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for io1 volumes and
--   100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This parameter is
--   required for requests to create <tt>io1</tt> volumes; it is not used
--   in requests to create <tt>gp2</tt> , <tt>st1</tt> , <tt>sc1</tt> , or
--   <tt>standard</tt> volumes.</li>
--   <li><a>vKMSKeyId</a> - The full ARN of the AWS Key Management Service
--   (AWS KMS) customer master key (CMK) that was used to protect the
--   volume encryption key for the volume.</li>
--   <li><a>vTags</a> - Any tags assigned to the volume.</li>
--   <li><a>vAvailabilityZone</a> - The Availability Zone for the
--   volume.</li>
--   <li><a>vCreateTime</a> - The time stamp when volume creation was
--   initiated.</li>
--   <li><a>vEncrypted</a> - Indicates whether the volume will be
--   encrypted.</li>
--   <li><a>vSize</a> - The size of the volume, in GiBs.</li>
--   <li><a>vSnapshotId</a> - The snapshot from which the volume was
--   created, if applicable.</li>
--   <li><a>vState</a> - The volume state.</li>
--   <li><a>vVolumeId</a> - The ID of the volume.</li>
--   <li><a>vVolumeType</a> - The volume type. This can be <tt>gp2</tt> for
--   General Purpose SSD, <tt>io1</tt> for Provisioned IOPS SSD,
--   <tt>st1</tt> for Throughput Optimized HDD, <tt>sc1</tt> for Cold HDD,
--   or <tt>standard</tt> for Magnetic volumes.</li>
--   </ul>
volume :: Text -> UTCTime -> Bool -> Int -> Text -> VolumeState -> Text -> VolumeType -> Volume

-- | Describes a volume.
--   
--   <i>See:</i> <a>volume</a> smart constructor.
data Volume

-- | Information about the volume attachments.
vAttachments :: Lens' Volume [VolumeAttachment]

-- | The number of I<i>O operations per second (IOPS) that the volume
--   supports. For Provisioned IOPS SSD volumes, this represents the number
--   of IOPS that are provisioned for the volume. For General Purpose SSD
--   volumes, this represents the baseline performance of the volume and
--   the rate at which the volume accumulates I</i>O credits for bursting.
--   For more information on General Purpose SSD baseline performance,
--   I<i>O credits, and bursting, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for io1 volumes and
--   100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This parameter is
--   required for requests to create <tt>io1</tt> volumes; it is not used
--   in requests to create <tt>gp2</tt> , <tt>st1</tt> , <tt>sc1</tt> , or
--   <tt>standard</tt> volumes.
vIOPS :: Lens' Volume (Maybe Int)

-- | The full ARN of the AWS Key Management Service (AWS KMS) customer
--   master key (CMK) that was used to protect the volume encryption key
--   for the volume.
vKMSKeyId :: Lens' Volume (Maybe Text)

-- | Any tags assigned to the volume.
vTags :: Lens' Volume [Tag]

-- | The Availability Zone for the volume.
vAvailabilityZone :: Lens' Volume Text

-- | The time stamp when volume creation was initiated.
vCreateTime :: Lens' Volume UTCTime

-- | Indicates whether the volume will be encrypted.
vEncrypted :: Lens' Volume Bool

-- | The size of the volume, in GiBs.
vSize :: Lens' Volume Int

-- | The snapshot from which the volume was created, if applicable.
vSnapshotId :: Lens' Volume Text

-- | The volume state.
vState :: Lens' Volume VolumeState

-- | The ID of the volume.
vVolumeId :: Lens' Volume Text

-- | The volume type. This can be <tt>gp2</tt> for General Purpose SSD,
--   <tt>io1</tt> for Provisioned IOPS SSD, <tt>st1</tt> for Throughput
--   Optimized HDD, <tt>sc1</tt> for Cold HDD, or <tt>standard</tt> for
--   Magnetic volumes.
vVolumeType :: Lens' Volume VolumeType
instance GHC.Generics.Generic Network.AWS.EC2.CreateVolume.CreateVolume
instance Data.Data.Data Network.AWS.EC2.CreateVolume.CreateVolume
instance GHC.Show.Show Network.AWS.EC2.CreateVolume.CreateVolume
instance GHC.Read.Read Network.AWS.EC2.CreateVolume.CreateVolume
instance GHC.Classes.Eq Network.AWS.EC2.CreateVolume.CreateVolume
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CreateVolume.CreateVolume
instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateVolume.CreateVolume
instance Control.DeepSeq.NFData Network.AWS.EC2.CreateVolume.CreateVolume
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CreateVolume.CreateVolume
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CreateVolume.CreateVolume
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CreateVolume.CreateVolume


-- | Creates a virtual private gateway. A virtual private gateway is the
--   endpoint on the VPC side of your VPN connection. You can create a
--   virtual private gateway before creating the VPC itself.
--   
--   For more information about virtual private gateways, see <a>Adding a
--   Hardware Virtual Private Gateway to Your VPC</a> in the <i>Amazon
--   Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.CreateVPNGateway

-- | Creates a value of <a>CreateVPNGateway</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvgAvailabilityZone</a> - The Availability Zone for the virtual
--   private gateway.</li>
--   <li><a>cvgDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cvgType</a> - The type of VPN connection this virtual private
--   gateway supports.</li>
--   </ul>
createVPNGateway :: GatewayType -> CreateVPNGateway

-- | Contains the parameters for CreateVpnGateway.
--   
--   <i>See:</i> <a>createVPNGateway</a> smart constructor.
data CreateVPNGateway

-- | The Availability Zone for the virtual private gateway.
cvgAvailabilityZone :: Lens' CreateVPNGateway (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cvgDryRun :: Lens' CreateVPNGateway (Maybe Bool)

-- | The type of VPN connection this virtual private gateway supports.
cvgType :: Lens' CreateVPNGateway GatewayType

-- | Creates a value of <a>CreateVPNGatewayResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvgrsVPNGateway</a> - Information about the virtual private
--   gateway.</li>
--   <li><a>cvgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createVPNGatewayResponse :: Int -> CreateVPNGatewayResponse

-- | Contains the output of CreateVpnGateway.
--   
--   <i>See:</i> <a>createVPNGatewayResponse</a> smart constructor.
data CreateVPNGatewayResponse

-- | Information about the virtual private gateway.
cvgrsVPNGateway :: Lens' CreateVPNGatewayResponse (Maybe VPNGateway)

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


-- | Creates a static route associated with a VPN connection between an
--   existing virtual private gateway and a VPN customer gateway. The
--   static route allows traffic to be routed from the virtual private
--   gateway to the VPN customer gateway.
--   
--   For more information about VPN connections, see <a>Adding a Hardware
--   Virtual Private Gateway to Your VPC</a> in the <i>Amazon Virtual
--   Private Cloud User Guide</i> .
module Network.AWS.EC2.CreateVPNConnectionRoute

-- | Creates a value of <a>CreateVPNConnectionRoute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvcrVPNConnectionId</a> - The ID of the VPN connection.</li>
--   <li><a>cvcrDestinationCidrBlock</a> - The CIDR block associated with
--   the local subnet of the customer network.</li>
--   </ul>
createVPNConnectionRoute :: Text -> Text -> CreateVPNConnectionRoute

-- | Contains the parameters for CreateVpnConnectionRoute.
--   
--   <i>See:</i> <a>createVPNConnectionRoute</a> smart constructor.
data CreateVPNConnectionRoute

-- | The ID of the VPN connection.
cvcrVPNConnectionId :: Lens' CreateVPNConnectionRoute Text

-- | The CIDR block associated with the local subnet of the customer
--   network.
cvcrDestinationCidrBlock :: Lens' CreateVPNConnectionRoute Text

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

-- | <i>See:</i> <a>createVPNConnectionRouteResponse</a> smart constructor.
data CreateVPNConnectionRouteResponse
instance GHC.Generics.Generic Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRouteResponse
instance Data.Data.Data Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRouteResponse
instance GHC.Show.Show Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRouteResponse
instance GHC.Read.Read Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRouteResponse
instance GHC.Classes.Eq Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRouteResponse
instance GHC.Generics.Generic Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRoute
instance Data.Data.Data Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRoute
instance GHC.Show.Show Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRoute
instance GHC.Read.Read Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRoute
instance GHC.Classes.Eq Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRoute
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRoute
instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRoute
instance Control.DeepSeq.NFData Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRoute
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRoute
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRoute
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRoute
instance Control.DeepSeq.NFData Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRouteResponse


-- | Creates a VPN connection between an existing virtual private gateway
--   and a VPN customer gateway. The only supported connection type is
--   <tt>ipsec.1</tt> .
--   
--   The response includes information that you need to give to your
--   network administrator to configure your customer gateway.
--   
--   <i>Important:</i> We strongly recommend that you use HTTPS when
--   calling this operation because the response contains sensitive
--   cryptographic information for configuring your customer gateway.
--   
--   If you decide to shut down your VPN connection for any reason and
--   later create a new VPN connection, you must reconfigure your customer
--   gateway with the new information returned from this call.
--   
--   This is an idempotent operation. If you perform the operation more
--   than once, Amazon EC2 doesn't return an error.
--   
--   For more information about VPN connections, see <a>Adding a Hardware
--   Virtual Private Gateway to Your VPC</a> in the <i>Amazon Virtual
--   Private Cloud User Guide</i> .
module Network.AWS.EC2.CreateVPNConnection

-- | Creates a value of <a>CreateVPNConnection</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvcOptions</a> - Indicates whether the VPN connection requires
--   static routes. If you are creating a VPN connection for a device that
--   does not support BGP, you must specify <tt>true</tt> . Default:
--   <tt>false</tt></li>
--   <li><a>cvcDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cvcType</a> - The type of VPN connection (<tt>ipsec.1</tt>
--   ).</li>
--   <li><a>cvcCustomerGatewayId</a> - The ID of the customer gateway.</li>
--   <li><a>cvcVPNGatewayId</a> - The ID of the virtual private
--   gateway.</li>
--   </ul>
createVPNConnection :: Text -> Text -> Text -> CreateVPNConnection

-- | Contains the parameters for CreateVpnConnection.
--   
--   <i>See:</i> <a>createVPNConnection</a> smart constructor.
data CreateVPNConnection

-- | Indicates whether the VPN connection requires static routes. If you
--   are creating a VPN connection for a device that does not support BGP,
--   you must specify <tt>true</tt> . Default: <tt>false</tt>
cvcOptions :: Lens' CreateVPNConnection (Maybe VPNConnectionOptionsSpecification)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cvcDryRun :: Lens' CreateVPNConnection (Maybe Bool)

-- | The type of VPN connection (<tt>ipsec.1</tt> ).
cvcType :: Lens' CreateVPNConnection Text

-- | The ID of the customer gateway.
cvcCustomerGatewayId :: Lens' CreateVPNConnection Text

-- | The ID of the virtual private gateway.
cvcVPNGatewayId :: Lens' CreateVPNConnection Text

-- | Creates a value of <a>CreateVPNConnectionResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvcrsVPNConnection</a> - Information about the VPN
--   connection.</li>
--   <li><a>cvcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createVPNConnectionResponse :: Int -> CreateVPNConnectionResponse

-- | Contains the output of CreateVpnConnection.
--   
--   <i>See:</i> <a>createVPNConnectionResponse</a> smart constructor.
data CreateVPNConnectionResponse

-- | Information about the VPN connection.
cvcrsVPNConnection :: Lens' CreateVPNConnectionResponse (Maybe VPNConnection)

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


-- | Requests a VPC peering connection between two VPCs: a requester VPC
--   that you own and a peer VPC with which to create the connection. The
--   peer VPC can belong to another AWS account. The requester VPC and peer
--   VPC cannot have overlapping CIDR blocks.
--   
--   The owner of the peer VPC must accept the peering request to activate
--   the peering connection. The VPC peering connection request expires
--   after 7 days, after which it cannot be accepted or rejected.
--   
--   A <tt>CreateVpcPeeringConnection</tt> request between VPCs with
--   overlapping CIDR blocks results in the VPC peering connection having a
--   status of <tt>failed</tt> .
module Network.AWS.EC2.CreateVPCPeeringConnection

-- | Creates a value of <a>CreateVPCPeeringConnection</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvpcPeerVPCId</a> - The ID of the VPC with which you are
--   creating the VPC peering connection.</li>
--   <li><a>cvpcVPCId</a> - The ID of the requester VPC.</li>
--   <li><a>cvpcPeerOwnerId</a> - The AWS account ID of the owner of the
--   peer VPC. Default: Your AWS account ID</li>
--   <li><a>cvpcDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
createVPCPeeringConnection :: CreateVPCPeeringConnection

-- | Contains the parameters for CreateVpcPeeringConnection.
--   
--   <i>See:</i> <a>createVPCPeeringConnection</a> smart constructor.
data CreateVPCPeeringConnection

-- | The ID of the VPC with which you are creating the VPC peering
--   connection.
cvpcPeerVPCId :: Lens' CreateVPCPeeringConnection (Maybe Text)

-- | The ID of the requester VPC.
cvpcVPCId :: Lens' CreateVPCPeeringConnection (Maybe Text)

-- | The AWS account ID of the owner of the peer VPC. Default: Your AWS
--   account ID
cvpcPeerOwnerId :: Lens' CreateVPCPeeringConnection (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cvpcDryRun :: Lens' CreateVPCPeeringConnection (Maybe Bool)

-- | Creates a value of <a>CreateVPCPeeringConnectionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvpcrsVPCPeeringConnection</a> - Information about the VPC
--   peering connection.</li>
--   <li><a>cvpcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createVPCPeeringConnectionResponse :: Int -> CreateVPCPeeringConnectionResponse

-- | Contains the output of CreateVpcPeeringConnection.
--   
--   <i>See:</i> <a>createVPCPeeringConnectionResponse</a> smart
--   constructor.
data CreateVPCPeeringConnectionResponse

-- | Information about the VPC peering connection.
cvpcrsVPCPeeringConnection :: Lens' CreateVPCPeeringConnectionResponse (Maybe VPCPeeringConnection)

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


-- | Creates a VPC endpoint for a specified AWS service. An endpoint
--   enables you to create a private connection between your VPC and
--   another AWS service in your account. You can specify an endpoint
--   policy to attach to the endpoint that will control access to the
--   service from your VPC. You can also specify the VPC route tables that
--   use the endpoint.
--   
--   Currently, only endpoints to Amazon S3 are supported.
module Network.AWS.EC2.CreateVPCEndpoint

-- | Creates a value of <a>CreateVPCEndpoint</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvePolicyDocument</a> - A policy to attach to the endpoint that
--   controls access to the service. The policy must be in valid JSON
--   format. If this parameter is not specified, we attach a default policy
--   that allows full access to the service.</li>
--   <li><a>cveClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request. For more
--   information, see <a>How to Ensure Idempotency</a> .</li>
--   <li><a>cveDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cveRouteTableIds</a> - One or more route table IDs.</li>
--   <li><a>cveVPCId</a> - The ID of the VPC in which the endpoint will be
--   used.</li>
--   <li><a>cveServiceName</a> - The AWS service name, in the form
--   <tt>com.amazonaws.<i>region</i> .<i>service</i> </tt> . To get a list
--   of available services, use the <tt>DescribeVpcEndpointServices</tt>
--   request.</li>
--   </ul>
createVPCEndpoint :: Text -> Text -> CreateVPCEndpoint

-- | Contains the parameters for CreateVpcEndpoint.
--   
--   <i>See:</i> <a>createVPCEndpoint</a> smart constructor.
data CreateVPCEndpoint

-- | A policy to attach to the endpoint that controls access to the
--   service. The policy must be in valid JSON format. If this parameter is
--   not specified, we attach a default policy that allows full access to
--   the service.
cvePolicyDocument :: Lens' CreateVPCEndpoint (Maybe Text)

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request. For more information, see <a>How to Ensure
--   Idempotency</a> .
cveClientToken :: Lens' CreateVPCEndpoint (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cveDryRun :: Lens' CreateVPCEndpoint (Maybe Bool)

-- | One or more route table IDs.
cveRouteTableIds :: Lens' CreateVPCEndpoint [Text]

-- | The ID of the VPC in which the endpoint will be used.
cveVPCId :: Lens' CreateVPCEndpoint Text

-- | The AWS service name, in the form <tt>com.amazonaws.<i>region</i>
--   .<i>service</i> </tt> . To get a list of available services, use the
--   <tt>DescribeVpcEndpointServices</tt> request.
cveServiceName :: Lens' CreateVPCEndpoint Text

-- | Creates a value of <a>CreateVPCEndpointResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cversClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request.</li>
--   <li><a>cversVPCEndpoint</a> - Information about the endpoint.</li>
--   <li><a>cversResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createVPCEndpointResponse :: Int -> CreateVPCEndpointResponse

-- | Contains the output of CreateVpcEndpoint.
--   
--   <i>See:</i> <a>createVPCEndpointResponse</a> smart constructor.
data CreateVPCEndpointResponse

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request.
cversClientToken :: Lens' CreateVPCEndpointResponse (Maybe Text)

-- | Information about the endpoint.
cversVPCEndpoint :: Lens' CreateVPCEndpointResponse (Maybe VPCEndpoint)

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


-- | Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you
--   can create uses a <i>28 netmask (16 IPv4 addresses), and the largest
--   uses a </i>16 netmask (65,536 IPv4 addresses). To help you decide how
--   big to make your VPC, see <a>Your VPC and Subnets</a> in the <i>Amazon
--   Virtual Private Cloud User Guide</i> .
--   
--   You can optionally request an Amazon-provided IPv6 CIDR block for the
--   VPC. The IPv6 CIDR block uses a /56 prefix length, and is allocated
--   from Amazon's pool of IPv6 addresses. You cannot choose the IPv6 range
--   for your VPC.
--   
--   By default, each instance you launch in the VPC has the default DHCP
--   options, which includes only a default DNS server that we provide
--   (AmazonProvidedDNS). For more information about DHCP options, see
--   <a>DHCP Options Sets</a> in the <i>Amazon Virtual Private Cloud User
--   Guide</i> .
--   
--   You can specify the instance tenancy value for the VPC when you create
--   it. You can't change this value for the VPC after you create it. For
--   more information, see <a>Dedicated Instances</a> in the <i>Amazon
--   Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.CreateVPC

-- | Creates a value of <a>CreateVPC</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvAmazonProvidedIPv6CidrBlock</a> - Requests an Amazon-provided
--   IPv6 CIDR block with a /56 prefix length for the VPC. You cannot
--   specify the range of IP addresses, or the size of the CIDR block.</li>
--   <li><a>cvInstanceTenancy</a> - The tenancy options for instances
--   launched into the VPC. For <tt>default</tt> , instances are launched
--   with shared tenancy by default. You can launch instances with any
--   tenancy into a shared tenancy VPC. For <tt>dedicated</tt> , instances
--   are launched as dedicated tenancy instances by default. You can only
--   launch instances with a tenancy of <tt>dedicated</tt> or <tt>host</tt>
--   into a dedicated tenancy VPC. <b>Important:</b> The <tt>host</tt>
--   value cannot be used with this parameter. Use the <tt>default</tt> or
--   <tt>dedicated</tt> values only. Default: <tt>default</tt></li>
--   <li><a>cvDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cvCidrBlock</a> - The IPv4 network range for the VPC, in CIDR
--   notation. For example, <tt>10.0.0.0/16</tt> .</li>
--   </ul>
createVPC :: Text -> CreateVPC

-- | Contains the parameters for CreateVpc.
--   
--   <i>See:</i> <a>createVPC</a> smart constructor.
data CreateVPC

-- | Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length
--   for the VPC. You cannot specify the range of IP addresses, or the size
--   of the CIDR block.
cvAmazonProvidedIPv6CidrBlock :: Lens' CreateVPC (Maybe Bool)

-- | The tenancy options for instances launched into the VPC. For
--   <tt>default</tt> , instances are launched with shared tenancy by
--   default. You can launch instances with any tenancy into a shared
--   tenancy VPC. For <tt>dedicated</tt> , instances are launched as
--   dedicated tenancy instances by default. You can only launch instances
--   with a tenancy of <tt>dedicated</tt> or <tt>host</tt> into a dedicated
--   tenancy VPC. <b>Important:</b> The <tt>host</tt> value cannot be used
--   with this parameter. Use the <tt>default</tt> or <tt>dedicated</tt>
--   values only. Default: <tt>default</tt>
cvInstanceTenancy :: Lens' CreateVPC (Maybe Tenancy)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cvDryRun :: Lens' CreateVPC (Maybe Bool)

-- | The IPv4 network range for the VPC, in CIDR notation. For example,
--   <tt>10.0.0.0/16</tt> .
cvCidrBlock :: Lens' CreateVPC Text

-- | Creates a value of <a>CreateVPCResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvrsVPC</a> - Information about the VPC.</li>
--   <li><a>cvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createVPCResponse :: Int -> CreateVPCResponse

-- | Contains the output of CreateVpc.
--   
--   <i>See:</i> <a>createVPCResponse</a> smart constructor.
data CreateVPCResponse

-- | Information about the VPC.
cvrsVPC :: Lens' CreateVPCResponse (Maybe VPC)

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


-- | Adds or overwrites one or more tags for the specified Amazon EC2
--   resource or resources. Each resource can have a maximum of 50 tags.
--   Each tag consists of a key and optional value. Tag keys must be unique
--   per resource.
--   
--   For more information about tags, see <a>Tagging Your Resources</a> in
--   the <i>Amazon Elastic Compute Cloud User Guide</i> . For more
--   information about creating IAM policies that control users' access to
--   resources based on tags, see <a>Supported Resource-Level Permissions
--   for Amazon EC2 API Actions</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
module Network.AWS.EC2.CreateTags

-- | Creates a value of <a>CreateTags</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cResources</a> - The IDs of one or more resources to tag. For
--   example, ami-1a2b3c4d.</li>
--   <li><a>cTags</a> - One or more tags. The <tt>value</tt> parameter is
--   required, but if you don't want the tag to have a value, specify the
--   parameter with no value, and we set the value to an empty string.</li>
--   </ul>
createTags :: CreateTags

-- | Contains the parameters for CreateTags.
--   
--   <i>See:</i> <a>createTags</a> smart constructor.
data CreateTags

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cDryRun :: Lens' CreateTags (Maybe Bool)

-- | The IDs of one or more resources to tag. For example, ami-1a2b3c4d.
cResources :: Lens' CreateTags [Text]

-- | One or more tags. The <tt>value</tt> parameter is required, but if you
--   don't want the tag to have a value, specify the parameter with no
--   value, and we set the value to an empty string.
cTags :: Lens' CreateTags [Tag]

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

-- | <i>See:</i> <a>createTagsResponse</a> smart constructor.
data CreateTagsResponse
instance GHC.Generics.Generic Network.AWS.EC2.CreateTags.CreateTagsResponse
instance Data.Data.Data Network.AWS.EC2.CreateTags.CreateTagsResponse
instance GHC.Show.Show Network.AWS.EC2.CreateTags.CreateTagsResponse
instance GHC.Read.Read Network.AWS.EC2.CreateTags.CreateTagsResponse
instance GHC.Classes.Eq Network.AWS.EC2.CreateTags.CreateTagsResponse
instance GHC.Generics.Generic Network.AWS.EC2.CreateTags.CreateTags
instance Data.Data.Data Network.AWS.EC2.CreateTags.CreateTags
instance GHC.Show.Show Network.AWS.EC2.CreateTags.CreateTags
instance GHC.Read.Read Network.AWS.EC2.CreateTags.CreateTags
instance GHC.Classes.Eq Network.AWS.EC2.CreateTags.CreateTags
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CreateTags.CreateTags
instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateTags.CreateTags
instance Control.DeepSeq.NFData Network.AWS.EC2.CreateTags.CreateTags
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CreateTags.CreateTags
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CreateTags.CreateTags
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CreateTags.CreateTags
instance Control.DeepSeq.NFData Network.AWS.EC2.CreateTags.CreateTagsResponse


-- | Creates a subnet in an existing VPC.
--   
--   When you create each subnet, you provide the VPC ID and the CIDR block
--   you want for the subnet. After you create a subnet, you can't change
--   its CIDR block. The subnet's IPv4 CIDR block can be the same as the
--   VPC's IPv4 CIDR block (assuming you want only a single subnet in the
--   VPC), or a subset of the VPC's IPv4 CIDR block. If you create more
--   than one subnet in a VPC, the subnets' CIDR blocks must not overlap.
--   The smallest IPv4 subnet (and VPC) you can create uses a <i>28 netmask
--   (16 IPv4 addresses), and the largest uses a </i>16 netmask (65,536
--   IPv4 addresses).
--   
--   If you've associated an IPv6 CIDR block with your VPC, you can create
--   a subnet with an IPv6 CIDR block that uses a /64 prefix length.
--   
--   <i>Important:</i> AWS reserves both the first four and the last IP
--   address in each subnet's CIDR block. They're not available for use.
--   
--   If you add more than one subnet to a VPC, they're set up in a star
--   topology with a logical router in the middle.
--   
--   If you launch an instance in a VPC using an Amazon EBS-backed AMI, the
--   IP address doesn't change if you stop and restart the instance (unlike
--   a similar instance launched outside a VPC, which gets a new IP address
--   when restarted). It's therefore possible to have a subnet with no
--   running instances (they're all stopped), but no remaining IP addresses
--   available.
--   
--   For more information about subnets, see <a>Your VPC and Subnets</a> in
--   the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.CreateSubnet

-- | Creates a value of <a>CreateSubnet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cssIPv6CidrBlock</a> - The IPv6 network range for the subnet,
--   in CIDR notation. The subnet size must use a /64 prefix length.</li>
--   <li><a>cssAvailabilityZone</a> - The Availability Zone for the subnet.
--   Default: AWS selects one for you. If you create more than one subnet
--   in your VPC, we may not necessarily select a different zone for each
--   subnet.</li>
--   <li><a>cssDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cssVPCId</a> - The ID of the VPC.</li>
--   <li><a>cssCidrBlock</a> - The IPv4 network range for the subnet, in
--   CIDR notation. For example, <tt>10.0.0.0/24</tt> .</li>
--   </ul>
createSubnet :: Text -> Text -> CreateSubnet

-- | Contains the parameters for CreateSubnet.
--   
--   <i>See:</i> <a>createSubnet</a> smart constructor.
data CreateSubnet

-- | The IPv6 network range for the subnet, in CIDR notation. The subnet
--   size must use a /64 prefix length.
cssIPv6CidrBlock :: Lens' CreateSubnet (Maybe Text)

-- | The Availability Zone for the subnet. Default: AWS selects one for
--   you. If you create more than one subnet in your VPC, we may not
--   necessarily select a different zone for each subnet.
cssAvailabilityZone :: Lens' CreateSubnet (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cssDryRun :: Lens' CreateSubnet (Maybe Bool)

-- | The ID of the VPC.
cssVPCId :: Lens' CreateSubnet Text

-- | The IPv4 network range for the subnet, in CIDR notation. For example,
--   <tt>10.0.0.0/24</tt> .
cssCidrBlock :: Lens' CreateSubnet Text

-- | Creates a value of <a>CreateSubnetResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crsSubnet</a> - Information about the subnet.</li>
--   <li><a>crsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createSubnetResponse :: Int -> CreateSubnetResponse

-- | Contains the output of CreateSubnet.
--   
--   <i>See:</i> <a>createSubnetResponse</a> smart constructor.
data CreateSubnetResponse

-- | Information about the subnet.
crsSubnet :: Lens' CreateSubnetResponse (Maybe Subnet)

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


-- | Creates a data feed for Spot instances, enabling you to view Spot
--   instance usage logs. You can create one data feed per AWS account. For
--   more information, see <a>Spot Instance Data Feed</a> in the <i>Amazon
--   Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.CreateSpotDatafeedSubscription

-- | Creates a value of <a>CreateSpotDatafeedSubscription</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csdsPrefix</a> - A prefix for the data feed file names.</li>
--   <li><a>csdsDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>csdsBucket</a> - The Amazon S3 bucket in which to store the
--   Spot instance data feed.</li>
--   </ul>
createSpotDatafeedSubscription :: Text -> CreateSpotDatafeedSubscription

-- | Contains the parameters for CreateSpotDatafeedSubscription.
--   
--   <i>See:</i> <a>createSpotDatafeedSubscription</a> smart constructor.
data CreateSpotDatafeedSubscription

-- | A prefix for the data feed file names.
csdsPrefix :: Lens' CreateSpotDatafeedSubscription (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
csdsDryRun :: Lens' CreateSpotDatafeedSubscription (Maybe Bool)

-- | The Amazon S3 bucket in which to store the Spot instance data feed.
csdsBucket :: Lens' CreateSpotDatafeedSubscription Text

-- | Creates a value of <a>CreateSpotDatafeedSubscriptionResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csdsrsSpotDatafeedSubscription</a> - The Spot instance data
--   feed subscription.</li>
--   <li><a>csdsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createSpotDatafeedSubscriptionResponse :: Int -> CreateSpotDatafeedSubscriptionResponse

-- | Contains the output of CreateSpotDatafeedSubscription.
--   
--   <i>See:</i> <a>createSpotDatafeedSubscriptionResponse</a> smart
--   constructor.
data CreateSpotDatafeedSubscriptionResponse

-- | The Spot instance data feed subscription.
csdsrsSpotDatafeedSubscription :: Lens' CreateSpotDatafeedSubscriptionResponse (Maybe SpotDatafeedSubscription)

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


-- | Creates a snapshot of an EBS volume and stores it in Amazon S3. You
--   can use snapshots for backups, to make copies of EBS volumes, and to
--   save data before shutting down an instance.
--   
--   When a snapshot is created, any AWS Marketplace product codes that are
--   associated with the source volume are propagated to the snapshot.
--   
--   You can take a snapshot of an attached volume that is in use. However,
--   snapshots only capture data that has been written to your EBS volume
--   at the time the snapshot command is issued; this may exclude any data
--   that has been cached by any applications or the operating system. If
--   you can pause any file systems on the volume long enough to take a
--   snapshot, your snapshot should be complete. However, if you cannot
--   pause all file writes to the volume, you should unmount the volume
--   from within the instance, issue the snapshot command, and then remount
--   the volume to ensure a consistent and complete snapshot. You may
--   remount and use your volume while the snapshot status is
--   <tt>pending</tt> .
--   
--   To create a snapshot for EBS volumes that serve as root devices, you
--   should stop the instance before taking the snapshot.
--   
--   Snapshots that are taken from encrypted volumes are automatically
--   encrypted. Volumes that are created from encrypted snapshots are also
--   automatically encrypted. Your encrypted volumes and any associated
--   snapshots always remain protected.
--   
--   For more information, see <a>Amazon Elastic Block Store</a> and
--   <a>Amazon EBS Encryption</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
module Network.AWS.EC2.CreateSnapshot

-- | Creates a value of <a>CreateSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccDescription</a> - A description for the snapshot.</li>
--   <li><a>ccDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>ccVolumeId</a> - The ID of the EBS volume.</li>
--   </ul>
createSnapshot :: Text -> CreateSnapshot

-- | Contains the parameters for CreateSnapshot.
--   
--   <i>See:</i> <a>createSnapshot</a> smart constructor.
data CreateSnapshot

-- | A description for the snapshot.
ccDescription :: Lens' CreateSnapshot (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
ccDryRun :: Lens' CreateSnapshot (Maybe Bool)

-- | The ID of the EBS volume.
ccVolumeId :: Lens' CreateSnapshot Text

-- | Creates a value of <a>Snapshot</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sStateMessage</a> - Encrypted Amazon EBS snapshots are copied
--   asynchronously. If a snapshot copy operation fails (for example, if
--   the proper AWS Key Management Service (AWS KMS) permissions are not
--   obtained) this field displays error state details to help you diagnose
--   why the error occurred. This parameter is only returned by the
--   <tt>DescribeSnapshots</tt> API operation.</li>
--   <li><a>sOwnerAlias</a> - Value from an Amazon-maintained list
--   (<tt>amazon</tt> | <tt>aws-marketplace</tt> | <tt>microsoft</tt> ) of
--   snapshot owners. Not to be confused with the user-configured AWS
--   account alias, which is set from the IAM console.</li>
--   <li><a>sDataEncryptionKeyId</a> - The data encryption key identifier
--   for the snapshot. This value is a unique identifier that corresponds
--   to the data encryption key that was used to encrypt the original
--   volume or snapshot copy. Because data encryption keys are inherited by
--   volumes created from snapshots, and vice versa, if snapshots share the
--   same data encryption key identifier, then they belong to the same
--   volume/snapshot lineage. This parameter is only returned by the
--   <tt>DescribeSnapshots</tt> API operation.</li>
--   <li><a>sKMSKeyId</a> - The full ARN of the AWS Key Management Service
--   (AWS KMS) customer master key (CMK) that was used to protect the
--   volume encryption key for the parent volume.</li>
--   <li><a>sTags</a> - Any tags assigned to the snapshot.</li>
--   <li><a>sSnapshotId</a> - The ID of the snapshot. Each snapshot
--   receives a unique identifier when it is created.</li>
--   <li><a>sOwnerId</a> - The AWS account ID of the EBS snapshot
--   owner.</li>
--   <li><a>sVolumeId</a> - The ID of the volume that was used to create
--   the snapshot. Snapshots created by the <tt>CopySnapshot</tt> action
--   have an arbitrary volume ID that should not be used for any
--   purpose.</li>
--   <li><a>sVolumeSize</a> - The size of the volume, in GiB.</li>
--   <li><a>sDescription</a> - The description for the snapshot.</li>
--   <li><a>sStartTime</a> - The time stamp when the snapshot was
--   initiated.</li>
--   <li><a>sProgress</a> - The progress of the snapshot, as a
--   percentage.</li>
--   <li><a>sState</a> - The snapshot state.</li>
--   <li><a>sEncrypted</a> - Indicates whether the snapshot is
--   encrypted.</li>
--   </ul>
snapshot :: Text -> Text -> Text -> Int -> Text -> UTCTime -> Text -> SnapshotState -> Bool -> Snapshot

-- | Describes a snapshot.
--   
--   <i>See:</i> <a>snapshot</a> smart constructor.
data Snapshot

-- | Encrypted Amazon EBS snapshots are copied asynchronously. If a
--   snapshot copy operation fails (for example, if the proper AWS Key
--   Management Service (AWS KMS) permissions are not obtained) this field
--   displays error state details to help you diagnose why the error
--   occurred. This parameter is only returned by the
--   <tt>DescribeSnapshots</tt> API operation.
sStateMessage :: Lens' Snapshot (Maybe Text)

-- | Value from an Amazon-maintained list (<tt>amazon</tt> |
--   <tt>aws-marketplace</tt> | <tt>microsoft</tt> ) of snapshot owners.
--   Not to be confused with the user-configured AWS account alias, which
--   is set from the IAM console.
sOwnerAlias :: Lens' Snapshot (Maybe Text)

-- | The data encryption key identifier for the snapshot. This value is a
--   unique identifier that corresponds to the data encryption key that was
--   used to encrypt the original volume or snapshot copy. Because data
--   encryption keys are inherited by volumes created from snapshots, and
--   vice versa, if snapshots share the same data encryption key
--   identifier, then they belong to the same volume/snapshot lineage. This
--   parameter is only returned by the <tt>DescribeSnapshots</tt> API
--   operation.
sDataEncryptionKeyId :: Lens' Snapshot (Maybe Text)

-- | The full ARN of the AWS Key Management Service (AWS KMS) customer
--   master key (CMK) that was used to protect the volume encryption key
--   for the parent volume.
sKMSKeyId :: Lens' Snapshot (Maybe Text)

-- | Any tags assigned to the snapshot.
sTags :: Lens' Snapshot [Tag]

-- | The ID of the snapshot. Each snapshot receives a unique identifier
--   when it is created.
sSnapshotId :: Lens' Snapshot Text

-- | The AWS account ID of the EBS snapshot owner.
sOwnerId :: Lens' Snapshot Text

-- | The ID of the volume that was used to create the snapshot. Snapshots
--   created by the <tt>CopySnapshot</tt> action have an arbitrary volume
--   ID that should not be used for any purpose.
sVolumeId :: Lens' Snapshot Text

-- | The size of the volume, in GiB.
sVolumeSize :: Lens' Snapshot Int

-- | The description for the snapshot.
sDescription :: Lens' Snapshot Text

-- | The time stamp when the snapshot was initiated.
sStartTime :: Lens' Snapshot UTCTime

-- | The progress of the snapshot, as a percentage.
sProgress :: Lens' Snapshot Text

-- | The snapshot state.
sState :: Lens' Snapshot SnapshotState

-- | Indicates whether the snapshot is encrypted.
sEncrypted :: Lens' Snapshot Bool
instance GHC.Generics.Generic Network.AWS.EC2.CreateSnapshot.CreateSnapshot
instance Data.Data.Data Network.AWS.EC2.CreateSnapshot.CreateSnapshot
instance GHC.Show.Show Network.AWS.EC2.CreateSnapshot.CreateSnapshot
instance GHC.Read.Read Network.AWS.EC2.CreateSnapshot.CreateSnapshot
instance GHC.Classes.Eq Network.AWS.EC2.CreateSnapshot.CreateSnapshot
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CreateSnapshot.CreateSnapshot
instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateSnapshot.CreateSnapshot
instance Control.DeepSeq.NFData Network.AWS.EC2.CreateSnapshot.CreateSnapshot
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CreateSnapshot.CreateSnapshot
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CreateSnapshot.CreateSnapshot
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CreateSnapshot.CreateSnapshot


-- | Creates a security group.
--   
--   A security group is for use with instances either in the EC2-Classic
--   platform or in a specific VPC. For more information, see <a>Amazon EC2
--   Security Groups</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> and <a>Security Groups for Your VPC</a> in the <i>Amazon
--   Virtual Private Cloud User Guide</i> .
--   
--   <i>Important:</i> EC2-Classic: You can have up to 500 security groups.
--   
--   EC2-VPC: You can create up to 500 security groups per VPC.
--   
--   When you create a security group, you specify a friendly name of your
--   choice. You can have a security group for use in EC2-Classic with the
--   same name as a security group for use in a VPC. However, you can't
--   have two security groups for use in EC2-Classic with the same name or
--   two security groups for use in a VPC with the same name.
--   
--   You have a default security group for use in EC2-Classic and a default
--   security group for use in your VPC. If you don't specify a security
--   group when you launch an instance, the instance is launched into the
--   appropriate default security group. A default security group includes
--   a default rule that grants instances unrestricted network access to
--   each other.
--   
--   You can add or remove rules from your security groups using
--   <tt>AuthorizeSecurityGroupIngress</tt> ,
--   <tt>AuthorizeSecurityGroupEgress</tt> ,
--   <tt>RevokeSecurityGroupIngress</tt> , and
--   <tt>RevokeSecurityGroupEgress</tt> .
module Network.AWS.EC2.CreateSecurityGroup

-- | Creates a value of <a>CreateSecurityGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csgVPCId</a> - [EC2-VPC] The ID of the VPC. Required for
--   EC2-VPC.</li>
--   <li><a>csgDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>csgGroupName</a> - The name of the security group. Constraints:
--   Up to 255 characters in length Constraints for EC2-Classic: ASCII
--   characters Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and
--   ._-:/()#,@[]+=&amp;;{}!$*</li>
--   <li><a>csgDescription</a> - A description for the security group. This
--   is informational only. Constraints: Up to 255 characters in length
--   Constraints for EC2-Classic: ASCII characters Constraints for EC2-VPC:
--   a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&amp;;{}!$*</li>
--   </ul>
createSecurityGroup :: Text -> Text -> CreateSecurityGroup

-- | Contains the parameters for CreateSecurityGroup.
--   
--   <i>See:</i> <a>createSecurityGroup</a> smart constructor.
data CreateSecurityGroup

-- | <ul>
--   <li><i>EC2-VPC</i> The ID of the VPC. Required for EC2-VPC.</li>
--   </ul>
csgVPCId :: Lens' CreateSecurityGroup (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
csgDryRun :: Lens' CreateSecurityGroup (Maybe Bool)

-- | The name of the security group. Constraints: Up to 255 characters in
--   length Constraints for EC2-Classic: ASCII characters Constraints for
--   EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&amp;;{}!$*
csgGroupName :: Lens' CreateSecurityGroup Text

-- | A description for the security group. This is informational only.
--   Constraints: Up to 255 characters in length Constraints for
--   EC2-Classic: ASCII characters Constraints for EC2-VPC: a-z, A-Z, 0-9,
--   spaces, and ._-:/()#,@[]+=&amp;;{}!$*
csgDescription :: Lens' CreateSecurityGroup Text

-- | Creates a value of <a>CreateSecurityGroupResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csgrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>csgrsGroupId</a> - The ID of the security group.</li>
--   </ul>
createSecurityGroupResponse :: Int -> Text -> CreateSecurityGroupResponse

-- | Contains the output of CreateSecurityGroup.
--   
--   <i>See:</i> <a>createSecurityGroupResponse</a> smart constructor.
data CreateSecurityGroupResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
csgrsResponseStatus :: Lens' CreateSecurityGroupResponse Int

-- | The ID of the security group.
csgrsGroupId :: Lens' CreateSecurityGroupResponse Text
instance GHC.Generics.Generic Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroupResponse
instance Data.Data.Data Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroupResponse
instance GHC.Show.Show Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroupResponse
instance GHC.Read.Read Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroupResponse
instance GHC.Classes.Eq Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroupResponse
instance GHC.Generics.Generic Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroup
instance Data.Data.Data Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroup
instance GHC.Show.Show Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroup
instance GHC.Read.Read Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroup
instance GHC.Classes.Eq Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroup
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroup
instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroup
instance Control.DeepSeq.NFData Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroup
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroup
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroup
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroup
instance Control.DeepSeq.NFData Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroupResponse


-- | Creates a route table for the specified VPC. After you create a route
--   table, you can add routes and associate the table with a subnet.
--   
--   For more information about route tables, see <a>Route Tables</a> in
--   the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.CreateRouteTable

-- | Creates a value of <a>CreateRouteTable</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crtDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>crtVPCId</a> - The ID of the VPC.</li>
--   </ul>
createRouteTable :: Text -> CreateRouteTable

-- | Contains the parameters for CreateRouteTable.
--   
--   <i>See:</i> <a>createRouteTable</a> smart constructor.
data CreateRouteTable

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
crtDryRun :: Lens' CreateRouteTable (Maybe Bool)

-- | The ID of the VPC.
crtVPCId :: Lens' CreateRouteTable Text

-- | Creates a value of <a>CreateRouteTableResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crtrsRouteTable</a> - Information about the route table.</li>
--   <li><a>crtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createRouteTableResponse :: Int -> CreateRouteTableResponse

-- | Contains the output of CreateRouteTable.
--   
--   <i>See:</i> <a>createRouteTableResponse</a> smart constructor.
data CreateRouteTableResponse

-- | Information about the route table.
crtrsRouteTable :: Lens' CreateRouteTableResponse (Maybe RouteTable)

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


-- | Creates a route in a route table within a VPC.
--   
--   You must specify one of the following targets: Internet gateway or
--   virtual private gateway, NAT instance, NAT gateway, VPC peering
--   connection, network interface, or egress-only Internet gateway.
--   
--   When determining how to route traffic, we use the route with the most
--   specific match. For example, traffic is destined for the IPv4 address
--   <tt>192.0.2.3</tt> , and the route table includes the following two
--   IPv4 routes:
--   
--   <ul>
--   <li><tt>192.0.2.0/24</tt> (goes to some target A)</li>
--   <li><tt>192.0.2.0/28</tt> (goes to some target B)</li>
--   </ul>
--   
--   Both routes apply to the traffic destined for <tt>192.0.2.3</tt> .
--   However, the second route in the list covers a smaller number of IP
--   addresses and is therefore more specific, so we use that route to
--   determine where to target the traffic.
--   
--   For more information about route tables, see <a>Route Tables</a> in
--   the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.CreateRoute

-- | Creates a value of <a>CreateRoute</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crVPCPeeringConnectionId</a> - The ID of a VPC peering
--   connection.</li>
--   <li><a>crInstanceId</a> - The ID of a NAT instance in your VPC. The
--   operation fails if you specify an instance ID unless exactly one
--   network interface is attached.</li>
--   <li><a>crEgressOnlyInternetGatewayId</a> - [IPv6 traffic only] The ID
--   of an egress-only Internet gateway.</li>
--   <li><a>crDestinationIPv6CidrBlock</a> - The IPv6 CIDR block used for
--   the destination match. Routing decisions are based on the most
--   specific match.</li>
--   <li><a>crNatGatewayId</a> - [IPv4 traffic only] The ID of a NAT
--   gateway.</li>
--   <li><a>crNetworkInterfaceId</a> - The ID of a network interface.</li>
--   <li><a>crGatewayId</a> - The ID of an Internet gateway or virtual
--   private gateway attached to your VPC.</li>
--   <li><a>crDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>crDestinationCidrBlock</a> - The IPv4 CIDR address block used
--   for the destination match. Routing decisions are based on the most
--   specific match.</li>
--   <li><a>crRouteTableId</a> - The ID of the route table for the
--   route.</li>
--   </ul>
createRoute :: Text -> CreateRoute

-- | Contains the parameters for CreateRoute.
--   
--   <i>See:</i> <a>createRoute</a> smart constructor.
data CreateRoute

-- | The ID of a VPC peering connection.
crVPCPeeringConnectionId :: Lens' CreateRoute (Maybe Text)

-- | The ID of a NAT instance in your VPC. The operation fails if you
--   specify an instance ID unless exactly one network interface is
--   attached.
crInstanceId :: Lens' CreateRoute (Maybe Text)

-- | <ul>
--   <li><i>IPv6 traffic only</i> The ID of an egress-only Internet
--   gateway.</li>
--   </ul>
crEgressOnlyInternetGatewayId :: Lens' CreateRoute (Maybe Text)

-- | The IPv6 CIDR block used for the destination match. Routing decisions
--   are based on the most specific match.
crDestinationIPv6CidrBlock :: Lens' CreateRoute (Maybe Text)

-- | <ul>
--   <li><i>IPv4 traffic only</i> The ID of a NAT gateway.</li>
--   </ul>
crNatGatewayId :: Lens' CreateRoute (Maybe Text)

-- | The ID of a network interface.
crNetworkInterfaceId :: Lens' CreateRoute (Maybe Text)

-- | The ID of an Internet gateway or virtual private gateway attached to
--   your VPC.
crGatewayId :: Lens' CreateRoute (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
crDryRun :: Lens' CreateRoute (Maybe Bool)

-- | The IPv4 CIDR address block used for the destination match. Routing
--   decisions are based on the most specific match.
crDestinationCidrBlock :: Lens' CreateRoute (Maybe Text)

-- | The ID of the route table for the route.
crRouteTableId :: Lens' CreateRoute Text

-- | Creates a value of <a>CreateRouteResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crrsReturn</a> - Returns <tt>true</tt> if the request succeeds;
--   otherwise, it returns an error.</li>
--   <li><a>crrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createRouteResponse :: Int -> CreateRouteResponse

-- | Contains the output of CreateRoute.
--   
--   <i>See:</i> <a>createRouteResponse</a> smart constructor.
data CreateRouteResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
crrsReturn :: Lens' CreateRouteResponse (Maybe Bool)

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


-- | Creates a listing for Amazon EC2 Standard Reserved Instances to be
--   sold in the Reserved Instance Marketplace. You can submit one Standard
--   Reserved Instance listing at a time. To get a list of your Standard
--   Reserved Instances, you can use the <tt>DescribeReservedInstances</tt>
--   operation.
--   
--   The Reserved Instance Marketplace matches sellers who want to resell
--   Standard Reserved Instance capacity that they no longer need with
--   buyers who want to purchase additional capacity. Reserved Instances
--   bought and sold through the Reserved Instance Marketplace work like
--   any other Reserved Instances.
--   
--   To sell your Standard Reserved Instances, you must first register as a
--   seller in the Reserved Instance Marketplace. After completing the
--   registration process, you can create a Reserved Instance Marketplace
--   listing of some or all of your Standard Reserved Instances, and
--   specify the upfront price to receive for them. Your Standard Reserved
--   Instance listings then become available for purchase. To view the
--   details of your Standard Reserved Instance listing, you can use the
--   <tt>DescribeReservedInstancesListings</tt> operation.
--   
--   For more information, see <a>Reserved Instance Marketplace</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.CreateReservedInstancesListing

-- | Creates a value of <a>CreateReservedInstancesListing</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crilReservedInstancesId</a> - The ID of the active Standard
--   Reserved Instance.</li>
--   <li><a>crilInstanceCount</a> - The number of instances that are a part
--   of a Reserved Instance account to be listed in the Reserved Instance
--   Marketplace. This number should be less than or equal to the instance
--   count associated with the Reserved Instance ID specified in this
--   call.</li>
--   <li><a>crilPriceSchedules</a> - A list specifying the price of the
--   Standard Reserved Instance for each month remaining in the Reserved
--   Instance term.</li>
--   <li><a>crilClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure idempotency of your listings. This helps avoid
--   duplicate listings. For more information, see <a>Ensuring
--   Idempotency</a> .</li>
--   </ul>
createReservedInstancesListing :: Text -> Int -> Text -> CreateReservedInstancesListing

-- | Contains the parameters for CreateReservedInstancesListing.
--   
--   <i>See:</i> <a>createReservedInstancesListing</a> smart constructor.
data CreateReservedInstancesListing

-- | The ID of the active Standard Reserved Instance.
crilReservedInstancesId :: Lens' CreateReservedInstancesListing Text

-- | The number of instances that are a part of a Reserved Instance account
--   to be listed in the Reserved Instance Marketplace. This number should
--   be less than or equal to the instance count associated with the
--   Reserved Instance ID specified in this call.
crilInstanceCount :: Lens' CreateReservedInstancesListing Int

-- | A list specifying the price of the Standard Reserved Instance for each
--   month remaining in the Reserved Instance term.
crilPriceSchedules :: Lens' CreateReservedInstancesListing [PriceScheduleSpecification]

-- | Unique, case-sensitive identifier you provide to ensure idempotency of
--   your listings. This helps avoid duplicate listings. For more
--   information, see <a>Ensuring Idempotency</a> .
crilClientToken :: Lens' CreateReservedInstancesListing Text

-- | Creates a value of <a>CreateReservedInstancesListingResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crersReservedInstancesListings</a> - Information about the
--   Standard Reserved Instance listing.</li>
--   <li><a>crersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createReservedInstancesListingResponse :: Int -> CreateReservedInstancesListingResponse

-- | Contains the output of CreateReservedInstancesListing.
--   
--   <i>See:</i> <a>createReservedInstancesListingResponse</a> smart
--   constructor.
data CreateReservedInstancesListingResponse

-- | Information about the Standard Reserved Instance listing.
crersReservedInstancesListings :: Lens' CreateReservedInstancesListingResponse [ReservedInstancesListing]

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


-- | Creates a placement group that you launch cluster instances into. You
--   must give the group a name that's unique within the scope of your
--   account.
--   
--   For more information about placement groups and cluster instances, see
--   <a>Cluster Instances</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .
module Network.AWS.EC2.CreatePlacementGroup

-- | Creates a value of <a>CreatePlacementGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpgDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cpgGroupName</a> - A name for the placement group. Constraints:
--   Up to 255 ASCII characters</li>
--   <li><a>cpgStrategy</a> - The placement strategy.</li>
--   </ul>
createPlacementGroup :: Text -> PlacementStrategy -> CreatePlacementGroup

-- | Contains the parameters for CreatePlacementGroup.
--   
--   <i>See:</i> <a>createPlacementGroup</a> smart constructor.
data CreatePlacementGroup

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cpgDryRun :: Lens' CreatePlacementGroup (Maybe Bool)

-- | A name for the placement group. Constraints: Up to 255 ASCII
--   characters
cpgGroupName :: Lens' CreatePlacementGroup Text

-- | The placement strategy.
cpgStrategy :: Lens' CreatePlacementGroup PlacementStrategy

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

-- | <i>See:</i> <a>createPlacementGroupResponse</a> smart constructor.
data CreatePlacementGroupResponse
instance GHC.Generics.Generic Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroupResponse
instance Data.Data.Data Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroupResponse
instance GHC.Show.Show Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroupResponse
instance GHC.Read.Read Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroupResponse
instance GHC.Classes.Eq Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroupResponse
instance GHC.Generics.Generic Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroup
instance Data.Data.Data Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroup
instance GHC.Show.Show Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroup
instance GHC.Read.Read Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroup
instance GHC.Classes.Eq Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroup
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroup
instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroup
instance Control.DeepSeq.NFData Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroup
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroup
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroup
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroup
instance Control.DeepSeq.NFData Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroupResponse


-- | Creates a network interface in the specified subnet.
--   
--   For more information about network interfaces, see <a>Elastic Network
--   Interfaces</a> in the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.CreateNetworkInterface

-- | Creates a value of <a>CreateNetworkInterface</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cniGroups</a> - The IDs of one or more security groups.</li>
--   <li><a>cniPrivateIPAddresses</a> - One or more private IPv4
--   addresses.</li>
--   <li><a>cniIPv6AddressCount</a> - The number of IPv6 addresses to
--   assign to a network interface. Amazon EC2 automatically selects the
--   IPv6 addresses from the subnet range. You can't use this option if
--   specifying specific IPv6 addresses. If your subnet has the
--   <tt>AssignIpv6AddressOnCreation</tt> attribute set to <tt>true</tt> ,
--   you can specify <tt>0</tt> to override this setting.</li>
--   <li><a>cniPrivateIPAddress</a> - The primary private IPv4 address of
--   the network interface. If you don't specify an IPv4 address, Amazon
--   EC2 selects one for you from the subnet's IPv4 CIDR range. If you
--   specify an IP address, you cannot indicate any IP addresses specified
--   in <tt>privateIpAddresses</tt> as primary (only one IP address can be
--   designated as primary).</li>
--   <li><a>cniSecondaryPrivateIPAddressCount</a> - The number of secondary
--   private IPv4 addresses to assign to a network interface. When you
--   specify a number of secondary IPv4 addresses, Amazon EC2 selects these
--   IP addresses within the subnet's IPv4 CIDR range. You can't specify
--   this option and specify more than one private IP address using
--   <tt>privateIpAddresses</tt> . The number of IP addresses you can
--   assign to a network interface varies by instance type. For more
--   information, see <a>IP Addresses Per ENI Per Instance Type</a> in the
--   <i>Amazon Virtual Private Cloud User Guide</i> .</li>
--   <li><a>cniDescription</a> - A description for the network
--   interface.</li>
--   <li><a>cniDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cniIPv6Addresses</a> - One or more specific IPv6 addresses from
--   the IPv6 CIDR block range of your subnet. You can't use this option if
--   you're specifying a number of IPv6 addresses.</li>
--   <li><a>cniSubnetId</a> - The ID of the subnet to associate with the
--   network interface.</li>
--   </ul>
createNetworkInterface :: Text -> CreateNetworkInterface

-- | Contains the parameters for CreateNetworkInterface.
--   
--   <i>See:</i> <a>createNetworkInterface</a> smart constructor.
data CreateNetworkInterface

-- | The IDs of one or more security groups.
cniGroups :: Lens' CreateNetworkInterface [Text]

-- | One or more private IPv4 addresses.
cniPrivateIPAddresses :: Lens' CreateNetworkInterface [PrivateIPAddressSpecification]

-- | The number of IPv6 addresses to assign to a network interface. Amazon
--   EC2 automatically selects the IPv6 addresses from the subnet range.
--   You can't use this option if specifying specific IPv6 addresses. If
--   your subnet has the <tt>AssignIpv6AddressOnCreation</tt> attribute set
--   to <tt>true</tt> , you can specify <tt>0</tt> to override this
--   setting.
cniIPv6AddressCount :: Lens' CreateNetworkInterface (Maybe Int)

-- | The primary private IPv4 address of the network interface. If you
--   don't specify an IPv4 address, Amazon EC2 selects one for you from the
--   subnet's IPv4 CIDR range. If you specify an IP address, you cannot
--   indicate any IP addresses specified in <tt>privateIpAddresses</tt> as
--   primary (only one IP address can be designated as primary).
cniPrivateIPAddress :: Lens' CreateNetworkInterface (Maybe Text)

-- | The number of secondary private IPv4 addresses to assign to a network
--   interface. When you specify a number of secondary IPv4 addresses,
--   Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR
--   range. You can't specify this option and specify more than one private
--   IP address using <tt>privateIpAddresses</tt> . The number of IP
--   addresses you can assign to a network interface varies by instance
--   type. For more information, see <a>IP Addresses Per ENI Per Instance
--   Type</a> in the <i>Amazon Virtual Private Cloud User Guide</i> .
cniSecondaryPrivateIPAddressCount :: Lens' CreateNetworkInterface (Maybe Int)

-- | A description for the network interface.
cniDescription :: Lens' CreateNetworkInterface (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cniDryRun :: Lens' CreateNetworkInterface (Maybe Bool)

-- | One or more specific IPv6 addresses from the IPv6 CIDR block range of
--   your subnet. You can't use this option if you're specifying a number
--   of IPv6 addresses.
cniIPv6Addresses :: Lens' CreateNetworkInterface [InstanceIPv6Address]

-- | The ID of the subnet to associate with the network interface.
cniSubnetId :: Lens' CreateNetworkInterface Text

-- | Creates a value of <a>CreateNetworkInterfaceResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cnirsNetworkInterface</a> - Information about the network
--   interface.</li>
--   <li><a>cnirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createNetworkInterfaceResponse :: Int -> CreateNetworkInterfaceResponse

-- | Contains the output of CreateNetworkInterface.
--   
--   <i>See:</i> <a>createNetworkInterfaceResponse</a> smart constructor.
data CreateNetworkInterfaceResponse

-- | Information about the network interface.
cnirsNetworkInterface :: Lens' CreateNetworkInterfaceResponse (Maybe NetworkInterface)

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


-- | Creates an entry (a rule) in a network ACL with the specified rule
--   number. Each network ACL has a set of numbered ingress rules and a
--   separate set of numbered egress rules. When determining whether a
--   packet should be allowed in or out of a subnet associated with the
--   ACL, we process the entries in the ACL according to the rule numbers,
--   in ascending order. Each network ACL has a set of ingress rules and a
--   separate set of egress rules.
--   
--   We recommend that you leave room between the rule numbers (for
--   example, 100, 110, 120, ...), and not number them one right after the
--   other (for example, 101, 102, 103, ...). This makes it easier to add a
--   rule between existing ones without having to renumber the rules.
--   
--   After you add an entry, you can't modify it; you must either replace
--   it, or create an entry and delete the old one.
--   
--   For more information about network ACLs, see <a>Network ACLs</a> in
--   the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.CreateNetworkACLEntry

-- | Creates a value of <a>CreateNetworkACLEntry</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cnaeIPv6CidrBlock</a> - The IPv6 network range to allow or
--   deny, in CIDR notation (for example <tt>2001:db8:1234:1a00::/64</tt>
--   ).</li>
--   <li><a>cnaeICMPTypeCode</a> - ICMP protocol: The ICMP or ICMPv6 type
--   and code. Required if specifying the ICMP protocol, or protocol 58
--   (ICMPv6) with an IPv6 CIDR block.</li>
--   <li><a>cnaePortRange</a> - TCP or UDP protocols: The range of ports
--   the rule applies to.</li>
--   <li><a>cnaeCidrBlock</a> - The IPv4 network range to allow or deny, in
--   CIDR notation (for example <tt>172.16.0.0/24</tt> ).</li>
--   <li><a>cnaeDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cnaeNetworkACLId</a> - The ID of the network ACL.</li>
--   <li><a>cnaeRuleNumber</a> - The rule number for the entry (for
--   example, 100). ACL entries are processed in ascending order by rule
--   number. Constraints: Positive integer from 1 to 32766. The range 32767
--   to 65535 is reserved for internal use.</li>
--   <li><a>cnaeProtocol</a> - The protocol. A value of <tt>-1</tt> or
--   <tt>all</tt> means all protocols. If you specify <tt>all</tt> ,
--   <tt>-1</tt> , or a protocol number other than <tt>tcp</tt> ,
--   <tt>udp</tt> , or <tt>icmp</tt> , traffic on all ports is allowed,
--   regardless of any ports or ICMP types or codes you specify. If you
--   specify protocol <tt>58</tt> (ICMPv6) and specify an IPv4 CIDR block,
--   traffic for all ICMP types and codes allowed, regardless of any that
--   you specify. If you specify protocol <tt>58</tt> (ICMPv6) and specify
--   an IPv6 CIDR block, you must specify an ICMP type and code.</li>
--   <li><a>cnaeRuleAction</a> - Indicates whether to allow or deny the
--   traffic that matches the rule.</li>
--   <li><a>cnaeEgress</a> - Indicates whether this is an egress rule (rule
--   is applied to traffic leaving the subnet).</li>
--   </ul>
createNetworkACLEntry :: Text -> Int -> Text -> RuleAction -> Bool -> CreateNetworkACLEntry

-- | Contains the parameters for CreateNetworkAclEntry.
--   
--   <i>See:</i> <a>createNetworkACLEntry</a> smart constructor.
data CreateNetworkACLEntry

-- | The IPv6 network range to allow or deny, in CIDR notation (for example
--   <tt>2001:db8:1234:1a00::/64</tt> ).
cnaeIPv6CidrBlock :: Lens' CreateNetworkACLEntry (Maybe Text)

-- | ICMP protocol: The ICMP or ICMPv6 type and code. Required if
--   specifying the ICMP protocol, or protocol 58 (ICMPv6) with an IPv6
--   CIDR block.
cnaeICMPTypeCode :: Lens' CreateNetworkACLEntry (Maybe ICMPTypeCode)

-- | TCP or UDP protocols: The range of ports the rule applies to.
cnaePortRange :: Lens' CreateNetworkACLEntry (Maybe PortRange)

-- | The IPv4 network range to allow or deny, in CIDR notation (for example
--   <tt>172.16.0.0/24</tt> ).
cnaeCidrBlock :: Lens' CreateNetworkACLEntry (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cnaeDryRun :: Lens' CreateNetworkACLEntry (Maybe Bool)

-- | The ID of the network ACL.
cnaeNetworkACLId :: Lens' CreateNetworkACLEntry Text

-- | The rule number for the entry (for example, 100). ACL entries are
--   processed in ascending order by rule number. Constraints: Positive
--   integer from 1 to 32766. The range 32767 to 65535 is reserved for
--   internal use.
cnaeRuleNumber :: Lens' CreateNetworkACLEntry Int

-- | The protocol. A value of <tt>-1</tt> or <tt>all</tt> means all
--   protocols. If you specify <tt>all</tt> , <tt>-1</tt> , or a protocol
--   number other than <tt>tcp</tt> , <tt>udp</tt> , or <tt>icmp</tt> ,
--   traffic on all ports is allowed, regardless of any ports or ICMP types
--   or codes you specify. If you specify protocol <tt>58</tt> (ICMPv6) and
--   specify an IPv4 CIDR block, traffic for all ICMP types and codes
--   allowed, regardless of any that you specify. If you specify protocol
--   <tt>58</tt> (ICMPv6) and specify an IPv6 CIDR block, you must specify
--   an ICMP type and code.
cnaeProtocol :: Lens' CreateNetworkACLEntry Text

-- | Indicates whether to allow or deny the traffic that matches the rule.
cnaeRuleAction :: Lens' CreateNetworkACLEntry RuleAction

-- | Indicates whether this is an egress rule (rule is applied to traffic
--   leaving the subnet).
cnaeEgress :: Lens' CreateNetworkACLEntry Bool

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

-- | <i>See:</i> <a>createNetworkACLEntryResponse</a> smart constructor.
data CreateNetworkACLEntryResponse
instance GHC.Generics.Generic Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntryResponse
instance Data.Data.Data Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntryResponse
instance GHC.Show.Show Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntryResponse
instance GHC.Read.Read Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntryResponse
instance GHC.Classes.Eq Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntryResponse
instance GHC.Generics.Generic Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntry
instance Data.Data.Data Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntry
instance GHC.Show.Show Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntry
instance GHC.Read.Read Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntry
instance GHC.Classes.Eq Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntry
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntry
instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntry
instance Control.DeepSeq.NFData Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntry
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntry
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntry
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntry
instance Control.DeepSeq.NFData Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntryResponse


-- | Creates a network ACL in a VPC. Network ACLs provide an optional layer
--   of security (in addition to security groups) for the instances in your
--   VPC.
--   
--   For more information about network ACLs, see <a>Network ACLs</a> in
--   the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.CreateNetworkACL

-- | Creates a value of <a>CreateNetworkACL</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cnaDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cnaVPCId</a> - The ID of the VPC.</li>
--   </ul>
createNetworkACL :: Text -> CreateNetworkACL

-- | Contains the parameters for CreateNetworkAcl.
--   
--   <i>See:</i> <a>createNetworkACL</a> smart constructor.
data CreateNetworkACL

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cnaDryRun :: Lens' CreateNetworkACL (Maybe Bool)

-- | The ID of the VPC.
cnaVPCId :: Lens' CreateNetworkACL Text

-- | Creates a value of <a>CreateNetworkACLResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cnarsNetworkACL</a> - Information about the network ACL.</li>
--   <li><a>cnarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createNetworkACLResponse :: Int -> CreateNetworkACLResponse

-- | Contains the output of CreateNetworkAcl.
--   
--   <i>See:</i> <a>createNetworkACLResponse</a> smart constructor.
data CreateNetworkACLResponse

-- | Information about the network ACL.
cnarsNetworkACL :: Lens' CreateNetworkACLResponse (Maybe NetworkACL)

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


-- | Creates a NAT gateway in the specified subnet. A NAT gateway can be
--   used to enable instances in a private subnet to connect to the
--   Internet. This action creates a network interface in the specified
--   subnet with a private IP address from the IP address range of the
--   subnet. For more information, see <a>NAT Gateways</a> in the <i>Amazon
--   Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.CreateNatGateway

-- | Creates a value of <a>CreateNatGateway</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cngClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request. For more
--   information, see <a>How to Ensure Idempotency</a> . Constraint:
--   Maximum 64 ASCII characters.</li>
--   <li><a>cngSubnetId</a> - The subnet in which to create the NAT
--   gateway.</li>
--   <li><a>cngAllocationId</a> - The allocation ID of an Elastic IP
--   address to associate with the NAT gateway. If the Elastic IP address
--   is associated with another resource, you must first disassociate
--   it.</li>
--   </ul>
createNatGateway :: Text -> Text -> CreateNatGateway

-- | Contains the parameters for CreateNatGateway.
--   
--   <i>See:</i> <a>createNatGateway</a> smart constructor.
data CreateNatGateway

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request. For more information, see <a>How to Ensure
--   Idempotency</a> . Constraint: Maximum 64 ASCII characters.
cngClientToken :: Lens' CreateNatGateway (Maybe Text)

-- | The subnet in which to create the NAT gateway.
cngSubnetId :: Lens' CreateNatGateway Text

-- | The allocation ID of an Elastic IP address to associate with the NAT
--   gateway. If the Elastic IP address is associated with another
--   resource, you must first disassociate it.
cngAllocationId :: Lens' CreateNatGateway Text

-- | Creates a value of <a>CreateNatGatewayResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cngrsClientToken</a> - Unique, case-sensitive identifier to
--   ensure the idempotency of the request. Only returned if a client token
--   was provided in the request.</li>
--   <li><a>cngrsNatGateway</a> - Information about the NAT gateway.</li>
--   <li><a>cngrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createNatGatewayResponse :: Int -> CreateNatGatewayResponse

-- | Contains the output of CreateNatGateway.
--   
--   <i>See:</i> <a>createNatGatewayResponse</a> smart constructor.
data CreateNatGatewayResponse

-- | Unique, case-sensitive identifier to ensure the idempotency of the
--   request. Only returned if a client token was provided in the request.
cngrsClientToken :: Lens' CreateNatGatewayResponse (Maybe Text)

-- | Information about the NAT gateway.
cngrsNatGateway :: Lens' CreateNatGatewayResponse (Maybe NatGateway)

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


-- | Creates a 2048-bit RSA key pair with the specified name. Amazon EC2
--   stores the public key and displays the private key for you to save to
--   a file. The private key is returned as an unencrypted PEM encoded
--   PKCS#8 private key. If a key with the specified name already exists,
--   Amazon EC2 returns an error.
--   
--   You can have up to five thousand key pairs per region.
--   
--   The key pair returned to you is available only in the region in which
--   you create it. To create a key pair that is available in all regions,
--   use <tt>ImportKeyPair</tt> .
--   
--   For more information about key pairs, see <a>Key Pairs</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.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>ckpDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>ckpKeyName</a> - A unique name for the key pair. Constraints:
--   Up to 255 ASCII characters</li>
--   </ul>
createKeyPair :: Text -> CreateKeyPair

-- | Contains the parameters for CreateKeyPair.
--   
--   <i>See:</i> <a>createKeyPair</a> smart constructor.
data CreateKeyPair

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
ckpDryRun :: Lens' CreateKeyPair (Maybe Bool)

-- | A unique name for the key pair. Constraints: Up to 255 ASCII
--   characters
ckpKeyName :: 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>ckprsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>ckprsKeyName</a> - The name of the key pair.</li>
--   <li><a>ckprsKeyFingerprint</a> - The SHA-1 digest of the DER encoded
--   private key.</li>
--   <li><a>ckprsKeyMaterial</a> - An unencrypted PEM encoded RSA private
--   key.</li>
--   </ul>
createKeyPairResponse :: Int -> Text -> Text -> Text -> CreateKeyPairResponse

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

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ckprsResponseStatus :: Lens' CreateKeyPairResponse Int

-- | The name of the key pair.
ckprsKeyName :: Lens' CreateKeyPairResponse Text

-- | The SHA-1 digest of the DER encoded private key.
ckprsKeyFingerprint :: Lens' CreateKeyPairResponse Text

-- | An unencrypted PEM encoded RSA private key.
ckprsKeyMaterial :: Lens' CreateKeyPairResponse Text
instance GHC.Generics.Generic Network.AWS.EC2.CreateKeyPair.CreateKeyPairResponse
instance Data.Data.Data Network.AWS.EC2.CreateKeyPair.CreateKeyPairResponse
instance GHC.Show.Show Network.AWS.EC2.CreateKeyPair.CreateKeyPairResponse
instance GHC.Read.Read Network.AWS.EC2.CreateKeyPair.CreateKeyPairResponse
instance GHC.Classes.Eq Network.AWS.EC2.CreateKeyPair.CreateKeyPairResponse
instance GHC.Generics.Generic Network.AWS.EC2.CreateKeyPair.CreateKeyPair
instance Data.Data.Data Network.AWS.EC2.CreateKeyPair.CreateKeyPair
instance GHC.Show.Show Network.AWS.EC2.CreateKeyPair.CreateKeyPair
instance GHC.Read.Read Network.AWS.EC2.CreateKeyPair.CreateKeyPair
instance GHC.Classes.Eq Network.AWS.EC2.CreateKeyPair.CreateKeyPair
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CreateKeyPair.CreateKeyPair
instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateKeyPair.CreateKeyPair
instance Control.DeepSeq.NFData Network.AWS.EC2.CreateKeyPair.CreateKeyPair
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CreateKeyPair.CreateKeyPair
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CreateKeyPair.CreateKeyPair
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CreateKeyPair.CreateKeyPair
instance Control.DeepSeq.NFData Network.AWS.EC2.CreateKeyPair.CreateKeyPairResponse


-- | Creates an Internet gateway for use with a VPC. After creating the
--   Internet gateway, you attach it to a VPC using
--   <tt>AttachInternetGateway</tt> .
--   
--   For more information about your VPC and Internet gateway, see the
--   <a>Amazon Virtual Private Cloud User Guide</a> .
module Network.AWS.EC2.CreateInternetGateway

-- | Creates a value of <a>CreateInternetGateway</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cigDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
createInternetGateway :: CreateInternetGateway

-- | Contains the parameters for CreateInternetGateway.
--   
--   <i>See:</i> <a>createInternetGateway</a> smart constructor.
data CreateInternetGateway

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cigDryRun :: Lens' CreateInternetGateway (Maybe Bool)

-- | Creates a value of <a>CreateInternetGatewayResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cigrsInternetGateway</a> - Information about the Internet
--   gateway.</li>
--   <li><a>cigrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createInternetGatewayResponse :: Int -> CreateInternetGatewayResponse

-- | Contains the output of CreateInternetGateway.
--   
--   <i>See:</i> <a>createInternetGatewayResponse</a> smart constructor.
data CreateInternetGatewayResponse

-- | Information about the Internet gateway.
cigrsInternetGateway :: Lens' CreateInternetGatewayResponse (Maybe InternetGateway)

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


-- | Exports a running or stopped instance to an S3 bucket.
--   
--   For information about the supported operating systems, image formats,
--   and known limitations for the types of instances you can export, see
--   <a>Exporting an Instance as a VM Using VM Import/Export</a> in the
--   <i>VM Import/Export User Guide</i> .
module Network.AWS.EC2.CreateInstanceExportTask

-- | Creates a value of <a>CreateInstanceExportTask</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cietTargetEnvironment</a> - The target virtualization
--   environment.</li>
--   <li><a>cietExportToS3Task</a> - The format and location for an
--   instance export task.</li>
--   <li><a>cietDescription</a> - A description for the conversion task or
--   the resource being exported. The maximum length is 255 bytes.</li>
--   <li><a>cietInstanceId</a> - The ID of the instance.</li>
--   </ul>
createInstanceExportTask :: Text -> CreateInstanceExportTask

-- | Contains the parameters for CreateInstanceExportTask.
--   
--   <i>See:</i> <a>createInstanceExportTask</a> smart constructor.
data CreateInstanceExportTask

-- | The target virtualization environment.
cietTargetEnvironment :: Lens' CreateInstanceExportTask (Maybe ExportEnvironment)

-- | The format and location for an instance export task.
cietExportToS3Task :: Lens' CreateInstanceExportTask (Maybe ExportToS3TaskSpecification)

-- | A description for the conversion task or the resource being exported.
--   The maximum length is 255 bytes.
cietDescription :: Lens' CreateInstanceExportTask (Maybe Text)

-- | The ID of the instance.
cietInstanceId :: Lens' CreateInstanceExportTask Text

-- | Creates a value of <a>CreateInstanceExportTaskResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cietrsExportTask</a> - Information about the instance export
--   task.</li>
--   <li><a>cietrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createInstanceExportTaskResponse :: Int -> CreateInstanceExportTaskResponse

-- | Contains the output for CreateInstanceExportTask.
--   
--   <i>See:</i> <a>createInstanceExportTaskResponse</a> smart constructor.
data CreateInstanceExportTaskResponse

-- | Information about the instance export task.
cietrsExportTask :: Lens' CreateInstanceExportTaskResponse (Maybe ExportTask)

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


-- | Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance
--   that is either running or stopped.
--   
--   If you customized your instance with instance store volumes or EBS
--   volumes in addition to the root device volume, the new AMI contains
--   block device mapping information for those volumes. When you launch an
--   instance from this new AMI, the instance automatically launches with
--   those additional volumes.
--   
--   For more information, see <a>Creating Amazon EBS-Backed Linux AMIs</a>
--   in the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.CreateImage

-- | Creates a value of <a>CreateImage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ciiNoReboot</a> - By default, Amazon EC2 attempts to shut down
--   and reboot the instance before creating the image. If the 'No Reboot'
--   option is set, Amazon EC2 doesn't shut down the instance before
--   creating the image. When this option is used, file system integrity on
--   the created image can't be guaranteed.</li>
--   <li><a>ciiDescription</a> - A description for the new image.</li>
--   <li><a>ciiBlockDeviceMappings</a> - Information about one or more
--   block device mappings.</li>
--   <li><a>ciiDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>ciiInstanceId</a> - The ID of the instance.</li>
--   <li><a>ciiName</a> - A name for the new image. Constraints: 3-128
--   alphanumeric characters, parentheses (()), square brackets ([]),
--   spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('),
--   at-signs (@), or underscores(_)</li>
--   </ul>
createImage :: Text -> Text -> CreateImage

-- | Contains the parameters for CreateImage.
--   
--   <i>See:</i> <a>createImage</a> smart constructor.
data CreateImage

-- | By default, Amazon EC2 attempts to shut down and reboot the instance
--   before creating the image. If the 'No Reboot' option is set, Amazon
--   EC2 doesn't shut down the instance before creating the image. When
--   this option is used, file system integrity on the created image can't
--   be guaranteed.
ciiNoReboot :: Lens' CreateImage (Maybe Bool)

-- | A description for the new image.
ciiDescription :: Lens' CreateImage (Maybe Text)

-- | Information about one or more block device mappings.
ciiBlockDeviceMappings :: Lens' CreateImage [BlockDeviceMapping]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
ciiDryRun :: Lens' CreateImage (Maybe Bool)

-- | The ID of the instance.
ciiInstanceId :: Lens' CreateImage Text

-- | A name for the new image. Constraints: 3-128 alphanumeric characters,
--   parentheses (()), square brackets ([]), spaces ( ), periods (.),
--   slashes (/), dashes (-), single quotes ('), at-signs (@), or
--   underscores(_)
ciiName :: Lens' CreateImage Text

-- | Creates a value of <a>CreateImageResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cirsImageId</a> - The ID of the new AMI.</li>
--   <li><a>cirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createImageResponse :: Int -> CreateImageResponse

-- | Contains the output of CreateImage.
--   
--   <i>See:</i> <a>createImageResponse</a> smart constructor.
data CreateImageResponse

-- | The ID of the new AMI.
cirsImageId :: Lens' CreateImageResponse (Maybe Text)

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


-- | Creates one or more flow logs to capture IP traffic for a specific
--   network interface, subnet, or VPC. Flow logs are delivered to a
--   specified log group in Amazon CloudWatch Logs. If you specify a VPC or
--   subnet in the request, a log stream is created in CloudWatch Logs for
--   each network interface in the subnet or VPC. Log streams can include
--   information about accepted and rejected traffic to a network
--   interface. You can view the data in your log streams using Amazon
--   CloudWatch Logs.
--   
--   In your request, you must also specify an IAM role that has permission
--   to publish logs to CloudWatch Logs.
module Network.AWS.EC2.CreateFlowLogs

-- | Creates a value of <a>CreateFlowLogs</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cflClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request. For more
--   information, see <a>How to Ensure Idempotency</a> .</li>
--   <li><a>cflResourceIds</a> - One or more subnet, network interface, or
--   VPC IDs. Constraints: Maximum of 1000 resources</li>
--   <li><a>cflResourceType</a> - The type of resource on which to create
--   the flow log.</li>
--   <li><a>cflTrafficType</a> - The type of traffic to log.</li>
--   <li><a>cflLogGroupName</a> - The name of the CloudWatch log
--   group.</li>
--   <li><a>cflDeliverLogsPermissionARN</a> - The ARN for the IAM role
--   that's used to post flow logs to a CloudWatch Logs log group.</li>
--   </ul>
createFlowLogs :: FlowLogsResourceType -> TrafficType -> Text -> Text -> CreateFlowLogs

-- | Contains the parameters for CreateFlowLogs.
--   
--   <i>See:</i> <a>createFlowLogs</a> smart constructor.
data CreateFlowLogs

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request. For more information, see <a>How to Ensure
--   Idempotency</a> .
cflClientToken :: Lens' CreateFlowLogs (Maybe Text)

-- | One or more subnet, network interface, or VPC IDs. Constraints:
--   Maximum of 1000 resources
cflResourceIds :: Lens' CreateFlowLogs [Text]

-- | The type of resource on which to create the flow log.
cflResourceType :: Lens' CreateFlowLogs FlowLogsResourceType

-- | The type of traffic to log.
cflTrafficType :: Lens' CreateFlowLogs TrafficType

-- | The name of the CloudWatch log group.
cflLogGroupName :: Lens' CreateFlowLogs Text

-- | The ARN for the IAM role that's used to post flow logs to a CloudWatch
--   Logs log group.
cflDeliverLogsPermissionARN :: Lens' CreateFlowLogs Text

-- | Creates a value of <a>CreateFlowLogsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cflrsUnsuccessful</a> - Information about the flow logs that
--   could not be created successfully.</li>
--   <li><a>cflrsClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request.</li>
--   <li><a>cflrsFlowLogIds</a> - The IDs of the flow logs.</li>
--   <li><a>cflrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createFlowLogsResponse :: Int -> CreateFlowLogsResponse

-- | Contains the output of CreateFlowLogs.
--   
--   <i>See:</i> <a>createFlowLogsResponse</a> smart constructor.
data CreateFlowLogsResponse

-- | Information about the flow logs that could not be created
--   successfully.
cflrsUnsuccessful :: Lens' CreateFlowLogsResponse [UnsuccessfulItem]

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request.
cflrsClientToken :: Lens' CreateFlowLogsResponse (Maybe Text)

-- | The IDs of the flow logs.
cflrsFlowLogIds :: Lens' CreateFlowLogsResponse [Text]

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


-- | <ul>
--   <li><i>IPv6 only</i> Creates an egress-only Internet gateway for your
--   VPC. An egress-only Internet gateway is used to enable outbound
--   communication over IPv6 from instances in your VPC to the Internet,
--   and prevents hosts outside of your VPC from initiating an IPv6
--   connection with your instance.</li>
--   </ul>
module Network.AWS.EC2.CreateEgressOnlyInternetGateway

-- | Creates a value of <a>CreateEgressOnlyInternetGateway</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ceoigClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request. For more
--   information, see <a>How to Ensure Idempotency</a> .</li>
--   <li><a>ceoigDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>ceoigVPCId</a> - The ID of the VPC for which to create the
--   egress-only Internet gateway.</li>
--   </ul>
createEgressOnlyInternetGateway :: Text -> CreateEgressOnlyInternetGateway

-- | <i>See:</i> <a>createEgressOnlyInternetGateway</a> smart constructor.
data CreateEgressOnlyInternetGateway

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request. For more information, see <a>How to Ensure
--   Idempotency</a> .
ceoigClientToken :: Lens' CreateEgressOnlyInternetGateway (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
ceoigDryRun :: Lens' CreateEgressOnlyInternetGateway (Maybe Bool)

-- | The ID of the VPC for which to create the egress-only Internet
--   gateway.
ceoigVPCId :: Lens' CreateEgressOnlyInternetGateway Text

-- | Creates a value of <a>CreateEgressOnlyInternetGatewayResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ceoigrsClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request.</li>
--   <li><a>ceoigrsEgressOnlyInternetGateway</a> - Information about the
--   egress-only Internet gateway.</li>
--   <li><a>ceoigrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createEgressOnlyInternetGatewayResponse :: Int -> CreateEgressOnlyInternetGatewayResponse

-- | <i>See:</i> <a>createEgressOnlyInternetGatewayResponse</a> smart
--   constructor.
data CreateEgressOnlyInternetGatewayResponse

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request.
ceoigrsClientToken :: Lens' CreateEgressOnlyInternetGatewayResponse (Maybe Text)

-- | Information about the egress-only Internet gateway.
ceoigrsEgressOnlyInternetGateway :: Lens' CreateEgressOnlyInternetGatewayResponse (Maybe EgressOnlyInternetGateway)

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


-- | Creates a set of DHCP options for your VPC. After creating the set,
--   you must associate it with the VPC, causing all existing and new
--   instances that you launch in the VPC to use this set of DHCP options.
--   The following are the individual DHCP options you can specify. For
--   more information about the options, see <a>RFC 2132</a> .
--   
--   <ul>
--   <li><tt>domain-name-servers</tt> - The IP addresses of up to four
--   domain name servers, or AmazonProvidedDNS. The default DHCP option set
--   specifies AmazonProvidedDNS. If specifying more than one domain name
--   server, specify the IP addresses in a single parameter, separated by
--   commas. If you want your instance to receive a custom DNS hostname as
--   specified in <tt>domain-name</tt> , you must set
--   <tt>domain-name-servers</tt> to a custom DNS server.</li>
--   <li><tt>domain-name</tt> - If you're using AmazonProvidedDNS in
--   "us-east-1", specify "ec2.internal". If you're using AmazonProvidedDNS
--   in another region, specify "region.compute.internal" (for example,
--   "ap-northeast-1.compute.internal"). Otherwise, specify a domain name
--   (for example, "MyCompany.com"). This value is used to complete
--   unqualified DNS hostnames. <b>Important</b> : Some Linux operating
--   systems accept multiple domain names separated by spaces. However,
--   Windows and other Linux operating systems treat the value as a single
--   domain, which results in unexpected behavior. If your DHCP options set
--   is associated with a VPC that has instances with multiple operating
--   systems, specify only one domain name.</li>
--   <li><tt>ntp-servers</tt> - The IP addresses of up to four Network Time
--   Protocol (NTP) servers.</li>
--   <li><tt>netbios-name-servers</tt> - The IP addresses of up to four
--   NetBIOS name servers.</li>
--   <li><tt>netbios-node-type</tt> - The NetBIOS node type (1, 2, 4, or
--   8). We recommend that you specify 2 (broadcast and multicast are not
--   currently supported). For more information about these node types, see
--   <a>RFC 2132</a> .</li>
--   </ul>
--   
--   Your VPC automatically starts out with a set of DHCP options that
--   includes only a DNS server that we provide (AmazonProvidedDNS). If you
--   create a set of options, and if your VPC has an Internet gateway, make
--   sure to set the <tt>domain-name-servers</tt> option either to
--   <tt>AmazonProvidedDNS</tt> or to a domain name server of your choice.
--   For more information about DHCP options, see <a>DHCP Options Sets</a>
--   in the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.CreateDHCPOptions

-- | Creates a value of <a>CreateDHCPOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdoDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cdoDHCPConfigurations</a> - A DHCP configuration option.</li>
--   </ul>
createDHCPOptions :: CreateDHCPOptions

-- | Contains the parameters for CreateDhcpOptions.
--   
--   <i>See:</i> <a>createDHCPOptions</a> smart constructor.
data CreateDHCPOptions

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cdoDryRun :: Lens' CreateDHCPOptions (Maybe Bool)

-- | A DHCP configuration option.
cdoDHCPConfigurations :: Lens' CreateDHCPOptions [NewDHCPConfiguration]

-- | Creates a value of <a>CreateDHCPOptionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdorsDHCPOptions</a> - A set of DHCP options.</li>
--   <li><a>cdorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createDHCPOptionsResponse :: Int -> CreateDHCPOptionsResponse

-- | Contains the output of CreateDhcpOptions.
--   
--   <i>See:</i> <a>createDHCPOptionsResponse</a> smart constructor.
data CreateDHCPOptionsResponse

-- | A set of DHCP options.
cdorsDHCPOptions :: Lens' CreateDHCPOptionsResponse (Maybe DHCPOptions)

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


-- | Provides information to AWS about your VPN customer gateway device.
--   The customer gateway is the appliance at your end of the VPN
--   connection. (The device on the AWS side of the VPN connection is the
--   virtual private gateway.) You must provide the Internet-routable IP
--   address of the customer gateway's external interface. The IP address
--   must be static and may be behind a device performing network address
--   translation (NAT).
--   
--   For devices that use Border Gateway Protocol (BGP), you can also
--   provide the device's BGP Autonomous System Number (ASN). You can use
--   an existing ASN assigned to your network. If you don't have an ASN
--   already, you can use a private ASN (in the 64512 - 65534 range).
--   
--   For more information about VPN customer gateways, see <a>Adding a
--   Hardware Virtual Private Gateway to Your VPC</a> in the <i>Amazon
--   Virtual Private Cloud User Guide</i> .
--   
--   <i>Important:</i> You cannot create more than one customer gateway
--   with the same VPN type, IP address, and BGP ASN parameter values. If
--   you run an identical request more than one time, the first request
--   creates the customer gateway, and subsequent requests return
--   information about the existing customer gateway. The subsequent
--   requests do not create new customer gateway resources.
module Network.AWS.EC2.CreateCustomerGateway

-- | Creates a value of <a>CreateCustomerGateway</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccgDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>ccgType</a> - The type of VPN connection that this customer
--   gateway supports (<tt>ipsec.1</tt> ).</li>
--   <li><a>ccgPublicIP</a> - The Internet-routable IP address for the
--   customer gateway's outside interface. The address must be static.</li>
--   <li><a>ccgBGPASN</a> - For devices that support BGP, the customer
--   gateway's BGP ASN. Default: 65000</li>
--   </ul>
createCustomerGateway :: GatewayType -> Text -> Int -> CreateCustomerGateway

-- | Contains the parameters for CreateCustomerGateway.
--   
--   <i>See:</i> <a>createCustomerGateway</a> smart constructor.
data CreateCustomerGateway

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
ccgDryRun :: Lens' CreateCustomerGateway (Maybe Bool)

-- | The type of VPN connection that this customer gateway supports
--   (<tt>ipsec.1</tt> ).
ccgType :: Lens' CreateCustomerGateway GatewayType

-- | The Internet-routable IP address for the customer gateway's outside
--   interface. The address must be static.
ccgPublicIP :: Lens' CreateCustomerGateway Text

-- | For devices that support BGP, the customer gateway's BGP ASN. Default:
--   65000
ccgBGPASN :: Lens' CreateCustomerGateway Int

-- | Creates a value of <a>CreateCustomerGatewayResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccgrsCustomerGateway</a> - Information about the customer
--   gateway.</li>
--   <li><a>ccgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createCustomerGatewayResponse :: Int -> CreateCustomerGatewayResponse

-- | Contains the output of CreateCustomerGateway.
--   
--   <i>See:</i> <a>createCustomerGatewayResponse</a> smart constructor.
data CreateCustomerGatewayResponse

-- | Information about the customer gateway.
ccgrsCustomerGateway :: Lens' CreateCustomerGatewayResponse (Maybe CustomerGateway)

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


-- | Copies a point-in-time snapshot of an EBS volume and stores it in
--   Amazon S3. You can copy the snapshot within the same region or from
--   one region to another. You can use the snapshot to create EBS volumes
--   or Amazon Machine Images (AMIs). The snapshot is copied to the
--   regional endpoint that you send the HTTP request to.
--   
--   Copies of encrypted EBS snapshots remain encrypted. Copies of
--   unencrypted snapshots remain unencrypted, unless the
--   <tt>Encrypted</tt> flag is specified during the snapshot copy
--   operation. By default, encrypted snapshot copies use the default AWS
--   Key Management Service (AWS KMS) customer master key (CMK); however,
--   you can specify a non-default CMK with the <tt>KmsKeyId</tt>
--   parameter.
--   
--   For more information, see <a>Copying an Amazon EBS Snapshot</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.CopySnapshot

-- | Creates a value of <a>CopySnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csPresignedURL</a> - The pre-signed URL that facilitates
--   copying an encrypted snapshot. This parameter is only required when
--   copying an encrypted snapshot with the Amazon EC2 Query API; it is
--   available as an optional parameter in all other cases. The
--   <tt>PresignedUrl</tt> should use the snapshot source endpoint, the
--   <tt>CopySnapshot</tt> action, and include the <tt>SourceRegion</tt> ,
--   <tt>SourceSnapshotId</tt> , and <tt>DestinationRegion</tt> parameters.
--   The <tt>PresignedUrl</tt> must be signed using AWS Signature Version
--   4. Because EBS snapshots are stored in Amazon S3, the signing
--   algorithm for this parameter uses the same logic that is described in
--   <a>Authenticating Requests by Using Query Parameters (AWS Signature
--   Version 4)</a> in the <i>Amazon Simple Storage Service API
--   Reference</i> . An invalid or improperly signed <tt>PresignedUrl</tt>
--   will cause the copy operation to fail asynchronously, and the snapshot
--   will move to an <tt>error</tt> state.</li>
--   <li><a>csEncrypted</a> - Specifies whether the destination snapshot
--   should be encrypted. You can encrypt a copy of an unencrypted snapshot
--   using this flag, but you cannot use it to create an unencrypted copy
--   from an encrypted snapshot. Your default CMK for EBS is used unless a
--   non-default AWS Key Management Service (AWS KMS) CMK is specified with
--   <tt>KmsKeyId</tt> . For more information, see <a>Amazon EBS
--   Encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
--   .</li>
--   <li><a>csDestinationRegion</a> - The destination region to use in the
--   <tt>PresignedUrl</tt> parameter of a snapshot copy operation. This
--   parameter is only valid for specifying the destination region in a
--   <tt>PresignedUrl</tt> parameter, where it is required.</li>
--   <li><a>csKMSKeyId</a> - The full ARN of the AWS Key Management Service
--   (AWS KMS) CMK to use when creating the snapshot copy. This parameter
--   is only required if you want to use a non-default CMK; if this
--   parameter is not specified, the default CMK for EBS is used. The ARN
--   contains the <tt>arn:aws:kms</tt> namespace, followed by the region of
--   the CMK, the AWS account ID of the CMK owner, the <tt>key</tt>
--   namespace, and then the CMK ID. For example,
--   arn:aws:kms:<i>us-east-1</i> :<i>012345678910</i>
--   :key/<i>abcd1234-a123-456a-a12b-a123b4cd56ef</i> . The specified CMK
--   must exist in the region that the snapshot is being copied to. If a
--   <tt>KmsKeyId</tt> is specified, the <tt>Encrypted</tt> flag must also
--   be set.</li>
--   <li><a>csDescription</a> - A description for the EBS snapshot.</li>
--   <li><a>csDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>csSourceRegion</a> - The ID of the region that contains the
--   snapshot to be copied.</li>
--   <li><a>csSourceSnapshotId</a> - The ID of the EBS snapshot to
--   copy.</li>
--   </ul>
copySnapshot :: Text -> Text -> CopySnapshot

-- | Contains the parameters for CopySnapshot.
--   
--   <i>See:</i> <a>copySnapshot</a> smart constructor.
data CopySnapshot

-- | The pre-signed URL that facilitates copying an encrypted snapshot.
--   This parameter is only required when copying an encrypted snapshot
--   with the Amazon EC2 Query API; it is available as an optional
--   parameter in all other cases. The <tt>PresignedUrl</tt> should use the
--   snapshot source endpoint, the <tt>CopySnapshot</tt> action, and
--   include the <tt>SourceRegion</tt> , <tt>SourceSnapshotId</tt> , and
--   <tt>DestinationRegion</tt> parameters. The <tt>PresignedUrl</tt> must
--   be signed using AWS Signature Version 4. Because EBS snapshots are
--   stored in Amazon S3, the signing algorithm for this parameter uses the
--   same logic that is described in <a>Authenticating Requests by Using
--   Query Parameters (AWS Signature Version 4)</a> in the <i>Amazon Simple
--   Storage Service API Reference</i> . An invalid or improperly signed
--   <tt>PresignedUrl</tt> will cause the copy operation to fail
--   asynchronously, and the snapshot will move to an <tt>error</tt> state.
csPresignedURL :: Lens' CopySnapshot (Maybe Text)

-- | Specifies whether the destination snapshot should be encrypted. You
--   can encrypt a copy of an unencrypted snapshot using this flag, but you
--   cannot use it to create an unencrypted copy from an encrypted
--   snapshot. Your default CMK for EBS is used unless a non-default AWS
--   Key Management Service (AWS KMS) CMK is specified with
--   <tt>KmsKeyId</tt> . For more information, see <a>Amazon EBS
--   Encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
csEncrypted :: Lens' CopySnapshot (Maybe Bool)

-- | The destination region to use in the <tt>PresignedUrl</tt> parameter
--   of a snapshot copy operation. This parameter is only valid for
--   specifying the destination region in a <tt>PresignedUrl</tt>
--   parameter, where it is required.
csDestinationRegion :: Lens' CopySnapshot (Maybe Text)

-- | The full ARN of the AWS Key Management Service (AWS KMS) CMK to use
--   when creating the snapshot copy. This parameter is only required if
--   you want to use a non-default CMK; if this parameter is not specified,
--   the default CMK for EBS is used. The ARN contains the
--   <tt>arn:aws:kms</tt> namespace, followed by the region of the CMK, the
--   AWS account ID of the CMK owner, the <tt>key</tt> namespace, and then
--   the CMK ID. For example, arn:aws:kms:<i>us-east-1</i>
--   :<i>012345678910</i> :key/<i>abcd1234-a123-456a-a12b-a123b4cd56ef</i>
--   . The specified CMK must exist in the region that the snapshot is
--   being copied to. If a <tt>KmsKeyId</tt> is specified, the
--   <tt>Encrypted</tt> flag must also be set.
csKMSKeyId :: Lens' CopySnapshot (Maybe Text)

-- | A description for the EBS snapshot.
csDescription :: Lens' CopySnapshot (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
csDryRun :: Lens' CopySnapshot (Maybe Bool)

-- | The ID of the region that contains the snapshot to be copied.
csSourceRegion :: Lens' CopySnapshot Text

-- | The ID of the EBS snapshot to copy.
csSourceSnapshotId :: Lens' CopySnapshot Text

-- | Creates a value of <a>CopySnapshotResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csrsSnapshotId</a> - The ID of the new snapshot.</li>
--   <li><a>csrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
copySnapshotResponse :: Int -> CopySnapshotResponse

-- | Contains the output of CopySnapshot.
--   
--   <i>See:</i> <a>copySnapshotResponse</a> smart constructor.
data CopySnapshotResponse

-- | The ID of the new snapshot.
csrsSnapshotId :: Lens' CopySnapshotResponse (Maybe Text)

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


-- | Initiates the copy of an AMI from the specified source region to the
--   current region. You specify the destination region by using its
--   endpoint when making the request.
--   
--   For more information, see <a>Copying AMIs</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> .
module Network.AWS.EC2.CopyImage

-- | Creates a value of <a>CopyImage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ciClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure idempotency of the request. For more information,
--   see <a>How to Ensure Idempotency</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i> .</li>
--   <li><a>ciEncrypted</a> - Specifies whether the destination snapshots
--   of the copied image should be encrypted. The default CMK for EBS is
--   used unless a non-default AWS Key Management Service (AWS KMS) CMK is
--   specified with <tt>KmsKeyId</tt> . For more information, see <a>Amazon
--   EBS Encryption</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>ciKMSKeyId</a> - The full ARN of the AWS Key Management Service
--   (AWS KMS) CMK to use when encrypting the snapshots of an image during
--   a copy operation. This parameter is only required if you want to use a
--   non-default CMK; if this parameter is not specified, the default CMK
--   for EBS is used. The ARN contains the <tt>arn:aws:kms</tt> namespace,
--   followed by the region of the CMK, the AWS account ID of the CMK
--   owner, the <tt>key</tt> namespace, and then the CMK ID. For example,
--   arn:aws:kms:<i>us-east-1</i> :<i>012345678910</i>
--   :key/<i>abcd1234-a123-456a-a12b-a123b4cd56ef</i> . The specified CMK
--   must exist in the region that the snapshot is being copied to. If a
--   <tt>KmsKeyId</tt> is specified, the <tt>Encrypted</tt> flag must also
--   be set.</li>
--   <li><a>ciDescription</a> - A description for the new AMI in the
--   destination region.</li>
--   <li><a>ciDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>ciSourceRegion</a> - The name of the region that contains the
--   AMI to copy.</li>
--   <li><a>ciSourceImageId</a> - The ID of the AMI to copy.</li>
--   <li><a>ciName</a> - The name of the new AMI in the destination
--   region.</li>
--   </ul>
copyImage :: Text -> Text -> Text -> CopyImage

-- | Contains the parameters for CopyImage.
--   
--   <i>See:</i> <a>copyImage</a> smart constructor.
data CopyImage

-- | Unique, case-sensitive identifier you provide to ensure idempotency of
--   the request. For more information, see <a>How to Ensure
--   Idempotency</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
--   .
ciClientToken :: Lens' CopyImage (Maybe Text)

-- | Specifies whether the destination snapshots of the copied image should
--   be encrypted. The default CMK for EBS is used unless a non-default AWS
--   Key Management Service (AWS KMS) CMK is specified with
--   <tt>KmsKeyId</tt> . For more information, see <a>Amazon EBS
--   Encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
ciEncrypted :: Lens' CopyImage (Maybe Bool)

-- | The full ARN of the AWS Key Management Service (AWS KMS) CMK to use
--   when encrypting the snapshots of an image during a copy operation.
--   This parameter is only required if you want to use a non-default CMK;
--   if this parameter is not specified, the default CMK for EBS is used.
--   The ARN contains the <tt>arn:aws:kms</tt> namespace, followed by the
--   region of the CMK, the AWS account ID of the CMK owner, the
--   <tt>key</tt> namespace, and then the CMK ID. For example,
--   arn:aws:kms:<i>us-east-1</i> :<i>012345678910</i>
--   :key/<i>abcd1234-a123-456a-a12b-a123b4cd56ef</i> . The specified CMK
--   must exist in the region that the snapshot is being copied to. If a
--   <tt>KmsKeyId</tt> is specified, the <tt>Encrypted</tt> flag must also
--   be set.
ciKMSKeyId :: Lens' CopyImage (Maybe Text)

-- | A description for the new AMI in the destination region.
ciDescription :: Lens' CopyImage (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
ciDryRun :: Lens' CopyImage (Maybe Bool)

-- | The name of the region that contains the AMI to copy.
ciSourceRegion :: Lens' CopyImage Text

-- | The ID of the AMI to copy.
ciSourceImageId :: Lens' CopyImage Text

-- | The name of the new AMI in the destination region.
ciName :: Lens' CopyImage Text

-- | Creates a value of <a>CopyImageResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coprsImageId</a> - The ID of the new AMI.</li>
--   <li><a>coprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
copyImageResponse :: Int -> CopyImageResponse

-- | Contains the output of CopyImage.
--   
--   <i>See:</i> <a>copyImageResponse</a> smart constructor.
data CopyImageResponse

-- | The ID of the new AMI.
coprsImageId :: Lens' CopyImageResponse (Maybe Text)

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


-- | Determines whether a product code is associated with an instance. This
--   action can only be used by the owner of the product code. It is useful
--   when a product code owner needs to verify whether another user's
--   instance is eligible for support.
module Network.AWS.EC2.ConfirmProductInstance

-- | Creates a value of <a>ConfirmProductInstance</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpiDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cpiProductCode</a> - The product code. This must be a product
--   code that you own.</li>
--   <li><a>cpiInstanceId</a> - The ID of the instance.</li>
--   </ul>
confirmProductInstance :: Text -> Text -> ConfirmProductInstance

-- | Contains the parameters for ConfirmProductInstance.
--   
--   <i>See:</i> <a>confirmProductInstance</a> smart constructor.
data ConfirmProductInstance

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cpiDryRun :: Lens' ConfirmProductInstance (Maybe Bool)

-- | The product code. This must be a product code that you own.
cpiProductCode :: Lens' ConfirmProductInstance Text

-- | The ID of the instance.
cpiInstanceId :: Lens' ConfirmProductInstance Text

-- | Creates a value of <a>ConfirmProductInstanceResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpirsReturn</a> - The return value of the request. Returns
--   <tt>true</tt> if the specified product code is owned by the requester
--   and associated with the specified instance.</li>
--   <li><a>cpirsOwnerId</a> - The AWS account ID of the instance owner.
--   This is only present if the product code is attached to the
--   instance.</li>
--   <li><a>cpirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
confirmProductInstanceResponse :: Int -> ConfirmProductInstanceResponse

-- | Contains the output of ConfirmProductInstance.
--   
--   <i>See:</i> <a>confirmProductInstanceResponse</a> smart constructor.
data ConfirmProductInstanceResponse

-- | The return value of the request. Returns <tt>true</tt> if the
--   specified product code is owned by the requester and associated with
--   the specified instance.
cpirsReturn :: Lens' ConfirmProductInstanceResponse (Maybe Bool)

-- | The AWS account ID of the instance owner. This is only present if the
--   product code is attached to the instance.
cpirsOwnerId :: Lens' ConfirmProductInstanceResponse (Maybe Text)

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


-- | Cancels one or more Spot instance requests. Spot instances are
--   instances that Amazon EC2 starts on your behalf when the bid price
--   that you specify exceeds the current Spot price. Amazon EC2
--   periodically sets the Spot price based on available Spot instance
--   capacity and current Spot instance requests. For more information, see
--   <a>Spot Instance Requests</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
--   
--   <i>Important:</i> Canceling a Spot instance request does not terminate
--   running Spot instances associated with the request.
module Network.AWS.EC2.CancelSpotInstanceRequests

-- | Creates a value of <a>CancelSpotInstanceRequests</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csirDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>csirSpotInstanceRequestIds</a> - One or more Spot instance
--   request IDs.</li>
--   </ul>
cancelSpotInstanceRequests :: CancelSpotInstanceRequests

-- | Contains the parameters for CancelSpotInstanceRequests.
--   
--   <i>See:</i> <a>cancelSpotInstanceRequests</a> smart constructor.
data CancelSpotInstanceRequests

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
csirDryRun :: Lens' CancelSpotInstanceRequests (Maybe Bool)

-- | One or more Spot instance request IDs.
csirSpotInstanceRequestIds :: Lens' CancelSpotInstanceRequests [Text]

-- | Creates a value of <a>CancelSpotInstanceRequestsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csirrsCancelledSpotInstanceRequests</a> - One or more Spot
--   instance requests.</li>
--   <li><a>csirrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
cancelSpotInstanceRequestsResponse :: Int -> CancelSpotInstanceRequestsResponse

-- | Contains the output of CancelSpotInstanceRequests.
--   
--   <i>See:</i> <a>cancelSpotInstanceRequestsResponse</a> smart
--   constructor.
data CancelSpotInstanceRequestsResponse

-- | One or more Spot instance requests.
csirrsCancelledSpotInstanceRequests :: Lens' CancelSpotInstanceRequestsResponse [CancelledSpotInstanceRequest]

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


-- | Cancels the specified Spot fleet requests.
--   
--   After you cancel a Spot fleet request, the Spot fleet launches no new
--   Spot instances. You must specify whether the Spot fleet should also
--   terminate its Spot instances. If you terminate the instances, the Spot
--   fleet request enters the <tt>cancelled_terminating</tt> state.
--   Otherwise, the Spot fleet request enters the
--   <tt>cancelled_running</tt> state and the instances continue to run
--   until they are interrupted or you terminate them manually.
module Network.AWS.EC2.CancelSpotFleetRequests

-- | Creates a value of <a>CancelSpotFleetRequests</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csfrDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>csfrSpotFleetRequestIds</a> - The IDs of the Spot fleet
--   requests.</li>
--   <li><a>csfrTerminateInstances</a> - Indicates whether to terminate
--   instances for a Spot fleet request if it is canceled
--   successfully.</li>
--   </ul>
cancelSpotFleetRequests :: Bool -> CancelSpotFleetRequests

-- | Contains the parameters for CancelSpotFleetRequests.
--   
--   <i>See:</i> <a>cancelSpotFleetRequests</a> smart constructor.
data CancelSpotFleetRequests

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
csfrDryRun :: Lens' CancelSpotFleetRequests (Maybe Bool)

-- | The IDs of the Spot fleet requests.
csfrSpotFleetRequestIds :: Lens' CancelSpotFleetRequests [Text]

-- | Indicates whether to terminate instances for a Spot fleet request if
--   it is canceled successfully.
csfrTerminateInstances :: Lens' CancelSpotFleetRequests Bool

-- | Creates a value of <a>CancelSpotFleetRequestsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csfrrsSuccessfulFleetRequests</a> - Information about the Spot
--   fleet requests that are successfully canceled.</li>
--   <li><a>csfrrsUnsuccessfulFleetRequests</a> - Information about the
--   Spot fleet requests that are not successfully canceled.</li>
--   <li><a>csfrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
cancelSpotFleetRequestsResponse :: Int -> CancelSpotFleetRequestsResponse

-- | Contains the output of CancelSpotFleetRequests.
--   
--   <i>See:</i> <a>cancelSpotFleetRequestsResponse</a> smart constructor.
data CancelSpotFleetRequestsResponse

-- | Information about the Spot fleet requests that are successfully
--   canceled.
csfrrsSuccessfulFleetRequests :: Lens' CancelSpotFleetRequestsResponse [CancelSpotFleetRequestsSuccessItem]

-- | Information about the Spot fleet requests that are not successfully
--   canceled.
csfrrsUnsuccessfulFleetRequests :: Lens' CancelSpotFleetRequestsResponse [CancelSpotFleetRequestsErrorItem]

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


-- | Cancels the specified Reserved Instance listing in the Reserved
--   Instance Marketplace.
--   
--   For more information, see <a>Reserved Instance Marketplace</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.CancelReservedInstancesListing

-- | Creates a value of <a>CancelReservedInstancesListing</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crilReservedInstancesListingId</a> - The ID of the Reserved
--   Instance listing.</li>
--   </ul>
cancelReservedInstancesListing :: Text -> CancelReservedInstancesListing

-- | Contains the parameters for CancelReservedInstancesListing.
--   
--   <i>See:</i> <a>cancelReservedInstancesListing</a> smart constructor.
data CancelReservedInstancesListing

-- | The ID of the Reserved Instance listing.
crilReservedInstancesListingId :: Lens' CancelReservedInstancesListing Text

-- | Creates a value of <a>CancelReservedInstancesListingResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crilrsReservedInstancesListings</a> - The Reserved Instance
--   listing.</li>
--   <li><a>crilrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
cancelReservedInstancesListingResponse :: Int -> CancelReservedInstancesListingResponse

-- | Contains the output of CancelReservedInstancesListing.
--   
--   <i>See:</i> <a>cancelReservedInstancesListingResponse</a> smart
--   constructor.
data CancelReservedInstancesListingResponse

-- | The Reserved Instance listing.
crilrsReservedInstancesListings :: Lens' CancelReservedInstancesListingResponse [ReservedInstancesListing]

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


-- | Cancels an in-process import virtual machine or import snapshot task.
module Network.AWS.EC2.CancelImportTask

-- | Creates a value of <a>CancelImportTask</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>citCancelReason</a> - The reason for canceling the task.</li>
--   <li><a>citImportTaskId</a> - The ID of the import image or import
--   snapshot task to be canceled.</li>
--   <li><a>citDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
cancelImportTask :: CancelImportTask

-- | Contains the parameters for CancelImportTask.
--   
--   <i>See:</i> <a>cancelImportTask</a> smart constructor.
data CancelImportTask

-- | The reason for canceling the task.
citCancelReason :: Lens' CancelImportTask (Maybe Text)

-- | The ID of the import image or import snapshot task to be canceled.
citImportTaskId :: Lens' CancelImportTask (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
citDryRun :: Lens' CancelImportTask (Maybe Bool)

-- | Creates a value of <a>CancelImportTaskResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>citrsState</a> - The current state of the task being
--   canceled.</li>
--   <li><a>citrsImportTaskId</a> - The ID of the task being canceled.</li>
--   <li><a>citrsPreviousState</a> - The current state of the task being
--   canceled.</li>
--   <li><a>citrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
cancelImportTaskResponse :: Int -> CancelImportTaskResponse

-- | Contains the output for CancelImportTask.
--   
--   <i>See:</i> <a>cancelImportTaskResponse</a> smart constructor.
data CancelImportTaskResponse

-- | The current state of the task being canceled.
citrsState :: Lens' CancelImportTaskResponse (Maybe Text)

-- | The ID of the task being canceled.
citrsImportTaskId :: Lens' CancelImportTaskResponse (Maybe Text)

-- | The current state of the task being canceled.
citrsPreviousState :: Lens' CancelImportTaskResponse (Maybe Text)

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


-- | Cancels an active export task. The request removes all artifacts of
--   the export, including any partially-created Amazon S3 objects. If the
--   export task is complete or is in the process of transferring the final
--   disk image, the command fails and returns an error.
module Network.AWS.EC2.CancelExportTask

-- | Creates a value of <a>CancelExportTask</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cetExportTaskId</a> - The ID of the export task. This is the ID
--   returned by <tt>CreateInstanceExportTask</tt> .</li>
--   </ul>
cancelExportTask :: Text -> CancelExportTask

-- | Contains the parameters for CancelExportTask.
--   
--   <i>See:</i> <a>cancelExportTask</a> smart constructor.
data CancelExportTask

-- | The ID of the export task. This is the ID returned by
--   <tt>CreateInstanceExportTask</tt> .
cetExportTaskId :: Lens' CancelExportTask Text

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

-- | <i>See:</i> <a>cancelExportTaskResponse</a> smart constructor.
data CancelExportTaskResponse
instance GHC.Generics.Generic Network.AWS.EC2.CancelExportTask.CancelExportTaskResponse
instance Data.Data.Data Network.AWS.EC2.CancelExportTask.CancelExportTaskResponse
instance GHC.Show.Show Network.AWS.EC2.CancelExportTask.CancelExportTaskResponse
instance GHC.Read.Read Network.AWS.EC2.CancelExportTask.CancelExportTaskResponse
instance GHC.Classes.Eq Network.AWS.EC2.CancelExportTask.CancelExportTaskResponse
instance GHC.Generics.Generic Network.AWS.EC2.CancelExportTask.CancelExportTask
instance Data.Data.Data Network.AWS.EC2.CancelExportTask.CancelExportTask
instance GHC.Show.Show Network.AWS.EC2.CancelExportTask.CancelExportTask
instance GHC.Read.Read Network.AWS.EC2.CancelExportTask.CancelExportTask
instance GHC.Classes.Eq Network.AWS.EC2.CancelExportTask.CancelExportTask
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CancelExportTask.CancelExportTask
instance Data.Hashable.Class.Hashable Network.AWS.EC2.CancelExportTask.CancelExportTask
instance Control.DeepSeq.NFData Network.AWS.EC2.CancelExportTask.CancelExportTask
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CancelExportTask.CancelExportTask
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CancelExportTask.CancelExportTask
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CancelExportTask.CancelExportTask
instance Control.DeepSeq.NFData Network.AWS.EC2.CancelExportTask.CancelExportTaskResponse


-- | Cancels an active conversion task. The task can be the import of an
--   instance or volume. The action removes all artifacts of the
--   conversion, including a partially uploaded volume or instance. If the
--   conversion is complete or is in the process of transferring the final
--   disk image, the command fails and returns an exception.
--   
--   For more information, see <a>Importing a Virtual Machine Using the
--   Amazon EC2 CLI</a> .
module Network.AWS.EC2.CancelConversionTask

-- | Creates a value of <a>CancelConversionTask</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cctReasonMessage</a> - The reason for canceling the conversion
--   task.</li>
--   <li><a>cctDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cctConversionTaskId</a> - The ID of the conversion task.</li>
--   </ul>
cancelConversionTask :: Text -> CancelConversionTask

-- | Contains the parameters for CancelConversionTask.
--   
--   <i>See:</i> <a>cancelConversionTask</a> smart constructor.
data CancelConversionTask

-- | The reason for canceling the conversion task.
cctReasonMessage :: Lens' CancelConversionTask (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cctDryRun :: Lens' CancelConversionTask (Maybe Bool)

-- | The ID of the conversion task.
cctConversionTaskId :: Lens' CancelConversionTask Text

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

-- | <i>See:</i> <a>cancelConversionTaskResponse</a> smart constructor.
data CancelConversionTaskResponse
instance GHC.Generics.Generic Network.AWS.EC2.CancelConversionTask.CancelConversionTaskResponse
instance Data.Data.Data Network.AWS.EC2.CancelConversionTask.CancelConversionTaskResponse
instance GHC.Show.Show Network.AWS.EC2.CancelConversionTask.CancelConversionTaskResponse
instance GHC.Read.Read Network.AWS.EC2.CancelConversionTask.CancelConversionTaskResponse
instance GHC.Classes.Eq Network.AWS.EC2.CancelConversionTask.CancelConversionTaskResponse
instance GHC.Generics.Generic Network.AWS.EC2.CancelConversionTask.CancelConversionTask
instance Data.Data.Data Network.AWS.EC2.CancelConversionTask.CancelConversionTask
instance GHC.Show.Show Network.AWS.EC2.CancelConversionTask.CancelConversionTask
instance GHC.Read.Read Network.AWS.EC2.CancelConversionTask.CancelConversionTask
instance GHC.Classes.Eq Network.AWS.EC2.CancelConversionTask.CancelConversionTask
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CancelConversionTask.CancelConversionTask
instance Data.Hashable.Class.Hashable Network.AWS.EC2.CancelConversionTask.CancelConversionTask
instance Control.DeepSeq.NFData Network.AWS.EC2.CancelConversionTask.CancelConversionTask
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CancelConversionTask.CancelConversionTask
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CancelConversionTask.CancelConversionTask
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CancelConversionTask.CancelConversionTask
instance Control.DeepSeq.NFData Network.AWS.EC2.CancelConversionTask.CancelConversionTaskResponse


-- | Cancels a bundling operation for an instance store-backed Windows
--   instance.
module Network.AWS.EC2.CancelBundleTask

-- | Creates a value of <a>CancelBundleTask</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cbtDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>cbtBundleId</a> - The ID of the bundle task.</li>
--   </ul>
cancelBundleTask :: Text -> CancelBundleTask

-- | Contains the parameters for CancelBundleTask.
--   
--   <i>See:</i> <a>cancelBundleTask</a> smart constructor.
data CancelBundleTask

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cbtDryRun :: Lens' CancelBundleTask (Maybe Bool)

-- | The ID of the bundle task.
cbtBundleId :: Lens' CancelBundleTask Text

-- | Creates a value of <a>CancelBundleTaskResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cbtrsBundleTask</a> - Information about the bundle task.</li>
--   <li><a>cbtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
cancelBundleTaskResponse :: Int -> CancelBundleTaskResponse

-- | Contains the output of CancelBundleTask.
--   
--   <i>See:</i> <a>cancelBundleTaskResponse</a> smart constructor.
data CancelBundleTaskResponse

-- | Information about the bundle task.
cbtrsBundleTask :: Lens' CancelBundleTaskResponse (Maybe BundleTask)

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


-- | Bundles an Amazon instance store-backed Windows instance.
--   
--   During bundling, only the root device volume (C:) is bundled. Data on
--   other instance store volumes is not preserved.
--   
--   For more information, see <a>Creating an Instance Store-Backed Windows
--   AMI</a> .
module Network.AWS.EC2.BundleInstance

-- | Creates a value of <a>BundleInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>biDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>biInstanceId</a> - The ID of the instance to bundle. Type:
--   String Default: None Required: Yes</li>
--   <li><a>biStorage</a> - The bucket in which to store the AMI. You can
--   specify a bucket that you already own or a new bucket that Amazon EC2
--   creates on your behalf. If you specify a bucket that belongs to
--   someone else, Amazon EC2 returns an error.</li>
--   </ul>
bundleInstance :: Text -> Storage -> BundleInstance

-- | Contains the parameters for BundleInstance.
--   
--   <i>See:</i> <a>bundleInstance</a> smart constructor.
data BundleInstance

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
biDryRun :: Lens' BundleInstance (Maybe Bool)

-- | The ID of the instance to bundle. Type: String Default: None Required:
--   Yes
biInstanceId :: Lens' BundleInstance Text

-- | The bucket in which to store the AMI. You can specify a bucket that
--   you already own or a new bucket that Amazon EC2 creates on your
--   behalf. If you specify a bucket that belongs to someone else, Amazon
--   EC2 returns an error.
biStorage :: Lens' BundleInstance Storage

-- | Creates a value of <a>BundleInstanceResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>birsBundleTask</a> - Information about the bundle task.</li>
--   <li><a>birsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
bundleInstanceResponse :: Int -> BundleInstanceResponse

-- | Contains the output of BundleInstance.
--   
--   <i>See:</i> <a>bundleInstanceResponse</a> smart constructor.
data BundleInstanceResponse

-- | Information about the bundle task.
birsBundleTask :: Lens' BundleInstanceResponse (Maybe BundleTask)

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


-- | Adds one or more ingress rules to a security group.
--   
--   Rule changes are propagated to instances within the security group as
--   quickly as possible. However, a small delay might occur.
--   
--   <ul>
--   <li><i>EC2-Classic</i> This action gives one or more IPv4 CIDR address
--   ranges permission to access a security group in your account, or gives
--   one or more security groups (called the <i>source groups</i> )
--   permission to access a security group for your account. A source group
--   can be for your own AWS account, or another. You can have up to 100
--   rules per group.</li>
--   <li><i>EC2-VPC</i> This action gives one or more IPv4 or IPv6 CIDR
--   address ranges permission to access a security group in your VPC, or
--   gives one or more other security groups (called the <i>source
--   groups</i> ) permission to access a security group for your VPC. The
--   security groups must all be for the same VPC or a peer VPC in a VPC
--   peering connection. For more information about VPC security group
--   limits, see <a>Amazon VPC Limits</a> .</li>
--   </ul>
module Network.AWS.EC2.AuthorizeSecurityGroupIngress

-- | Creates a value of <a>AuthorizeSecurityGroupIngress</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asgiFromPort</a> - The start of port range for the TCP and UDP
--   protocols, or an ICMP<i>ICMPv6 type number. For the ICMP</i>ICMPv6
--   type number, use <tt>-1</tt> to specify all types.</li>
--   <li><a>asgiIPPermissions</a> - A set of IP permissions. Can be used to
--   specify multiple rules in a single command.</li>
--   <li><a>asgiIPProtocol</a> - The IP protocol name (<tt>tcp</tt> ,
--   <tt>udp</tt> , <tt>icmp</tt> ) or number (see <a>Protocol Numbers</a>
--   ). (VPC only) Use <tt>-1</tt> to specify all protocols. If you specify
--   <tt>-1</tt> , or a protocol number other than <tt>tcp</tt> ,
--   <tt>udp</tt> , <tt>icmp</tt> , or <tt>58</tt> (ICMPv6), traffic on all
--   ports is allowed, regardless of any ports you specify. For
--   <tt>tcp</tt> , <tt>udp</tt> , and <tt>icmp</tt> , you must specify a
--   port range. For protocol <tt>58</tt> (ICMPv6), you can optionally
--   specify a port range; if you don't, traffic for all types and codes is
--   allowed.</li>
--   <li><a>asgiGroupId</a> - The ID of the security group. Required for a
--   nondefault VPC.</li>
--   <li><a>asgiToPort</a> - The end of port range for the TCP and UDP
--   protocols, or an ICMP<i>ICMPv6 code number. For the ICMP</i>ICMPv6
--   code number, use <tt>-1</tt> to specify all codes.</li>
--   <li><a>asgiCidrIP</a> - The CIDR IPv4 address range. You can't specify
--   this parameter when specifying a source security group.</li>
--   <li><a>asgiSourceSecurityGroupOwnerId</a> - [EC2-Classic] The AWS
--   account number for the source security group, if the source security
--   group is in a different account. You can't specify this parameter in
--   combination with the following parameters: the CIDR IP address range,
--   the IP protocol, the start of the port range, and the end of the port
--   range. Creates rules that grant full ICMP, UDP, and TCP access. To
--   create a rule with a specific IP protocol and port range, use a set of
--   IP permissions instead.</li>
--   <li><a>asgiGroupName</a> - [EC2-Classic, default VPC] The name of the
--   security group.</li>
--   <li><a>asgiSourceSecurityGroupName</a> - [EC2-Classic, default VPC]
--   The name of the source security group. You can't specify this
--   parameter in combination with the following parameters: the CIDR IP
--   address range, the start of the port range, the IP protocol, and the
--   end of the port range. Creates rules that grant full ICMP, UDP, and
--   TCP access. To create a rule with a specific IP protocol and port
--   range, use a set of IP permissions instead. For EC2-VPC, the source
--   security group must be in the same VPC.</li>
--   <li><a>asgiDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
authorizeSecurityGroupIngress :: AuthorizeSecurityGroupIngress

-- | Contains the parameters for AuthorizeSecurityGroupIngress.
--   
--   <i>See:</i> <a>authorizeSecurityGroupIngress</a> smart constructor.
data AuthorizeSecurityGroupIngress

-- | The start of port range for the TCP and UDP protocols, or an
--   ICMP<i>ICMPv6 type number. For the ICMP</i>ICMPv6 type number, use
--   <tt>-1</tt> to specify all types.
asgiFromPort :: Lens' AuthorizeSecurityGroupIngress (Maybe Int)

-- | A set of IP permissions. Can be used to specify multiple rules in a
--   single command.
asgiIPPermissions :: Lens' AuthorizeSecurityGroupIngress [IPPermission]

-- | The IP protocol name (<tt>tcp</tt> , <tt>udp</tt> , <tt>icmp</tt> ) or
--   number (see <a>Protocol Numbers</a> ). (VPC only) Use <tt>-1</tt> to
--   specify all protocols. If you specify <tt>-1</tt> , or a protocol
--   number other than <tt>tcp</tt> , <tt>udp</tt> , <tt>icmp</tt> , or
--   <tt>58</tt> (ICMPv6), traffic on all ports is allowed, regardless of
--   any ports you specify. For <tt>tcp</tt> , <tt>udp</tt> , and
--   <tt>icmp</tt> , you must specify a port range. For protocol
--   <tt>58</tt> (ICMPv6), you can optionally specify a port range; if you
--   don't, traffic for all types and codes is allowed.
asgiIPProtocol :: Lens' AuthorizeSecurityGroupIngress (Maybe Text)

-- | The ID of the security group. Required for a nondefault VPC.
asgiGroupId :: Lens' AuthorizeSecurityGroupIngress (Maybe Text)

-- | The end of port range for the TCP and UDP protocols, or an
--   ICMP<i>ICMPv6 code number. For the ICMP</i>ICMPv6 code number, use
--   <tt>-1</tt> to specify all codes.
asgiToPort :: Lens' AuthorizeSecurityGroupIngress (Maybe Int)

-- | The CIDR IPv4 address range. You can't specify this parameter when
--   specifying a source security group.
asgiCidrIP :: Lens' AuthorizeSecurityGroupIngress (Maybe Text)

-- | <ul>
--   <li><i>EC2-Classic</i> The AWS account number for the source security
--   group, if the source security group is in a different account. You
--   can't specify this parameter in combination with the following
--   parameters: the CIDR IP address range, the IP protocol, the start of
--   the port range, and the end of the port range. Creates rules that
--   grant full ICMP, UDP, and TCP access. To create a rule with a specific
--   IP protocol and port range, use a set of IP permissions instead.</li>
--   </ul>
asgiSourceSecurityGroupOwnerId :: Lens' AuthorizeSecurityGroupIngress (Maybe Text)

-- | <ul>
--   <li><i>EC2-Classic, default VPC</i> The name of the security
--   group.</li>
--   </ul>
asgiGroupName :: Lens' AuthorizeSecurityGroupIngress (Maybe Text)

-- | <ul>
--   <li><i>EC2-Classic, default VPC</i> The name of the source security
--   group. You can't specify this parameter in combination with the
--   following parameters: the CIDR IP address range, the start of the port
--   range, the IP protocol, and the end of the port range. Creates rules
--   that grant full ICMP, UDP, and TCP access. To create a rule with a
--   specific IP protocol and port range, use a set of IP permissions
--   instead. For EC2-VPC, the source security group must be in the same
--   VPC.</li>
--   </ul>
asgiSourceSecurityGroupName :: Lens' AuthorizeSecurityGroupIngress (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
asgiDryRun :: Lens' AuthorizeSecurityGroupIngress (Maybe Bool)

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

-- | <i>See:</i> <a>authorizeSecurityGroupIngressResponse</a> smart
--   constructor.
data AuthorizeSecurityGroupIngressResponse
instance GHC.Generics.Generic Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngressResponse
instance Data.Data.Data Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngressResponse
instance GHC.Show.Show Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngressResponse
instance GHC.Read.Read Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngressResponse
instance GHC.Classes.Eq Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngressResponse
instance GHC.Generics.Generic Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngress
instance Data.Data.Data Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngress
instance GHC.Show.Show Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngress
instance GHC.Read.Read Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngress
instance GHC.Classes.Eq Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngress
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngress
instance Data.Hashable.Class.Hashable Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngress
instance Control.DeepSeq.NFData Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngress
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngress
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngress
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngress
instance Control.DeepSeq.NFData Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngressResponse


-- | <ul>
--   <li><i>EC2-VPC only</i> Adds one or more egress rules to a security
--   group for use with a VPC. Specifically, this action permits instances
--   to send traffic to one or more destination IPv4 or IPv6 CIDR address
--   ranges, or to one or more destination security groups for the same
--   VPC. This action doesn't apply to security groups for use in
--   EC2-Classic. For more information, see <a>Security Groups for Your
--   VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i> . For
--   more information about security group limits, see <a>Amazon VPC
--   Limits</a> .</li>
--   </ul>
--   
--   Each rule consists of the protocol (for example, TCP), plus either a
--   CIDR range or a source group. For the TCP and UDP protocols, you must
--   also specify the destination port or port range. For the ICMP
--   protocol, you must also specify the ICMP type and code. You can use -1
--   for the type or code to mean all types or all codes.
--   
--   Rule changes are propagated to affected instances as quickly as
--   possible. However, a small delay might occur.
module Network.AWS.EC2.AuthorizeSecurityGroupEgress

-- | Creates a value of <a>AuthorizeSecurityGroupEgress</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asgeFromPort</a> - The start of port range for the TCP and UDP
--   protocols, or an ICMP type number. We recommend that you specify the
--   port range in a set of IP permissions instead.</li>
--   <li><a>asgeIPPermissions</a> - A set of IP permissions. You can't
--   specify a destination security group and a CIDR IP address range.</li>
--   <li><a>asgeIPProtocol</a> - The IP protocol name or number. We
--   recommend that you specify the protocol in a set of IP permissions
--   instead.</li>
--   <li><a>asgeToPort</a> - The end of port range for the TCP and UDP
--   protocols, or an ICMP type number. We recommend that you specify the
--   port range in a set of IP permissions instead.</li>
--   <li><a>asgeCidrIP</a> - The CIDR IPv4 address range. We recommend that
--   you specify the CIDR range in a set of IP permissions instead.</li>
--   <li><a>asgeSourceSecurityGroupOwnerId</a> - The AWS account number for
--   a destination security group. To authorize outbound access to a
--   destination security group, we recommend that you use a set of IP
--   permissions instead.</li>
--   <li><a>asgeSourceSecurityGroupName</a> - The name of a destination
--   security group. To authorize outbound access to a destination security
--   group, we recommend that you use a set of IP permissions instead.</li>
--   <li><a>asgeDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>asgeGroupId</a> - The ID of the security group.</li>
--   </ul>
authorizeSecurityGroupEgress :: Text -> AuthorizeSecurityGroupEgress

-- | Contains the parameters for AuthorizeSecurityGroupEgress.
--   
--   <i>See:</i> <a>authorizeSecurityGroupEgress</a> smart constructor.
data AuthorizeSecurityGroupEgress

-- | The start of port range for the TCP and UDP protocols, or an ICMP type
--   number. We recommend that you specify the port range in a set of IP
--   permissions instead.
asgeFromPort :: Lens' AuthorizeSecurityGroupEgress (Maybe Int)

-- | A set of IP permissions. You can't specify a destination security
--   group and a CIDR IP address range.
asgeIPPermissions :: Lens' AuthorizeSecurityGroupEgress [IPPermission]

-- | The IP protocol name or number. We recommend that you specify the
--   protocol in a set of IP permissions instead.
asgeIPProtocol :: Lens' AuthorizeSecurityGroupEgress (Maybe Text)

-- | The end of port range for the TCP and UDP protocols, or an ICMP type
--   number. We recommend that you specify the port range in a set of IP
--   permissions instead.
asgeToPort :: Lens' AuthorizeSecurityGroupEgress (Maybe Int)

-- | The CIDR IPv4 address range. We recommend that you specify the CIDR
--   range in a set of IP permissions instead.
asgeCidrIP :: Lens' AuthorizeSecurityGroupEgress (Maybe Text)

-- | The AWS account number for a destination security group. To authorize
--   outbound access to a destination security group, we recommend that you
--   use a set of IP permissions instead.
asgeSourceSecurityGroupOwnerId :: Lens' AuthorizeSecurityGroupEgress (Maybe Text)

-- | The name of a destination security group. To authorize outbound access
--   to a destination security group, we recommend that you use a set of IP
--   permissions instead.
asgeSourceSecurityGroupName :: Lens' AuthorizeSecurityGroupEgress (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
asgeDryRun :: Lens' AuthorizeSecurityGroupEgress (Maybe Bool)

-- | The ID of the security group.
asgeGroupId :: Lens' AuthorizeSecurityGroupEgress Text

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

-- | <i>See:</i> <a>authorizeSecurityGroupEgressResponse</a> smart
--   constructor.
data AuthorizeSecurityGroupEgressResponse
instance GHC.Generics.Generic Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgressResponse
instance Data.Data.Data Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgressResponse
instance GHC.Show.Show Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgressResponse
instance GHC.Read.Read Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgressResponse
instance GHC.Classes.Eq Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgressResponse
instance GHC.Generics.Generic Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgress
instance Data.Data.Data Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgress
instance GHC.Show.Show Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgress
instance GHC.Read.Read Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgress
instance GHC.Classes.Eq Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgress
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgress
instance Data.Hashable.Class.Hashable Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgress
instance Control.DeepSeq.NFData Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgress
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgress
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgress
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgress
instance Control.DeepSeq.NFData Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgressResponse


-- | Attaches an EBS volume to a running or stopped instance and exposes it
--   to the instance with the specified device name.
--   
--   Encrypted EBS volumes may only be attached to instances that support
--   Amazon EBS encryption. For more information, see <a>Amazon EBS
--   Encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
--   
--   For a list of supported device names, see <a>Attaching an EBS Volume
--   to an Instance</a> . Any device names that aren't reserved for
--   instance store volumes can be used for EBS volumes. For more
--   information, see <a>Amazon EC2 Instance Store</a> in the <i>Amazon
--   Elastic Compute Cloud User Guide</i> .
--   
--   If a volume has an AWS Marketplace product code:
--   
--   <ul>
--   <li>The volume can be attached only to a stopped instance.</li>
--   <li>AWS Marketplace product codes are copied from the volume to the
--   instance.</li>
--   <li>You must be subscribed to the product.</li>
--   <li>The instance type and operating system of the instance must
--   support the product. For example, you can't detach a volume from a
--   Windows instance and attach it to a Linux instance.</li>
--   </ul>
--   
--   For an overview of the AWS Marketplace, see <a>Introducing AWS
--   Marketplace</a> .
--   
--   For more information about EBS volumes, see <a>Attaching Amazon EBS
--   Volumes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.AttachVolume

-- | Creates a value of <a>AttachVolume</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>avVolumeId</a> - The ID of the EBS volume. The volume and
--   instance must be within the same Availability Zone.</li>
--   <li><a>avInstanceId</a> - The ID of the instance.</li>
--   <li><a>avDevice</a> - The device name to expose to the instance (for
--   example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).</li>
--   </ul>
attachVolume :: Text -> Text -> Text -> AttachVolume

-- | Contains the parameters for AttachVolume.
--   
--   <i>See:</i> <a>attachVolume</a> smart constructor.
data AttachVolume

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
avDryRun :: Lens' AttachVolume (Maybe Bool)

-- | The ID of the EBS volume. The volume and instance must be within the
--   same Availability Zone.
avVolumeId :: Lens' AttachVolume Text

-- | The ID of the instance.
avInstanceId :: Lens' AttachVolume Text

-- | The device name to expose to the instance (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).
avDevice :: Lens' AttachVolume Text

-- | Creates a value of <a>VolumeAttachment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>volInstanceId</a> - The ID of the instance.</li>
--   <li><a>volDeleteOnTermination</a> - Indicates whether the EBS volume
--   is deleted on instance termination.</li>
--   <li><a>volState</a> - The attachment state of the volume.</li>
--   <li><a>volDevice</a> - The device name.</li>
--   <li><a>volVolumeId</a> - The ID of the volume.</li>
--   <li><a>volAttachTime</a> - The time stamp when the attachment
--   initiated.</li>
--   </ul>
volumeAttachment :: VolumeAttachment

-- | Describes volume attachment details.
--   
--   <i>See:</i> <a>volumeAttachment</a> smart constructor.
data VolumeAttachment

-- | The ID of the instance.
volInstanceId :: Lens' VolumeAttachment (Maybe Text)

-- | Indicates whether the EBS volume is deleted on instance termination.
volDeleteOnTermination :: Lens' VolumeAttachment (Maybe Bool)

-- | The attachment state of the volume.
volState :: Lens' VolumeAttachment (Maybe VolumeAttachmentState)

-- | The device name.
volDevice :: Lens' VolumeAttachment (Maybe Text)

-- | The ID of the volume.
volVolumeId :: Lens' VolumeAttachment (Maybe Text)

-- | The time stamp when the attachment initiated.
volAttachTime :: Lens' VolumeAttachment (Maybe UTCTime)
instance GHC.Generics.Generic Network.AWS.EC2.AttachVolume.AttachVolume
instance Data.Data.Data Network.AWS.EC2.AttachVolume.AttachVolume
instance GHC.Show.Show Network.AWS.EC2.AttachVolume.AttachVolume
instance GHC.Read.Read Network.AWS.EC2.AttachVolume.AttachVolume
instance GHC.Classes.Eq Network.AWS.EC2.AttachVolume.AttachVolume
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.AttachVolume.AttachVolume
instance Data.Hashable.Class.Hashable Network.AWS.EC2.AttachVolume.AttachVolume
instance Control.DeepSeq.NFData Network.AWS.EC2.AttachVolume.AttachVolume
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.AttachVolume.AttachVolume
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.AttachVolume.AttachVolume
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.AttachVolume.AttachVolume


-- | Attaches a virtual private gateway to a VPC. For more information, see
--   <a>Adding a Hardware Virtual Private Gateway to Your VPC</a> in the
--   <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.AttachVPNGateway

-- | Creates a value of <a>AttachVPNGateway</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avgDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>avgVPNGatewayId</a> - The ID of the virtual private
--   gateway.</li>
--   <li><a>avgVPCId</a> - The ID of the VPC.</li>
--   </ul>
attachVPNGateway :: Text -> Text -> AttachVPNGateway

-- | Contains the parameters for AttachVpnGateway.
--   
--   <i>See:</i> <a>attachVPNGateway</a> smart constructor.
data AttachVPNGateway

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
avgDryRun :: Lens' AttachVPNGateway (Maybe Bool)

-- | The ID of the virtual private gateway.
avgVPNGatewayId :: Lens' AttachVPNGateway Text

-- | The ID of the VPC.
avgVPCId :: Lens' AttachVPNGateway Text

-- | Creates a value of <a>AttachVPNGatewayResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avgrsVPCAttachment</a> - Information about the attachment.</li>
--   <li><a>avgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
attachVPNGatewayResponse :: Int -> AttachVPNGatewayResponse

-- | Contains the output of AttachVpnGateway.
--   
--   <i>See:</i> <a>attachVPNGatewayResponse</a> smart constructor.
data AttachVPNGatewayResponse

-- | Information about the attachment.
avgrsVPCAttachment :: Lens' AttachVPNGatewayResponse (Maybe VPCAttachment)

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


-- | Attaches a network interface to an instance.
module Network.AWS.EC2.AttachNetworkInterface

-- | Creates a value of <a>AttachNetworkInterface</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aniDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>aniNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>aniInstanceId</a> - The ID of the instance.</li>
--   <li><a>aniDeviceIndex</a> - The index of the device for the network
--   interface attachment.</li>
--   </ul>
attachNetworkInterface :: Text -> Text -> Int -> AttachNetworkInterface

-- | Contains the parameters for AttachNetworkInterface.
--   
--   <i>See:</i> <a>attachNetworkInterface</a> smart constructor.
data AttachNetworkInterface

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
aniDryRun :: Lens' AttachNetworkInterface (Maybe Bool)

-- | The ID of the network interface.
aniNetworkInterfaceId :: Lens' AttachNetworkInterface Text

-- | The ID of the instance.
aniInstanceId :: Lens' AttachNetworkInterface Text

-- | The index of the device for the network interface attachment.
aniDeviceIndex :: Lens' AttachNetworkInterface Int

-- | Creates a value of <a>AttachNetworkInterfaceResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>anirsAttachmentId</a> - The ID of the network interface
--   attachment.</li>
--   <li><a>anirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
attachNetworkInterfaceResponse :: Int -> AttachNetworkInterfaceResponse

-- | Contains the output of AttachNetworkInterface.
--   
--   <i>See:</i> <a>attachNetworkInterfaceResponse</a> smart constructor.
data AttachNetworkInterfaceResponse

-- | The ID of the network interface attachment.
anirsAttachmentId :: Lens' AttachNetworkInterfaceResponse (Maybe Text)

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


-- | Attaches an Internet gateway to a VPC, enabling connectivity between
--   the Internet and the VPC. For more information about your VPC and
--   Internet gateway, see the <a>Amazon Virtual Private Cloud User
--   Guide</a> .
module Network.AWS.EC2.AttachInternetGateway

-- | Creates a value of <a>AttachInternetGateway</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aigDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>aigInternetGatewayId</a> - The ID of the Internet gateway.</li>
--   <li><a>aigVPCId</a> - The ID of the VPC.</li>
--   </ul>
attachInternetGateway :: Text -> Text -> AttachInternetGateway

-- | Contains the parameters for AttachInternetGateway.
--   
--   <i>See:</i> <a>attachInternetGateway</a> smart constructor.
data AttachInternetGateway

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
aigDryRun :: Lens' AttachInternetGateway (Maybe Bool)

-- | The ID of the Internet gateway.
aigInternetGatewayId :: Lens' AttachInternetGateway Text

-- | The ID of the VPC.
aigVPCId :: Lens' AttachInternetGateway Text

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

-- | <i>See:</i> <a>attachInternetGatewayResponse</a> smart constructor.
data AttachInternetGatewayResponse
instance GHC.Generics.Generic Network.AWS.EC2.AttachInternetGateway.AttachInternetGatewayResponse
instance Data.Data.Data Network.AWS.EC2.AttachInternetGateway.AttachInternetGatewayResponse
instance GHC.Show.Show Network.AWS.EC2.AttachInternetGateway.AttachInternetGatewayResponse
instance GHC.Read.Read Network.AWS.EC2.AttachInternetGateway.AttachInternetGatewayResponse
instance GHC.Classes.Eq Network.AWS.EC2.AttachInternetGateway.AttachInternetGatewayResponse
instance GHC.Generics.Generic Network.AWS.EC2.AttachInternetGateway.AttachInternetGateway
instance Data.Data.Data Network.AWS.EC2.AttachInternetGateway.AttachInternetGateway
instance GHC.Show.Show Network.AWS.EC2.AttachInternetGateway.AttachInternetGateway
instance GHC.Read.Read Network.AWS.EC2.AttachInternetGateway.AttachInternetGateway
instance GHC.Classes.Eq Network.AWS.EC2.AttachInternetGateway.AttachInternetGateway
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.AttachInternetGateway.AttachInternetGateway
instance Data.Hashable.Class.Hashable Network.AWS.EC2.AttachInternetGateway.AttachInternetGateway
instance Control.DeepSeq.NFData Network.AWS.EC2.AttachInternetGateway.AttachInternetGateway
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.AttachInternetGateway.AttachInternetGateway
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.AttachInternetGateway.AttachInternetGateway
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.AttachInternetGateway.AttachInternetGateway
instance Control.DeepSeq.NFData Network.AWS.EC2.AttachInternetGateway.AttachInternetGatewayResponse


-- | Links an EC2-Classic instance to a ClassicLink-enabled VPC through one
--   or more of the VPC's security groups. You cannot link an EC2-Classic
--   instance to more than one VPC at a time. You can only link an instance
--   that's in the <tt>running</tt> state. An instance is automatically
--   unlinked from a VPC when it's stopped - you can link it to the VPC
--   again when you restart it.
--   
--   After you've linked an instance, you cannot change the VPC security
--   groups that are associated with it. To change the security groups, you
--   must first unlink the instance, and then link it again.
--   
--   Linking your instance to a VPC is sometimes referred to as
--   <i>attaching</i> your instance.
module Network.AWS.EC2.AttachClassicLinkVPC

-- | Creates a value of <a>AttachClassicLinkVPC</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aclvDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>aclvInstanceId</a> - The ID of an EC2-Classic instance to link
--   to the ClassicLink-enabled VPC.</li>
--   <li><a>aclvVPCId</a> - The ID of a ClassicLink-enabled VPC.</li>
--   <li><a>aclvGroups</a> - The ID of one or more of the VPC's security
--   groups. You cannot specify security groups from a different VPC.</li>
--   </ul>
attachClassicLinkVPC :: Text -> Text -> AttachClassicLinkVPC

-- | Contains the parameters for AttachClassicLinkVpc.
--   
--   <i>See:</i> <a>attachClassicLinkVPC</a> smart constructor.
data AttachClassicLinkVPC

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
aclvDryRun :: Lens' AttachClassicLinkVPC (Maybe Bool)

-- | The ID of an EC2-Classic instance to link to the ClassicLink-enabled
--   VPC.
aclvInstanceId :: Lens' AttachClassicLinkVPC Text

-- | The ID of a ClassicLink-enabled VPC.
aclvVPCId :: Lens' AttachClassicLinkVPC Text

-- | The ID of one or more of the VPC's security groups. You cannot specify
--   security groups from a different VPC.
aclvGroups :: Lens' AttachClassicLinkVPC [Text]

-- | Creates a value of <a>AttachClassicLinkVPCResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aclvrsReturn</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>aclvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
attachClassicLinkVPCResponse :: Int -> AttachClassicLinkVPCResponse

-- | Contains the output of AttachClassicLinkVpc.
--   
--   <i>See:</i> <a>attachClassicLinkVPCResponse</a> smart constructor.
data AttachClassicLinkVPCResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
aclvrsReturn :: Lens' AttachClassicLinkVPCResponse (Maybe Bool)

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


-- | Associates a CIDR block with your VPC. You can only associate a single
--   Amazon-provided IPv6 CIDR block with your VPC. The IPv6 CIDR block
--   size is fixed at /56.
module Network.AWS.EC2.AssociateVPCCidrBlock

-- | Creates a value of <a>AssociateVPCCidrBlock</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avcbAmazonProvidedIPv6CidrBlock</a> - Requests an
--   Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC.
--   You cannot specify the range of IPv6 addresses, or the size of the
--   CIDR block.</li>
--   <li><a>avcbVPCId</a> - The ID of the VPC.</li>
--   </ul>
associateVPCCidrBlock :: Text -> AssociateVPCCidrBlock

-- | <i>See:</i> <a>associateVPCCidrBlock</a> smart constructor.
data AssociateVPCCidrBlock

-- | Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length
--   for the VPC. You cannot specify the range of IPv6 addresses, or the
--   size of the CIDR block.
avcbAmazonProvidedIPv6CidrBlock :: Lens' AssociateVPCCidrBlock (Maybe Bool)

-- | The ID of the VPC.
avcbVPCId :: Lens' AssociateVPCCidrBlock Text

-- | Creates a value of <a>AssociateVPCCidrBlockResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avcbrsVPCId</a> - The ID of the VPC.</li>
--   <li><a>avcbrsIPv6CidrBlockAssociation</a> - Information about the IPv6
--   CIDR block association.</li>
--   <li><a>avcbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
associateVPCCidrBlockResponse :: Int -> AssociateVPCCidrBlockResponse

-- | <i>See:</i> <a>associateVPCCidrBlockResponse</a> smart constructor.
data AssociateVPCCidrBlockResponse

-- | The ID of the VPC.
avcbrsVPCId :: Lens' AssociateVPCCidrBlockResponse (Maybe Text)

-- | Information about the IPv6 CIDR block association.
avcbrsIPv6CidrBlockAssociation :: Lens' AssociateVPCCidrBlockResponse (Maybe VPCIPv6CidrBlockAssociation)

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


-- | Associates a CIDR block with your subnet. You can only associate a
--   single IPv6 CIDR block with your subnet. An IPv6 CIDR block must have
--   a prefix length of /64.
module Network.AWS.EC2.AssociateSubnetCidrBlock

-- | Creates a value of <a>AssociateSubnetCidrBlock</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ascbSubnetId</a> - The ID of your subnet.</li>
--   <li><a>ascbIPv6CidrBlock</a> - The IPv6 CIDR block for your subnet.
--   The subnet must have a /64 prefix length.</li>
--   </ul>
associateSubnetCidrBlock :: Text -> Text -> AssociateSubnetCidrBlock

-- | <i>See:</i> <a>associateSubnetCidrBlock</a> smart constructor.
data AssociateSubnetCidrBlock

-- | The ID of your subnet.
ascbSubnetId :: Lens' AssociateSubnetCidrBlock Text

-- | The IPv6 CIDR block for your subnet. The subnet must have a /64 prefix
--   length.
ascbIPv6CidrBlock :: Lens' AssociateSubnetCidrBlock Text

-- | Creates a value of <a>AssociateSubnetCidrBlockResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ascbrsSubnetId</a> - The ID of the subnet.</li>
--   <li><a>ascbrsIPv6CidrBlockAssociation</a> - Information about the IPv6
--   CIDR block association.</li>
--   <li><a>ascbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
associateSubnetCidrBlockResponse :: Int -> AssociateSubnetCidrBlockResponse

-- | <i>See:</i> <a>associateSubnetCidrBlockResponse</a> smart constructor.
data AssociateSubnetCidrBlockResponse

-- | The ID of the subnet.
ascbrsSubnetId :: Lens' AssociateSubnetCidrBlockResponse (Maybe Text)

-- | Information about the IPv6 CIDR block association.
ascbrsIPv6CidrBlockAssociation :: Lens' AssociateSubnetCidrBlockResponse (Maybe SubnetIPv6CidrBlockAssociation)

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


-- | Associates a subnet with a route table. The subnet and route table
--   must be in the same VPC. This association causes traffic originating
--   from the subnet to be routed according to the routes in the route
--   table. The action returns an association ID, which you need in order
--   to disassociate the route table from the subnet later. A route table
--   can be associated with multiple subnets.
--   
--   For more information about route tables, see <a>Route Tables</a> in
--   the <i>Amazon Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.AssociateRouteTable

-- | Creates a value of <a>AssociateRouteTable</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>artDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>artSubnetId</a> - The ID of the subnet.</li>
--   <li><a>artRouteTableId</a> - The ID of the route table.</li>
--   </ul>
associateRouteTable :: Text -> Text -> AssociateRouteTable

-- | Contains the parameters for AssociateRouteTable.
--   
--   <i>See:</i> <a>associateRouteTable</a> smart constructor.
data AssociateRouteTable

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
artDryRun :: Lens' AssociateRouteTable (Maybe Bool)

-- | The ID of the subnet.
artSubnetId :: Lens' AssociateRouteTable Text

-- | The ID of the route table.
artRouteTableId :: Lens' AssociateRouteTable Text

-- | Creates a value of <a>AssociateRouteTableResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>artrsAssociationId</a> - The route table association ID (needed
--   to disassociate the route table).</li>
--   <li><a>artrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
associateRouteTableResponse :: Int -> AssociateRouteTableResponse

-- | Contains the output of AssociateRouteTable.
--   
--   <i>See:</i> <a>associateRouteTableResponse</a> smart constructor.
data AssociateRouteTableResponse

-- | The route table association ID (needed to disassociate the route
--   table).
artrsAssociationId :: Lens' AssociateRouteTableResponse (Maybe Text)

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


-- | Associates a set of DHCP options (that you've previously created) with
--   the specified VPC, or associates no DHCP options with the VPC.
--   
--   After you associate the options with the VPC, any existing instances
--   and all new instances that you launch in that VPC use the options. You
--   don't need to restart or relaunch the instances. They automatically
--   pick up the changes within a few hours, depending on how frequently
--   the instance renews its DHCP lease. You can explicitly renew the lease
--   using the operating system on the instance.
--   
--   For more information, see <a>DHCP Options Sets</a> in the <i>Amazon
--   Virtual Private Cloud User Guide</i> .
module Network.AWS.EC2.AssociateDHCPOptions

-- | Creates a value of <a>AssociateDHCPOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>adoDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>adoDHCPOptionsId</a> - The ID of the DHCP options set, or
--   <tt>default</tt> to associate no DHCP options with the VPC.</li>
--   <li><a>adoVPCId</a> - The ID of the VPC.</li>
--   </ul>
associateDHCPOptions :: Text -> Text -> AssociateDHCPOptions

-- | Contains the parameters for AssociateDhcpOptions.
--   
--   <i>See:</i> <a>associateDHCPOptions</a> smart constructor.
data AssociateDHCPOptions

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
adoDryRun :: Lens' AssociateDHCPOptions (Maybe Bool)

-- | The ID of the DHCP options set, or <tt>default</tt> to associate no
--   DHCP options with the VPC.
adoDHCPOptionsId :: Lens' AssociateDHCPOptions Text

-- | The ID of the VPC.
adoVPCId :: Lens' AssociateDHCPOptions Text

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

-- | <i>See:</i> <a>associateDHCPOptionsResponse</a> smart constructor.
data AssociateDHCPOptionsResponse
instance GHC.Generics.Generic Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptionsResponse
instance Data.Data.Data Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptionsResponse
instance GHC.Show.Show Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptionsResponse
instance GHC.Read.Read Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptionsResponse
instance GHC.Classes.Eq Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptionsResponse
instance GHC.Generics.Generic Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptions
instance Data.Data.Data Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptions
instance GHC.Show.Show Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptions
instance GHC.Read.Read Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptions
instance GHC.Classes.Eq Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptions
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptions
instance Data.Hashable.Class.Hashable Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptions
instance Control.DeepSeq.NFData Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptions
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptions
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptions
instance Control.DeepSeq.NFData Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptionsResponse


-- | Associates an Elastic IP address with an instance or a network
--   interface.
--   
--   An Elastic IP address is for use in either the EC2-Classic platform or
--   in a VPC. For more information, see <a>Elastic IP Addresses</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
--   
--   <ul>
--   <li><i>EC2-Classic, VPC in an EC2-VPC-only account</i> If the Elastic
--   IP address is already associated with a different instance, it is
--   disassociated from that instance and associated with the specified
--   instance.</li>
--   <li><i>VPC in an EC2-Classic account</i> If you don't specify a
--   private IP address, the Elastic IP address is associated with the
--   primary IP address. If the Elastic IP address is already associated
--   with a different instance or a network interface, you get an error
--   unless you allow reassociation.</li>
--   </ul>
--   
--   <i>Important:</i> This is an idempotent operation. If you perform the
--   operation more than once, Amazon EC2 doesn't return an error, and you
--   may be charged for each time the Elastic IP address is remapped to the
--   same instance. For more information, see the <i>Elastic IP
--   Addresses</i> section of <a>Amazon EC2 Pricing</a> .
module Network.AWS.EC2.AssociateAddress

-- | Creates a value of <a>AssociateAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aasInstanceId</a> - The ID of the instance. This is required
--   for EC2-Classic. For EC2-VPC, you can specify either the instance ID
--   or the network interface ID, but not both. The operation fails if you
--   specify an instance ID unless exactly one network interface is
--   attached.</li>
--   <li><a>aasAllocationId</a> - [EC2-VPC] The allocation ID. This is
--   required for EC2-VPC.</li>
--   <li><a>aasNetworkInterfaceId</a> - [EC2-VPC] The ID of the network
--   interface. If the instance has more than one network interface, you
--   must specify a network interface ID.</li>
--   <li><a>aasAllowReassociation</a> - [EC2-VPC] For a VPC in an
--   EC2-Classic account, specify true to allow an Elastic IP address that
--   is already associated with an instance or network interface to be
--   reassociated with the specified instance or network interface.
--   Otherwise, the operation fails. In a VPC in an EC2-VPC-only account,
--   reassociation is automatic, therefore you can specify false to ensure
--   the operation fails if the Elastic IP address is already associated
--   with another resource.</li>
--   <li><a>aasPrivateIPAddress</a> - [EC2-VPC] The primary or secondary
--   private IP address to associate with the Elastic IP address. If no
--   private IP address is specified, the Elastic IP address is associated
--   with the primary private IP address.</li>
--   <li><a>aasPublicIP</a> - The Elastic IP address. This is required for
--   EC2-Classic.</li>
--   <li><a>aasDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
associateAddress :: AssociateAddress

-- | Contains the parameters for AssociateAddress.
--   
--   <i>See:</i> <a>associateAddress</a> smart constructor.
data AssociateAddress

-- | The ID of the instance. This is required for EC2-Classic. For EC2-VPC,
--   you can specify either the instance ID or the network interface ID,
--   but not both. The operation fails if you specify an instance ID unless
--   exactly one network interface is attached.
aasInstanceId :: Lens' AssociateAddress (Maybe Text)

-- | <ul>
--   <li><i>EC2-VPC</i> The allocation ID. This is required for
--   EC2-VPC.</li>
--   </ul>
aasAllocationId :: Lens' AssociateAddress (Maybe Text)

-- | <ul>
--   <li><i>EC2-VPC</i> The ID of the network interface. If the instance
--   has more than one network interface, you must specify a network
--   interface ID.</li>
--   </ul>
aasNetworkInterfaceId :: Lens' AssociateAddress (Maybe Text)

-- | <ul>
--   <li><i>EC2-VPC</i> For a VPC in an EC2-Classic account, specify true
--   to allow an Elastic IP address that is already associated with an
--   instance or network interface to be reassociated with the specified
--   instance or network interface. Otherwise, the operation fails. In a
--   VPC in an EC2-VPC-only account, reassociation is automatic, therefore
--   you can specify false to ensure the operation fails if the Elastic IP
--   address is already associated with another resource.</li>
--   </ul>
aasAllowReassociation :: Lens' AssociateAddress (Maybe Bool)

-- | <ul>
--   <li><i>EC2-VPC</i> The primary or secondary private IP address to
--   associate with the Elastic IP address. If no private IP address is
--   specified, the Elastic IP address is associated with the primary
--   private IP address.</li>
--   </ul>
aasPrivateIPAddress :: Lens' AssociateAddress (Maybe Text)

-- | The Elastic IP address. This is required for EC2-Classic.
aasPublicIP :: Lens' AssociateAddress (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
aasDryRun :: Lens' AssociateAddress (Maybe Bool)

-- | Creates a value of <a>AssociateAddressResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>arsAssociationId</a> - [EC2-VPC] The ID that represents the
--   association of the Elastic IP address with an instance.</li>
--   <li><a>arsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
associateAddressResponse :: Int -> AssociateAddressResponse

-- | Contains the output of AssociateAddress.
--   
--   <i>See:</i> <a>associateAddressResponse</a> smart constructor.
data AssociateAddressResponse

-- | <ul>
--   <li><i>EC2-VPC</i> The ID that represents the association of the
--   Elastic IP address with an instance.</li>
--   </ul>
arsAssociationId :: Lens' AssociateAddressResponse (Maybe Text)

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


-- | Assigns one or more secondary private IP addresses to the specified
--   network interface. You can specify one or more specific secondary IP
--   addresses, or you can specify the number of secondary IP addresses to
--   be automatically assigned within the subnet's CIDR block range. The
--   number of secondary IP addresses that you can assign to an instance
--   varies by instance type. For information about instance types, see
--   <a>Instance Types</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> . For more information about Elastic IP addresses, see
--   <a>Elastic IP Addresses</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
--   
--   AssignPrivateIpAddresses is available only in EC2-VPC.
module Network.AWS.EC2.AssignPrivateIPAddresses

-- | Creates a value of <a>AssignPrivateIPAddresses</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>apiaPrivateIPAddresses</a> - One or more IP addresses to be
--   assigned as a secondary private IP address to the network interface.
--   You can't specify this parameter when also specifying a number of
--   secondary IP addresses. If you don't specify an IP address, Amazon EC2
--   automatically selects an IP address within the subnet range.</li>
--   <li><a>apiaAllowReassignment</a> - Indicates whether to allow an IP
--   address that is already assigned to another network interface or
--   instance to be reassigned to the specified network interface.</li>
--   <li><a>apiaSecondaryPrivateIPAddressCount</a> - The number of
--   secondary IP addresses to assign to the network interface. You can't
--   specify this parameter when also specifying private IP addresses.</li>
--   <li><a>apiaNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   </ul>
assignPrivateIPAddresses :: Text -> AssignPrivateIPAddresses

-- | Contains the parameters for AssignPrivateIpAddresses.
--   
--   <i>See:</i> <a>assignPrivateIPAddresses</a> smart constructor.
data AssignPrivateIPAddresses

-- | One or more IP addresses to be assigned as a secondary private IP
--   address to the network interface. You can't specify this parameter
--   when also specifying a number of secondary IP addresses. If you don't
--   specify an IP address, Amazon EC2 automatically selects an IP address
--   within the subnet range.
apiaPrivateIPAddresses :: Lens' AssignPrivateIPAddresses [Text]

-- | Indicates whether to allow an IP address that is already assigned to
--   another network interface or instance to be reassigned to the
--   specified network interface.
apiaAllowReassignment :: Lens' AssignPrivateIPAddresses (Maybe Bool)

-- | The number of secondary IP addresses to assign to the network
--   interface. You can't specify this parameter when also specifying
--   private IP addresses.
apiaSecondaryPrivateIPAddressCount :: Lens' AssignPrivateIPAddresses (Maybe Int)

-- | The ID of the network interface.
apiaNetworkInterfaceId :: Lens' AssignPrivateIPAddresses Text

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

-- | <i>See:</i> <a>assignPrivateIPAddressesResponse</a> smart constructor.
data AssignPrivateIPAddressesResponse
instance GHC.Generics.Generic Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddressesResponse
instance Data.Data.Data Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddressesResponse
instance GHC.Show.Show Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddressesResponse
instance GHC.Read.Read Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddressesResponse
instance GHC.Classes.Eq Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddressesResponse
instance GHC.Generics.Generic Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddresses
instance Data.Data.Data Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddresses
instance GHC.Show.Show Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddresses
instance GHC.Read.Read Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddresses
instance GHC.Classes.Eq Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddresses
instance Network.AWS.Types.AWSRequest Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddresses
instance Data.Hashable.Class.Hashable Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddresses
instance Control.DeepSeq.NFData Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddresses
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddresses
instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddresses
instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddresses
instance Control.DeepSeq.NFData Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddressesResponse


-- | Assigns one or more IPv6 addresses to the specified network interface.
--   You can specify one or more specific IPv6 addresses, or you can
--   specify the number of IPv6 addresses to be automatically assigned from
--   within the subnet's IPv6 CIDR block range. You can assign as many IPv6
--   addresses to a network interface as you can assign private IPv4
--   addresses, and the limit varies per instance type. For information,
--   see <a>IP Addresses Per Network Interface Per Instance Type</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.AssignIPv6Addresses

-- | Creates a value of <a>AssignIPv6Addresses</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aiaIPv6AddressCount</a> - The number of IPv6 addresses to
--   assign to the network interface. Amazon EC2 automatically selects the
--   IPv6 addresses from the subnet range. You can't use this option if
--   specifying specific IPv6 addresses.</li>
--   <li><a>aiaIPv6Addresses</a> - One or more specific IPv6 addresses to
--   be assigned to the network interface. You can't use this option if
--   you're specifying a number of IPv6 addresses.</li>
--   <li><a>aiaNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   </ul>
assignIPv6Addresses :: Text -> AssignIPv6Addresses

-- | <i>See:</i> <a>assignIPv6Addresses</a> smart constructor.
data AssignIPv6Addresses

-- | The number of IPv6 addresses to assign to the network interface.
--   Amazon EC2 automatically selects the IPv6 addresses from the subnet
--   range. You can't use this option if specifying specific IPv6
--   addresses.
aiaIPv6AddressCount :: Lens' AssignIPv6Addresses (Maybe Int)

-- | One or more specific IPv6 addresses to be assigned to the network
--   interface. You can't use this option if you're specifying a number of
--   IPv6 addresses.
aiaIPv6Addresses :: Lens' AssignIPv6Addresses [Text]

-- | The ID of the network interface.
aiaNetworkInterfaceId :: Lens' AssignIPv6Addresses Text

-- | Creates a value of <a>AssignIPv6AddressesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aiarsNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>aiarsAssignedIPv6Addresses</a> - The IPv6 addresses assigned to
--   the network interface.</li>
--   <li><a>aiarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
assignIPv6AddressesResponse :: Int -> AssignIPv6AddressesResponse

-- | <i>See:</i> <a>assignIPv6AddressesResponse</a> smart constructor.
data AssignIPv6AddressesResponse

-- | The ID of the network interface.
aiarsNetworkInterfaceId :: Lens' AssignIPv6AddressesResponse (Maybe Text)

-- | The IPv6 addresses assigned to the network interface.
aiarsAssignedIPv6Addresses :: Lens' AssignIPv6AddressesResponse [Text]

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


-- | Allocates a Dedicated Host to your account. At minimum you need to
--   specify the instance size type, Availability Zone, and quantity of
--   hosts you want to allocate.
module Network.AWS.EC2.AllocateHosts

-- | Creates a value of <a>AllocateHosts</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ahClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure idempotency of the request. For more information,
--   see <a>How to Ensure Idempotency</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i> .</li>
--   <li><a>ahAutoPlacement</a> - This is enabled by default. This property
--   allows instances to be automatically placed onto available Dedicated
--   Hosts, when you are launching instances without specifying a host ID.
--   Default: Enabled</li>
--   <li><a>ahInstanceType</a> - Specify the instance type that you want
--   your Dedicated Hosts to be configured for. When you specify the
--   instance type, that is the only instance type that you can launch onto
--   that host.</li>
--   <li><a>ahQuantity</a> - The number of Dedicated Hosts you want to
--   allocate to your account with these parameters.</li>
--   <li><a>ahAvailabilityZone</a> - The Availability Zone for the
--   Dedicated Hosts.</li>
--   </ul>
allocateHosts :: Text -> Int -> Text -> AllocateHosts

-- | Contains the parameters for AllocateHosts.
--   
--   <i>See:</i> <a>allocateHosts</a> smart constructor.
data AllocateHosts

-- | Unique, case-sensitive identifier you provide to ensure idempotency of
--   the request. For more information, see <a>How to Ensure
--   Idempotency</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
--   .
ahClientToken :: Lens' AllocateHosts (Maybe Text)

-- | This is enabled by default. This property allows instances to be
--   automatically placed onto available Dedicated Hosts, when you are
--   launching instances without specifying a host ID. Default: Enabled
ahAutoPlacement :: Lens' AllocateHosts (Maybe AutoPlacement)

-- | Specify the instance type that you want your Dedicated Hosts to be
--   configured for. When you specify the instance type, that is the only
--   instance type that you can launch onto that host.
ahInstanceType :: Lens' AllocateHosts Text

-- | The number of Dedicated Hosts you want to allocate to your account
--   with these parameters.
ahQuantity :: Lens' AllocateHosts Int

-- | The Availability Zone for the Dedicated Hosts.
ahAvailabilityZone :: Lens' AllocateHosts Text

-- | Creates a value of <a>AllocateHostsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ahrsHostIds</a> - The ID of the allocated Dedicated Host. This
--   is used when you want to launch an instance onto a specific host.</li>
--   <li><a>ahrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
allocateHostsResponse :: Int -> AllocateHostsResponse

-- | Contains the output of AllocateHosts.
--   
--   <i>See:</i> <a>allocateHostsResponse</a> smart constructor.
data AllocateHostsResponse

-- | The ID of the allocated Dedicated Host. This is used when you want to
--   launch an instance onto a specific host.
ahrsHostIds :: Lens' AllocateHostsResponse [Text]

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


-- | Acquires an Elastic IP address.
--   
--   An Elastic IP address is for use either in the EC2-Classic platform or
--   in a VPC. For more information, see <a>Elastic IP Addresses</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.AllocateAddress

-- | Creates a value of <a>AllocateAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aaDomain</a> - Set to <tt>vpc</tt> to allocate the address for
--   use with instances in a VPC. Default: The address is for use with
--   instances in EC2-Classic.</li>
--   <li><a>aaDryRun</a> - Checks whether you have the required permissions
--   for the action, without actually making the request, and provides an
--   error response. If you have the required permissions, the error
--   response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
allocateAddress :: AllocateAddress

-- | Contains the parameters for AllocateAddress.
--   
--   <i>See:</i> <a>allocateAddress</a> smart constructor.
data AllocateAddress

-- | Set to <tt>vpc</tt> to allocate the address for use with instances in
--   a VPC. Default: The address is for use with instances in EC2-Classic.
aaDomain :: Lens' AllocateAddress (Maybe DomainType)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
aaDryRun :: Lens' AllocateAddress (Maybe Bool)

-- | Creates a value of <a>AllocateAddressResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aarsAllocationId</a> - [EC2-VPC] The ID that AWS assigns to
--   represent the allocation of the Elastic IP address for use with
--   instances in a VPC.</li>
--   <li><a>aarsDomain</a> - Indicates whether this Elastic IP address is
--   for use with instances in EC2-Classic (<tt>standard</tt> ) or
--   instances in a VPC (<tt>vpc</tt> ).</li>
--   <li><a>aarsPublicIP</a> - The Elastic IP address.</li>
--   <li><a>aarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
allocateAddressResponse :: Int -> AllocateAddressResponse

-- | Contains the output of AllocateAddress.
--   
--   <i>See:</i> <a>allocateAddressResponse</a> smart constructor.
data AllocateAddressResponse

-- | <ul>
--   <li><i>EC2-VPC</i> The ID that AWS assigns to represent the allocation
--   of the Elastic IP address for use with instances in a VPC.</li>
--   </ul>
aarsAllocationId :: Lens' AllocateAddressResponse (Maybe Text)

-- | Indicates whether this Elastic IP address is for use with instances in
--   EC2-Classic (<tt>standard</tt> ) or instances in a VPC (<tt>vpc</tt>
--   ).
aarsDomain :: Lens' AllocateAddressResponse (Maybe DomainType)

-- | The Elastic IP address.
aarsPublicIP :: Lens' AllocateAddressResponse (Maybe Text)

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


-- | Accept a VPC peering connection request. To accept a request, the VPC
--   peering connection must be in the <tt>pending-acceptance</tt> state,
--   and you must be the owner of the peer VPC. Use the
--   <tt>DescribeVpcPeeringConnections</tt> request to view your
--   outstanding VPC peering connection requests.
module Network.AWS.EC2.AcceptVPCPeeringConnection

-- | Creates a value of <a>AcceptVPCPeeringConnection</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avpcVPCPeeringConnectionId</a> - The ID of the VPC peering
--   connection.</li>
--   <li><a>avpcDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   </ul>
acceptVPCPeeringConnection :: AcceptVPCPeeringConnection

-- | Contains the parameters for AcceptVpcPeeringConnection.
--   
--   <i>See:</i> <a>acceptVPCPeeringConnection</a> smart constructor.
data AcceptVPCPeeringConnection

-- | The ID of the VPC peering connection.
avpcVPCPeeringConnectionId :: Lens' AcceptVPCPeeringConnection (Maybe Text)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
avpcDryRun :: Lens' AcceptVPCPeeringConnection (Maybe Bool)

-- | Creates a value of <a>AcceptVPCPeeringConnectionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avpcrsVPCPeeringConnection</a> - Information about the VPC
--   peering connection.</li>
--   <li><a>avpcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
acceptVPCPeeringConnectionResponse :: Int -> AcceptVPCPeeringConnectionResponse

-- | Contains the output of AcceptVpcPeeringConnection.
--   
--   <i>See:</i> <a>acceptVPCPeeringConnectionResponse</a> smart
--   constructor.
data AcceptVPCPeeringConnectionResponse

-- | Information about the VPC peering connection.
avpcrsVPCPeeringConnection :: Lens' AcceptVPCPeeringConnectionResponse (Maybe VPCPeeringConnection)

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


-- | Accepts the Convertible Reserved Instance exchange quote described in
--   the <tt>GetReservedInstancesExchangeQuote</tt> call.
module Network.AWS.EC2.AcceptReservedInstancesExchangeQuote

-- | Creates a value of <a>AcceptReservedInstancesExchangeQuote</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>arieqTargetConfigurations</a> - The configurations of the
--   Convertible Reserved Instance offerings that you are purchasing in
--   this exchange.</li>
--   <li><a>arieqDryRun</a> - Checks whether you have the required
--   permissions for the action, without actually making the request, and
--   provides an error response. If you have the required permissions, the
--   error response is <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .</li>
--   <li><a>arieqReservedInstanceIds</a> - The IDs of the Convertible
--   Reserved Instances to exchange for other Convertible Reserved
--   Instances of the same or higher value.</li>
--   </ul>
acceptReservedInstancesExchangeQuote :: AcceptReservedInstancesExchangeQuote

-- | Contains the parameters for accepting the quote.
--   
--   <i>See:</i> <a>acceptReservedInstancesExchangeQuote</a> smart
--   constructor.
data AcceptReservedInstancesExchangeQuote

-- | The configurations of the Convertible Reserved Instance offerings that
--   you are purchasing in this exchange.
arieqTargetConfigurations :: Lens' AcceptReservedInstancesExchangeQuote [TargetConfigurationRequest]

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
arieqDryRun :: Lens' AcceptReservedInstancesExchangeQuote (Maybe Bool)

-- | The IDs of the Convertible Reserved Instances to exchange for other
--   Convertible Reserved Instances of the same or higher value.
arieqReservedInstanceIds :: Lens' AcceptReservedInstancesExchangeQuote [Text]

-- | Creates a value of <a>AcceptReservedInstancesExchangeQuoteResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>arieqrsExchangeId</a> - The ID of the successful exchange.</li>
--   <li><a>arieqrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
acceptReservedInstancesExchangeQuoteResponse :: Int -> AcceptReservedInstancesExchangeQuoteResponse

-- | The result of the exchange and whether it was <tt>successful</tt> .
--   
--   <i>See:</i> <a>acceptReservedInstancesExchangeQuoteResponse</a> smart
--   constructor.
data AcceptReservedInstancesExchangeQuoteResponse

-- | The ID of the successful exchange.
arieqrsExchangeId :: Lens' AcceptReservedInstancesExchangeQuoteResponse (Maybe Text)

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


-- | <b>Amazon Elastic Compute Cloud</b>
--   
--   Amazon Elastic Compute Cloud (Amazon EC2) provides resizable computing
--   capacity in the Amazon Web Services (AWS) cloud. Using Amazon EC2
--   eliminates your need to invest in hardware up front, so you can
--   develop and deploy applications faster.
module Network.AWS.EC2

-- | API version <tt>2016-11-15</tt> of the Amazon Elastic Compute Cloud
--   SDK configuration.
ec2 :: Service

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceTerminated :: Wait DescribeInstances

-- | Polls <a>DescribeVolumes</a> every 15 seconds until a successful state
--   is reached. An error is returned after 40 failed checks.
volumeInUse :: Wait DescribeVolumes

-- | Polls <a>DescribeNatGateways</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
natGatewayAvailable :: Wait DescribeNatGateways

-- | Polls <a>DescribeSubnets</a> every 15 seconds until a successful state
--   is reached. An error is returned after 40 failed checks.
subnetAvailable :: Wait DescribeSubnets

-- | Polls <a>DescribeNetworkInterfaces</a> every 20 seconds until a
--   successful state is reached. An error is returned after 10 failed
--   checks.
networkInterfaceAvailable :: Wait DescribeNetworkInterfaces

-- | Polls <a>DescribeInstanceStatus</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
systemStatusOK :: Wait DescribeInstanceStatus

-- | Polls <a>DescribeCustomerGateways</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
customerGatewayAvailable :: Wait DescribeCustomerGateways

-- | Polls <a>DescribeConversionTasks</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
conversionTaskCompleted :: Wait DescribeConversionTasks

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceStopped :: Wait DescribeInstances

-- | Polls <a>DescribeConversionTasks</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
conversionTaskDeleted :: Wait DescribeConversionTasks

-- | Polls <a>GetPasswordData</a> every 15 seconds until a successful state
--   is reached. An error is returned after 40 failed checks.
passwordDataAvailable :: Wait GetPasswordData

-- | Polls <a>DescribeInstances</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceRunning :: Wait DescribeInstances

-- | Polls <a>DescribeSpotInstanceRequests</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
spotInstanceRequestFulfilled :: Wait DescribeSpotInstanceRequests

-- | Polls <a>DescribeVPCs</a> every 15 seconds until a successful state is
--   reached. An error is returned after 40 failed checks.
vpcAvailable :: Wait DescribeVPCs

-- | Polls <a>DescribeExportTasks</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
exportTaskCompleted :: Wait DescribeExportTasks

-- | Polls <a>DescribeVPNConnections</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
vpnConnectionAvailable :: Wait DescribeVPNConnections

-- | Polls <a>DescribeExportTasks</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
exportTaskCancelled :: Wait DescribeExportTasks

-- | Polls <a>DescribeVolumes</a> every 15 seconds until a successful state
--   is reached. An error is returned after 40 failed checks.
volumeDeleted :: Wait DescribeVolumes

-- | Polls <a>DescribeVPCs</a> every 1 seconds until a successful state is
--   reached. An error is returned after 5 failed checks.
vpcExists :: Wait DescribeVPCs

-- | Polls <a>DescribeBundleTasks</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
bundleTaskComplete :: Wait DescribeBundleTasks

-- | Polls <a>DescribeVPNConnections</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
vpnConnectionDeleted :: Wait DescribeVPNConnections

-- | Polls <a>DescribeConversionTasks</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
conversionTaskCancelled :: Wait DescribeConversionTasks

-- | Polls <a>DescribeImages</a> every 15 seconds until a successful state
--   is reached. An error is returned after 40 failed checks.
imageAvailable :: Wait DescribeImages

-- | Polls <a>DescribeVPCPeeringConnections</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
vpcPeeringConnectionExists :: Wait DescribeVPCPeeringConnections

-- | Polls <a>DescribeSnapshots</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
snapshotCompleted :: Wait DescribeSnapshots

-- | Polls <a>DescribeInstances</a> every 5 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
instanceExists :: Wait DescribeInstances

-- | Polls <a>DescribeInstanceStatus</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
instanceStatusOK :: Wait DescribeInstanceStatus

-- | Polls <a>DescribeVolumes</a> every 15 seconds until a successful state
--   is reached. An error is returned after 40 failed checks.
volumeAvailable :: Wait DescribeVolumes

-- | Custom <tt>Tag</tt> type which has an optional value component.
--   
--   <i>See:</i> <tt>tag</tt> smart constructor.
data DeleteTag
DeleteTag :: !Text -> !(Maybe Text) -> DeleteTag
[_deleteTagKey] :: DeleteTag -> !Text
[_deleteTagValue] :: DeleteTag -> !(Maybe Text)
deleteTag :: Text -> DeleteTag

-- | The key of the tag to delete.
--   
--   Constraints: Tag keys are case-sensitive and accept a maximum of 127
--   Unicode characters. May not begin with 'aws:'
deleteTagKey :: Lens' DeleteTag Text

-- | The optional value of the tag to delete.
--   
--   Constraints: Tag values are case-sensitive and accept a maximum of 255
--   Unicode characters.
deleteTagValue :: Lens' DeleteTag (Maybe Text)
data AccountAttributeName
DefaultVPC :: AccountAttributeName
SupportedPlatforms :: AccountAttributeName
data ActivityStatus
Error' :: ActivityStatus
Fulfilled :: ActivityStatus
PendingFulfillment :: ActivityStatus
PendingTermination :: ActivityStatus
data AddressStatus
InClassic :: AddressStatus
InVPC :: AddressStatus
MoveInProgress :: AddressStatus
data Affinity
ADefault :: Affinity
AHost :: Affinity
data AllocationState
ASAvailable :: AllocationState
ASPermanentFailure :: AllocationState
ASReleased :: AllocationState
ASReleasedPermanentFailure :: AllocationState
ASUnderAssessment :: AllocationState
data AllocationStrategy
Diversified :: AllocationStrategy
LowestPrice :: AllocationStrategy
data ArchitectureValues
I386 :: ArchitectureValues
X86_64 :: ArchitectureValues
data AttachmentStatus
AAttached :: AttachmentStatus
AAttaching :: AttachmentStatus
AAvailable :: AttachmentStatus
ABusy :: AttachmentStatus
ADetached :: AttachmentStatus
ADetaching :: AttachmentStatus
data AutoPlacement
ON :: AutoPlacement
Off :: AutoPlacement
data AvailabilityZoneState
AZSAvailable :: AvailabilityZoneState
AZSImpaired :: AvailabilityZoneState
AZSInformation :: AvailabilityZoneState
AZSUnavailable :: AvailabilityZoneState
data BatchState
BSActive :: BatchState
BSCancelled :: BatchState
BSCancelledRunning :: BatchState
BSCancelledTerminating :: BatchState
BSFailed :: BatchState
BSModifying :: BatchState
BSSubmitted :: BatchState
data BundleTaskState
BTSBundling :: BundleTaskState
BTSCancelling :: BundleTaskState
BTSComplete :: BundleTaskState
BTSFailed :: BundleTaskState
BTSPending :: BundleTaskState
BTSStoring :: BundleTaskState
BTSWaitingForShutdown :: BundleTaskState
data CancelBatchErrorCode
FleetRequestIdDoesNotExist :: CancelBatchErrorCode
FleetRequestIdMalformed :: CancelBatchErrorCode
FleetRequestNotInCancellableState :: CancelBatchErrorCode
UnexpectedError :: CancelBatchErrorCode
data CancelSpotInstanceRequestState
CSIRSActive :: CancelSpotInstanceRequestState
CSIRSCancelled :: CancelSpotInstanceRequestState
CSIRSClosed :: CancelSpotInstanceRequestState
CSIRSCompleted :: CancelSpotInstanceRequestState
CSIRSOpen :: CancelSpotInstanceRequestState
data ContainerFormat
Ova :: ContainerFormat
data ConversionTaskState
CTSActive :: ConversionTaskState
CTSCancelled :: ConversionTaskState
CTSCancelling :: ConversionTaskState
CTSCompleted :: ConversionTaskState
data CurrencyCodeValues
Usd :: CurrencyCodeValues
data DatafeedSubscriptionState
DSSActive :: DatafeedSubscriptionState
DSSInactive :: DatafeedSubscriptionState
data DeviceType
EBS :: DeviceType
InstanceStore :: DeviceType
data DiskImageFormat
Raw :: DiskImageFormat
VHD :: DiskImageFormat
VMDK :: DiskImageFormat
data DomainType
DTStandard :: DomainType
DTVPC :: DomainType
data EventCode
InstanceReboot :: EventCode
InstanceRetirement :: EventCode
InstanceStop :: EventCode
SystemMaintenance :: EventCode
SystemReboot :: EventCode
data EventType
ETError' :: EventType
ETFleetRequestChange :: EventType
ETInstanceChange :: EventType
data ExcessCapacityTerminationPolicy
ECTPDefault :: ExcessCapacityTerminationPolicy
ECTPNoTermination :: ExcessCapacityTerminationPolicy
data ExportEnvironment
Citrix :: ExportEnvironment
Microsoft :: ExportEnvironment
VMware :: ExportEnvironment
data ExportTaskState
ETSActive :: ExportTaskState
ETSCancelled :: ExportTaskState
ETSCancelling :: ExportTaskState
ETSCompleted :: ExportTaskState
data FleetType
FTMaintain :: FleetType
FTRequest :: FleetType
data FlowLogsResourceType
FLRTNetworkInterface :: FlowLogsResourceType
FLRTSubnet :: FlowLogsResourceType
FLRTVPC :: FlowLogsResourceType
data GatewayType
IPsec_1 :: GatewayType
data HostTenancy
HTDedicated :: HostTenancy
HTHost :: HostTenancy
data HypervisorType
Ovm :: HypervisorType
Xen :: HypervisorType
data ImageAttributeName
BlockDeviceMapping :: ImageAttributeName
Description :: ImageAttributeName
Kernel :: ImageAttributeName
LaunchPermission :: ImageAttributeName
ProductCodes :: ImageAttributeName
RAMDisk :: ImageAttributeName
SRIOVNetSupport :: ImageAttributeName
data ImageState
ISAvailable :: ImageState
ISDeregistered :: ImageState
ISError' :: ImageState
ISFailed :: ImageState
ISInvalid :: ImageState
ISPending :: ImageState
ISTransient :: ImageState
data ImageTypeValues
ITVKernel :: ImageTypeValues
ITVMachine :: ImageTypeValues
ITVRAMDisk :: ImageTypeValues
data InstanceAttributeName
IANBlockDeviceMapping :: InstanceAttributeName
IANDisableAPITermination :: InstanceAttributeName
IANEBSOptimized :: InstanceAttributeName
IANEnaSupport :: InstanceAttributeName
IANGroupSet :: InstanceAttributeName
IANInstanceInitiatedShutdownBehavior :: InstanceAttributeName
IANInstanceType :: InstanceAttributeName
IANKernel :: InstanceAttributeName
IANProductCodes :: InstanceAttributeName
IANRAMDisk :: InstanceAttributeName
IANRootDeviceName :: InstanceAttributeName
IANSRIOVNetSupport :: InstanceAttributeName
IANSourceDestCheck :: InstanceAttributeName
IANUserData :: InstanceAttributeName
data InstanceLifecycleType
Scheduled :: InstanceLifecycleType
Spot :: InstanceLifecycleType
data InstanceStateName
ISNPending :: InstanceStateName
ISNRunning :: InstanceStateName
ISNShuttingDown :: InstanceStateName
ISNStopped :: InstanceStateName
ISNStopping :: InstanceStateName
ISNTerminated :: InstanceStateName
data InstanceType
C1_Medium :: InstanceType
C1_XLarge :: InstanceType
C3_2XLarge :: InstanceType
C3_4XLarge :: InstanceType
C3_8XLarge :: InstanceType
C3_Large :: InstanceType
C3_XLarge :: InstanceType
C4_2XLarge :: InstanceType
C4_4XLarge :: InstanceType
C4_8XLarge :: InstanceType
C4_Large :: InstanceType
C4_XLarge :: InstanceType
CC1_4XLarge :: InstanceType
CC2_8XLarge :: InstanceType
CG1_4XLarge :: InstanceType
CR1_8XLarge :: InstanceType
D2_2XLarge :: InstanceType
D2_4XLarge :: InstanceType
D2_8XLarge :: InstanceType
D2_XLarge :: InstanceType
F1_16XLarge :: InstanceType
F1_2XLarge :: InstanceType
G2_2XLarge :: InstanceType
G2_8XLarge :: InstanceType
HI1_4XLarge :: InstanceType
HS1_8XLarge :: InstanceType
I2_2XLarge :: InstanceType
I2_4XLarge :: InstanceType
I2_8XLarge :: InstanceType
I2_XLarge :: InstanceType
M1_Large :: InstanceType
M1_Medium :: InstanceType
M1_Small :: InstanceType
M1_XLarge :: InstanceType
M2_2XLarge :: InstanceType
M2_4XLarge :: InstanceType
M2_XLarge :: InstanceType
M3_2XLarge :: InstanceType
M3_Large :: InstanceType
M3_Medium :: InstanceType
M3_XLarge :: InstanceType
M4_10XLarge :: InstanceType
M4_16XLarge :: InstanceType
M4_2XLarge :: InstanceType
M4_4XLarge :: InstanceType
M4_Large :: InstanceType
M4_XLarge :: InstanceType
P2_16XLarge :: InstanceType
P2_8XLarge :: InstanceType
P2_XLarge :: InstanceType
R3_2XLarge :: InstanceType
R3_4XLarge :: InstanceType
R3_8XLarge :: InstanceType
R3_Large :: InstanceType
R3_XLarge :: InstanceType
T1_Micro :: InstanceType
T2_Large :: InstanceType
T2_Medium :: InstanceType
T2_Micro :: InstanceType
T2_Nano :: InstanceType
T2_Small :: InstanceType
X1_16XLarge :: InstanceType
X1_32XLarge :: InstanceType
data ListingState
LAvailable :: ListingState
LCancelled :: ListingState
LPending :: ListingState
LSold :: ListingState
data ListingStatus
LSActive :: ListingStatus
LSCancelled :: ListingStatus
LSClosed :: ListingStatus
LSPending :: ListingStatus
data MonitoringState
MSDisabled :: MonitoringState
MSDisabling :: MonitoringState
MSEnabled :: MonitoringState
MSPending :: MonitoringState
data MoveStatus
MovingToVPC :: MoveStatus
RestoringToClassic :: MoveStatus
data NatGatewayState
NGSAvailable :: NatGatewayState
NGSDeleted :: NatGatewayState
NGSDeleting :: NatGatewayState
NGSFailed :: NatGatewayState
NGSPending :: NatGatewayState
data NetworkInterfaceAttribute
NIAAttachment :: NetworkInterfaceAttribute
NIADescription :: NetworkInterfaceAttribute
NIAGroupSet :: NetworkInterfaceAttribute
NIASourceDestCheck :: NetworkInterfaceAttribute
data NetworkInterfaceStatus
NISAttaching :: NetworkInterfaceStatus
NISAvailable :: NetworkInterfaceStatus
NISDetaching :: NetworkInterfaceStatus
NISInUse :: NetworkInterfaceStatus
data NetworkInterfaceType
Interface :: NetworkInterfaceType
NatGateway :: NetworkInterfaceType
data OfferingClassType
Convertible :: OfferingClassType
Standard :: OfferingClassType
data OfferingTypeValues
AllUpfront :: OfferingTypeValues
HeavyUtilization :: OfferingTypeValues
LightUtilization :: OfferingTypeValues
MediumUtilization :: OfferingTypeValues
NoUpfront :: OfferingTypeValues
PartialUpfront :: OfferingTypeValues
data OperationType
Add :: OperationType
Remove :: OperationType
data PaymentOption
POAllUpfront :: PaymentOption
PONoUpfront :: PaymentOption
POPartialUpfront :: PaymentOption
data PermissionGroup
All :: PermissionGroup
data PlacementGroupState
Available :: PlacementGroupState
Deleted :: PlacementGroupState
Deleting :: PlacementGroupState
Pending :: PlacementGroupState
data PlacementStrategy
Cluster :: PlacementStrategy
data PlatformValues
Windows :: PlatformValues
data ProductCodeValues
Devpay :: ProductCodeValues
Marketplace :: ProductCodeValues
data RIProductDescription
RIDLinuxUnix :: RIProductDescription
RIDLinuxUnixAmazonVPC :: RIProductDescription
RIDWindows :: RIProductDescription
RIDWindowsAmazonVPC :: RIProductDescription
data RecurringChargeFrequency
Hourly :: RecurringChargeFrequency
data ReportInstanceReasonCodes
InstanceStuckInState :: ReportInstanceReasonCodes
NotAcceptingCredentials :: ReportInstanceReasonCodes
Other :: ReportInstanceReasonCodes
PasswordNotAvailable :: ReportInstanceReasonCodes
PerformanceEBSVolume :: ReportInstanceReasonCodes
PerformanceInstanceStore :: ReportInstanceReasonCodes
PerformanceNetwork :: ReportInstanceReasonCodes
PerformanceOther :: ReportInstanceReasonCodes
Unresponsive :: ReportInstanceReasonCodes
data ReportStatusType
RSTImpaired :: ReportStatusType
RSTOK :: ReportStatusType
data ReservationState
RSActive :: ReservationState
RSPaymentFailed :: ReservationState
RSPaymentPending :: ReservationState
RSRetired :: ReservationState
data ReservedInstanceState
Active :: ReservedInstanceState
PaymentFailed :: ReservedInstanceState
PaymentPending :: ReservedInstanceState
Retired :: ReservedInstanceState
data ResetImageAttributeName
RIANLaunchPermission :: ResetImageAttributeName
data ResourceType
CustomerGateway :: ResourceType
DHCPOptions :: ResourceType
Image :: ResourceType
Instance :: ResourceType
InternetGateway :: ResourceType
NetworkACL :: ResourceType
NetworkInterface :: ResourceType
ReservedInstances :: ResourceType
RouteTable :: ResourceType
SecurityGroup :: ResourceType
Snapshot :: ResourceType
SpotInstancesRequest :: ResourceType
Subnet :: ResourceType
VPC :: ResourceType
VPNConnection :: ResourceType
VPNGateway :: ResourceType
Volume :: ResourceType
data RouteOrigin
CreateRoute :: RouteOrigin
CreateRouteTable :: RouteOrigin
EnableVGWRoutePropagation :: RouteOrigin
data RouteState
RActive :: RouteState
RBlackhole :: RouteState
data RuleAction
Allow :: RuleAction
Deny :: RuleAction
data Scope
AvailabilityZone :: Scope
Region :: Scope
data ShutdownBehavior
Stop :: ShutdownBehavior
Terminate :: ShutdownBehavior
data SnapshotAttributeName
SANCreateVolumePermission :: SnapshotAttributeName
SANProductCodes :: SnapshotAttributeName
data SnapshotState
SSCompleted :: SnapshotState
SSError' :: SnapshotState
SSPending :: SnapshotState
data SpotInstanceState
SISActive :: SpotInstanceState
SISCancelled :: SpotInstanceState
SISClosed :: SpotInstanceState
SISFailed :: SpotInstanceState
SISOpen :: SpotInstanceState
data SpotInstanceType
OneTime :: SpotInstanceType
Persistent :: SpotInstanceType
data State
SAvailable :: State
SDeleted :: State
SDeleting :: State
SPending :: State
data StatusName
Reachability :: StatusName
data StatusType
STFailed :: StatusType
STInitializing :: StatusType
STInsufficientData :: StatusType
STPassed :: StatusType
data SubnetCidrBlockStateCode
Associated :: SubnetCidrBlockStateCode
Associating :: SubnetCidrBlockStateCode
Disassociated :: SubnetCidrBlockStateCode
Disassociating :: SubnetCidrBlockStateCode
Failed :: SubnetCidrBlockStateCode
Failing :: SubnetCidrBlockStateCode
data SubnetState
SubAvailable :: SubnetState
SubPending :: SubnetState
data SummaryStatus
SSImpaired :: SummaryStatus
SSInitializing :: SummaryStatus
SSInsufficientData :: SummaryStatus
SSNotApplicable :: SummaryStatus
SSOK :: SummaryStatus
data TelemetryStatus
Down :: TelemetryStatus
UP :: TelemetryStatus
data Tenancy
Dedicated :: Tenancy
Default :: Tenancy
Host :: Tenancy
data TrafficType
TTAccept :: TrafficType
TTAll :: TrafficType
TTReject :: TrafficType
data VPCAttributeName
EnableDNSHostnames :: VPCAttributeName
EnableDNSSupport :: VPCAttributeName
data VPCCidrBlockStateCode
VCBSCAssociated :: VPCCidrBlockStateCode
VCBSCAssociating :: VPCCidrBlockStateCode
VCBSCDisassociated :: VPCCidrBlockStateCode
VCBSCDisassociating :: VPCCidrBlockStateCode
VCBSCFailed :: VPCCidrBlockStateCode
VCBSCFailing :: VPCCidrBlockStateCode
data VPCPeeringConnectionStateReasonCode
VPCSRCActive :: VPCPeeringConnectionStateReasonCode
VPCSRCDeleted :: VPCPeeringConnectionStateReasonCode
VPCSRCDeleting :: VPCPeeringConnectionStateReasonCode
VPCSRCExpired :: VPCPeeringConnectionStateReasonCode
VPCSRCFailed :: VPCPeeringConnectionStateReasonCode
VPCSRCInitiatingRequest :: VPCPeeringConnectionStateReasonCode
VPCSRCPendingAcceptance :: VPCPeeringConnectionStateReasonCode
VPCSRCProvisioning :: VPCPeeringConnectionStateReasonCode
VPCSRCRejected :: VPCPeeringConnectionStateReasonCode
data VPCState
VPCSAvailable :: VPCState
VPCSPending :: VPCState
data VPNState
VSAvailable :: VPNState
VSDeleted :: VPNState
VSDeleting :: VPNState
VSPending :: VPNState
data VPNStaticRouteSource
Static :: VPNStaticRouteSource
data VirtualizationType
HVM :: VirtualizationType
Paravirtual :: VirtualizationType
data VolumeAttachmentState
VAttached :: VolumeAttachmentState
VAttaching :: VolumeAttachmentState
VBusy :: VolumeAttachmentState
VDetached :: VolumeAttachmentState
VDetaching :: VolumeAttachmentState
data VolumeAttributeName
VANAutoEnableIO :: VolumeAttributeName
VANProductCodes :: VolumeAttributeName
data VolumeState
VAvailable :: VolumeState
VCreating :: VolumeState
VDeleted :: VolumeState
VDeleting :: VolumeState
VError' :: VolumeState
VInUse :: VolumeState
data VolumeStatusInfoStatus
Impaired :: VolumeStatusInfoStatus
InsufficientData :: VolumeStatusInfoStatus
OK :: VolumeStatusInfoStatus
data VolumeStatusName
IOEnabled :: VolumeStatusName
IOPerformance :: VolumeStatusName
data VolumeType
VTGP2 :: VolumeType
VTIO1 :: VolumeType
VTSC1 :: VolumeType
VTST1 :: VolumeType
VTStandard :: VolumeType

-- | Describes an account attribute.
--   
--   <i>See:</i> <a>accountAttribute</a> smart constructor.
data AccountAttribute

-- | Creates a value of <a>AccountAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aaAttributeValues</a> - One or more values for the account
--   attribute.</li>
--   <li><a>aaAttributeName</a> - The name of the account attribute.</li>
--   </ul>
accountAttribute :: AccountAttribute

-- | One or more values for the account attribute.
aaAttributeValues :: Lens' AccountAttribute [AccountAttributeValue]

-- | The name of the account attribute.
aaAttributeName :: Lens' AccountAttribute (Maybe Text)

-- | Describes a value of an account attribute.
--   
--   <i>See:</i> <a>accountAttributeValue</a> smart constructor.
data AccountAttributeValue

-- | Creates a value of <a>AccountAttributeValue</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aavAttributeValue</a> - The value of the attribute.</li>
--   </ul>
accountAttributeValue :: AccountAttributeValue

-- | The value of the attribute.
aavAttributeValue :: Lens' AccountAttributeValue (Maybe Text)

-- | Describes a running instance in a Spot fleet.
--   
--   <i>See:</i> <a>activeInstance</a> smart constructor.
data ActiveInstance

-- | Creates a value of <a>ActiveInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aiInstanceId</a> - The ID of the instance.</li>
--   <li><a>aiInstanceType</a> - The instance type.</li>
--   <li><a>aiSpotInstanceRequestId</a> - The ID of the Spot instance
--   request.</li>
--   </ul>
activeInstance :: ActiveInstance

-- | The ID of the instance.
aiInstanceId :: Lens' ActiveInstance (Maybe Text)

-- | The instance type.
aiInstanceType :: Lens' ActiveInstance (Maybe Text)

-- | The ID of the Spot instance request.
aiSpotInstanceRequestId :: Lens' ActiveInstance (Maybe Text)

-- | Describes an Elastic IP address.
--   
--   <i>See:</i> <a>address</a> smart constructor.
data Address

-- | Creates a value of <a>Address</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aAssociationId</a> - The ID representing the association of the
--   address with an instance in a VPC.</li>
--   <li><a>aInstanceId</a> - The ID of the instance that the address is
--   associated with (if any).</li>
--   <li><a>aNetworkInterfaceOwnerId</a> - The ID of the AWS account that
--   owns the network interface.</li>
--   <li><a>aAllocationId</a> - The ID representing the allocation of the
--   address for use with EC2-VPC.</li>
--   <li><a>aDomain</a> - Indicates whether this Elastic IP address is for
--   use with instances in EC2-Classic (<tt>standard</tt> ) or instances in
--   a VPC (<tt>vpc</tt> ).</li>
--   <li><a>aNetworkInterfaceId</a> - The ID of the network interface.</li>
--   <li><a>aPrivateIPAddress</a> - The private IP address associated with
--   the Elastic IP address.</li>
--   <li><a>aPublicIP</a> - The Elastic IP address.</li>
--   </ul>
address :: Address

-- | The ID representing the association of the address with an instance in
--   a VPC.
aAssociationId :: Lens' Address (Maybe Text)

-- | The ID of the instance that the address is associated with (if any).
aInstanceId :: Lens' Address (Maybe Text)

-- | The ID of the AWS account that owns the network interface.
aNetworkInterfaceOwnerId :: Lens' Address (Maybe Text)

-- | The ID representing the allocation of the address for use with
--   EC2-VPC.
aAllocationId :: Lens' Address (Maybe Text)

-- | Indicates whether this Elastic IP address is for use with instances in
--   EC2-Classic (<tt>standard</tt> ) or instances in a VPC (<tt>vpc</tt>
--   ).
aDomain :: Lens' Address (Maybe DomainType)

-- | The ID of the network interface.
aNetworkInterfaceId :: Lens' Address (Maybe Text)

-- | The private IP address associated with the Elastic IP address.
aPrivateIPAddress :: Lens' Address (Maybe Text)

-- | The Elastic IP address.
aPublicIP :: Lens' Address (Maybe Text)

-- | Describes a value for a resource attribute that is a Boolean value.
--   
--   <i>See:</i> <a>attributeBooleanValue</a> smart constructor.
data AttributeBooleanValue

-- | Creates a value of <a>AttributeBooleanValue</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>abvValue</a> - The attribute value. The valid values are
--   <tt>true</tt> or <tt>false</tt> .</li>
--   </ul>
attributeBooleanValue :: AttributeBooleanValue

-- | The attribute value. The valid values are <tt>true</tt> or
--   <tt>false</tt> .
abvValue :: Lens' AttributeBooleanValue (Maybe Bool)

-- | Describes a value for a resource attribute that is a String.
--   
--   <i>See:</i> <a>attributeValue</a> smart constructor.
data AttributeValue

-- | Creates a value of <a>AttributeValue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avValue</a> - The attribute value. Note that the value is
--   case-sensitive.</li>
--   </ul>
attributeValue :: AttributeValue

-- | The attribute value. Note that the value is case-sensitive.
avValue :: Lens' AttributeValue (Maybe Text)

-- | 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>azRegionName</a> - The name of the region.</li>
--   <li><a>azZoneName</a> - The name of the Availability Zone.</li>
--   <li><a>azMessages</a> - Any messages about the Availability Zone.</li>
--   </ul>
availabilityZone :: AvailabilityZone

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

-- | The name of the region.
azRegionName :: Lens' AvailabilityZone (Maybe Text)

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

-- | Any messages about the Availability Zone.
azMessages :: Lens' AvailabilityZone [AvailabilityZoneMessage]

-- | Describes a message about an Availability Zone.
--   
--   <i>See:</i> <a>availabilityZoneMessage</a> smart constructor.
data AvailabilityZoneMessage

-- | Creates a value of <a>AvailabilityZoneMessage</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>azmMessage</a> - The message about the Availability Zone.</li>
--   </ul>
availabilityZoneMessage :: AvailabilityZoneMessage

-- | The message about the Availability Zone.
azmMessage :: Lens' AvailabilityZoneMessage (Maybe Text)

-- | The capacity information for instances launched onto the Dedicated
--   Host.
--   
--   <i>See:</i> <a>availableCapacity</a> smart constructor.
data AvailableCapacity

-- | Creates a value of <a>AvailableCapacity</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acAvailableInstanceCapacity</a> - The total number of instances
--   that the Dedicated Host supports.</li>
--   <li><a>acAvailableVCPUs</a> - The number of vCPUs available on the
--   Dedicated Host.</li>
--   </ul>
availableCapacity :: AvailableCapacity

-- | The total number of instances that the Dedicated Host supports.
acAvailableInstanceCapacity :: Lens' AvailableCapacity [InstanceCapacity]

-- | The number of vCPUs available on the Dedicated Host.
acAvailableVCPUs :: Lens' AvailableCapacity (Maybe Int)

-- | <i>See:</i> <a>blobAttributeValue</a> smart constructor.
data BlobAttributeValue

-- | Creates a value of <a>BlobAttributeValue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bavValue</a> - Undocumented member.-- <i>Note:</i> This
--   <tt>Lens</tt> automatically encodes and decodes Base64 data. The
--   underlying isomorphism will encode to Base64 representation during
--   serialisation, and decode from Base64 representation during
--   deserialisation. This <tt>Lens</tt> accepts and returns only raw
--   unencoded data.</li>
--   </ul>
blobAttributeValue :: BlobAttributeValue

-- | Undocumented member.-- <i>Note:</i> This <tt>Lens</tt> automatically
--   encodes and decodes Base64 data. The underlying isomorphism will
--   encode to Base64 representation during serialisation, and decode from
--   Base64 representation during deserialisation. This <tt>Lens</tt>
--   accepts and returns only raw unencoded data.
bavValue :: Lens' BlobAttributeValue (Maybe ByteString)

-- | Describes a block device mapping.
--   
--   <i>See:</i> <a>blockDeviceMapping</a> smart constructor.
data BlockDeviceMapping

-- | Creates a value of <a>BlockDeviceMapping</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bdmVirtualName</a> - The virtual device name
--   (<tt>ephemeral</tt> N). Instance store volumes are numbered starting
--   from 0. An instance type with 2 available instance store volumes can
--   specify mappings for <tt>ephemeral0</tt> and <tt>ephemeral1</tt> .The
--   number of available instance store volumes depends on the instance
--   type. After you connect to the instance, you must mount the volume.
--   Constraints: For M3 instances, you must specify instance store volumes
--   in the block device mapping for the instance. When you launch an M3
--   instance, we ignore any instance store volumes specified in the block
--   device mapping for the AMI.</li>
--   <li><a>bdmNoDevice</a> - Suppresses the specified device included in
--   the block device mapping of the AMI.</li>
--   <li><a>bdmEBS</a> - Parameters used to automatically set up EBS
--   volumes when the instance is launched.</li>
--   <li><a>bdmDeviceName</a> - The device name exposed to the instance
--   (for example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).</li>
--   </ul>
blockDeviceMapping :: Text -> BlockDeviceMapping

-- | The virtual device name (<tt>ephemeral</tt> N). Instance store volumes
--   are numbered starting from 0. An instance type with 2 available
--   instance store volumes can specify mappings for <tt>ephemeral0</tt>
--   and <tt>ephemeral1</tt> .The number of available instance store
--   volumes depends on the instance type. After you connect to the
--   instance, you must mount the volume. Constraints: For M3 instances,
--   you must specify instance store volumes in the block device mapping
--   for the instance. When you launch an M3 instance, we ignore any
--   instance store volumes specified in the block device mapping for the
--   AMI.
bdmVirtualName :: Lens' BlockDeviceMapping (Maybe Text)

-- | Suppresses the specified device included in the block device mapping
--   of the AMI.
bdmNoDevice :: Lens' BlockDeviceMapping (Maybe Text)

-- | Parameters used to automatically set up EBS volumes when the instance
--   is launched.
bdmEBS :: Lens' BlockDeviceMapping (Maybe EBSBlockDevice)

-- | The device name exposed to the instance (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).
bdmDeviceName :: Lens' BlockDeviceMapping Text

-- | Describes a bundle task.
--   
--   <i>See:</i> <a>bundleTask</a> smart constructor.
data BundleTask

-- | Creates a value of <a>BundleTask</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>btBundleTaskError</a> - If the task fails, a description of the
--   error.</li>
--   <li><a>btBundleId</a> - The ID of the bundle task.</li>
--   <li><a>btInstanceId</a> - The ID of the instance associated with this
--   bundle task.</li>
--   <li><a>btProgress</a> - The level of task completion, as a percent
--   (for example, 20%).</li>
--   <li><a>btStartTime</a> - The time this task started.</li>
--   <li><a>btState</a> - The state of the task.</li>
--   <li><a>btStorage</a> - The Amazon S3 storage locations.</li>
--   <li><a>btUpdateTime</a> - The time of the most recent update for the
--   task.</li>
--   </ul>
bundleTask :: Text -> Text -> Text -> UTCTime -> BundleTaskState -> Storage -> UTCTime -> BundleTask

-- | If the task fails, a description of the error.
btBundleTaskError :: Lens' BundleTask (Maybe BundleTaskError)

-- | The ID of the bundle task.
btBundleId :: Lens' BundleTask Text

-- | The ID of the instance associated with this bundle task.
btInstanceId :: Lens' BundleTask Text

-- | The level of task completion, as a percent (for example, 20%).
btProgress :: Lens' BundleTask Text

-- | The time this task started.
btStartTime :: Lens' BundleTask UTCTime

-- | The state of the task.
btState :: Lens' BundleTask BundleTaskState

-- | The Amazon S3 storage locations.
btStorage :: Lens' BundleTask Storage

-- | The time of the most recent update for the task.
btUpdateTime :: Lens' BundleTask UTCTime

-- | Describes an error for <tt>BundleInstance</tt> .
--   
--   <i>See:</i> <a>bundleTaskError</a> smart constructor.
data BundleTaskError

-- | Creates a value of <a>BundleTaskError</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bteCode</a> - The error code.</li>
--   <li><a>bteMessage</a> - The error message.</li>
--   </ul>
bundleTaskError :: BundleTaskError

-- | The error code.
bteCode :: Lens' BundleTaskError (Maybe Text)

-- | The error message.
bteMessage :: Lens' BundleTaskError (Maybe Text)

-- | Describes a Spot fleet error.
--   
--   <i>See:</i> <a>cancelSpotFleetRequestsError</a> smart constructor.
data CancelSpotFleetRequestsError

-- | Creates a value of <a>CancelSpotFleetRequestsError</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csfreCode</a> - The error code.</li>
--   <li><a>csfreMessage</a> - The description for the error code.</li>
--   </ul>
cancelSpotFleetRequestsError :: CancelBatchErrorCode -> Text -> CancelSpotFleetRequestsError

-- | The error code.
csfreCode :: Lens' CancelSpotFleetRequestsError CancelBatchErrorCode

-- | The description for the error code.
csfreMessage :: Lens' CancelSpotFleetRequestsError Text

-- | Describes a Spot fleet request that was not successfully canceled.
--   
--   <i>See:</i> <a>cancelSpotFleetRequestsErrorItem</a> smart constructor.
data CancelSpotFleetRequestsErrorItem

-- | Creates a value of <a>CancelSpotFleetRequestsErrorItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csfreiSpotFleetRequestId</a> - The ID of the Spot fleet
--   request.</li>
--   <li><a>csfreiError</a> - The error.</li>
--   </ul>
cancelSpotFleetRequestsErrorItem :: Text -> CancelSpotFleetRequestsError -> CancelSpotFleetRequestsErrorItem

-- | The ID of the Spot fleet request.
csfreiSpotFleetRequestId :: Lens' CancelSpotFleetRequestsErrorItem Text

-- | The error.
csfreiError :: Lens' CancelSpotFleetRequestsErrorItem CancelSpotFleetRequestsError

-- | Describes a Spot fleet request that was successfully canceled.
--   
--   <i>See:</i> <a>cancelSpotFleetRequestsSuccessItem</a> smart
--   constructor.
data CancelSpotFleetRequestsSuccessItem

-- | Creates a value of <a>CancelSpotFleetRequestsSuccessItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csfrsiSpotFleetRequestId</a> - The ID of the Spot fleet
--   request.</li>
--   <li><a>csfrsiCurrentSpotFleetRequestState</a> - The current state of
--   the Spot fleet request.</li>
--   <li><a>csfrsiPreviousSpotFleetRequestState</a> - The previous state of
--   the Spot fleet request.</li>
--   </ul>
cancelSpotFleetRequestsSuccessItem :: Text -> BatchState -> BatchState -> CancelSpotFleetRequestsSuccessItem

-- | The ID of the Spot fleet request.
csfrsiSpotFleetRequestId :: Lens' CancelSpotFleetRequestsSuccessItem Text

-- | The current state of the Spot fleet request.
csfrsiCurrentSpotFleetRequestState :: Lens' CancelSpotFleetRequestsSuccessItem BatchState

-- | The previous state of the Spot fleet request.
csfrsiPreviousSpotFleetRequestState :: Lens' CancelSpotFleetRequestsSuccessItem BatchState

-- | Describes a request to cancel a Spot instance.
--   
--   <i>See:</i> <a>cancelledSpotInstanceRequest</a> smart constructor.
data CancelledSpotInstanceRequest

-- | Creates a value of <a>CancelledSpotInstanceRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csirState</a> - The state of the Spot instance request.</li>
--   <li><a>csirSpotInstanceRequestId</a> - The ID of the Spot instance
--   request.</li>
--   </ul>
cancelledSpotInstanceRequest :: CancelledSpotInstanceRequest

-- | The state of the Spot instance request.
csirState :: Lens' CancelledSpotInstanceRequest (Maybe CancelSpotInstanceRequestState)

-- | The ID of the Spot instance request.
csirSpotInstanceRequestId :: Lens' CancelledSpotInstanceRequest (Maybe Text)

-- | Describes the ClassicLink DNS support status of a VPC.
--   
--   <i>See:</i> <a>classicLinkDNSSupport</a> smart constructor.
data ClassicLinkDNSSupport

-- | Creates a value of <a>ClassicLinkDNSSupport</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cldsVPCId</a> - The ID of the VPC.</li>
--   <li><a>cldsClassicLinkDNSSupported</a> - Indicates whether ClassicLink
--   DNS support is enabled for the VPC.</li>
--   </ul>
classicLinkDNSSupport :: ClassicLinkDNSSupport

-- | The ID of the VPC.
cldsVPCId :: Lens' ClassicLinkDNSSupport (Maybe Text)

-- | Indicates whether ClassicLink DNS support is enabled for the VPC.
cldsClassicLinkDNSSupported :: Lens' ClassicLinkDNSSupport (Maybe Bool)

-- | Describes a linked EC2-Classic instance.
--   
--   <i>See:</i> <a>classicLinkInstance</a> smart constructor.
data ClassicLinkInstance

-- | Creates a value of <a>ClassicLinkInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cliInstanceId</a> - The ID of the instance.</li>
--   <li><a>cliGroups</a> - A list of security groups.</li>
--   <li><a>cliVPCId</a> - The ID of the VPC.</li>
--   <li><a>cliTags</a> - Any tags assigned to the instance.</li>
--   </ul>
classicLinkInstance :: ClassicLinkInstance

-- | The ID of the instance.
cliInstanceId :: Lens' ClassicLinkInstance (Maybe Text)

-- | A list of security groups.
cliGroups :: Lens' ClassicLinkInstance [GroupIdentifier]

-- | The ID of the VPC.
cliVPCId :: Lens' ClassicLinkInstance (Maybe Text)

-- | Any tags assigned to the instance.
cliTags :: Lens' ClassicLinkInstance [Tag]

-- | Describes the client-specific data.
--   
--   <i>See:</i> <a>clientData</a> smart constructor.
data ClientData

-- | Creates a value of <a>ClientData</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdUploadStart</a> - The time that the disk upload starts.</li>
--   <li><a>cdUploadSize</a> - The size of the uploaded disk image, in
--   GiB.</li>
--   <li><a>cdUploadEnd</a> - The time that the disk upload ends.</li>
--   <li><a>cdComment</a> - A user-defined comment about the disk
--   upload.</li>
--   </ul>
clientData :: ClientData

-- | The time that the disk upload starts.
cdUploadStart :: Lens' ClientData (Maybe UTCTime)

-- | The size of the uploaded disk image, in GiB.
cdUploadSize :: Lens' ClientData (Maybe Double)

-- | The time that the disk upload ends.
cdUploadEnd :: Lens' ClientData (Maybe UTCTime)

-- | A user-defined comment about the disk upload.
cdComment :: Lens' ClientData (Maybe Text)

-- | Describes a conversion task.
--   
--   <i>See:</i> <a>conversionTask</a> smart constructor.
data ConversionTask

-- | Creates a value of <a>ConversionTask</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ctImportInstance</a> - If the task is for importing an
--   instance, this contains information about the import instance
--   task.</li>
--   <li><a>ctStatusMessage</a> - The status message related to the
--   conversion task.</li>
--   <li><a>ctImportVolume</a> - If the task is for importing a volume,
--   this contains information about the import volume task.</li>
--   <li><a>ctExpirationTime</a> - The time when the task expires. If the
--   upload isn't complete before the expiration time, we automatically
--   cancel the task.</li>
--   <li><a>ctTags</a> - Any tags assigned to the task.</li>
--   <li><a>ctConversionTaskId</a> - The ID of the conversion task.</li>
--   <li><a>ctState</a> - The state of the conversion task.</li>
--   </ul>
conversionTask :: Text -> ConversionTaskState -> ConversionTask

-- | If the task is for importing an instance, this contains information
--   about the import instance task.
ctImportInstance :: Lens' ConversionTask (Maybe ImportInstanceTaskDetails)

-- | The status message related to the conversion task.
ctStatusMessage :: Lens' ConversionTask (Maybe Text)

-- | If the task is for importing a volume, this contains information about
--   the import volume task.
ctImportVolume :: Lens' ConversionTask (Maybe ImportVolumeTaskDetails)

-- | The time when the task expires. If the upload isn't complete before
--   the expiration time, we automatically cancel the task.
ctExpirationTime :: Lens' ConversionTask (Maybe Text)

-- | Any tags assigned to the task.
ctTags :: Lens' ConversionTask [Tag]

-- | The ID of the conversion task.
ctConversionTaskId :: Lens' ConversionTask Text

-- | The state of the conversion task.
ctState :: Lens' ConversionTask ConversionTaskState

-- | Describes the user or group to be added or removed from the
--   permissions for a volume.
--   
--   <i>See:</i> <a>createVolumePermission</a> smart constructor.
data CreateVolumePermission

-- | Creates a value of <a>CreateVolumePermission</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvpGroup</a> - The specific group that is to be added or
--   removed from a volume's list of create volume permissions.</li>
--   <li><a>cvpUserId</a> - The specific AWS account ID that is to be added
--   or removed from a volume's list of create volume permissions.</li>
--   </ul>
createVolumePermission :: CreateVolumePermission

-- | The specific group that is to be added or removed from a volume's list
--   of create volume permissions.
cvpGroup :: Lens' CreateVolumePermission (Maybe PermissionGroup)

-- | The specific AWS account ID that is to be added or removed from a
--   volume's list of create volume permissions.
cvpUserId :: Lens' CreateVolumePermission (Maybe Text)

-- | Describes modifications to the permissions for a volume.
--   
--   <i>See:</i> <a>createVolumePermissionModifications</a> smart
--   constructor.
data CreateVolumePermissionModifications

-- | Creates a value of <a>CreateVolumePermissionModifications</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvpmRemove</a> - Removes a specific AWS account ID or group
--   from a volume's list of create volume permissions.</li>
--   <li><a>cvpmAdd</a> - Adds a specific AWS account ID or group to a
--   volume's list of create volume permissions.</li>
--   </ul>
createVolumePermissionModifications :: CreateVolumePermissionModifications

-- | Removes a specific AWS account ID or group from a volume's list of
--   create volume permissions.
cvpmRemove :: Lens' CreateVolumePermissionModifications [CreateVolumePermission]

-- | Adds a specific AWS account ID or group to a volume's list of create
--   volume permissions.
cvpmAdd :: Lens' CreateVolumePermissionModifications [CreateVolumePermission]

-- | Describes a customer gateway.
--   
--   <i>See:</i> <a>customerGateway</a> smart constructor.
data CustomerGateway

-- | Creates a value of <a>CustomerGateway</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cgTags</a> - Any tags assigned to the customer gateway.</li>
--   <li><a>cgBGPASN</a> - The customer gateway's Border Gateway Protocol
--   (BGP) Autonomous System Number (ASN).</li>
--   <li><a>cgCustomerGatewayId</a> - The ID of the customer gateway.</li>
--   <li><a>cgIPAddress</a> - The Internet-routable IP address of the
--   customer gateway's outside interface.</li>
--   <li><a>cgState</a> - The current state of the customer gateway
--   (<tt>pending | available | deleting | deleted</tt> ).</li>
--   <li><a>cgType</a> - The type of VPN connection the customer gateway
--   supports (<tt>ipsec.1</tt> ).</li>
--   </ul>
customerGateway :: Text -> Text -> Text -> Text -> Text -> CustomerGateway

-- | Any tags assigned to the customer gateway.
cgTags :: Lens' CustomerGateway [Tag]

-- | The customer gateway's Border Gateway Protocol (BGP) Autonomous System
--   Number (ASN).
cgBGPASN :: Lens' CustomerGateway Text

-- | The ID of the customer gateway.
cgCustomerGatewayId :: Lens' CustomerGateway Text

-- | The Internet-routable IP address of the customer gateway's outside
--   interface.
cgIPAddress :: Lens' CustomerGateway Text

-- | The current state of the customer gateway (<tt>pending | available |
--   deleting | deleted</tt> ).
cgState :: Lens' CustomerGateway Text

-- | The type of VPN connection the customer gateway supports
--   (<tt>ipsec.1</tt> ).
cgType :: Lens' CustomerGateway Text

-- | Describes a DHCP configuration option.
--   
--   <i>See:</i> <a>dhcpConfiguration</a> smart constructor.
data DHCPConfiguration

-- | Creates a value of <a>DHCPConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcValues</a> - One or more values for the DHCP option.</li>
--   <li><a>dcKey</a> - The name of a DHCP option.</li>
--   </ul>
dhcpConfiguration :: DHCPConfiguration

-- | One or more values for the DHCP option.
dcValues :: Lens' DHCPConfiguration [AttributeValue]

-- | The name of a DHCP option.
dcKey :: Lens' DHCPConfiguration (Maybe Text)

-- | Describes a set of DHCP options.
--   
--   <i>See:</i> <a>dhcpOptions</a> smart constructor.
data DHCPOptions

-- | Creates a value of <a>DHCPOptions</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>doDHCPConfigurations</a> - One or more DHCP options in the
--   set.</li>
--   <li><a>doDHCPOptionsId</a> - The ID of the set of DHCP options.</li>
--   <li><a>doTags</a> - Any tags assigned to the DHCP options set.</li>
--   </ul>
dhcpOptions :: DHCPOptions

-- | One or more DHCP options in the set.
doDHCPConfigurations :: Lens' DHCPOptions [DHCPConfiguration]

-- | The ID of the set of DHCP options.
doDHCPOptionsId :: Lens' DHCPOptions (Maybe Text)

-- | Any tags assigned to the DHCP options set.
doTags :: Lens' DHCPOptions [Tag]

-- | Describes a disk image.
--   
--   <i>See:</i> <a>diskImage</a> smart constructor.
data DiskImage

-- | Creates a value of <a>DiskImage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diImage</a> - Information about the disk image.</li>
--   <li><a>diVolume</a> - Information about the volume.</li>
--   <li><a>diDescription</a> - A description of the disk image.</li>
--   </ul>
diskImage :: DiskImage

-- | Information about the disk image.
diImage :: Lens' DiskImage (Maybe DiskImageDetail)

-- | Information about the volume.
diVolume :: Lens' DiskImage (Maybe VolumeDetail)

-- | A description of the disk image.
diDescription :: Lens' DiskImage (Maybe Text)

-- | Describes a disk image.
--   
--   <i>See:</i> <a>diskImageDescription</a> smart constructor.
data DiskImageDescription

-- | Creates a value of <a>DiskImageDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dChecksum</a> - The checksum computed for the disk image.</li>
--   <li><a>dFormat</a> - The disk image format.</li>
--   <li><a>dSize</a> - The size of the disk image, in GiB.</li>
--   <li><a>dImportManifestURL</a> - A presigned URL for the import
--   manifest stored in Amazon S3. For information about creating a
--   presigned URL for an Amazon S3 object, read the "Query String Request
--   Authentication Alternative" section of the <a>Authenticating REST
--   Requests</a> topic in the <i>Amazon Simple Storage Service Developer
--   Guide</i> . For information about the import manifest referenced by
--   this API action, see <a>VM Import Manifest</a> .</li>
--   </ul>
diskImageDescription :: DiskImageFormat -> Integer -> Text -> DiskImageDescription

-- | The checksum computed for the disk image.
dChecksum :: Lens' DiskImageDescription (Maybe Text)

-- | The disk image format.
dFormat :: Lens' DiskImageDescription DiskImageFormat

-- | The size of the disk image, in GiB.
dSize :: Lens' DiskImageDescription Integer

-- | A presigned URL for the import manifest stored in Amazon S3. For
--   information about creating a presigned URL for an Amazon S3 object,
--   read the "Query String Request Authentication Alternative" section of
--   the <a>Authenticating REST Requests</a> topic in the <i>Amazon Simple
--   Storage Service Developer Guide</i> . For information about the import
--   manifest referenced by this API action, see <a>VM Import Manifest</a>
--   .
dImportManifestURL :: Lens' DiskImageDescription Text

-- | Describes a disk image.
--   
--   <i>See:</i> <a>diskImageDetail</a> smart constructor.
data DiskImageDetail

-- | Creates a value of <a>DiskImageDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>didFormat</a> - The disk image format.</li>
--   <li><a>didBytes</a> - The size of the disk image, in GiB.</li>
--   <li><a>didImportManifestURL</a> - A presigned URL for the import
--   manifest stored in Amazon S3 and presented here as an Amazon S3
--   presigned URL. For information about creating a presigned URL for an
--   Amazon S3 object, read the "Query String Request Authentication
--   Alternative" section of the <a>Authenticating REST Requests</a> topic
--   in the <i>Amazon Simple Storage Service Developer Guide</i> . For
--   information about the import manifest referenced by this API action,
--   see <a>VM Import Manifest</a> .</li>
--   </ul>
diskImageDetail :: DiskImageFormat -> Integer -> Text -> DiskImageDetail

-- | The disk image format.
didFormat :: Lens' DiskImageDetail DiskImageFormat

-- | The size of the disk image, in GiB.
didBytes :: Lens' DiskImageDetail Integer

-- | A presigned URL for the import manifest stored in Amazon S3 and
--   presented here as an Amazon S3 presigned URL. For information about
--   creating a presigned URL for an Amazon S3 object, read the "Query
--   String Request Authentication Alternative" section of the
--   <a>Authenticating REST Requests</a> topic in the <i>Amazon Simple
--   Storage Service Developer Guide</i> . For information about the import
--   manifest referenced by this API action, see <a>VM Import Manifest</a>
--   .
didImportManifestURL :: Lens' DiskImageDetail Text

-- | Describes a disk image volume.
--   
--   <i>See:</i> <a>diskImageVolumeDescription</a> smart constructor.
data DiskImageVolumeDescription

-- | Creates a value of <a>DiskImageVolumeDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>divdSize</a> - The size of the volume, in GiB.</li>
--   <li><a>divdId</a> - The volume identifier.</li>
--   </ul>
diskImageVolumeDescription :: Text -> DiskImageVolumeDescription

-- | The size of the volume, in GiB.
divdSize :: Lens' DiskImageVolumeDescription (Maybe Integer)

-- | The volume identifier.
divdId :: Lens' DiskImageVolumeDescription Text

-- | Describes a block device for an EBS volume.
--   
--   <i>See:</i> <a>ebsBlockDevice</a> smart constructor.
data EBSBlockDevice

-- | Creates a value of <a>EBSBlockDevice</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ebdDeleteOnTermination</a> - Indicates whether the EBS volume
--   is deleted on instance termination.</li>
--   <li><a>ebdVolumeSize</a> - The size of the volume, in GiB.
--   Constraints: 1-16384 for General Purpose SSD (<tt>gp2</tt> ), 4-16384
--   for Provisioned IOPS SSD (<tt>io1</tt> ), 500-16384 for Throughput
--   Optimized HDD (<tt>st1</tt> ), 500-16384 for Cold HDD (<tt>sc1</tt> ),
--   and 1-1024 for Magnetic (<tt>standard</tt> ) volumes. If you specify a
--   snapshot, the volume size must be equal to or larger than the snapshot
--   size. Default: If you're creating the volume from a snapshot and don't
--   specify a volume size, the default is the snapshot size.</li>
--   <li><a>ebdIOPS</a> - The number of I<i>O operations per second (IOPS)
--   that the volume supports. For <tt>io1</tt> , this represents the
--   number of IOPS that are provisioned for the volume. For <tt>gp2</tt> ,
--   this represents the baseline performance of the volume and the rate at
--   which the volume accumulates I</i>O credits for bursting. For more
--   information about General Purpose SSD baseline performance, I<i>O
--   credits, and bursting, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for <tt>io1</tt>
--   volumes and 100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This
--   parameter is required for requests to create <tt>io1</tt> volumes; it
--   is not used in requests to create <tt>gp2</tt> , <tt>st1</tt> ,
--   <tt>sc1</tt> , or <tt>standard</tt> volumes.</li>
--   <li><a>ebdEncrypted</a> - Indicates whether the EBS volume is
--   encrypted. Encrypted Amazon EBS volumes may only be attached to
--   instances that support Amazon EBS encryption.</li>
--   <li><a>ebdVolumeType</a> - The volume type: <tt>gp2</tt> ,
--   <tt>io1</tt> , <tt>st1</tt> , <tt>sc1</tt> , or <tt>standard</tt> .
--   Default: <tt>standard</tt></li>
--   <li><a>ebdSnapshotId</a> - The ID of the snapshot.</li>
--   </ul>
ebsBlockDevice :: EBSBlockDevice

-- | Indicates whether the EBS volume is deleted on instance termination.
ebdDeleteOnTermination :: Lens' EBSBlockDevice (Maybe Bool)

-- | The size of the volume, in GiB. Constraints: 1-16384 for General
--   Purpose SSD (<tt>gp2</tt> ), 4-16384 for Provisioned IOPS SSD
--   (<tt>io1</tt> ), 500-16384 for Throughput Optimized HDD (<tt>st1</tt>
--   ), 500-16384 for Cold HDD (<tt>sc1</tt> ), and 1-1024 for Magnetic
--   (<tt>standard</tt> ) volumes. If you specify a snapshot, the volume
--   size must be equal to or larger than the snapshot size. Default: If
--   you're creating the volume from a snapshot and don't specify a volume
--   size, the default is the snapshot size.
ebdVolumeSize :: Lens' EBSBlockDevice (Maybe Int)

-- | The number of I<i>O operations per second (IOPS) that the volume
--   supports. For <tt>io1</tt> , this represents the number of IOPS that
--   are provisioned for the volume. For <tt>gp2</tt> , this represents the
--   baseline performance of the volume and the rate at which the volume
--   accumulates I</i>O credits for bursting. For more information about
--   General Purpose SSD baseline performance, I<i>O credits, and bursting,
--   see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for <tt>io1</tt>
--   volumes and 100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This
--   parameter is required for requests to create <tt>io1</tt> volumes; it
--   is not used in requests to create <tt>gp2</tt> , <tt>st1</tt> ,
--   <tt>sc1</tt> , or <tt>standard</tt> volumes.
ebdIOPS :: Lens' EBSBlockDevice (Maybe Int)

-- | Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS
--   volumes may only be attached to instances that support Amazon EBS
--   encryption.
ebdEncrypted :: Lens' EBSBlockDevice (Maybe Bool)

-- | The volume type: <tt>gp2</tt> , <tt>io1</tt> , <tt>st1</tt> ,
--   <tt>sc1</tt> , or <tt>standard</tt> . Default: <tt>standard</tt>
ebdVolumeType :: Lens' EBSBlockDevice (Maybe VolumeType)

-- | The ID of the snapshot.
ebdSnapshotId :: Lens' EBSBlockDevice (Maybe Text)

-- | Describes a parameter used to set up an EBS volume in a block device
--   mapping.
--   
--   <i>See:</i> <a>ebsInstanceBlockDevice</a> smart constructor.
data EBSInstanceBlockDevice

-- | Creates a value of <a>EBSInstanceBlockDevice</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eibdStatus</a> - The attachment state.</li>
--   <li><a>eibdDeleteOnTermination</a> - Indicates whether the volume is
--   deleted on instance termination.</li>
--   <li><a>eibdVolumeId</a> - The ID of the EBS volume.</li>
--   <li><a>eibdAttachTime</a> - The time stamp when the attachment
--   initiated.</li>
--   </ul>
ebsInstanceBlockDevice :: EBSInstanceBlockDevice

-- | The attachment state.
eibdStatus :: Lens' EBSInstanceBlockDevice (Maybe AttachmentStatus)

-- | Indicates whether the volume is deleted on instance termination.
eibdDeleteOnTermination :: Lens' EBSInstanceBlockDevice (Maybe Bool)

-- | The ID of the EBS volume.
eibdVolumeId :: Lens' EBSInstanceBlockDevice (Maybe Text)

-- | The time stamp when the attachment initiated.
eibdAttachTime :: Lens' EBSInstanceBlockDevice (Maybe UTCTime)

-- | Describes information used to set up an EBS volume specified in a
--   block device mapping.
--   
--   <i>See:</i> <a>ebsInstanceBlockDeviceSpecification</a> smart
--   constructor.
data EBSInstanceBlockDeviceSpecification

-- | Creates a value of <a>EBSInstanceBlockDeviceSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eibdsDeleteOnTermination</a> - Indicates whether the volume is
--   deleted on instance termination.</li>
--   <li><a>eibdsVolumeId</a> - The ID of the EBS volume.</li>
--   </ul>
ebsInstanceBlockDeviceSpecification :: EBSInstanceBlockDeviceSpecification

-- | Indicates whether the volume is deleted on instance termination.
eibdsDeleteOnTermination :: Lens' EBSInstanceBlockDeviceSpecification (Maybe Bool)

-- | The ID of the EBS volume.
eibdsVolumeId :: Lens' EBSInstanceBlockDeviceSpecification (Maybe Text)

-- | Describes an egress-only Internet gateway.
--   
--   <i>See:</i> <a>egressOnlyInternetGateway</a> smart constructor.
data EgressOnlyInternetGateway

-- | Creates a value of <a>EgressOnlyInternetGateway</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eoigEgressOnlyInternetGatewayId</a> - The ID of the egress-only
--   Internet gateway.</li>
--   <li><a>eoigAttachments</a> - Information about the attachment of the
--   egress-only Internet gateway.</li>
--   </ul>
egressOnlyInternetGateway :: EgressOnlyInternetGateway

-- | The ID of the egress-only Internet gateway.
eoigEgressOnlyInternetGatewayId :: Lens' EgressOnlyInternetGateway (Maybe Text)

-- | Information about the attachment of the egress-only Internet gateway.
eoigAttachments :: Lens' EgressOnlyInternetGateway [InternetGatewayAttachment]

-- | Describes a Spot fleet event.
--   
--   <i>See:</i> <a>eventInformation</a> smart constructor.
data EventInformation

-- | Creates a value of <a>EventInformation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eiInstanceId</a> - The ID of the instance. This information is
--   available only for <tt>instanceChange</tt> events.</li>
--   <li><a>eiEventDescription</a> - The description of the event.</li>
--   <li><a>eiEventSubType</a> - The event. The following are the
--   <tt>error</tt> events. * <tt>iamFleetRoleInvalid</tt> - The Spot fleet
--   did not have the required permissions either to launch or terminate an
--   instance. * <tt>launchSpecTemporarilyBlacklisted</tt> - The
--   configuration is not valid and several attempts to launch instances
--   have failed. For more information, see the description of the event. *
--   <tt>spotFleetRequestConfigurationInvalid</tt> - The configuration is
--   not valid. For more information, see the description of the event. *
--   <tt>spotInstanceCountLimitExceeded</tt> - You've reached the limit on
--   the number of Spot instances that you can launch. The following are
--   the <tt>fleetRequestChange</tt> events. * <tt>active</tt> - The Spot
--   fleet has been validated and Amazon EC2 is attempting to maintain the
--   target number of running Spot instances. * <tt>cancelled</tt> - The
--   Spot fleet is canceled and has no running Spot instances. The Spot
--   fleet will be deleted two days after its instances were terminated. *
--   <tt>cancelled_running</tt> - The Spot fleet is canceled and will not
--   launch additional Spot instances, but its existing Spot instances
--   continue to run until they are interrupted or terminated. *
--   <tt>cancelled_terminating</tt> - The Spot fleet is canceled and its
--   Spot instances are terminating. * <tt>expired</tt> - The Spot fleet
--   request has expired. A subsequent event indicates that the instances
--   were terminated, if the request was created with
--   <tt>TerminateInstancesWithExpiration</tt> set. *
--   <tt>modify_in_progress</tt> - A request to modify the Spot fleet
--   request was accepted and is in progress. * <tt>modify_successful</tt>
--   - The Spot fleet request was modified. * <tt>price_update</tt> - The
--   bid price for a launch configuration was adjusted because it was too
--   high. This change is permanent. * <tt>submitted</tt> - The Spot fleet
--   request is being evaluated and Amazon EC2 is preparing to launch the
--   target number of Spot instances. The following are the
--   <tt>instanceChange</tt> events. * <tt>launched</tt> - A bid was
--   fulfilled and a new instance was launched. * <tt>terminated</tt> - An
--   instance was terminated by the user.</li>
--   </ul>
eventInformation :: EventInformation

-- | The ID of the instance. This information is available only for
--   <tt>instanceChange</tt> events.
eiInstanceId :: Lens' EventInformation (Maybe Text)

-- | The description of the event.
eiEventDescription :: Lens' EventInformation (Maybe Text)

-- | The event. The following are the <tt>error</tt> events. *
--   <tt>iamFleetRoleInvalid</tt> - The Spot fleet did not have the
--   required permissions either to launch or terminate an instance. *
--   <tt>launchSpecTemporarilyBlacklisted</tt> - The configuration is not
--   valid and several attempts to launch instances have failed. For more
--   information, see the description of the event. *
--   <tt>spotFleetRequestConfigurationInvalid</tt> - The configuration is
--   not valid. For more information, see the description of the event. *
--   <tt>spotInstanceCountLimitExceeded</tt> - You've reached the limit on
--   the number of Spot instances that you can launch. The following are
--   the <tt>fleetRequestChange</tt> events. * <tt>active</tt> - The Spot
--   fleet has been validated and Amazon EC2 is attempting to maintain the
--   target number of running Spot instances. * <tt>cancelled</tt> - The
--   Spot fleet is canceled and has no running Spot instances. The Spot
--   fleet will be deleted two days after its instances were terminated. *
--   <tt>cancelled_running</tt> - The Spot fleet is canceled and will not
--   launch additional Spot instances, but its existing Spot instances
--   continue to run until they are interrupted or terminated. *
--   <tt>cancelled_terminating</tt> - The Spot fleet is canceled and its
--   Spot instances are terminating. * <tt>expired</tt> - The Spot fleet
--   request has expired. A subsequent event indicates that the instances
--   were terminated, if the request was created with
--   <tt>TerminateInstancesWithExpiration</tt> set. *
--   <tt>modify_in_progress</tt> - A request to modify the Spot fleet
--   request was accepted and is in progress. * <tt>modify_successful</tt>
--   - The Spot fleet request was modified. * <tt>price_update</tt> - The
--   bid price for a launch configuration was adjusted because it was too
--   high. This change is permanent. * <tt>submitted</tt> - The Spot fleet
--   request is being evaluated and Amazon EC2 is preparing to launch the
--   target number of Spot instances. The following are the
--   <tt>instanceChange</tt> events. * <tt>launched</tt> - A bid was
--   fulfilled and a new instance was launched. * <tt>terminated</tt> - An
--   instance was terminated by the user.
eiEventSubType :: Lens' EventInformation (Maybe Text)

-- | Describes an instance export task.
--   
--   <i>See:</i> <a>exportTask</a> smart constructor.
data ExportTask

-- | Creates a value of <a>ExportTask</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etDescription</a> - A description of the resource being
--   exported.</li>
--   <li><a>etExportTaskId</a> - The ID of the export task.</li>
--   <li><a>etExportToS3Task</a> - Information about the export task.</li>
--   <li><a>etInstanceExportDetails</a> - Information about the instance to
--   export.</li>
--   <li><a>etState</a> - The state of the export task.</li>
--   <li><a>etStatusMessage</a> - The status message related to the export
--   task.</li>
--   </ul>
exportTask :: Text -> Text -> ExportToS3Task -> InstanceExportDetails -> ExportTaskState -> Text -> ExportTask

-- | A description of the resource being exported.
etDescription :: Lens' ExportTask Text

-- | The ID of the export task.
etExportTaskId :: Lens' ExportTask Text

-- | Information about the export task.
etExportToS3Task :: Lens' ExportTask ExportToS3Task

-- | Information about the instance to export.
etInstanceExportDetails :: Lens' ExportTask InstanceExportDetails

-- | The state of the export task.
etState :: Lens' ExportTask ExportTaskState

-- | The status message related to the export task.
etStatusMessage :: Lens' ExportTask Text

-- | Describes the format and location for an instance export task.
--   
--   <i>See:</i> <a>exportToS3Task</a> smart constructor.
data ExportToS3Task

-- | Creates a value of <a>ExportToS3Task</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etstS3Key</a> - The encryption key for your S3 bucket.</li>
--   <li><a>etstContainerFormat</a> - The container format used to combine
--   disk images with metadata (such as OVF). If absent, only the disk
--   image is exported.</li>
--   <li><a>etstS3Bucket</a> - The S3 bucket for the destination image. The
--   destination bucket must exist and grant WRITE and READ_ACP permissions
--   to the AWS account <tt>vm-import-export</tt>amazon.com@ .</li>
--   <li><a>etstDiskImageFormat</a> - The format for the exported
--   image.</li>
--   </ul>
exportToS3Task :: ExportToS3Task

-- | The encryption key for your S3 bucket.
etstS3Key :: Lens' ExportToS3Task (Maybe Text)

-- | The container format used to combine disk images with metadata (such
--   as OVF). If absent, only the disk image is exported.
etstContainerFormat :: Lens' ExportToS3Task (Maybe ContainerFormat)

-- | The S3 bucket for the destination image. The destination bucket must
--   exist and grant WRITE and READ_ACP permissions to the AWS account
--   <tt>vm-import-export</tt>amazon.com@ .
etstS3Bucket :: Lens' ExportToS3Task (Maybe Text)

-- | The format for the exported image.
etstDiskImageFormat :: Lens' ExportToS3Task (Maybe DiskImageFormat)

-- | Describes an instance export task.
--   
--   <i>See:</i> <a>exportToS3TaskSpecification</a> smart constructor.
data ExportToS3TaskSpecification

-- | Creates a value of <a>ExportToS3TaskSpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etstsContainerFormat</a> - The container format used to combine
--   disk images with metadata (such as OVF). If absent, only the disk
--   image is exported.</li>
--   <li><a>etstsS3Prefix</a> - The image is written to a single object in
--   the S3 bucket at the S3 key s3prefix + exportTaskId + <a>.</a> +
--   diskImageFormat.</li>
--   <li><a>etstsS3Bucket</a> - The S3 bucket for the destination image.
--   The destination bucket must exist and grant WRITE and READ_ACP
--   permissions to the AWS account <tt>vm-import-export</tt>amazon.com@
--   .</li>
--   <li><a>etstsDiskImageFormat</a> - The format for the exported
--   image.</li>
--   </ul>
exportToS3TaskSpecification :: ExportToS3TaskSpecification

-- | The container format used to combine disk images with metadata (such
--   as OVF). If absent, only the disk image is exported.
etstsContainerFormat :: Lens' ExportToS3TaskSpecification (Maybe ContainerFormat)

-- | The image is written to a single object in the S3 bucket at the S3 key
--   s3prefix + exportTaskId + <a>.</a> + diskImageFormat.
etstsS3Prefix :: Lens' ExportToS3TaskSpecification (Maybe Text)

-- | The S3 bucket for the destination image. The destination bucket must
--   exist and grant WRITE and READ_ACP permissions to the AWS account
--   <tt>vm-import-export</tt>amazon.com@ .
etstsS3Bucket :: Lens' ExportToS3TaskSpecification (Maybe Text)

-- | The format for the exported image.
etstsDiskImageFormat :: Lens' ExportToS3TaskSpecification (Maybe DiskImageFormat)

-- | A filter name and value pair that is used to return a more specific
--   list of results. Filters can be used to match a set of resources by
--   various criteria, such as tags, attributes, or IDs.
--   
--   <i>See:</i> <a>filter'</a> smart constructor.
data Filter

-- | Creates a value of <a>Filter</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fValues</a> - One or more filter values. Filter values are
--   case-sensitive.</li>
--   <li><a>fName</a> - The name of the filter. Filter names are
--   case-sensitive.</li>
--   </ul>
filter' :: Text -> Filter

-- | One or more filter values. Filter values are case-sensitive.
fValues :: Lens' Filter [Text]

-- | The name of the filter. Filter names are case-sensitive.
fName :: Lens' Filter Text

-- | Describes a flow log.
--   
--   <i>See:</i> <a>flowLog</a> smart constructor.
data FlowLog

-- | Creates a value of <a>FlowLog</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>flCreationTime</a> - The date and time the flow log was
--   created.</li>
--   <li><a>flResourceId</a> - The ID of the resource on which the flow log
--   was created.</li>
--   <li><a>flFlowLogStatus</a> - The status of the flow log
--   (<tt>ACTIVE</tt> ).</li>
--   <li><a>flTrafficType</a> - The type of traffic captured for the flow
--   log.</li>
--   <li><a>flDeliverLogsStatus</a> - The status of the logs delivery
--   (<tt>SUCCESS</tt> | <tt>FAILED</tt> ).</li>
--   <li><a>flDeliverLogsErrorMessage</a> - Information about the error
--   that occurred. <tt>Rate limited</tt> indicates that CloudWatch logs
--   throttling has been applied for one or more network interfaces, or
--   that you've reached the limit on the number of CloudWatch Logs log
--   groups that you can create. <tt>Access error</tt> indicates that the
--   IAM role associated with the flow log does not have sufficient
--   permissions to publish to CloudWatch Logs. <tt>Unknown error</tt>
--   indicates an internal error.</li>
--   <li><a>flLogGroupName</a> - The name of the flow log group.</li>
--   <li><a>flDeliverLogsPermissionARN</a> - The ARN of the IAM role that
--   posts logs to CloudWatch Logs.</li>
--   <li><a>flFlowLogId</a> - The flow log ID.</li>
--   </ul>
flowLog :: FlowLog

-- | The date and time the flow log was created.
flCreationTime :: Lens' FlowLog (Maybe UTCTime)

-- | The ID of the resource on which the flow log was created.
flResourceId :: Lens' FlowLog (Maybe Text)

-- | The status of the flow log (<tt>ACTIVE</tt> ).
flFlowLogStatus :: Lens' FlowLog (Maybe Text)

-- | The type of traffic captured for the flow log.
flTrafficType :: Lens' FlowLog (Maybe TrafficType)

-- | The status of the logs delivery (<tt>SUCCESS</tt> | <tt>FAILED</tt> ).
flDeliverLogsStatus :: Lens' FlowLog (Maybe Text)

-- | Information about the error that occurred. <tt>Rate limited</tt>
--   indicates that CloudWatch logs throttling has been applied for one or
--   more network interfaces, or that you've reached the limit on the
--   number of CloudWatch Logs log groups that you can create. <tt>Access
--   error</tt> indicates that the IAM role associated with the flow log
--   does not have sufficient permissions to publish to CloudWatch Logs.
--   <tt>Unknown error</tt> indicates an internal error.
flDeliverLogsErrorMessage :: Lens' FlowLog (Maybe Text)

-- | The name of the flow log group.
flLogGroupName :: Lens' FlowLog (Maybe Text)

-- | The ARN of the IAM role that posts logs to CloudWatch Logs.
flDeliverLogsPermissionARN :: Lens' FlowLog (Maybe Text)

-- | The flow log ID.
flFlowLogId :: Lens' FlowLog (Maybe Text)

-- | Describes a security group.
--   
--   <i>See:</i> <a>groupIdentifier</a> smart constructor.
data GroupIdentifier

-- | Creates a value of <a>GroupIdentifier</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>giGroupId</a> - The ID of the security group.</li>
--   <li><a>giGroupName</a> - The name of the security group.</li>
--   </ul>
groupIdentifier :: GroupIdentifier

-- | The ID of the security group.
giGroupId :: Lens' GroupIdentifier (Maybe Text)

-- | The name of the security group.
giGroupName :: Lens' GroupIdentifier (Maybe Text)

-- | Describes an event in the history of the Spot fleet request.
--   
--   <i>See:</i> <a>historyRecord</a> smart constructor.
data HistoryRecord

-- | Creates a value of <a>HistoryRecord</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hrTimestamp</a> - The date and time of the event, in UTC format
--   (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i>
--   :<i>SS</i> Z).</li>
--   <li><a>hrEventType</a> - The event type. * <tt>error</tt> - Indicates
--   an error with the Spot fleet request. * <tt>fleetRequestChange</tt> -
--   Indicates a change in the status or configuration of the Spot fleet
--   request. * <tt>instanceChange</tt> - Indicates that an instance was
--   launched or terminated.</li>
--   <li><a>hrEventInformation</a> - Information about the event.</li>
--   </ul>
historyRecord :: UTCTime -> EventType -> EventInformation -> HistoryRecord

-- | The date and time of the event, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
hrTimestamp :: Lens' HistoryRecord UTCTime

-- | The event type. * <tt>error</tt> - Indicates an error with the Spot
--   fleet request. * <tt>fleetRequestChange</tt> - Indicates a change in
--   the status or configuration of the Spot fleet request. *
--   <tt>instanceChange</tt> - Indicates that an instance was launched or
--   terminated.
hrEventType :: Lens' HistoryRecord EventType

-- | Information about the event.
hrEventInformation :: Lens' HistoryRecord EventInformation

-- | Describes the properties of the Dedicated Host.
--   
--   <i>See:</i> <a>host</a> smart constructor.
data Host

-- | Creates a value of <a>Host</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hState</a> - The Dedicated Host's state.</li>
--   <li><a>hClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure idempotency of the request. For more information,
--   see <a>How to Ensure Idempotency</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i> .</li>
--   <li><a>hHostId</a> - The ID of the Dedicated Host.</li>
--   <li><a>hAvailableCapacity</a> - The number of new instances that can
--   be launched onto the Dedicated Host.</li>
--   <li><a>hHostReservationId</a> - The reservation ID of the Dedicated
--   Host. This returns a <tt>null</tt> response if the Dedicated Host
--   doesn't have an associated reservation.</li>
--   <li><a>hHostProperties</a> - The hardware specifications of the
--   Dedicated Host.</li>
--   <li><a>hAvailabilityZone</a> - The Availability Zone of the Dedicated
--   Host.</li>
--   <li><a>hInstances</a> - The IDs and instance type that are currently
--   running on the Dedicated Host.</li>
--   <li><a>hAutoPlacement</a> - Whether auto-placement is on or off.</li>
--   </ul>
host :: Host

-- | The Dedicated Host's state.
hState :: Lens' Host (Maybe AllocationState)

-- | Unique, case-sensitive identifier you provide to ensure idempotency of
--   the request. For more information, see <a>How to Ensure
--   Idempotency</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
--   .
hClientToken :: Lens' Host (Maybe Text)

-- | The ID of the Dedicated Host.
hHostId :: Lens' Host (Maybe Text)

-- | The number of new instances that can be launched onto the Dedicated
--   Host.
hAvailableCapacity :: Lens' Host (Maybe AvailableCapacity)

-- | The reservation ID of the Dedicated Host. This returns a <tt>null</tt>
--   response if the Dedicated Host doesn't have an associated reservation.
hHostReservationId :: Lens' Host (Maybe Text)

-- | The hardware specifications of the Dedicated Host.
hHostProperties :: Lens' Host (Maybe HostProperties)

-- | The Availability Zone of the Dedicated Host.
hAvailabilityZone :: Lens' Host (Maybe Text)

-- | The IDs and instance type that are currently running on the Dedicated
--   Host.
hInstances :: Lens' Host [HostInstance]

-- | Whether auto-placement is on or off.
hAutoPlacement :: Lens' Host (Maybe AutoPlacement)

-- | Describes an instance running on a Dedicated Host.
--   
--   <i>See:</i> <a>hostInstance</a> smart constructor.
data HostInstance

-- | Creates a value of <a>HostInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hiInstanceId</a> - the IDs of instances that are running on the
--   Dedicated Host.</li>
--   <li><a>hiInstanceType</a> - The instance type size (for example,
--   <tt>m3.medium</tt> ) of the running instance.</li>
--   </ul>
hostInstance :: HostInstance

-- | the IDs of instances that are running on the Dedicated Host.
hiInstanceId :: Lens' HostInstance (Maybe Text)

-- | The instance type size (for example, <tt>m3.medium</tt> ) of the
--   running instance.
hiInstanceType :: Lens' HostInstance (Maybe Text)

-- | Details about the Dedicated Host Reservation offering.
--   
--   <i>See:</i> <a>hostOffering</a> smart constructor.
data HostOffering

-- | Creates a value of <a>HostOffering</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hoInstanceFamily</a> - The instance family of the
--   offering.</li>
--   <li><a>hoCurrencyCode</a> - The currency of the offering.</li>
--   <li><a>hoHourlyPrice</a> - The hourly price of the offering.</li>
--   <li><a>hoUpfrontPrice</a> - The upfront price of the offering. Does
--   not apply to No Upfront offerings.</li>
--   <li><a>hoOfferingId</a> - The ID of the offering.</li>
--   <li><a>hoDuration</a> - The duration of the offering (in
--   seconds).</li>
--   <li><a>hoPaymentOption</a> - The available payment option.</li>
--   </ul>
hostOffering :: HostOffering

-- | The instance family of the offering.
hoInstanceFamily :: Lens' HostOffering (Maybe Text)

-- | The currency of the offering.
hoCurrencyCode :: Lens' HostOffering (Maybe CurrencyCodeValues)

-- | The hourly price of the offering.
hoHourlyPrice :: Lens' HostOffering (Maybe Text)

-- | The upfront price of the offering. Does not apply to No Upfront
--   offerings.
hoUpfrontPrice :: Lens' HostOffering (Maybe Text)

-- | The ID of the offering.
hoOfferingId :: Lens' HostOffering (Maybe Text)

-- | The duration of the offering (in seconds).
hoDuration :: Lens' HostOffering (Maybe Int)

-- | The available payment option.
hoPaymentOption :: Lens' HostOffering (Maybe PaymentOption)

-- | Describes properties of a Dedicated Host.
--   
--   <i>See:</i> <a>hostProperties</a> smart constructor.
data HostProperties

-- | Creates a value of <a>HostProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hpInstanceType</a> - The instance type size that the Dedicated
--   Host supports (for example, <tt>m3.medium</tt> ).</li>
--   <li><a>hpTotalVCPUs</a> - The number of vCPUs on the Dedicated
--   Host.</li>
--   <li><a>hpCores</a> - The number of cores on the Dedicated Host.</li>
--   <li><a>hpSockets</a> - The number of sockets on the Dedicated
--   Host.</li>
--   </ul>
hostProperties :: HostProperties

-- | The instance type size that the Dedicated Host supports (for example,
--   <tt>m3.medium</tt> ).
hpInstanceType :: Lens' HostProperties (Maybe Text)

-- | The number of vCPUs on the Dedicated Host.
hpTotalVCPUs :: Lens' HostProperties (Maybe Int)

-- | The number of cores on the Dedicated Host.
hpCores :: Lens' HostProperties (Maybe Int)

-- | The number of sockets on the Dedicated Host.
hpSockets :: Lens' HostProperties (Maybe Int)

-- | Details about the Dedicated Host Reservation and associated Dedicated
--   Hosts.
--   
--   <i>See:</i> <a>hostReservation</a> smart constructor.
data HostReservation

-- | Creates a value of <a>HostReservation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hrState</a> - The state of the reservation.</li>
--   <li><a>hrInstanceFamily</a> - The instance family of the Dedicated
--   Host Reservation. The instance family on the Dedicated Host must be
--   the same in order for it to benefit from the reservation.</li>
--   <li><a>hrCurrencyCode</a> - The currency in which the
--   <tt>upfrontPrice</tt> and <tt>hourlyPrice</tt> amounts are specified.
--   At this time, the only supported currency is <tt>USD</tt> .</li>
--   <li><a>hrHostReservationId</a> - The ID of the reservation that
--   specifies the associated Dedicated Hosts.</li>
--   <li><a>hrStart</a> - The date and time that the reservation
--   started.</li>
--   <li><a>hrHourlyPrice</a> - The hourly price of the reservation.</li>
--   <li><a>hrCount</a> - The number of Dedicated Hosts the reservation is
--   associated with.</li>
--   <li><a>hrUpfrontPrice</a> - The upfront price of the reservation.</li>
--   <li><a>hrEnd</a> - The date and time that the reservation ends.</li>
--   <li><a>hrHostIdSet</a> - The IDs of the Dedicated Hosts associated
--   with the reservation.</li>
--   <li><a>hrOfferingId</a> - The ID of the reservation. This remains the
--   same regardless of which Dedicated Hosts are associated with it.</li>
--   <li><a>hrDuration</a> - The length of the reservation's term,
--   specified in seconds. Can be <tt>31536000 (1 year)</tt> | <tt>94608000
--   (3 years)</tt> .</li>
--   <li><a>hrPaymentOption</a> - The payment option selected for this
--   reservation.</li>
--   </ul>
hostReservation :: HostReservation

-- | The state of the reservation.
hrState :: Lens' HostReservation (Maybe ReservationState)

-- | The instance family of the Dedicated Host Reservation. The instance
--   family on the Dedicated Host must be the same in order for it to
--   benefit from the reservation.
hrInstanceFamily :: Lens' HostReservation (Maybe Text)

-- | The currency in which the <tt>upfrontPrice</tt> and
--   <tt>hourlyPrice</tt> amounts are specified. At this time, the only
--   supported currency is <tt>USD</tt> .
hrCurrencyCode :: Lens' HostReservation (Maybe CurrencyCodeValues)

-- | The ID of the reservation that specifies the associated Dedicated
--   Hosts.
hrHostReservationId :: Lens' HostReservation (Maybe Text)

-- | The date and time that the reservation started.
hrStart :: Lens' HostReservation (Maybe UTCTime)

-- | The hourly price of the reservation.
hrHourlyPrice :: Lens' HostReservation (Maybe Text)

-- | The number of Dedicated Hosts the reservation is associated with.
hrCount :: Lens' HostReservation (Maybe Int)

-- | The upfront price of the reservation.
hrUpfrontPrice :: Lens' HostReservation (Maybe Text)

-- | The date and time that the reservation ends.
hrEnd :: Lens' HostReservation (Maybe UTCTime)

-- | The IDs of the Dedicated Hosts associated with the reservation.
hrHostIdSet :: Lens' HostReservation [Text]

-- | The ID of the reservation. This remains the same regardless of which
--   Dedicated Hosts are associated with it.
hrOfferingId :: Lens' HostReservation (Maybe Text)

-- | The length of the reservation's term, specified in seconds. Can be
--   <tt>31536000 (1 year)</tt> | <tt>94608000 (3 years)</tt> .
hrDuration :: Lens' HostReservation (Maybe Int)

-- | The payment option selected for this reservation.
hrPaymentOption :: Lens' HostReservation (Maybe PaymentOption)

-- | Describes an IAM instance profile.
--   
--   <i>See:</i> <a>iamInstanceProfile</a> smart constructor.
data IAMInstanceProfile

-- | Creates a value of <a>IAMInstanceProfile</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iapARN</a> - The Amazon Resource Name (ARN) of the instance
--   profile.</li>
--   <li><a>iapId</a> - The ID of the instance profile.</li>
--   </ul>
iamInstanceProfile :: IAMInstanceProfile

-- | The Amazon Resource Name (ARN) of the instance profile.
iapARN :: Lens' IAMInstanceProfile (Maybe Text)

-- | The ID of the instance profile.
iapId :: Lens' IAMInstanceProfile (Maybe Text)

-- | Describes an IAM instance profile.
--   
--   <i>See:</i> <a>iamInstanceProfileSpecification</a> smart constructor.
data IAMInstanceProfileSpecification

-- | Creates a value of <a>IAMInstanceProfileSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iapsARN</a> - The Amazon Resource Name (ARN) of the instance
--   profile.</li>
--   <li><a>iapsName</a> - The name of the instance profile.</li>
--   </ul>
iamInstanceProfileSpecification :: IAMInstanceProfileSpecification

-- | The Amazon Resource Name (ARN) of the instance profile.
iapsARN :: Lens' IAMInstanceProfileSpecification (Maybe Text)

-- | The name of the instance profile.
iapsName :: Lens' IAMInstanceProfileSpecification (Maybe Text)

-- | Describes the ICMP type and code.
--   
--   <i>See:</i> <a>icmpTypeCode</a> smart constructor.
data ICMPTypeCode

-- | Creates a value of <a>ICMPTypeCode</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>itcCode</a> - The ICMP code. A value of -1 means all codes for
--   the specified ICMP type.</li>
--   <li><a>itcType</a> - The ICMP type. A value of -1 means all
--   types.</li>
--   </ul>
icmpTypeCode :: ICMPTypeCode

-- | The ICMP code. A value of -1 means all codes for the specified ICMP
--   type.
itcCode :: Lens' ICMPTypeCode (Maybe Int)

-- | The ICMP type. A value of -1 means all types.
itcType :: Lens' ICMPTypeCode (Maybe Int)

-- | Describes a security group rule.
--   
--   <i>See:</i> <a>ipPermission</a> smart constructor.
data IPPermission

-- | Creates a value of <a>IPPermission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ipFromPort</a> - The start of port range for the TCP and UDP
--   protocols, or an ICMP<i>ICMPv6 type number. A value of <tt>-1</tt>
--   indicates all ICMP</i>ICMPv6 types.</li>
--   <li><a>ipUserIdGroupPairs</a> - One or more security group and AWS
--   account ID pairs.</li>
--   <li><a>ipPrefixListIds</a> - (Valid for
--   <tt>AuthorizeSecurityGroupEgress</tt> ,
--   <tt>RevokeSecurityGroupEgress</tt> and <tt>DescribeSecurityGroups</tt>
--   only) One or more prefix list IDs for an AWS service. In an
--   <tt>AuthorizeSecurityGroupEgress</tt> request, this is the AWS service
--   that you want to access through a VPC endpoint from instances
--   associated with the security group.</li>
--   <li><a>ipToPort</a> - The end of port range for the TCP and UDP
--   protocols, or an ICMP<i>ICMPv6 code. A value of <tt>-1</tt> indicates
--   all ICMP</i>ICMPv6 codes for the specified ICMP type.</li>
--   <li><a>ipIPv6Ranges</a> - [EC2-VPC only] One or more IPv6 ranges.</li>
--   <li><a>ipIPRanges</a> - One or more IPv4 ranges.</li>
--   <li><a>ipIPProtocol</a> - The IP protocol name (<tt>tcp</tt> ,
--   <tt>udp</tt> , <tt>icmp</tt> ) or number (see <a>Protocol Numbers</a>
--   ). [EC2-VPC only] Use <tt>-1</tt> to specify all protocols. When
--   authorizing security group rules, specifying <tt>-1</tt> or a protocol
--   number other than <tt>tcp</tt> , <tt>udp</tt> , <tt>icmp</tt> , or
--   <tt>58</tt> (ICMPv6) allows traffic on all ports, regardless of any
--   port range you specify. For <tt>tcp</tt> , <tt>udp</tt> , and
--   <tt>icmp</tt> , you must specify a port range. For <tt>58</tt>
--   (ICMPv6), you can optionally specify a port range; if you don't,
--   traffic for all types and codes is allowed when authorizing
--   rules.</li>
--   </ul>
ipPermission :: Text -> IPPermission

-- | The start of port range for the TCP and UDP protocols, or an
--   ICMP<i>ICMPv6 type number. A value of <tt>-1</tt> indicates all
--   ICMP</i>ICMPv6 types.
ipFromPort :: Lens' IPPermission (Maybe Int)

-- | One or more security group and AWS account ID pairs.
ipUserIdGroupPairs :: Lens' IPPermission [UserIdGroupPair]

-- | (Valid for <tt>AuthorizeSecurityGroupEgress</tt> ,
--   <tt>RevokeSecurityGroupEgress</tt> and <tt>DescribeSecurityGroups</tt>
--   only) One or more prefix list IDs for an AWS service. In an
--   <tt>AuthorizeSecurityGroupEgress</tt> request, this is the AWS service
--   that you want to access through a VPC endpoint from instances
--   associated with the security group.
ipPrefixListIds :: Lens' IPPermission [PrefixListId]

-- | The end of port range for the TCP and UDP protocols, or an
--   ICMP<i>ICMPv6 code. A value of <tt>-1</tt> indicates all
--   ICMP</i>ICMPv6 codes for the specified ICMP type.
ipToPort :: Lens' IPPermission (Maybe Int)

-- | <ul>
--   <li><i>EC2-VPC only</i> One or more IPv6 ranges.</li>
--   </ul>
ipIPv6Ranges :: Lens' IPPermission [IPv6Range]

-- | One or more IPv4 ranges.
ipIPRanges :: Lens' IPPermission [IPRange]

-- | The IP protocol name (<tt>tcp</tt> , <tt>udp</tt> , <tt>icmp</tt> ) or
--   number (see <a>Protocol Numbers</a> ). [EC2-VPC only] Use <tt>-1</tt>
--   to specify all protocols. When authorizing security group rules,
--   specifying <tt>-1</tt> or a protocol number other than <tt>tcp</tt> ,
--   <tt>udp</tt> , <tt>icmp</tt> , or <tt>58</tt> (ICMPv6) allows traffic
--   on all ports, regardless of any port range you specify. For
--   <tt>tcp</tt> , <tt>udp</tt> , and <tt>icmp</tt> , you must specify a
--   port range. For <tt>58</tt> (ICMPv6), you can optionally specify a
--   port range; if you don't, traffic for all types and codes is allowed
--   when authorizing rules.
ipIPProtocol :: Lens' IPPermission Text

-- | Describes an IPv4 range.
--   
--   <i>See:</i> <a>ipRange</a> smart constructor.
data IPRange

-- | Creates a value of <a>IPRange</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>irCidrIP</a> - The IPv4 CIDR range. You can either specify a
--   CIDR range or a source security group, not both. To specify a single
--   IPv4 address, use the /32 prefix.</li>
--   </ul>
ipRange :: Text -> IPRange

-- | The IPv4 CIDR range. You can either specify a CIDR range or a source
--   security group, not both. To specify a single IPv4 address, use the
--   /32 prefix.
irCidrIP :: Lens' IPRange Text

-- | Describes an IPv6 CIDR block.
--   
--   <i>See:</i> <a>ipv6CidrBlock</a> smart constructor.
data IPv6CidrBlock

-- | Creates a value of <a>IPv6CidrBlock</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icbIPv6CidrBlock</a> - The IPv6 CIDR block.</li>
--   </ul>
ipv6CidrBlock :: IPv6CidrBlock

-- | The IPv6 CIDR block.
icbIPv6CidrBlock :: Lens' IPv6CidrBlock (Maybe Text)

-- | <ul>
--   <li><i>EC2-VPC only</i> Describes an IPv6 range.</li>
--   </ul>
--   
--   <i>See:</i> <a>ipv6Range</a> smart constructor.
data IPv6Range

-- | Creates a value of <a>IPv6Range</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>irCidrIPv6</a> - The IPv6 CIDR range. You can either specify a
--   CIDR range or a source security group, not both. To specify a single
--   IPv6 address, use the /128 prefix.</li>
--   </ul>
ipv6Range :: IPv6Range

-- | The IPv6 CIDR range. You can either specify a CIDR range or a source
--   security group, not both. To specify a single IPv6 address, use the
--   /128 prefix.
irCidrIPv6 :: Lens' IPv6Range (Maybe Text)

-- | Describes the ID format for a resource.
--   
--   <i>See:</i> <a>idFormat</a> smart constructor.
data IdFormat

-- | Creates a value of <a>IdFormat</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ifUseLongIds</a> - Indicates whether longer IDs (17-character
--   IDs) are enabled for the resource.</li>
--   <li><a>ifDeadline</a> - The date in UTC at which you are permanently
--   switched over to using longer IDs. If a deadline is not yet available
--   for this resource type, this field is not returned.</li>
--   <li><a>ifResource</a> - The type of resource.</li>
--   </ul>
idFormat :: IdFormat

-- | Indicates whether longer IDs (17-character IDs) are enabled for the
--   resource.
ifUseLongIds :: Lens' IdFormat (Maybe Bool)

-- | The date in UTC at which you are permanently switched over to using
--   longer IDs. If a deadline is not yet available for this resource type,
--   this field is not returned.
ifDeadline :: Lens' IdFormat (Maybe UTCTime)

-- | The type of resource.
ifResource :: Lens' IdFormat (Maybe Text)

-- | Describes an image.
--   
--   <i>See:</i> <a>image</a> smart constructor.
data Image

-- | Creates a value of <a>Image</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iPlatform</a> - The value is <tt>Windows</tt> for Windows AMIs;
--   otherwise blank.</li>
--   <li><a>iEnaSupport</a> - Specifies whether enhanced networking with
--   ENA is enabled.</li>
--   <li><a>iImageOwnerAlias</a> - The AWS account alias (for example,
--   <tt>amazon</tt> , <tt>self</tt> ) or the AWS account ID of the AMI
--   owner.</li>
--   <li><a>iRAMDiskId</a> - The RAM disk associated with the image, if
--   any. Only applicable for machine images.</li>
--   <li><a>iKernelId</a> - The kernel associated with the image, if any.
--   Only applicable for machine images.</li>
--   <li><a>iRootDeviceName</a> - The device name of the root device (for
--   example, <tt><i>dev</i>sda1</tt> or <tt><i>dev</i>xvda</tt> ).</li>
--   <li><a>iSRIOVNetSupport</a> - Specifies whether enhanced networking
--   with the Intel 82599 Virtual Function interface is enabled.</li>
--   <li><a>iName</a> - The name of the AMI that was provided during image
--   creation.</li>
--   <li><a>iCreationDate</a> - The date and time the image was
--   created.</li>
--   <li><a>iProductCodes</a> - Any product codes associated with the
--   AMI.</li>
--   <li><a>iStateReason</a> - The reason for the state change.</li>
--   <li><a>iDescription</a> - The description of the AMI that was provided
--   during image creation.</li>
--   <li><a>iBlockDeviceMappings</a> - Any block device mapping
--   entries.</li>
--   <li><a>iTags</a> - Any tags assigned to the image.</li>
--   <li><a>iImageId</a> - The ID of the AMI.</li>
--   <li><a>iImageLocation</a> - The location of the AMI.</li>
--   <li><a>iState</a> - The current state of the AMI. If the state is
--   <tt>available</tt> , the image is successfully registered and can be
--   used to launch an instance.</li>
--   <li><a>iOwnerId</a> - The AWS account ID of the image owner.</li>
--   <li><a>iPublic</a> - Indicates whether the image has public launch
--   permissions. The value is <tt>true</tt> if this image has public
--   launch permissions or <tt>false</tt> if it has only implicit and
--   explicit launch permissions.</li>
--   <li><a>iArchitecture</a> - The architecture of the image.</li>
--   <li><a>iImageType</a> - The type of image.</li>
--   <li><a>iRootDeviceType</a> - The type of root device used by the AMI.
--   The AMI can use an EBS volume or an instance store volume.</li>
--   <li><a>iVirtualizationType</a> - The type of virtualization of the
--   AMI.</li>
--   <li><a>iHypervisor</a> - The hypervisor type of the image.</li>
--   </ul>
image :: Text -> Text -> ImageState -> Text -> Bool -> ArchitectureValues -> ImageTypeValues -> DeviceType -> VirtualizationType -> HypervisorType -> Image

-- | The value is <tt>Windows</tt> for Windows AMIs; otherwise blank.
iPlatform :: Lens' Image (Maybe PlatformValues)

-- | Specifies whether enhanced networking with ENA is enabled.
iEnaSupport :: Lens' Image (Maybe Bool)

-- | The AWS account alias (for example, <tt>amazon</tt> , <tt>self</tt> )
--   or the AWS account ID of the AMI owner.
iImageOwnerAlias :: Lens' Image (Maybe Text)

-- | The RAM disk associated with the image, if any. Only applicable for
--   machine images.
iRAMDiskId :: Lens' Image (Maybe Text)

-- | The kernel associated with the image, if any. Only applicable for
--   machine images.
iKernelId :: Lens' Image (Maybe Text)

-- | The device name of the root device (for example,
--   <tt><i>dev</i>sda1</tt> or <tt><i>dev</i>xvda</tt> ).
iRootDeviceName :: Lens' Image (Maybe Text)

-- | Specifies whether enhanced networking with the Intel 82599 Virtual
--   Function interface is enabled.
iSRIOVNetSupport :: Lens' Image (Maybe Text)

-- | The name of the AMI that was provided during image creation.
iName :: Lens' Image (Maybe Text)

-- | The date and time the image was created.
iCreationDate :: Lens' Image (Maybe Text)

-- | Any product codes associated with the AMI.
iProductCodes :: Lens' Image [ProductCode]

-- | The reason for the state change.
iStateReason :: Lens' Image (Maybe StateReason)

-- | The description of the AMI that was provided during image creation.
iDescription :: Lens' Image (Maybe Text)

-- | Any block device mapping entries.
iBlockDeviceMappings :: Lens' Image [BlockDeviceMapping]

-- | Any tags assigned to the image.
iTags :: Lens' Image [Tag]

-- | The ID of the AMI.
iImageId :: Lens' Image Text

-- | The location of the AMI.
iImageLocation :: Lens' Image Text

-- | The current state of the AMI. If the state is <tt>available</tt> , the
--   image is successfully registered and can be used to launch an
--   instance.
iState :: Lens' Image ImageState

-- | The AWS account ID of the image owner.
iOwnerId :: Lens' Image Text

-- | Indicates whether the image has public launch permissions. The value
--   is <tt>true</tt> if this image has public launch permissions or
--   <tt>false</tt> if it has only implicit and explicit launch
--   permissions.
iPublic :: Lens' Image Bool

-- | The architecture of the image.
iArchitecture :: Lens' Image ArchitectureValues

-- | The type of image.
iImageType :: Lens' Image ImageTypeValues

-- | The type of root device used by the AMI. The AMI can use an EBS volume
--   or an instance store volume.
iRootDeviceType :: Lens' Image DeviceType

-- | The type of virtualization of the AMI.
iVirtualizationType :: Lens' Image VirtualizationType

-- | The hypervisor type of the image.
iHypervisor :: Lens' Image HypervisorType

-- | Describes the disk container object for an import image task.
--   
--   <i>See:</i> <a>imageDiskContainer</a> smart constructor.
data ImageDiskContainer

-- | Creates a value of <a>ImageDiskContainer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>idcFormat</a> - The format of the disk image being imported.
--   Valid values: <tt>RAW</tt> | <tt>VHD</tt> | <tt>VMDK</tt> |
--   <tt>OVA</tt></li>
--   <li><a>idcURL</a> - The URL to the Amazon S3-based disk image being
--   imported. The URL can either be a https URL (https:/<i>..) or an
--   Amazon S3 URL (s3:</i>/..)</li>
--   <li><a>idcDeviceName</a> - The block device mapping for the disk.</li>
--   <li><a>idcUserBucket</a> - The S3 bucket for the disk image.</li>
--   <li><a>idcDescription</a> - The description of the disk image.</li>
--   <li><a>idcSnapshotId</a> - The ID of the EBS snapshot to be used for
--   importing the snapshot.</li>
--   </ul>
imageDiskContainer :: ImageDiskContainer

-- | The format of the disk image being imported. Valid values:
--   <tt>RAW</tt> | <tt>VHD</tt> | <tt>VMDK</tt> | <tt>OVA</tt>
idcFormat :: Lens' ImageDiskContainer (Maybe Text)

-- | The URL to the Amazon S3-based disk image being imported. The URL can
--   either be a https URL (https:/<i>..) or an Amazon S3 URL (s3:</i>/..)
idcURL :: Lens' ImageDiskContainer (Maybe Text)

-- | The block device mapping for the disk.
idcDeviceName :: Lens' ImageDiskContainer (Maybe Text)

-- | The S3 bucket for the disk image.
idcUserBucket :: Lens' ImageDiskContainer (Maybe UserBucket)

-- | The description of the disk image.
idcDescription :: Lens' ImageDiskContainer (Maybe Text)

-- | The ID of the EBS snapshot to be used for importing the snapshot.
idcSnapshotId :: Lens' ImageDiskContainer (Maybe Text)

-- | Describes an import image task.
--   
--   <i>See:</i> <a>importImageTask</a> smart constructor.
data ImportImageTask

-- | Creates a value of <a>ImportImageTask</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iitStatus</a> - A brief status for the import image task.</li>
--   <li><a>iitHypervisor</a> - The target hypervisor for the import task.
--   Valid values: <tt>xen</tt></li>
--   <li><a>iitPlatform</a> - The description string for the import image
--   task.</li>
--   <li><a>iitProgress</a> - The percentage of progress of the import
--   image task.</li>
--   <li><a>iitLicenseType</a> - The license type of the virtual
--   machine.</li>
--   <li><a>iitSnapshotDetails</a> - Information about the snapshots.</li>
--   <li><a>iitStatusMessage</a> - A descriptive status message for the
--   import image task.</li>
--   <li><a>iitImageId</a> - The ID of the Amazon Machine Image (AMI) of
--   the imported virtual machine.</li>
--   <li><a>iitImportTaskId</a> - The ID of the import image task.</li>
--   <li><a>iitArchitecture</a> - The architecture of the virtual machine.
--   Valid values: <tt>i386</tt> | <tt>x86_64</tt></li>
--   <li><a>iitDescription</a> - A description of the import task.</li>
--   </ul>
importImageTask :: ImportImageTask

-- | A brief status for the import image task.
iitStatus :: Lens' ImportImageTask (Maybe Text)

-- | The target hypervisor for the import task. Valid values: <tt>xen</tt>
iitHypervisor :: Lens' ImportImageTask (Maybe Text)

-- | The description string for the import image task.
iitPlatform :: Lens' ImportImageTask (Maybe Text)

-- | The percentage of progress of the import image task.
iitProgress :: Lens' ImportImageTask (Maybe Text)

-- | The license type of the virtual machine.
iitLicenseType :: Lens' ImportImageTask (Maybe Text)

-- | Information about the snapshots.
iitSnapshotDetails :: Lens' ImportImageTask [SnapshotDetail]

-- | A descriptive status message for the import image task.
iitStatusMessage :: Lens' ImportImageTask (Maybe Text)

-- | The ID of the Amazon Machine Image (AMI) of the imported virtual
--   machine.
iitImageId :: Lens' ImportImageTask (Maybe Text)

-- | The ID of the import image task.
iitImportTaskId :: Lens' ImportImageTask (Maybe Text)

-- | The architecture of the virtual machine. Valid values: <tt>i386</tt> |
--   <tt>x86_64</tt>
iitArchitecture :: Lens' ImportImageTask (Maybe Text)

-- | A description of the import task.
iitDescription :: Lens' ImportImageTask (Maybe Text)

-- | Describes the launch specification for VM import.
--   
--   <i>See:</i> <a>importInstanceLaunchSpecification</a> smart
--   constructor.
data ImportInstanceLaunchSpecification

-- | Creates a value of <a>ImportInstanceLaunchSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iilsAdditionalInfo</a> - Reserved.</li>
--   <li><a>iilsGroupNames</a> - One or more security group names.</li>
--   <li><a>iilsSubnetId</a> - [EC2-VPC] The ID of the subnet in which to
--   launch the instance.</li>
--   <li><a>iilsInstanceType</a> - The instance type. For more information
--   about the instance types that you can import, see <a>Instance
--   Types</a> in the VM Import/Export User Guide.</li>
--   <li><a>iilsGroupIds</a> - One or more security group IDs.</li>
--   <li><a>iilsUserData</a> - The user data to make available to the
--   instance. If you are using an AWS SDK or command line tool,
--   Base64-encoding is performed for you, and you can load the text from a
--   file. Otherwise, you must provide Base64-encoded text.</li>
--   <li><a>iilsMonitoring</a> - Indicates whether monitoring is
--   enabled.</li>
--   <li><a>iilsPrivateIPAddress</a> - [EC2-VPC] An available IP address
--   from the IP address range of the subnet.</li>
--   <li><a>iilsInstanceInitiatedShutdownBehavior</a> - Indicates whether
--   an instance stops or terminates when you initiate shutdown from the
--   instance (using the operating system command for system
--   shutdown).</li>
--   <li><a>iilsArchitecture</a> - The architecture of the instance.</li>
--   <li><a>iilsPlacement</a> - The placement information for the
--   instance.</li>
--   </ul>
importInstanceLaunchSpecification :: ImportInstanceLaunchSpecification

-- | Reserved.
iilsAdditionalInfo :: Lens' ImportInstanceLaunchSpecification (Maybe Text)

-- | One or more security group names.
iilsGroupNames :: Lens' ImportInstanceLaunchSpecification [Text]

-- | <ul>
--   <li><i>EC2-VPC</i> The ID of the subnet in which to launch the
--   instance.</li>
--   </ul>
iilsSubnetId :: Lens' ImportInstanceLaunchSpecification (Maybe Text)

-- | The instance type. For more information about the instance types that
--   you can import, see <a>Instance Types</a> in the VM Import/Export User
--   Guide.
iilsInstanceType :: Lens' ImportInstanceLaunchSpecification (Maybe InstanceType)

-- | One or more security group IDs.
iilsGroupIds :: Lens' ImportInstanceLaunchSpecification [Text]

-- | The user data to make available to the instance. If you are using an
--   AWS SDK or command line tool, Base64-encoding is performed for you,
--   and you can load the text from a file. Otherwise, you must provide
--   Base64-encoded text.
iilsUserData :: Lens' ImportInstanceLaunchSpecification (Maybe UserData)

-- | Indicates whether monitoring is enabled.
iilsMonitoring :: Lens' ImportInstanceLaunchSpecification (Maybe Bool)

-- | <ul>
--   <li><i>EC2-VPC</i> An available IP address from the IP address range
--   of the subnet.</li>
--   </ul>
iilsPrivateIPAddress :: Lens' ImportInstanceLaunchSpecification (Maybe Text)

-- | Indicates whether an instance stops or terminates when you initiate
--   shutdown from the instance (using the operating system command for
--   system shutdown).
iilsInstanceInitiatedShutdownBehavior :: Lens' ImportInstanceLaunchSpecification (Maybe ShutdownBehavior)

-- | The architecture of the instance.
iilsArchitecture :: Lens' ImportInstanceLaunchSpecification (Maybe ArchitectureValues)

-- | The placement information for the instance.
iilsPlacement :: Lens' ImportInstanceLaunchSpecification (Maybe Placement)

-- | Describes an import instance task.
--   
--   <i>See:</i> <a>importInstanceTaskDetails</a> smart constructor.
data ImportInstanceTaskDetails

-- | Creates a value of <a>ImportInstanceTaskDetails</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iitdInstanceId</a> - The ID of the instance.</li>
--   <li><a>iitdPlatform</a> - The instance operating system.</li>
--   <li><a>iitdDescription</a> - A description of the task.</li>
--   <li><a>iitdVolumes</a> - One or more volumes.</li>
--   </ul>
importInstanceTaskDetails :: ImportInstanceTaskDetails

-- | The ID of the instance.
iitdInstanceId :: Lens' ImportInstanceTaskDetails (Maybe Text)

-- | The instance operating system.
iitdPlatform :: Lens' ImportInstanceTaskDetails (Maybe PlatformValues)

-- | A description of the task.
iitdDescription :: Lens' ImportInstanceTaskDetails (Maybe Text)

-- | One or more volumes.
iitdVolumes :: Lens' ImportInstanceTaskDetails [ImportInstanceVolumeDetailItem]

-- | Describes an import volume task.
--   
--   <i>See:</i> <a>importInstanceVolumeDetailItem</a> smart constructor.
data ImportInstanceVolumeDetailItem

-- | Creates a value of <a>ImportInstanceVolumeDetailItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iivdiStatusMessage</a> - The status information or errors
--   related to the disk image.</li>
--   <li><a>iivdiDescription</a> - A description of the task.</li>
--   <li><a>iivdiBytesConverted</a> - The number of bytes converted so
--   far.</li>
--   <li><a>iivdiAvailabilityZone</a> - The Availability Zone where the
--   resulting instance will reside.</li>
--   <li><a>iivdiImage</a> - The image.</li>
--   <li><a>iivdiVolume</a> - The volume.</li>
--   <li><a>iivdiStatus</a> - The status of the import of this particular
--   disk image.</li>
--   </ul>
importInstanceVolumeDetailItem :: Integer -> Text -> DiskImageDescription -> DiskImageVolumeDescription -> Text -> ImportInstanceVolumeDetailItem

-- | The status information or errors related to the disk image.
iivdiStatusMessage :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)

-- | A description of the task.
iivdiDescription :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)

-- | The number of bytes converted so far.
iivdiBytesConverted :: Lens' ImportInstanceVolumeDetailItem Integer

-- | The Availability Zone where the resulting instance will reside.
iivdiAvailabilityZone :: Lens' ImportInstanceVolumeDetailItem Text

-- | The image.
iivdiImage :: Lens' ImportInstanceVolumeDetailItem DiskImageDescription

-- | The volume.
iivdiVolume :: Lens' ImportInstanceVolumeDetailItem DiskImageVolumeDescription

-- | The status of the import of this particular disk image.
iivdiStatus :: Lens' ImportInstanceVolumeDetailItem Text

-- | Describes an import snapshot task.
--   
--   <i>See:</i> <a>importSnapshotTask</a> smart constructor.
data ImportSnapshotTask

-- | Creates a value of <a>ImportSnapshotTask</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>istSnapshotTaskDetail</a> - Describes an import snapshot
--   task.</li>
--   <li><a>istImportTaskId</a> - The ID of the import snapshot task.</li>
--   <li><a>istDescription</a> - A description of the import snapshot
--   task.</li>
--   </ul>
importSnapshotTask :: ImportSnapshotTask

-- | Describes an import snapshot task.
istSnapshotTaskDetail :: Lens' ImportSnapshotTask (Maybe SnapshotTaskDetail)

-- | The ID of the import snapshot task.
istImportTaskId :: Lens' ImportSnapshotTask (Maybe Text)

-- | A description of the import snapshot task.
istDescription :: Lens' ImportSnapshotTask (Maybe Text)

-- | Describes an import volume task.
--   
--   <i>See:</i> <a>importVolumeTaskDetails</a> smart constructor.
data ImportVolumeTaskDetails

-- | Creates a value of <a>ImportVolumeTaskDetails</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ivtdDescription</a> - The description you provided when
--   starting the import volume task.</li>
--   <li><a>ivtdBytesConverted</a> - The number of bytes converted so
--   far.</li>
--   <li><a>ivtdAvailabilityZone</a> - The Availability Zone where the
--   resulting volume will reside.</li>
--   <li><a>ivtdImage</a> - The image.</li>
--   <li><a>ivtdVolume</a> - The volume.</li>
--   </ul>
importVolumeTaskDetails :: Integer -> Text -> DiskImageDescription -> DiskImageVolumeDescription -> ImportVolumeTaskDetails

-- | The description you provided when starting the import volume task.
ivtdDescription :: Lens' ImportVolumeTaskDetails (Maybe Text)

-- | The number of bytes converted so far.
ivtdBytesConverted :: Lens' ImportVolumeTaskDetails Integer

-- | The Availability Zone where the resulting volume will reside.
ivtdAvailabilityZone :: Lens' ImportVolumeTaskDetails Text

-- | The image.
ivtdImage :: Lens' ImportVolumeTaskDetails DiskImageDescription

-- | The volume.
ivtdVolume :: Lens' ImportVolumeTaskDetails DiskImageVolumeDescription

-- | Describes an instance.
--   
--   <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>insPublicDNSName</a> - (IPv4 only) The public DNS name assigned
--   to the instance. This name is not available until the instance enters
--   the <tt>running</tt> state. For EC2-VPC, this name is only available
--   if you've enabled DNS hostnames for your VPC.</li>
--   <li><a>insPlatform</a> - The value is <tt>Windows</tt> for Windows
--   instances; otherwise blank.</li>
--   <li><a>insSecurityGroups</a> - One or more security groups for the
--   instance.</li>
--   <li><a>insClientToken</a> - The idempotency token you provided when
--   you launched the instance, if applicable.</li>
--   <li><a>insEnaSupport</a> - Specifies whether enhanced networking with
--   ENA is enabled.</li>
--   <li><a>insSourceDestCheck</a> - Specifies whether to enable an
--   instance launched in a VPC to perform NAT. This controls whether
--   source<i>destination checking is enabled on the instance. A value of
--   <tt>true</tt> means checking is enabled, and <tt>false</tt> means
--   checking is disabled. The value must be <tt>false</tt> for the
--   instance to perform NAT. For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AmazonVPC<i>latest</i>UserGuide<i>VPC_NAT_Instance.html
--   NAT Instances&gt; in the </i>Amazon Virtual Private Cloud User Guide/
--   .</li>
--   <li><a>insVPCId</a> - [EC2-VPC] The ID of the VPC in which the
--   instance is running.</li>
--   <li><a>insKeyName</a> - The name of the key pair, if this instance was
--   launched with an associated key pair.</li>
--   <li><a>insNetworkInterfaces</a> - [EC2-VPC] One or more network
--   interfaces for the instance.</li>
--   <li><a>insRAMDiskId</a> - The RAM disk associated with this instance,
--   if applicable.</li>
--   <li><a>insSubnetId</a> - [EC2-VPC] The ID of the subnet in which the
--   instance is running.</li>
--   <li><a>insKernelId</a> - The kernel associated with this instance, if
--   applicable.</li>
--   <li><a>insRootDeviceName</a> - The root device name (for example,
--   <tt><i>dev</i>sda1</tt> or <tt><i>dev</i>xvda</tt> ).</li>
--   <li><a>insSRIOVNetSupport</a> - Specifies whether enhanced networking
--   with the Intel 82599 Virtual Function interface is enabled.</li>
--   <li><a>insEBSOptimized</a> - Indicates whether the instance is
--   optimized for EBS I<i>O. This optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal I</i>O performance. This optimization isn't available
--   with all instance types. Additional usage charges apply when using an
--   EBS Optimized instance.</li>
--   <li><a>insStateTransitionReason</a> - The reason for the most recent
--   state transition. This might be an empty string.</li>
--   <li><a>insInstanceLifecycle</a> - Indicates whether this is a Spot
--   instance or a Scheduled Instance.</li>
--   <li><a>insIAMInstanceProfile</a> - The IAM instance profile associated
--   with the instance, if applicable.</li>
--   <li><a>insPrivateIPAddress</a> - The private IPv4 address assigned to
--   the instance.</li>
--   <li><a>insProductCodes</a> - The product codes attached to this
--   instance, if applicable.</li>
--   <li><a>insSpotInstanceRequestId</a> - If the request is a Spot
--   instance request, the ID of the request.</li>
--   <li><a>insPrivateDNSName</a> - (IPv4 only) The private DNS hostname
--   name assigned to the instance. This DNS hostname can only be used
--   inside the Amazon EC2 network. This name is not available until the
--   instance enters the <tt>running</tt> state. [EC2-VPC] The
--   Amazon-provided DNS server will resolve Amazon-provided private DNS
--   hostnames if you've enabled DNS resolution and DNS hostnames in your
--   VPC. If you are not using the Amazon-provided DNS server in your VPC,
--   your custom domain name servers must resolve the hostname as
--   appropriate.</li>
--   <li><a>insStateReason</a> - The reason for the most recent state
--   transition.</li>
--   <li><a>insBlockDeviceMappings</a> - Any block device mapping entries
--   for the instance.</li>
--   <li><a>insPublicIPAddress</a> - The public IPv4 address assigned to
--   the instance, if applicable.</li>
--   <li><a>insTags</a> - Any tags assigned to the instance.</li>
--   <li><a>insInstanceId</a> - The ID of the instance.</li>
--   <li><a>insImageId</a> - The ID of the AMI used to launch the
--   instance.</li>
--   <li><a>insAMILaunchIndex</a> - The AMI launch index, which can be used
--   to find this instance in the launch group.</li>
--   <li><a>insInstanceType</a> - The instance type.</li>
--   <li><a>insLaunchTime</a> - The time the instance was launched.</li>
--   <li><a>insPlacement</a> - The location where the instance launched, if
--   applicable.</li>
--   <li><a>insMonitoring</a> - The monitoring for the instance.</li>
--   <li><a>insArchitecture</a> - The architecture of the image.</li>
--   <li><a>insRootDeviceType</a> - The root device type used by the AMI.
--   The AMI can use an EBS volume or an instance store volume.</li>
--   <li><a>insVirtualizationType</a> - The virtualization type of the
--   instance.</li>
--   <li><a>insHypervisor</a> - The hypervisor type of the instance.</li>
--   <li><a>insState</a> - The current state of the instance.</li>
--   </ul>
instance' :: Text -> Text -> Int -> InstanceType -> UTCTime -> Placement -> Monitoring -> ArchitectureValues -> DeviceType -> VirtualizationType -> HypervisorType -> InstanceState -> Instance

-- | (IPv4 only) The public DNS name assigned to the instance. This name is
--   not available until the instance enters the <tt>running</tt> state.
--   For EC2-VPC, this name is only available if you've enabled DNS
--   hostnames for your VPC.
insPublicDNSName :: Lens' Instance (Maybe Text)

-- | The value is <tt>Windows</tt> for Windows instances; otherwise blank.
insPlatform :: Lens' Instance (Maybe PlatformValues)

-- | One or more security groups for the instance.
insSecurityGroups :: Lens' Instance [GroupIdentifier]

-- | The idempotency token you provided when you launched the instance, if
--   applicable.
insClientToken :: Lens' Instance (Maybe Text)

-- | Specifies whether enhanced networking with ENA is enabled.
insEnaSupport :: Lens' Instance (Maybe Bool)

-- | Specifies whether to enable an instance launched in a VPC to perform
--   NAT. This controls whether source<i>destination checking is enabled on
--   the instance. A value of <tt>true</tt> means checking is enabled, and
--   <tt>false</tt> means checking is disabled. The value must be
--   <tt>false</tt> for the instance to perform NAT. For more information,
--   see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AmazonVPC<i>latest</i>UserGuide<i>VPC_NAT_Instance.html
--   NAT Instances&gt; in the </i>Amazon Virtual Private Cloud User Guide/
--   .
insSourceDestCheck :: Lens' Instance (Maybe Bool)

-- | <ul>
--   <li><i>EC2-VPC</i> The ID of the VPC in which the instance is
--   running.</li>
--   </ul>
insVPCId :: Lens' Instance (Maybe Text)

-- | The name of the key pair, if this instance was launched with an
--   associated key pair.
insKeyName :: Lens' Instance (Maybe Text)

-- | <ul>
--   <li><i>EC2-VPC</i> One or more network interfaces for the
--   instance.</li>
--   </ul>
insNetworkInterfaces :: Lens' Instance [InstanceNetworkInterface]

-- | The RAM disk associated with this instance, if applicable.
insRAMDiskId :: Lens' Instance (Maybe Text)

-- | <ul>
--   <li><i>EC2-VPC</i> The ID of the subnet in which the instance is
--   running.</li>
--   </ul>
insSubnetId :: Lens' Instance (Maybe Text)

-- | The kernel associated with this instance, if applicable.
insKernelId :: Lens' Instance (Maybe Text)

-- | The root device name (for example, <tt><i>dev</i>sda1</tt> or
--   <tt><i>dev</i>xvda</tt> ).
insRootDeviceName :: Lens' Instance (Maybe Text)

-- | Specifies whether enhanced networking with the Intel 82599 Virtual
--   Function interface is enabled.
insSRIOVNetSupport :: Lens' Instance (Maybe Text)

-- | Indicates whether the instance is optimized for EBS I<i>O. This
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal I</i>O performance.
--   This optimization isn't available with all instance types. Additional
--   usage charges apply when using an EBS Optimized instance.
insEBSOptimized :: Lens' Instance (Maybe Bool)

-- | The reason for the most recent state transition. This might be an
--   empty string.
insStateTransitionReason :: Lens' Instance (Maybe Text)

-- | Indicates whether this is a Spot instance or a Scheduled Instance.
insInstanceLifecycle :: Lens' Instance (Maybe InstanceLifecycleType)

-- | The IAM instance profile associated with the instance, if applicable.
insIAMInstanceProfile :: Lens' Instance (Maybe IAMInstanceProfile)

-- | The private IPv4 address assigned to the instance.
insPrivateIPAddress :: Lens' Instance (Maybe Text)

-- | The product codes attached to this instance, if applicable.
insProductCodes :: Lens' Instance [ProductCode]

-- | If the request is a Spot instance request, the ID of the request.
insSpotInstanceRequestId :: Lens' Instance (Maybe Text)

-- | (IPv4 only) The private DNS hostname name assigned to the instance.
--   This DNS hostname can only be used inside the Amazon EC2 network. This
--   name is not available until the instance enters the <tt>running</tt>
--   state. [EC2-VPC] The Amazon-provided DNS server will resolve
--   Amazon-provided private DNS hostnames if you've enabled DNS resolution
--   and DNS hostnames in your VPC. If you are not using the
--   Amazon-provided DNS server in your VPC, your custom domain name
--   servers must resolve the hostname as appropriate.
insPrivateDNSName :: Lens' Instance (Maybe Text)

-- | The reason for the most recent state transition.
insStateReason :: Lens' Instance (Maybe StateReason)

-- | Any block device mapping entries for the instance.
insBlockDeviceMappings :: Lens' Instance [InstanceBlockDeviceMapping]

-- | The public IPv4 address assigned to the instance, if applicable.
insPublicIPAddress :: Lens' Instance (Maybe Text)

-- | Any tags assigned to the instance.
insTags :: Lens' Instance [Tag]

-- | The ID of the instance.
insInstanceId :: Lens' Instance Text

-- | The ID of the AMI used to launch the instance.
insImageId :: Lens' Instance Text

-- | The AMI launch index, which can be used to find this instance in the
--   launch group.
insAMILaunchIndex :: Lens' Instance Int

-- | The instance type.
insInstanceType :: Lens' Instance InstanceType

-- | The time the instance was launched.
insLaunchTime :: Lens' Instance UTCTime

-- | The location where the instance launched, if applicable.
insPlacement :: Lens' Instance Placement

-- | The monitoring for the instance.
insMonitoring :: Lens' Instance Monitoring

-- | The architecture of the image.
insArchitecture :: Lens' Instance ArchitectureValues

-- | The root device type used by the AMI. The AMI can use an EBS volume or
--   an instance store volume.
insRootDeviceType :: Lens' Instance DeviceType

-- | The virtualization type of the instance.
insVirtualizationType :: Lens' Instance VirtualizationType

-- | The hypervisor type of the instance.
insHypervisor :: Lens' Instance HypervisorType

-- | The current state of the instance.
insState :: Lens' Instance InstanceState

-- | Describes a block device mapping.
--   
--   <i>See:</i> <a>instanceBlockDeviceMapping</a> smart constructor.
data InstanceBlockDeviceMapping

-- | Creates a value of <a>InstanceBlockDeviceMapping</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ibdmEBS</a> - Parameters used to automatically set up EBS
--   volumes when the instance is launched.</li>
--   <li><a>ibdmDeviceName</a> - The device name exposed to the instance
--   (for example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).</li>
--   </ul>
instanceBlockDeviceMapping :: InstanceBlockDeviceMapping

-- | Parameters used to automatically set up EBS volumes when the instance
--   is launched.
ibdmEBS :: Lens' InstanceBlockDeviceMapping (Maybe EBSInstanceBlockDevice)

-- | The device name exposed to the instance (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).
ibdmDeviceName :: Lens' InstanceBlockDeviceMapping (Maybe Text)

-- | Describes a block device mapping entry.
--   
--   <i>See:</i> <a>instanceBlockDeviceMappingSpecification</a> smart
--   constructor.
data InstanceBlockDeviceMappingSpecification

-- | Creates a value of <a>InstanceBlockDeviceMappingSpecification</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ibdmsVirtualName</a> - The virtual device name.</li>
--   <li><a>ibdmsNoDevice</a> - suppress the specified device included in
--   the block device mapping.</li>
--   <li><a>ibdmsEBS</a> - Parameters used to automatically set up EBS
--   volumes when the instance is launched.</li>
--   <li><a>ibdmsDeviceName</a> - The device name exposed to the instance
--   (for example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).</li>
--   </ul>
instanceBlockDeviceMappingSpecification :: InstanceBlockDeviceMappingSpecification

-- | The virtual device name.
ibdmsVirtualName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)

-- | suppress the specified device included in the block device mapping.
ibdmsNoDevice :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)

-- | Parameters used to automatically set up EBS volumes when the instance
--   is launched.
ibdmsEBS :: Lens' InstanceBlockDeviceMappingSpecification (Maybe EBSInstanceBlockDeviceSpecification)

-- | The device name exposed to the instance (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).
ibdmsDeviceName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)

-- | Information about the instance type that the Dedicated Host supports.
--   
--   <i>See:</i> <a>instanceCapacity</a> smart constructor.
data InstanceCapacity

-- | Creates a value of <a>InstanceCapacity</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icAvailableCapacity</a> - The number of instances that can
--   still be launched onto the Dedicated Host.</li>
--   <li><a>icInstanceType</a> - The instance type size supported by the
--   Dedicated Host.</li>
--   <li><a>icTotalCapacity</a> - The total number of instances that can be
--   launched onto the Dedicated Host.</li>
--   </ul>
instanceCapacity :: InstanceCapacity

-- | The number of instances that can still be launched onto the Dedicated
--   Host.
icAvailableCapacity :: Lens' InstanceCapacity (Maybe Int)

-- | The instance type size supported by the Dedicated Host.
icInstanceType :: Lens' InstanceCapacity (Maybe Text)

-- | The total number of instances that can be launched onto the Dedicated
--   Host.
icTotalCapacity :: Lens' InstanceCapacity (Maybe Int)

-- | Describes a Reserved Instance listing state.
--   
--   <i>See:</i> <a>instanceCount</a> smart constructor.
data InstanceCount

-- | Creates a value of <a>InstanceCount</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icState</a> - The states of the listed Reserved Instances.</li>
--   <li><a>icInstanceCount</a> - The number of listed Reserved Instances
--   in the state specified by the <tt>state</tt> .</li>
--   </ul>
instanceCount :: InstanceCount

-- | The states of the listed Reserved Instances.
icState :: Lens' InstanceCount (Maybe ListingState)

-- | The number of listed Reserved Instances in the state specified by the
--   <tt>state</tt> .
icInstanceCount :: Lens' InstanceCount (Maybe Int)

-- | Describes an instance to export.
--   
--   <i>See:</i> <a>instanceExportDetails</a> smart constructor.
data InstanceExportDetails

-- | Creates a value of <a>InstanceExportDetails</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iedTargetEnvironment</a> - The target virtualization
--   environment.</li>
--   <li><a>iedInstanceId</a> - The ID of the resource being exported.</li>
--   </ul>
instanceExportDetails :: InstanceExportDetails

-- | The target virtualization environment.
iedTargetEnvironment :: Lens' InstanceExportDetails (Maybe ExportEnvironment)

-- | The ID of the resource being exported.
iedInstanceId :: Lens' InstanceExportDetails (Maybe Text)

-- | Describes an IPv6 address.
--   
--   <i>See:</i> <a>instanceIPv6Address</a> smart constructor.
data InstanceIPv6Address

-- | Creates a value of <a>InstanceIPv6Address</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iiaIPv6Address</a> - The IPv6 address.</li>
--   </ul>
instanceIPv6Address :: InstanceIPv6Address

-- | The IPv6 address.
iiaIPv6Address :: Lens' InstanceIPv6Address (Maybe Text)

-- | Describes the monitoring of an instance.
--   
--   <i>See:</i> <a>instanceMonitoring</a> smart constructor.
data InstanceMonitoring

-- | Creates a value of <a>InstanceMonitoring</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>imInstanceId</a> - The ID of the instance.</li>
--   <li><a>imMonitoring</a> - The monitoring for the instance.</li>
--   </ul>
instanceMonitoring :: InstanceMonitoring

-- | The ID of the instance.
imInstanceId :: Lens' InstanceMonitoring (Maybe Text)

-- | The monitoring for the instance.
imMonitoring :: Lens' InstanceMonitoring (Maybe Monitoring)

-- | Describes a network interface.
--   
--   <i>See:</i> <a>instanceNetworkInterface</a> smart constructor.
data InstanceNetworkInterface

-- | Creates a value of <a>InstanceNetworkInterface</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iniGroups</a> - One or more security groups.</li>
--   <li><a>iniStatus</a> - The status of the network interface.</li>
--   <li><a>iniPrivateIPAddresses</a> - One or more private IPv4 addresses
--   associated with the network interface.</li>
--   <li><a>iniSourceDestCheck</a> - Indicates whether to validate network
--   traffic to or from this network interface.</li>
--   <li><a>iniVPCId</a> - The ID of the VPC.</li>
--   <li><a>iniNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>iniSubnetId</a> - The ID of the subnet.</li>
--   <li><a>iniMACAddress</a> - The MAC address.</li>
--   <li><a>iniAttachment</a> - The network interface attachment.</li>
--   <li><a>iniOwnerId</a> - The ID of the AWS account that created the
--   network interface.</li>
--   <li><a>iniPrivateIPAddress</a> - The IPv4 address of the network
--   interface within the subnet.</li>
--   <li><a>iniPrivateDNSName</a> - The private DNS name.</li>
--   <li><a>iniDescription</a> - The description.</li>
--   <li><a>iniAssociation</a> - The association information for an Elastic
--   IPv4 associated with the network interface.</li>
--   <li><a>iniIPv6Addresses</a> - One or more IPv6 addresses associated
--   with the network interface.</li>
--   </ul>
instanceNetworkInterface :: InstanceNetworkInterface

-- | One or more security groups.
iniGroups :: Lens' InstanceNetworkInterface [GroupIdentifier]

-- | The status of the network interface.
iniStatus :: Lens' InstanceNetworkInterface (Maybe NetworkInterfaceStatus)

-- | One or more private IPv4 addresses associated with the network
--   interface.
iniPrivateIPAddresses :: Lens' InstanceNetworkInterface [InstancePrivateIPAddress]

-- | Indicates whether to validate network traffic to or from this network
--   interface.
iniSourceDestCheck :: Lens' InstanceNetworkInterface (Maybe Bool)

-- | The ID of the VPC.
iniVPCId :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The ID of the network interface.
iniNetworkInterfaceId :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The ID of the subnet.
iniSubnetId :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The MAC address.
iniMACAddress :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The network interface attachment.
iniAttachment :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAttachment)

-- | The ID of the AWS account that created the network interface.
iniOwnerId :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The IPv4 address of the network interface within the subnet.
iniPrivateIPAddress :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The private DNS name.
iniPrivateDNSName :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The description.
iniDescription :: Lens' InstanceNetworkInterface (Maybe Text)

-- | The association information for an Elastic IPv4 associated with the
--   network interface.
iniAssociation :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAssociation)

-- | One or more IPv6 addresses associated with the network interface.
iniIPv6Addresses :: Lens' InstanceNetworkInterface [InstanceIPv6Address]

-- | Describes association information for an Elastic IP address (IPv4).
--   
--   <i>See:</i> <a>instanceNetworkInterfaceAssociation</a> smart
--   constructor.
data InstanceNetworkInterfaceAssociation

-- | Creates a value of <a>InstanceNetworkInterfaceAssociation</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iniaPublicDNSName</a> - The public DNS name.</li>
--   <li><a>iniaIPOwnerId</a> - The ID of the owner of the Elastic IP
--   address.</li>
--   <li><a>iniaPublicIP</a> - The public IP address or Elastic IP address
--   bound to the network interface.</li>
--   </ul>
instanceNetworkInterfaceAssociation :: InstanceNetworkInterfaceAssociation

-- | The public DNS name.
iniaPublicDNSName :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)

-- | The ID of the owner of the Elastic IP address.
iniaIPOwnerId :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)

-- | The public IP address or Elastic IP address bound to the network
--   interface.
iniaPublicIP :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)

-- | Describes a network interface attachment.
--   
--   <i>See:</i> <a>instanceNetworkInterfaceAttachment</a> smart
--   constructor.
data InstanceNetworkInterfaceAttachment

-- | Creates a value of <a>InstanceNetworkInterfaceAttachment</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iniaStatus</a> - The attachment state.</li>
--   <li><a>iniaDeleteOnTermination</a> - Indicates whether the network
--   interface is deleted when the instance is terminated.</li>
--   <li><a>iniaAttachmentId</a> - The ID of the network interface
--   attachment.</li>
--   <li><a>iniaAttachTime</a> - The time stamp when the attachment
--   initiated.</li>
--   <li><a>iniaDeviceIndex</a> - The index of the device on the instance
--   for the network interface attachment.</li>
--   </ul>
instanceNetworkInterfaceAttachment :: InstanceNetworkInterfaceAttachment

-- | The attachment state.
iniaStatus :: Lens' InstanceNetworkInterfaceAttachment (Maybe AttachmentStatus)

-- | Indicates whether the network interface is deleted when the instance
--   is terminated.
iniaDeleteOnTermination :: Lens' InstanceNetworkInterfaceAttachment (Maybe Bool)

-- | The ID of the network interface attachment.
iniaAttachmentId :: Lens' InstanceNetworkInterfaceAttachment (Maybe Text)

-- | The time stamp when the attachment initiated.
iniaAttachTime :: Lens' InstanceNetworkInterfaceAttachment (Maybe UTCTime)

-- | The index of the device on the instance for the network interface
--   attachment.
iniaDeviceIndex :: Lens' InstanceNetworkInterfaceAttachment (Maybe Int)

-- | Describes a network interface.
--   
--   <i>See:</i> <a>instanceNetworkInterfaceSpecification</a> smart
--   constructor.
data InstanceNetworkInterfaceSpecification

-- | Creates a value of <a>InstanceNetworkInterfaceSpecification</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>inisGroups</a> - The IDs of the security groups for the network
--   interface. Applies only if creating a network interface when launching
--   an instance.</li>
--   <li><a>inisPrivateIPAddresses</a> - One or more private IPv4 addresses
--   to assign to the network interface. Only one private IPv4 address can
--   be designated as primary. You cannot specify this option if you're
--   launching more than one instance in a <tt>RunInstances</tt>
--   request.</li>
--   <li><a>inisDeleteOnTermination</a> - If set to <tt>true</tt> , the
--   interface is deleted when the instance is terminated. You can specify
--   <tt>true</tt> only if creating a new network interface when launching
--   an instance.</li>
--   <li><a>inisAssociatePublicIPAddress</a> - Indicates whether to assign
--   a public IPv4 address to an instance you launch in a VPC. The public
--   IP address can only be assigned to a network interface for eth0, and
--   can only be assigned to a new network interface, not an existing one.
--   You cannot specify more than one network interface in the request. If
--   launching into a default subnet, the default value is <tt>true</tt>
--   .</li>
--   <li><a>inisNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>inisSubnetId</a> - The ID of the subnet associated with the
--   network string. Applies only if creating a network interface when
--   launching an instance.</li>
--   <li><a>inisIPv6AddressCount</a> - A number of IPv6 addresses to assign
--   to the network interface. Amazon EC2 chooses the IPv6 addresses from
--   the range of the subnet. You cannot specify this option and the option
--   to assign specific IPv6 addresses in the same request. You can specify
--   this option if you've specified a minimum number of instances to
--   launch.</li>
--   <li><a>inisPrivateIPAddress</a> - The private IPv4 address of the
--   network interface. Applies only if creating a network interface when
--   launching an instance. You cannot specify this option if you're
--   launching more than one instance in a <tt>RunInstances</tt>
--   request.</li>
--   <li><a>inisSecondaryPrivateIPAddressCount</a> - The number of
--   secondary private IPv4 addresses. You can't specify this option and
--   specify more than one private IP address using the private IP
--   addresses option. You cannot specify this option if you're launching
--   more than one instance in a <tt>RunInstances</tt> request.</li>
--   <li><a>inisDescription</a> - The description of the network interface.
--   Applies only if creating a network interface when launching an
--   instance.</li>
--   <li><a>inisDeviceIndex</a> - The index of the device on the instance
--   for the network interface attachment. If you are specifying a network
--   interface in a <tt>RunInstances</tt> request, you must provide the
--   device index.</li>
--   <li><a>inisIPv6Addresses</a> - One or more IPv6 addresses to assign to
--   the network interface. You cannot specify this option and the option
--   to assign a number of IPv6 addresses in the same request. You cannot
--   specify this option if you've specified a minimum number of instances
--   to launch.</li>
--   </ul>
instanceNetworkInterfaceSpecification :: InstanceNetworkInterfaceSpecification

-- | The IDs of the security groups for the network interface. Applies only
--   if creating a network interface when launching an instance.
inisGroups :: Lens' InstanceNetworkInterfaceSpecification [Text]

-- | One or more private IPv4 addresses to assign to the network interface.
--   Only one private IPv4 address can be designated as primary. You cannot
--   specify this option if you're launching more than one instance in a
--   <tt>RunInstances</tt> request.
inisPrivateIPAddresses :: Lens' InstanceNetworkInterfaceSpecification [PrivateIPAddressSpecification]

-- | If set to <tt>true</tt> , the interface is deleted when the instance
--   is terminated. You can specify <tt>true</tt> only if creating a new
--   network interface when launching an instance.
inisDeleteOnTermination :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)

-- | Indicates whether to assign a public IPv4 address to an instance you
--   launch in a VPC. The public IP address can only be assigned to a
--   network interface for eth0, and can only be assigned to a new network
--   interface, not an existing one. You cannot specify more than one
--   network interface in the request. If launching into a default subnet,
--   the default value is <tt>true</tt> .
inisAssociatePublicIPAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)

-- | The ID of the network interface.
inisNetworkInterfaceId :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)

-- | The ID of the subnet associated with the network string. Applies only
--   if creating a network interface when launching an instance.
inisSubnetId :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)

-- | A number of IPv6 addresses to assign to the network interface. Amazon
--   EC2 chooses the IPv6 addresses from the range of the subnet. You
--   cannot specify this option and the option to assign specific IPv6
--   addresses in the same request. You can specify this option if you've
--   specified a minimum number of instances to launch.
inisIPv6AddressCount :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)

-- | The private IPv4 address of the network interface. Applies only if
--   creating a network interface when launching an instance. You cannot
--   specify this option if you're launching more than one instance in a
--   <tt>RunInstances</tt> request.
inisPrivateIPAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)

-- | The number of secondary private IPv4 addresses. You can't specify this
--   option and specify more than one private IP address using the private
--   IP addresses option. You cannot specify this option if you're
--   launching more than one instance in a <tt>RunInstances</tt> request.
inisSecondaryPrivateIPAddressCount :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)

-- | The description of the network interface. Applies only if creating a
--   network interface when launching an instance.
inisDescription :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)

-- | The index of the device on the instance for the network interface
--   attachment. If you are specifying a network interface in a
--   <tt>RunInstances</tt> request, you must provide the device index.
inisDeviceIndex :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)

-- | One or more IPv6 addresses to assign to the network interface. You
--   cannot specify this option and the option to assign a number of IPv6
--   addresses in the same request. You cannot specify this option if
--   you've specified a minimum number of instances to launch.
inisIPv6Addresses :: Lens' InstanceNetworkInterfaceSpecification [InstanceIPv6Address]

-- | Describes a private IPv4 address.
--   
--   <i>See:</i> <a>instancePrivateIPAddress</a> smart constructor.
data InstancePrivateIPAddress

-- | Creates a value of <a>InstancePrivateIPAddress</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ipiaPrimary</a> - Indicates whether this IPv4 address is the
--   primary private IP address of the network interface.</li>
--   <li><a>ipiaPrivateIPAddress</a> - The private IPv4 address of the
--   network interface.</li>
--   <li><a>ipiaPrivateDNSName</a> - The private IPv4 DNS name.</li>
--   <li><a>ipiaAssociation</a> - The association information for an
--   Elastic IP address for the network interface.</li>
--   </ul>
instancePrivateIPAddress :: InstancePrivateIPAddress

-- | Indicates whether this IPv4 address is the primary private IP address
--   of the network interface.
ipiaPrimary :: Lens' InstancePrivateIPAddress (Maybe Bool)

-- | The private IPv4 address of the network interface.
ipiaPrivateIPAddress :: Lens' InstancePrivateIPAddress (Maybe Text)

-- | The private IPv4 DNS name.
ipiaPrivateDNSName :: Lens' InstancePrivateIPAddress (Maybe Text)

-- | The association information for an Elastic IP address for the network
--   interface.
ipiaAssociation :: Lens' InstancePrivateIPAddress (Maybe InstanceNetworkInterfaceAssociation)

-- | Describes the current state of an instance.
--   
--   <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 current state of the instance.</li>
--   <li><a>isCode</a> - The low byte represents the state. The high byte
--   is an opaque internal value and should be ignored. * <tt>0</tt> :
--   <tt>pending</tt> * <tt>16</tt> : <tt>running</tt> * <tt>32</tt> :
--   <tt>shutting-down</tt> * <tt>48</tt> : <tt>terminated</tt> *
--   <tt>64</tt> : <tt>stopping</tt> * <tt>80</tt> : <tt>stopped</tt></li>
--   </ul>
instanceState :: InstanceStateName -> Int -> InstanceState

-- | The current state of the instance.
isName :: Lens' InstanceState InstanceStateName

-- | The low byte represents the state. The high byte is an opaque internal
--   value and should be ignored. * <tt>0</tt> : <tt>pending</tt> *
--   <tt>16</tt> : <tt>running</tt> * <tt>32</tt> : <tt>shutting-down</tt>
--   * <tt>48</tt> : <tt>terminated</tt> * <tt>64</tt> : <tt>stopping</tt>
--   * <tt>80</tt> : <tt>stopped</tt>
isCode :: Lens' InstanceState Int

-- | Describes an instance state change.
--   
--   <i>See:</i> <a>instanceStateChange</a> smart constructor.
data InstanceStateChange

-- | Creates a value of <a>InstanceStateChange</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iscInstanceId</a> - The ID of the instance.</li>
--   <li><a>iscCurrentState</a> - The current state of the instance.</li>
--   <li><a>iscPreviousState</a> - The previous state of the instance.</li>
--   </ul>
instanceStateChange :: InstanceStateChange

-- | The ID of the instance.
iscInstanceId :: Lens' InstanceStateChange (Maybe Text)

-- | The current state of the instance.
iscCurrentState :: Lens' InstanceStateChange (Maybe InstanceState)

-- | The previous state of the instance.
iscPreviousState :: Lens' InstanceStateChange (Maybe InstanceState)

-- | Describes the status of an instance.
--   
--   <i>See:</i> <a>instanceStatus</a> smart constructor.
data InstanceStatus

-- | Creates a value of <a>InstanceStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isInstanceId</a> - The ID of the instance.</li>
--   <li><a>isSystemStatus</a> - Reports impaired functionality that stems
--   from issues related to the systems that support an instance, such as
--   hardware failures and network connectivity problems.</li>
--   <li><a>isEvents</a> - Any scheduled events associated with the
--   instance.</li>
--   <li><a>isAvailabilityZone</a> - The Availability Zone of the
--   instance.</li>
--   <li><a>isInstanceStatus</a> - Reports impaired functionality that
--   stems from issues internal to the instance, such as impaired
--   reachability.</li>
--   <li><a>isInstanceState</a> - The intended state of the instance.
--   <tt>DescribeInstanceStatus</tt> requires that an instance be in the
--   <tt>running</tt> state.</li>
--   </ul>
instanceStatus :: InstanceStatus

-- | The ID of the instance.
isInstanceId :: Lens' InstanceStatus (Maybe Text)

-- | Reports impaired functionality that stems from issues related to the
--   systems that support an instance, such as hardware failures and
--   network connectivity problems.
isSystemStatus :: Lens' InstanceStatus (Maybe InstanceStatusSummary)

-- | Any scheduled events associated with the instance.
isEvents :: Lens' InstanceStatus [InstanceStatusEvent]

-- | The Availability Zone of the instance.
isAvailabilityZone :: Lens' InstanceStatus (Maybe Text)

-- | Reports impaired functionality that stems from issues internal to the
--   instance, such as impaired reachability.
isInstanceStatus :: Lens' InstanceStatus (Maybe InstanceStatusSummary)

-- | The intended state of the instance. <tt>DescribeInstanceStatus</tt>
--   requires that an instance be in the <tt>running</tt> state.
isInstanceState :: Lens' InstanceStatus (Maybe InstanceState)

-- | Describes the instance status.
--   
--   <i>See:</i> <a>instanceStatusDetails</a> smart constructor.
data InstanceStatusDetails

-- | Creates a value of <a>InstanceStatusDetails</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isdStatus</a> - The status.</li>
--   <li><a>isdImpairedSince</a> - The time when a status check failed. For
--   an instance that was launched and impaired, this is the time when the
--   instance was launched.</li>
--   <li><a>isdName</a> - The type of instance status.</li>
--   </ul>
instanceStatusDetails :: InstanceStatusDetails

-- | The status.
isdStatus :: Lens' InstanceStatusDetails (Maybe StatusType)

-- | The time when a status check failed. For an instance that was launched
--   and impaired, this is the time when the instance was launched.
isdImpairedSince :: Lens' InstanceStatusDetails (Maybe UTCTime)

-- | The type of instance status.
isdName :: Lens' InstanceStatusDetails (Maybe StatusName)

-- | Describes a scheduled event for an instance.
--   
--   <i>See:</i> <a>instanceStatusEvent</a> smart constructor.
data InstanceStatusEvent

-- | Creates a value of <a>InstanceStatusEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iseNotBefore</a> - The earliest scheduled start time for the
--   event.</li>
--   <li><a>iseCode</a> - The event code.</li>
--   <li><a>iseDescription</a> - A description of the event. After a
--   scheduled event is completed, it can still be described for up to a
--   week. If the event has been completed, this description starts with
--   the following text: [Completed].</li>
--   <li><a>iseNotAfter</a> - The latest scheduled end time for the
--   event.</li>
--   </ul>
instanceStatusEvent :: InstanceStatusEvent

-- | The earliest scheduled start time for the event.
iseNotBefore :: Lens' InstanceStatusEvent (Maybe UTCTime)

-- | The event code.
iseCode :: Lens' InstanceStatusEvent (Maybe EventCode)

-- | A description of the event. After a scheduled event is completed, it
--   can still be described for up to a week. If the event has been
--   completed, this description starts with the following text:
--   [Completed].
iseDescription :: Lens' InstanceStatusEvent (Maybe Text)

-- | The latest scheduled end time for the event.
iseNotAfter :: Lens' InstanceStatusEvent (Maybe UTCTime)

-- | Describes the status of an instance.
--   
--   <i>See:</i> <a>instanceStatusSummary</a> smart constructor.
data InstanceStatusSummary

-- | Creates a value of <a>InstanceStatusSummary</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>issDetails</a> - The system instance health or application
--   instance health.</li>
--   <li><a>issStatus</a> - The status.</li>
--   </ul>
instanceStatusSummary :: SummaryStatus -> InstanceStatusSummary

-- | The system instance health or application instance health.
issDetails :: Lens' InstanceStatusSummary [InstanceStatusDetails]

-- | The status.
issStatus :: Lens' InstanceStatusSummary SummaryStatus

-- | Describes an Internet gateway.
--   
--   <i>See:</i> <a>internetGateway</a> smart constructor.
data InternetGateway

-- | Creates a value of <a>InternetGateway</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>igAttachments</a> - Any VPCs attached to the Internet
--   gateway.</li>
--   <li><a>igTags</a> - Any tags assigned to the Internet gateway.</li>
--   <li><a>igInternetGatewayId</a> - The ID of the Internet gateway.</li>
--   </ul>
internetGateway :: Text -> InternetGateway

-- | Any VPCs attached to the Internet gateway.
igAttachments :: Lens' InternetGateway [InternetGatewayAttachment]

-- | Any tags assigned to the Internet gateway.
igTags :: Lens' InternetGateway [Tag]

-- | The ID of the Internet gateway.
igInternetGatewayId :: Lens' InternetGateway Text

-- | Describes the attachment of a VPC to an Internet gateway or an
--   egress-only Internet gateway.
--   
--   <i>See:</i> <a>internetGatewayAttachment</a> smart constructor.
data InternetGatewayAttachment

-- | Creates a value of <a>InternetGatewayAttachment</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>igaState</a> - The current state of the attachment.</li>
--   <li><a>igaVPCId</a> - The ID of the VPC.</li>
--   </ul>
internetGatewayAttachment :: AttachmentStatus -> Text -> InternetGatewayAttachment

-- | The current state of the attachment.
igaState :: Lens' InternetGatewayAttachment AttachmentStatus

-- | The ID of the VPC.
igaVPCId :: Lens' InternetGatewayAttachment Text

-- | Describes a key pair.
--   
--   <i>See:</i> <a>keyPairInfo</a> smart constructor.
data KeyPairInfo

-- | Creates a value of <a>KeyPairInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>kpiKeyFingerprint</a> - If you used <tt>CreateKeyPair</tt> to
--   create the key pair, this is the SHA-1 digest of the DER encoded
--   private key. If you used <tt>ImportKeyPair</tt> to provide AWS the
--   public key, this is the MD5 public key fingerprint as specified in
--   section 4 of RFC4716.</li>
--   <li><a>kpiKeyName</a> - The name of the key pair.</li>
--   </ul>
keyPairInfo :: KeyPairInfo

-- | If you used <tt>CreateKeyPair</tt> to create the key pair, this is the
--   SHA-1 digest of the DER encoded private key. If you used
--   <tt>ImportKeyPair</tt> to provide AWS the public key, this is the MD5
--   public key fingerprint as specified in section 4 of RFC4716.
kpiKeyFingerprint :: Lens' KeyPairInfo (Maybe Text)

-- | The name of the key pair.
kpiKeyName :: Lens' KeyPairInfo (Maybe Text)

-- | Describes a launch permission.
--   
--   <i>See:</i> <a>launchPermission</a> smart constructor.
data LaunchPermission

-- | Creates a value of <a>LaunchPermission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lpGroup</a> - The name of the group.</li>
--   <li><a>lpUserId</a> - The AWS account ID.</li>
--   </ul>
launchPermission :: LaunchPermission

-- | The name of the group.
lpGroup :: Lens' LaunchPermission (Maybe PermissionGroup)

-- | The AWS account ID.
lpUserId :: Lens' LaunchPermission (Maybe Text)

-- | Describes a launch permission modification.
--   
--   <i>See:</i> <a>launchPermissionModifications</a> smart constructor.
data LaunchPermissionModifications

-- | Creates a value of <a>LaunchPermissionModifications</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lpmRemove</a> - The AWS account ID to remove from the list of
--   launch permissions for the AMI.</li>
--   <li><a>lpmAdd</a> - The AWS account ID to add to the list of launch
--   permissions for the AMI.</li>
--   </ul>
launchPermissionModifications :: LaunchPermissionModifications

-- | The AWS account ID to remove from the list of launch permissions for
--   the AMI.
lpmRemove :: Lens' LaunchPermissionModifications [LaunchPermission]

-- | The AWS account ID to add to the list of launch permissions for the
--   AMI.
lpmAdd :: Lens' LaunchPermissionModifications [LaunchPermission]

-- | Describes the launch specification for an instance.
--   
--   <i>See:</i> <a>launchSpecification</a> smart constructor.
data LaunchSpecification

-- | Creates a value of <a>LaunchSpecification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lsSecurityGroups</a> - One or more security groups. When
--   requesting instances in a VPC, you must specify the IDs of the
--   security groups. When requesting instances in EC2-Classic, you can
--   specify the names or the IDs of the security groups.</li>
--   <li><a>lsKeyName</a> - The name of the key pair.</li>
--   <li><a>lsNetworkInterfaces</a> - One or more network interfaces. If
--   you specify a network interface, you must specify subnet IDs and
--   security group IDs using the network interface.</li>
--   <li><a>lsRAMDiskId</a> - The ID of the RAM disk.</li>
--   <li><a>lsSubnetId</a> - The ID of the subnet in which to launch the
--   instance.</li>
--   <li><a>lsKernelId</a> - The ID of the kernel.</li>
--   <li><a>lsInstanceType</a> - The instance type.</li>
--   <li><a>lsEBSOptimized</a> - Indicates whether the instance is
--   optimized for EBS I<i>O. This optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal EBS I</i>O performance. This optimization isn't
--   available with all instance types. Additional usage charges apply when
--   using an EBS Optimized instance. Default: <tt>false</tt></li>
--   <li><a>lsUserData</a> - The user data to make available to the
--   instances. If you are using an AWS SDK or command line tool,
--   Base64-encoding is performed for you, and you can load the text from a
--   file. Otherwise, you must provide Base64-encoded text.</li>
--   <li><a>lsMonitoring</a> - Undocumented member.</li>
--   <li><a>lsIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>lsImageId</a> - The ID of the AMI.</li>
--   <li><a>lsAddressingType</a> - Deprecated.</li>
--   <li><a>lsBlockDeviceMappings</a> - One or more block device mapping
--   entries. Although you can specify encrypted EBS volumes in this block
--   device mapping for your Spot Instances, these volumes are not
--   encrypted.</li>
--   <li><a>lsPlacement</a> - The placement information for the
--   instance.</li>
--   </ul>
launchSpecification :: LaunchSpecification

-- | One or more security groups. When requesting instances in a VPC, you
--   must specify the IDs of the security groups. When requesting instances
--   in EC2-Classic, you can specify the names or the IDs of the security
--   groups.
lsSecurityGroups :: Lens' LaunchSpecification [GroupIdentifier]

-- | The name of the key pair.
lsKeyName :: Lens' LaunchSpecification (Maybe Text)

-- | One or more network interfaces. If you specify a network interface,
--   you must specify subnet IDs and security group IDs using the network
--   interface.
lsNetworkInterfaces :: Lens' LaunchSpecification [InstanceNetworkInterfaceSpecification]

-- | The ID of the RAM disk.
lsRAMDiskId :: Lens' LaunchSpecification (Maybe Text)

-- | The ID of the subnet in which to launch the instance.
lsSubnetId :: Lens' LaunchSpecification (Maybe Text)

-- | The ID of the kernel.
lsKernelId :: Lens' LaunchSpecification (Maybe Text)

-- | The instance type.
lsInstanceType :: Lens' LaunchSpecification (Maybe InstanceType)

-- | Indicates whether the instance is optimized for EBS I<i>O. This
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal EBS I</i>O
--   performance. This optimization isn't available with all instance
--   types. Additional usage charges apply when using an EBS Optimized
--   instance. Default: <tt>false</tt>
lsEBSOptimized :: Lens' LaunchSpecification (Maybe Bool)

-- | The user data to make available to the instances. If you are using an
--   AWS SDK or command line tool, Base64-encoding is performed for you,
--   and you can load the text from a file. Otherwise, you must provide
--   Base64-encoded text.
lsUserData :: Lens' LaunchSpecification (Maybe Text)

-- | Undocumented member.
lsMonitoring :: Lens' LaunchSpecification (Maybe RunInstancesMonitoringEnabled)

-- | The IAM instance profile.
lsIAMInstanceProfile :: Lens' LaunchSpecification (Maybe IAMInstanceProfileSpecification)

-- | The ID of the AMI.
lsImageId :: Lens' LaunchSpecification (Maybe Text)

-- | Deprecated.
lsAddressingType :: Lens' LaunchSpecification (Maybe Text)

-- | One or more block device mapping entries. Although you can specify
--   encrypted EBS volumes in this block device mapping for your Spot
--   Instances, these volumes are not encrypted.
lsBlockDeviceMappings :: Lens' LaunchSpecification [BlockDeviceMapping]

-- | The placement information for the instance.
lsPlacement :: Lens' LaunchSpecification (Maybe SpotPlacement)

-- | Describes the monitoring of an instance.
--   
--   <i>See:</i> <a>monitoring</a> smart constructor.
data Monitoring

-- | Creates a value of <a>Monitoring</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mState</a> - Indicates whether detailed monitoring is enabled.
--   Otherwise, basic monitoring is enabled.</li>
--   </ul>
monitoring :: Monitoring

-- | Indicates whether detailed monitoring is enabled. Otherwise, basic
--   monitoring is enabled.
mState :: Lens' Monitoring (Maybe MonitoringState)

-- | Describes the status of a moving Elastic IP address.
--   
--   <i>See:</i> <a>movingAddressStatus</a> smart constructor.
data MovingAddressStatus

-- | Creates a value of <a>MovingAddressStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>masMoveStatus</a> - The status of the Elastic IP address that's
--   being moved to the EC2-VPC platform, or restored to the EC2-Classic
--   platform.</li>
--   <li><a>masPublicIP</a> - The Elastic IP address.</li>
--   </ul>
movingAddressStatus :: MovingAddressStatus

-- | The status of the Elastic IP address that's being moved to the EC2-VPC
--   platform, or restored to the EC2-Classic platform.
masMoveStatus :: Lens' MovingAddressStatus (Maybe MoveStatus)

-- | The Elastic IP address.
masPublicIP :: Lens' MovingAddressStatus (Maybe Text)

-- | Describes a NAT gateway.
--   
--   <i>See:</i> <a>natGateway</a> smart constructor.
data NatGateway

-- | Creates a value of <a>NatGateway</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ngState</a> - The state of the NAT gateway. * <tt>pending</tt>
--   : The NAT gateway is being created and is not ready to process
--   traffic. * <tt>failed</tt> : The NAT gateway could not be created.
--   Check the <tt>failureCode</tt> and <tt>failureMessage</tt> fields for
--   the reason. * <tt>available</tt> : The NAT gateway is able to process
--   traffic. This status remains until you delete the NAT gateway, and
--   does not indicate the health of the NAT gateway. * <tt>deleting</tt> :
--   The NAT gateway is in the process of being terminated and may still be
--   processing traffic. * <tt>deleted</tt> : The NAT gateway has been
--   terminated and is no longer processing traffic.</li>
--   <li><a>ngFailureCode</a> - If the NAT gateway could not be created,
--   specifies the error code for the failure.
--   (<tt>InsufficientFreeAddressesInSubnet</tt> |
--   <tt>Gateway.NotAttached</tt> | <tt>InvalidAllocationID.NotFound</tt> |
--   <tt>Resource.AlreadyAssociated</tt> | <tt>InternalError</tt> |
--   <tt>InvalidSubnetID.NotFound</tt> )</li>
--   <li><a>ngVPCId</a> - The ID of the VPC in which the NAT gateway is
--   located.</li>
--   <li><a>ngFailureMessage</a> - If the NAT gateway could not be created,
--   specifies the error message for the failure, that corresponds to the
--   error code. * For InsufficientFreeAddressesInSubnet: "Subnet has
--   insufficient free addresses to create this NAT gateway" * For
--   Gateway.NotAttached: "Network vpc-xxxxxxxx has no Internet gateway
--   attached" * For InvalidAllocationID.NotFound: "Elastic IP address
--   eipalloc-xxxxxxxx could not be associated with this NAT gateway" * For
--   Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is
--   already associated" * For InternalError: "Network interface
--   eni-xxxxxxxx, created and used internally by this NAT gateway is in an
--   invalid state. Please try again." * For InvalidSubnetID.NotFound: "The
--   specified subnet subnet-xxxxxxxx does not exist or could not be
--   found."</li>
--   <li><a>ngNatGatewayId</a> - The ID of the NAT gateway.</li>
--   <li><a>ngSubnetId</a> - The ID of the subnet in which the NAT gateway
--   is located.</li>
--   <li><a>ngDeleteTime</a> - The date and time the NAT gateway was
--   deleted, if applicable.</li>
--   <li><a>ngProvisionedBandwidth</a> - Reserved. If you need to sustain
--   traffic greater than the <a>documented limits</a> , contact us through
--   the <a>Support Center</a> .</li>
--   <li><a>ngNatGatewayAddresses</a> - Information about the IP addresses
--   and network interface associated with the NAT gateway.</li>
--   <li><a>ngCreateTime</a> - The date and time the NAT gateway was
--   created.</li>
--   </ul>
natGateway :: NatGateway

-- | The state of the NAT gateway. * <tt>pending</tt> : The NAT gateway is
--   being created and is not ready to process traffic. * <tt>failed</tt> :
--   The NAT gateway could not be created. Check the <tt>failureCode</tt>
--   and <tt>failureMessage</tt> fields for the reason. *
--   <tt>available</tt> : The NAT gateway is able to process traffic. This
--   status remains until you delete the NAT gateway, and does not indicate
--   the health of the NAT gateway. * <tt>deleting</tt> : The NAT gateway
--   is in the process of being terminated and may still be processing
--   traffic. * <tt>deleted</tt> : The NAT gateway has been terminated and
--   is no longer processing traffic.
ngState :: Lens' NatGateway (Maybe NatGatewayState)

-- | If the NAT gateway could not be created, specifies the error code for
--   the failure. (<tt>InsufficientFreeAddressesInSubnet</tt> |
--   <tt>Gateway.NotAttached</tt> | <tt>InvalidAllocationID.NotFound</tt> |
--   <tt>Resource.AlreadyAssociated</tt> | <tt>InternalError</tt> |
--   <tt>InvalidSubnetID.NotFound</tt> )
ngFailureCode :: Lens' NatGateway (Maybe Text)

-- | The ID of the VPC in which the NAT gateway is located.
ngVPCId :: Lens' NatGateway (Maybe Text)

-- | If the NAT gateway could not be created, specifies the error message
--   for the failure, that corresponds to the error code. * For
--   InsufficientFreeAddressesInSubnet: "Subnet has insufficient free
--   addresses to create this NAT gateway" * For Gateway.NotAttached:
--   "Network vpc-xxxxxxxx has no Internet gateway attached" * For
--   InvalidAllocationID.NotFound: "Elastic IP address eipalloc-xxxxxxxx
--   could not be associated with this NAT gateway" * For
--   Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is
--   already associated" * For InternalError: "Network interface
--   eni-xxxxxxxx, created and used internally by this NAT gateway is in an
--   invalid state. Please try again." * For InvalidSubnetID.NotFound: "The
--   specified subnet subnet-xxxxxxxx does not exist or could not be
--   found."
ngFailureMessage :: Lens' NatGateway (Maybe Text)

-- | The ID of the NAT gateway.
ngNatGatewayId :: Lens' NatGateway (Maybe Text)

-- | The ID of the subnet in which the NAT gateway is located.
ngSubnetId :: Lens' NatGateway (Maybe Text)

-- | The date and time the NAT gateway was deleted, if applicable.
ngDeleteTime :: Lens' NatGateway (Maybe UTCTime)

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
ngProvisionedBandwidth :: Lens' NatGateway (Maybe ProvisionedBandwidth)

-- | Information about the IP addresses and network interface associated
--   with the NAT gateway.
ngNatGatewayAddresses :: Lens' NatGateway [NatGatewayAddress]

-- | The date and time the NAT gateway was created.
ngCreateTime :: Lens' NatGateway (Maybe UTCTime)

-- | Describes the IP addresses and network interface associated with a NAT
--   gateway.
--   
--   <i>See:</i> <a>natGatewayAddress</a> smart constructor.
data NatGatewayAddress

-- | Creates a value of <a>NatGatewayAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ngaPrivateIP</a> - The private IP address associated with the
--   Elastic IP address.</li>
--   <li><a>ngaAllocationId</a> - The allocation ID of the Elastic IP
--   address that's associated with the NAT gateway.</li>
--   <li><a>ngaNetworkInterfaceId</a> - The ID of the network interface
--   associated with the NAT gateway.</li>
--   <li><a>ngaPublicIP</a> - The Elastic IP address associated with the
--   NAT gateway.</li>
--   </ul>
natGatewayAddress :: NatGatewayAddress

-- | The private IP address associated with the Elastic IP address.
ngaPrivateIP :: Lens' NatGatewayAddress (Maybe Text)

-- | The allocation ID of the Elastic IP address that's associated with the
--   NAT gateway.
ngaAllocationId :: Lens' NatGatewayAddress (Maybe Text)

-- | The ID of the network interface associated with the NAT gateway.
ngaNetworkInterfaceId :: Lens' NatGatewayAddress (Maybe Text)

-- | The Elastic IP address associated with the NAT gateway.
ngaPublicIP :: Lens' NatGatewayAddress (Maybe Text)

-- | Describes a network ACL.
--   
--   <i>See:</i> <a>networkACL</a> smart constructor.
data NetworkACL

-- | Creates a value of <a>NetworkACL</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>naEntries</a> - One or more entries (rules) in the network
--   ACL.</li>
--   <li><a>naNetworkACLId</a> - The ID of the network ACL.</li>
--   <li><a>naVPCId</a> - The ID of the VPC for the network ACL.</li>
--   <li><a>naAssociations</a> - Any associations between the network ACL
--   and one or more subnets</li>
--   <li><a>naTags</a> - Any tags assigned to the network ACL.</li>
--   <li><a>naIsDefault</a> - Indicates whether this is the default network
--   ACL for the VPC.</li>
--   </ul>
networkACL :: NetworkACL

-- | One or more entries (rules) in the network ACL.
naEntries :: Lens' NetworkACL [NetworkACLEntry]

-- | The ID of the network ACL.
naNetworkACLId :: Lens' NetworkACL (Maybe Text)

-- | The ID of the VPC for the network ACL.
naVPCId :: Lens' NetworkACL (Maybe Text)

-- | Any associations between the network ACL and one or more subnets
naAssociations :: Lens' NetworkACL [NetworkACLAssociation]

-- | Any tags assigned to the network ACL.
naTags :: Lens' NetworkACL [Tag]

-- | Indicates whether this is the default network ACL for the VPC.
naIsDefault :: Lens' NetworkACL (Maybe Bool)

-- | Describes an association between a network ACL and a subnet.
--   
--   <i>See:</i> <a>networkACLAssociation</a> smart constructor.
data NetworkACLAssociation

-- | Creates a value of <a>NetworkACLAssociation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>naaNetworkACLId</a> - The ID of the network ACL.</li>
--   <li><a>naaSubnetId</a> - The ID of the subnet.</li>
--   <li><a>naaNetworkACLAssociationId</a> - The ID of the association
--   between a network ACL and a subnet.</li>
--   </ul>
networkACLAssociation :: NetworkACLAssociation

-- | The ID of the network ACL.
naaNetworkACLId :: Lens' NetworkACLAssociation (Maybe Text)

-- | The ID of the subnet.
naaSubnetId :: Lens' NetworkACLAssociation (Maybe Text)

-- | The ID of the association between a network ACL and a subnet.
naaNetworkACLAssociationId :: Lens' NetworkACLAssociation (Maybe Text)

-- | Describes an entry in a network ACL.
--   
--   <i>See:</i> <a>networkACLEntry</a> smart constructor.
data NetworkACLEntry

-- | Creates a value of <a>NetworkACLEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>naeIPv6CidrBlock</a> - The IPv6 network range to allow or deny,
--   in CIDR notation.</li>
--   <li><a>naeICMPTypeCode</a> - ICMP protocol: The ICMP type and
--   code.</li>
--   <li><a>naeRuleNumber</a> - The rule number for the entry. ACL entries
--   are processed in ascending order by rule number.</li>
--   <li><a>naeRuleAction</a> - Indicates whether to allow or deny the
--   traffic that matches the rule.</li>
--   <li><a>naeProtocol</a> - The protocol. A value of <tt>-1</tt> means
--   all protocols.</li>
--   <li><a>naePortRange</a> - TCP or UDP protocols: The range of ports the
--   rule applies to.</li>
--   <li><a>naeCidrBlock</a> - The IPv4 network range to allow or deny, in
--   CIDR notation.</li>
--   <li><a>naeEgress</a> - Indicates whether the rule is an egress rule
--   (applied to traffic leaving the subnet).</li>
--   </ul>
networkACLEntry :: NetworkACLEntry

-- | The IPv6 network range to allow or deny, in CIDR notation.
naeIPv6CidrBlock :: Lens' NetworkACLEntry (Maybe Text)

-- | ICMP protocol: The ICMP type and code.
naeICMPTypeCode :: Lens' NetworkACLEntry (Maybe ICMPTypeCode)

-- | The rule number for the entry. ACL entries are processed in ascending
--   order by rule number.
naeRuleNumber :: Lens' NetworkACLEntry (Maybe Int)

-- | Indicates whether to allow or deny the traffic that matches the rule.
naeRuleAction :: Lens' NetworkACLEntry (Maybe RuleAction)

-- | The protocol. A value of <tt>-1</tt> means all protocols.
naeProtocol :: Lens' NetworkACLEntry (Maybe Text)

-- | TCP or UDP protocols: The range of ports the rule applies to.
naePortRange :: Lens' NetworkACLEntry (Maybe PortRange)

-- | The IPv4 network range to allow or deny, in CIDR notation.
naeCidrBlock :: Lens' NetworkACLEntry (Maybe Text)

-- | Indicates whether the rule is an egress rule (applied to traffic
--   leaving the subnet).
naeEgress :: Lens' NetworkACLEntry (Maybe Bool)

-- | Describes a network interface.
--   
--   <i>See:</i> <a>networkInterface</a> smart constructor.
data NetworkInterface

-- | Creates a value of <a>NetworkInterface</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>niGroups</a> - Any security groups for the network
--   interface.</li>
--   <li><a>niStatus</a> - The status of the network interface.</li>
--   <li><a>niPrivateIPAddresses</a> - The private IPv4 addresses
--   associated with the network interface.</li>
--   <li><a>niSourceDestCheck</a> - Indicates whether traffic to or from
--   the instance is validated.</li>
--   <li><a>niInterfaceType</a> - The type of interface.</li>
--   <li><a>niVPCId</a> - The ID of the VPC.</li>
--   <li><a>niTagSet</a> - Any tags assigned to the network interface.</li>
--   <li><a>niRequesterManaged</a> - Indicates whether the network
--   interface is being managed by AWS.</li>
--   <li><a>niNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>niSubnetId</a> - The ID of the subnet.</li>
--   <li><a>niMACAddress</a> - The MAC address.</li>
--   <li><a>niAttachment</a> - The network interface attachment.</li>
--   <li><a>niOwnerId</a> - The AWS account ID of the owner of the network
--   interface.</li>
--   <li><a>niAvailabilityZone</a> - The Availability Zone.</li>
--   <li><a>niPrivateIPAddress</a> - The IPv4 address of the network
--   interface within the subnet.</li>
--   <li><a>niPrivateDNSName</a> - The private DNS name.</li>
--   <li><a>niRequesterId</a> - The ID of the entity that launched the
--   instance on your behalf (for example, AWS Management Console or Auto
--   Scaling).</li>
--   <li><a>niDescription</a> - A description.</li>
--   <li><a>niAssociation</a> - The association information for an Elastic
--   IP address (IPv4) associated with the network interface.</li>
--   <li><a>niIPv6Addresses</a> - The IPv6 addresses associated with the
--   network interface.</li>
--   </ul>
networkInterface :: NetworkInterface

-- | Any security groups for the network interface.
niGroups :: Lens' NetworkInterface [GroupIdentifier]

-- | The status of the network interface.
niStatus :: Lens' NetworkInterface (Maybe NetworkInterfaceStatus)

-- | The private IPv4 addresses associated with the network interface.
niPrivateIPAddresses :: Lens' NetworkInterface [NetworkInterfacePrivateIPAddress]

-- | Indicates whether traffic to or from the instance is validated.
niSourceDestCheck :: Lens' NetworkInterface (Maybe Bool)

-- | The type of interface.
niInterfaceType :: Lens' NetworkInterface (Maybe NetworkInterfaceType)

-- | The ID of the VPC.
niVPCId :: Lens' NetworkInterface (Maybe Text)

-- | Any tags assigned to the network interface.
niTagSet :: Lens' NetworkInterface [Tag]

-- | Indicates whether the network interface is being managed by AWS.
niRequesterManaged :: Lens' NetworkInterface (Maybe Bool)

-- | The ID of the network interface.
niNetworkInterfaceId :: Lens' NetworkInterface (Maybe Text)

-- | The ID of the subnet.
niSubnetId :: Lens' NetworkInterface (Maybe Text)

-- | The MAC address.
niMACAddress :: Lens' NetworkInterface (Maybe Text)

-- | The network interface attachment.
niAttachment :: Lens' NetworkInterface (Maybe NetworkInterfaceAttachment)

-- | The AWS account ID of the owner of the network interface.
niOwnerId :: Lens' NetworkInterface (Maybe Text)

-- | The Availability Zone.
niAvailabilityZone :: Lens' NetworkInterface (Maybe Text)

-- | The IPv4 address of the network interface within the subnet.
niPrivateIPAddress :: Lens' NetworkInterface (Maybe Text)

-- | The private DNS name.
niPrivateDNSName :: Lens' NetworkInterface (Maybe Text)

-- | The ID of the entity that launched the instance on your behalf (for
--   example, AWS Management Console or Auto Scaling).
niRequesterId :: Lens' NetworkInterface (Maybe Text)

-- | A description.
niDescription :: Lens' NetworkInterface (Maybe Text)

-- | The association information for an Elastic IP address (IPv4)
--   associated with the network interface.
niAssociation :: Lens' NetworkInterface (Maybe NetworkInterfaceAssociation)

-- | The IPv6 addresses associated with the network interface.
niIPv6Addresses :: Lens' NetworkInterface [NetworkInterfaceIPv6Address]

-- | Describes association information for an Elastic IP address (IPv4
--   only).
--   
--   <i>See:</i> <a>networkInterfaceAssociation</a> smart constructor.
data NetworkInterfaceAssociation

-- | Creates a value of <a>NetworkInterfaceAssociation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>niaAssociationId</a> - The association ID.</li>
--   <li><a>niaPublicDNSName</a> - The public DNS name.</li>
--   <li><a>niaAllocationId</a> - The allocation ID.</li>
--   <li><a>niaIPOwnerId</a> - The ID of the Elastic IP address owner.</li>
--   <li><a>niaPublicIP</a> - The address of the Elastic IP address bound
--   to the network interface.</li>
--   </ul>
networkInterfaceAssociation :: NetworkInterfaceAssociation

-- | The association ID.
niaAssociationId :: Lens' NetworkInterfaceAssociation (Maybe Text)

-- | The public DNS name.
niaPublicDNSName :: Lens' NetworkInterfaceAssociation (Maybe Text)

-- | The allocation ID.
niaAllocationId :: Lens' NetworkInterfaceAssociation (Maybe Text)

-- | The ID of the Elastic IP address owner.
niaIPOwnerId :: Lens' NetworkInterfaceAssociation (Maybe Text)

-- | The address of the Elastic IP address bound to the network interface.
niaPublicIP :: Lens' NetworkInterfaceAssociation (Maybe Text)

-- | Describes a network interface attachment.
--   
--   <i>See:</i> <a>networkInterfaceAttachment</a> smart constructor.
data NetworkInterfaceAttachment

-- | Creates a value of <a>NetworkInterfaceAttachment</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>niaInstanceId</a> - The ID of the instance.</li>
--   <li><a>niaStatus</a> - The attachment state.</li>
--   <li><a>niaDeleteOnTermination</a> - Indicates whether the network
--   interface is deleted when the instance is terminated.</li>
--   <li><a>niaAttachmentId</a> - The ID of the network interface
--   attachment.</li>
--   <li><a>niaInstanceOwnerId</a> - The AWS account ID of the owner of the
--   instance.</li>
--   <li><a>niaAttachTime</a> - The timestamp indicating when the
--   attachment initiated.</li>
--   <li><a>niaDeviceIndex</a> - The device index of the network interface
--   attachment on the instance.</li>
--   </ul>
networkInterfaceAttachment :: NetworkInterfaceAttachment

-- | The ID of the instance.
niaInstanceId :: Lens' NetworkInterfaceAttachment (Maybe Text)

-- | The attachment state.
niaStatus :: Lens' NetworkInterfaceAttachment (Maybe AttachmentStatus)

-- | Indicates whether the network interface is deleted when the instance
--   is terminated.
niaDeleteOnTermination :: Lens' NetworkInterfaceAttachment (Maybe Bool)

-- | The ID of the network interface attachment.
niaAttachmentId :: Lens' NetworkInterfaceAttachment (Maybe Text)

-- | The AWS account ID of the owner of the instance.
niaInstanceOwnerId :: Lens' NetworkInterfaceAttachment (Maybe Text)

-- | The timestamp indicating when the attachment initiated.
niaAttachTime :: Lens' NetworkInterfaceAttachment (Maybe UTCTime)

-- | The device index of the network interface attachment on the instance.
niaDeviceIndex :: Lens' NetworkInterfaceAttachment (Maybe Int)

-- | Describes an attachment change.
--   
--   <i>See:</i> <a>networkInterfaceAttachmentChanges</a> smart
--   constructor.
data NetworkInterfaceAttachmentChanges

-- | Creates a value of <a>NetworkInterfaceAttachmentChanges</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>niacDeleteOnTermination</a> - Indicates whether the network
--   interface is deleted when the instance is terminated.</li>
--   <li><a>niacAttachmentId</a> - The ID of the network interface
--   attachment.</li>
--   </ul>
networkInterfaceAttachmentChanges :: NetworkInterfaceAttachmentChanges

-- | Indicates whether the network interface is deleted when the instance
--   is terminated.
niacDeleteOnTermination :: Lens' NetworkInterfaceAttachmentChanges (Maybe Bool)

-- | The ID of the network interface attachment.
niacAttachmentId :: Lens' NetworkInterfaceAttachmentChanges (Maybe Text)

-- | Describes an IPv6 address associated with a network interface.
--   
--   <i>See:</i> <a>networkInterfaceIPv6Address</a> smart constructor.
data NetworkInterfaceIPv6Address

-- | Creates a value of <a>NetworkInterfaceIPv6Address</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>niiaIPv6Address</a> - The IPv6 address.</li>
--   </ul>
networkInterfaceIPv6Address :: NetworkInterfaceIPv6Address

-- | The IPv6 address.
niiaIPv6Address :: Lens' NetworkInterfaceIPv6Address (Maybe Text)

-- | Describes the private IPv4 address of a network interface.
--   
--   <i>See:</i> <a>networkInterfacePrivateIPAddress</a> smart constructor.
data NetworkInterfacePrivateIPAddress

-- | Creates a value of <a>NetworkInterfacePrivateIPAddress</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nipiaPrimary</a> - Indicates whether this IPv4 address is the
--   primary private IPv4 address of the network interface.</li>
--   <li><a>nipiaPrivateIPAddress</a> - The private IPv4 address.</li>
--   <li><a>nipiaPrivateDNSName</a> - The private DNS name.</li>
--   <li><a>nipiaAssociation</a> - The association information for an
--   Elastic IP address (IPv4) associated with the network interface.</li>
--   </ul>
networkInterfacePrivateIPAddress :: NetworkInterfacePrivateIPAddress

-- | Indicates whether this IPv4 address is the primary private IPv4
--   address of the network interface.
nipiaPrimary :: Lens' NetworkInterfacePrivateIPAddress (Maybe Bool)

-- | The private IPv4 address.
nipiaPrivateIPAddress :: Lens' NetworkInterfacePrivateIPAddress (Maybe Text)

-- | The private DNS name.
nipiaPrivateDNSName :: Lens' NetworkInterfacePrivateIPAddress (Maybe Text)

-- | The association information for an Elastic IP address (IPv4)
--   associated with the network interface.
nipiaAssociation :: Lens' NetworkInterfacePrivateIPAddress (Maybe NetworkInterfaceAssociation)

-- | <i>See:</i> <a>newDHCPConfiguration</a> smart constructor.
data NewDHCPConfiguration

-- | Creates a value of <a>NewDHCPConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ndcValues</a> - Undocumented member.</li>
--   <li><a>ndcKey</a> - Undocumented member.</li>
--   </ul>
newDHCPConfiguration :: NewDHCPConfiguration

-- | Undocumented member.
ndcValues :: Lens' NewDHCPConfiguration [Text]

-- | Undocumented member.
ndcKey :: Lens' NewDHCPConfiguration (Maybe Text)

-- | Describes the VPC peering connection options.
--   
--   <i>See:</i> <a>peeringConnectionOptions</a> smart constructor.
data PeeringConnectionOptions

-- | Creates a value of <a>PeeringConnectionOptions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pcoAllowEgressFromLocalVPCToRemoteClassicLink</a> - If true,
--   enables outbound communication from instances in a local VPC to an
--   EC2-Classic instance that's linked to a peer VPC via ClassicLink.</li>
--   <li><a>pcoAllowEgressFromLocalClassicLinkToRemoteVPC</a> - If true,
--   enables outbound communication from an EC2-Classic instance that's
--   linked to a local VPC via ClassicLink to instances in a peer VPC.</li>
--   <li><a>pcoAllowDNSResolutionFromRemoteVPC</a> - If true, enables a
--   local VPC to resolve public DNS hostnames to private IP addresses when
--   queried from instances in the peer VPC.</li>
--   </ul>
peeringConnectionOptions :: PeeringConnectionOptions

-- | If true, enables outbound communication from instances in a local VPC
--   to an EC2-Classic instance that's linked to a peer VPC via
--   ClassicLink.
pcoAllowEgressFromLocalVPCToRemoteClassicLink :: Lens' PeeringConnectionOptions (Maybe Bool)

-- | If true, enables outbound communication from an EC2-Classic instance
--   that's linked to a local VPC via ClassicLink to instances in a peer
--   VPC.
pcoAllowEgressFromLocalClassicLinkToRemoteVPC :: Lens' PeeringConnectionOptions (Maybe Bool)

-- | If true, enables a local VPC to resolve public DNS hostnames to
--   private IP addresses when queried from instances in the peer VPC.
pcoAllowDNSResolutionFromRemoteVPC :: Lens' PeeringConnectionOptions (Maybe Bool)

-- | The VPC peering connection options.
--   
--   <i>See:</i> <a>peeringConnectionOptionsRequest</a> smart constructor.
data PeeringConnectionOptionsRequest

-- | Creates a value of <a>PeeringConnectionOptionsRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pcorAllowEgressFromLocalVPCToRemoteClassicLink</a> - If true,
--   enables outbound communication from instances in a local VPC to an
--   EC2-Classic instance that's linked to a peer VPC via ClassicLink.</li>
--   <li><a>pcorAllowEgressFromLocalClassicLinkToRemoteVPC</a> - If true,
--   enables outbound communication from an EC2-Classic instance that's
--   linked to a local VPC via ClassicLink to instances in a peer VPC.</li>
--   <li><a>pcorAllowDNSResolutionFromRemoteVPC</a> - If true, enables a
--   local VPC to resolve public DNS hostnames to private IP addresses when
--   queried from instances in the peer VPC.</li>
--   </ul>
peeringConnectionOptionsRequest :: PeeringConnectionOptionsRequest

-- | If true, enables outbound communication from instances in a local VPC
--   to an EC2-Classic instance that's linked to a peer VPC via
--   ClassicLink.
pcorAllowEgressFromLocalVPCToRemoteClassicLink :: Lens' PeeringConnectionOptionsRequest (Maybe Bool)

-- | If true, enables outbound communication from an EC2-Classic instance
--   that's linked to a local VPC via ClassicLink to instances in a peer
--   VPC.
pcorAllowEgressFromLocalClassicLinkToRemoteVPC :: Lens' PeeringConnectionOptionsRequest (Maybe Bool)

-- | If true, enables a local VPC to resolve public DNS hostnames to
--   private IP addresses when queried from instances in the peer VPC.
pcorAllowDNSResolutionFromRemoteVPC :: Lens' PeeringConnectionOptionsRequest (Maybe Bool)

-- | Describes the placement of an instance.
--   
--   <i>See:</i> <a>placement</a> smart constructor.
data Placement

-- | Creates a value of <a>Placement</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pAffinity</a> - The affinity setting for the instance on the
--   Dedicated Host. This parameter is not supported for the
--   <tt>ImportInstance</tt> command.</li>
--   <li><a>pHostId</a> - The ID of the Dedicted host on which the instance
--   resides. This parameter is not support for the <tt>ImportInstance</tt>
--   command.</li>
--   <li><a>pAvailabilityZone</a> - The Availability Zone of the
--   instance.</li>
--   <li><a>pTenancy</a> - The tenancy of the instance (if the instance is
--   running in a VPC). An instance with a tenancy of <tt>dedicated</tt>
--   runs on single-tenant hardware. The <tt>host</tt> tenancy is not
--   supported for the <tt>ImportInstance</tt> command.</li>
--   <li><a>pGroupName</a> - The name of the placement group the instance
--   is in (for cluster compute instances).</li>
--   </ul>
placement :: Placement

-- | The affinity setting for the instance on the Dedicated Host. This
--   parameter is not supported for the <tt>ImportInstance</tt> command.
pAffinity :: Lens' Placement (Maybe Text)

-- | The ID of the Dedicted host on which the instance resides. This
--   parameter is not support for the <tt>ImportInstance</tt> command.
pHostId :: Lens' Placement (Maybe Text)

-- | The Availability Zone of the instance.
pAvailabilityZone :: Lens' Placement (Maybe Text)

-- | The tenancy of the instance (if the instance is running in a VPC). An
--   instance with a tenancy of <tt>dedicated</tt> runs on single-tenant
--   hardware. The <tt>host</tt> tenancy is not supported for the
--   <tt>ImportInstance</tt> command.
pTenancy :: Lens' Placement (Maybe Tenancy)

-- | The name of the placement group the instance is in (for cluster
--   compute instances).
pGroupName :: Lens' Placement (Maybe Text)

-- | Describes a placement group.
--   
--   <i>See:</i> <a>placementGroup</a> smart constructor.
data PlacementGroup

-- | Creates a value of <a>PlacementGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pgState</a> - The state of the placement group.</li>
--   <li><a>pgStrategy</a> - The placement strategy.</li>
--   <li><a>pgGroupName</a> - The name of the placement group.</li>
--   </ul>
placementGroup :: PlacementGroup

-- | The state of the placement group.
pgState :: Lens' PlacementGroup (Maybe PlacementGroupState)

-- | The placement strategy.
pgStrategy :: Lens' PlacementGroup (Maybe PlacementStrategy)

-- | The name of the placement group.
pgGroupName :: Lens' PlacementGroup (Maybe Text)

-- | Describes a range of ports.
--   
--   <i>See:</i> <a>portRange</a> smart constructor.
data PortRange

-- | Creates a value of <a>PortRange</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prTo</a> - The last port in the range.</li>
--   <li><a>prFrom</a> - The first port in the range.</li>
--   </ul>
portRange :: PortRange

-- | The last port in the range.
prTo :: Lens' PortRange (Maybe Int)

-- | The first port in the range.
prFrom :: Lens' PortRange (Maybe Int)

-- | Describes prefixes for AWS services.
--   
--   <i>See:</i> <a>prefixList</a> smart constructor.
data PrefixList

-- | Creates a value of <a>PrefixList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plCidrs</a> - The IP address range of the AWS service.</li>
--   <li><a>plPrefixListId</a> - The ID of the prefix.</li>
--   <li><a>plPrefixListName</a> - The name of the prefix.</li>
--   </ul>
prefixList :: PrefixList

-- | The IP address range of the AWS service.
plCidrs :: Lens' PrefixList [Text]

-- | The ID of the prefix.
plPrefixListId :: Lens' PrefixList (Maybe Text)

-- | The name of the prefix.
plPrefixListName :: Lens' PrefixList (Maybe Text)

-- | The ID of the prefix.
--   
--   <i>See:</i> <a>prefixListId</a> smart constructor.
data PrefixListId

-- | Creates a value of <a>PrefixListId</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pliPrefixListId</a> - The ID of the prefix.</li>
--   </ul>
prefixListId :: PrefixListId

-- | The ID of the prefix.
pliPrefixListId :: Lens' PrefixListId (Maybe Text)

-- | Describes the price for a Reserved Instance.
--   
--   <i>See:</i> <a>priceSchedule</a> smart constructor.
data PriceSchedule

-- | Creates a value of <a>PriceSchedule</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psCurrencyCode</a> - The currency for transacting the Reserved
--   Instance resale. At this time, the only supported currency is
--   <tt>USD</tt> .</li>
--   <li><a>psTerm</a> - The number of months remaining in the reservation.
--   For example, 2 is the second to the last month before the capacity
--   reservation expires.</li>
--   <li><a>psActive</a> - The current price schedule, as determined by the
--   term remaining for the Reserved Instance in the listing. A specific
--   price schedule is always in effect, but only one price schedule can be
--   active at any time. Take, for example, a Reserved Instance listing
--   that has five months remaining in its term. When you specify price
--   schedules for five months and two months, this means that schedule 1,
--   covering the first three months of the remaining term, will be active
--   during months 5, 4, and 3. Then schedule 2, covering the last two
--   months of the term, will be active for months 2 and 1.</li>
--   <li><a>psPrice</a> - The fixed price for the term.</li>
--   </ul>
priceSchedule :: PriceSchedule

-- | The currency for transacting the Reserved Instance resale. At this
--   time, the only supported currency is <tt>USD</tt> .
psCurrencyCode :: Lens' PriceSchedule (Maybe CurrencyCodeValues)

-- | The number of months remaining in the reservation. For example, 2 is
--   the second to the last month before the capacity reservation expires.
psTerm :: Lens' PriceSchedule (Maybe Integer)

-- | The current price schedule, as determined by the term remaining for
--   the Reserved Instance in the listing. A specific price schedule is
--   always in effect, but only one price schedule can be active at any
--   time. Take, for example, a Reserved Instance listing that has five
--   months remaining in its term. When you specify price schedules for
--   five months and two months, this means that schedule 1, covering the
--   first three months of the remaining term, will be active during months
--   5, 4, and 3. Then schedule 2, covering the last two months of the
--   term, will be active for months 2 and 1.
psActive :: Lens' PriceSchedule (Maybe Bool)

-- | The fixed price for the term.
psPrice :: Lens' PriceSchedule (Maybe Double)

-- | Describes the price for a Reserved Instance.
--   
--   <i>See:</i> <a>priceScheduleSpecification</a> smart constructor.
data PriceScheduleSpecification

-- | Creates a value of <a>PriceScheduleSpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pssCurrencyCode</a> - The currency for transacting the Reserved
--   Instance resale. At this time, the only supported currency is
--   <tt>USD</tt> .</li>
--   <li><a>pssTerm</a> - The number of months remaining in the
--   reservation. For example, 2 is the second to the last month before the
--   capacity reservation expires.</li>
--   <li><a>pssPrice</a> - The fixed price for the term.</li>
--   </ul>
priceScheduleSpecification :: PriceScheduleSpecification

-- | The currency for transacting the Reserved Instance resale. At this
--   time, the only supported currency is <tt>USD</tt> .
pssCurrencyCode :: Lens' PriceScheduleSpecification (Maybe CurrencyCodeValues)

-- | The number of months remaining in the reservation. For example, 2 is
--   the second to the last month before the capacity reservation expires.
pssTerm :: Lens' PriceScheduleSpecification (Maybe Integer)

-- | The fixed price for the term.
pssPrice :: Lens' PriceScheduleSpecification (Maybe Double)

-- | Describes a Reserved Instance offering.
--   
--   <i>See:</i> <a>pricingDetail</a> smart constructor.
data PricingDetail

-- | Creates a value of <a>PricingDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdCount</a> - The number of reservations available for the
--   price.</li>
--   <li><a>pdPrice</a> - The price per instance.</li>
--   </ul>
pricingDetail :: PricingDetail

-- | The number of reservations available for the price.
pdCount :: Lens' PricingDetail (Maybe Int)

-- | The price per instance.
pdPrice :: Lens' PricingDetail (Maybe Double)

-- | Describes a secondary private IPv4 address for a network interface.
--   
--   <i>See:</i> <a>privateIPAddressSpecification</a> smart constructor.
data PrivateIPAddressSpecification

-- | Creates a value of <a>PrivateIPAddressSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>piasPrimary</a> - Indicates whether the private IPv4 address is
--   the primary private IPv4 address. Only one IPv4 address can be
--   designated as primary.</li>
--   <li><a>piasPrivateIPAddress</a> - The private IPv4 addresses.</li>
--   </ul>
privateIPAddressSpecification :: Text -> PrivateIPAddressSpecification

-- | Indicates whether the private IPv4 address is the primary private IPv4
--   address. Only one IPv4 address can be designated as primary.
piasPrimary :: Lens' PrivateIPAddressSpecification (Maybe Bool)

-- | The private IPv4 addresses.
piasPrivateIPAddress :: Lens' PrivateIPAddressSpecification Text

-- | Describes a product code.
--   
--   <i>See:</i> <a>productCode</a> smart constructor.
data ProductCode

-- | Creates a value of <a>ProductCode</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pcProductCodeType</a> - The type of product code.</li>
--   <li><a>pcProductCodeId</a> - The product code.</li>
--   </ul>
productCode :: ProductCode

-- | The type of product code.
pcProductCodeType :: Lens' ProductCode (Maybe ProductCodeValues)

-- | The product code.
pcProductCodeId :: Lens' ProductCode (Maybe Text)

-- | Describes a virtual private gateway propagating route.
--   
--   <i>See:</i> <a>propagatingVGW</a> smart constructor.
data PropagatingVGW

-- | Creates a value of <a>PropagatingVGW</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pvGatewayId</a> - The ID of the virtual private gateway
--   (VGW).</li>
--   </ul>
propagatingVGW :: PropagatingVGW

-- | The ID of the virtual private gateway (VGW).
pvGatewayId :: Lens' PropagatingVGW (Maybe Text)

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
--   
--   <i>See:</i> <a>provisionedBandwidth</a> smart constructor.
data ProvisionedBandwidth

-- | Creates a value of <a>ProvisionedBandwidth</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbStatus</a> - Reserved. If you need to sustain traffic greater
--   than the <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .</li>
--   <li><a>pbRequested</a> - Reserved. If you need to sustain traffic
--   greater than the <a>documented limits</a> , contact us through the
--   <a>Support Center</a> .</li>
--   <li><a>pbProvisioned</a> - Reserved. If you need to sustain traffic
--   greater than the <a>documented limits</a> , contact us through the
--   <a>Support Center</a> .</li>
--   <li><a>pbRequestTime</a> - Reserved. If you need to sustain traffic
--   greater than the <a>documented limits</a> , contact us through the
--   <a>Support Center</a> .</li>
--   <li><a>pbProvisionTime</a> - Reserved. If you need to sustain traffic
--   greater than the <a>documented limits</a> , contact us through the
--   <a>Support Center</a> .</li>
--   </ul>
provisionedBandwidth :: ProvisionedBandwidth

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
pbStatus :: Lens' ProvisionedBandwidth (Maybe Text)

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
pbRequested :: Lens' ProvisionedBandwidth (Maybe Text)

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
pbProvisioned :: Lens' ProvisionedBandwidth (Maybe Text)

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
pbRequestTime :: Lens' ProvisionedBandwidth (Maybe UTCTime)

-- | Reserved. If you need to sustain traffic greater than the
--   <a>documented limits</a> , contact us through the <a>Support
--   Center</a> .
pbProvisionTime :: Lens' ProvisionedBandwidth (Maybe UTCTime)

-- | Describes the result of the purchase.
--   
--   <i>See:</i> <a>purchase</a> smart constructor.
data Purchase

-- | Creates a value of <a>Purchase</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pInstanceFamily</a> - The instance family on the Dedicated Host
--   that the reservation can be associated with.</li>
--   <li><a>pCurrencyCode</a> - The currency in which the
--   <tt>UpfrontPrice</tt> and <tt>HourlyPrice</tt> amounts are specified.
--   At this time, the only supported currency is <tt>USD</tt> .</li>
--   <li><a>pHostReservationId</a> - The ID of the reservation.</li>
--   <li><a>pHourlyPrice</a> - The hourly price of the reservation per
--   hour.</li>
--   <li><a>pUpfrontPrice</a> - The upfront price of the reservation.</li>
--   <li><a>pHostIdSet</a> - The IDs of the Dedicated Hosts associated with
--   the reservation.</li>
--   <li><a>pDuration</a> - The duration of the reservation's term in
--   seconds.</li>
--   <li><a>pPaymentOption</a> - The payment option for the
--   reservation.</li>
--   </ul>
purchase :: Purchase

-- | The instance family on the Dedicated Host that the reservation can be
--   associated with.
pInstanceFamily :: Lens' Purchase (Maybe Text)

-- | The currency in which the <tt>UpfrontPrice</tt> and
--   <tt>HourlyPrice</tt> amounts are specified. At this time, the only
--   supported currency is <tt>USD</tt> .
pCurrencyCode :: Lens' Purchase (Maybe CurrencyCodeValues)

-- | The ID of the reservation.
pHostReservationId :: Lens' Purchase (Maybe Text)

-- | The hourly price of the reservation per hour.
pHourlyPrice :: Lens' Purchase (Maybe Text)

-- | The upfront price of the reservation.
pUpfrontPrice :: Lens' Purchase (Maybe Text)

-- | The IDs of the Dedicated Hosts associated with the reservation.
pHostIdSet :: Lens' Purchase [Text]

-- | The duration of the reservation's term in seconds.
pDuration :: Lens' Purchase (Maybe Int)

-- | The payment option for the reservation.
pPaymentOption :: Lens' Purchase (Maybe PaymentOption)

-- | Describes a request to purchase Scheduled Instances.
--   
--   <i>See:</i> <a>purchaseRequest</a> smart constructor.
data PurchaseRequest

-- | Creates a value of <a>PurchaseRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prPurchaseToken</a> - The purchase token.</li>
--   <li><a>prInstanceCount</a> - The number of instances.</li>
--   </ul>
purchaseRequest :: Text -> Int -> PurchaseRequest

-- | The purchase token.
prPurchaseToken :: Lens' PurchaseRequest Text

-- | The number of instances.
prInstanceCount :: Lens' PurchaseRequest Int

-- | Describes a recurring charge.
--   
--   <i>See:</i> <a>recurringCharge</a> smart constructor.
data RecurringCharge

-- | Creates a value of <a>RecurringCharge</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rcAmount</a> - The amount of the recurring charge.</li>
--   <li><a>rcFrequency</a> - The frequency of the recurring charge.</li>
--   </ul>
recurringCharge :: RecurringCharge

-- | The amount of the recurring charge.
rcAmount :: Lens' RecurringCharge (Maybe Double)

-- | The frequency of the recurring charge.
rcFrequency :: Lens' RecurringCharge (Maybe RecurringChargeFrequency)

-- | Describes a 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>riRegionName</a> - The name of the region.</li>
--   <li><a>riEndpoint</a> - The region service endpoint.</li>
--   </ul>
regionInfo :: RegionInfo

-- | The name of the region.
riRegionName :: Lens' RegionInfo (Maybe Text)

-- | The region service endpoint.
riEndpoint :: Lens' RegionInfo (Maybe Text)

-- | Describes the launch specification for an instance.
--   
--   <i>See:</i> <a>requestSpotLaunchSpecification</a> smart constructor.
data RequestSpotLaunchSpecification

-- | Creates a value of <a>RequestSpotLaunchSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rslsSecurityGroupIds</a> - Undocumented member.</li>
--   <li><a>rslsSecurityGroups</a> - Undocumented member.</li>
--   <li><a>rslsKeyName</a> - The name of the key pair.</li>
--   <li><a>rslsNetworkInterfaces</a> - One or more network interfaces. If
--   you specify a network interface, you must specify subnet IDs and
--   security group IDs using the network interface.</li>
--   <li><a>rslsRAMDiskId</a> - The ID of the RAM disk.</li>
--   <li><a>rslsSubnetId</a> - The ID of the subnet in which to launch the
--   instance.</li>
--   <li><a>rslsKernelId</a> - The ID of the kernel.</li>
--   <li><a>rslsInstanceType</a> - The instance type.</li>
--   <li><a>rslsEBSOptimized</a> - Indicates whether the instance is
--   optimized for EBS I<i>O. This optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal EBS I</i>O performance. This optimization isn't
--   available with all instance types. Additional usage charges apply when
--   using an EBS Optimized instance. Default: <tt>false</tt></li>
--   <li><a>rslsUserData</a> - The user data to make available to the
--   instances. If you are using an AWS SDK or command line tool,
--   Base64-encoding is performed for you, and you can load the text from a
--   file. Otherwise, you must provide Base64-encoded text.</li>
--   <li><a>rslsMonitoring</a> - Undocumented member.</li>
--   <li><a>rslsIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>rslsImageId</a> - The ID of the AMI.</li>
--   <li><a>rslsAddressingType</a> - Deprecated.</li>
--   <li><a>rslsBlockDeviceMappings</a> - One or more block device mapping
--   entries. Although you can specify encrypted EBS volumes in this block
--   device mapping for your Spot Instances, these volumes are not
--   encrypted.</li>
--   <li><a>rslsPlacement</a> - The placement information for the
--   instance.</li>
--   </ul>
requestSpotLaunchSpecification :: RequestSpotLaunchSpecification

-- | Undocumented member.
rslsSecurityGroupIds :: Lens' RequestSpotLaunchSpecification [Text]

-- | Undocumented member.
rslsSecurityGroups :: Lens' RequestSpotLaunchSpecification [Text]

-- | The name of the key pair.
rslsKeyName :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | One or more network interfaces. If you specify a network interface,
--   you must specify subnet IDs and security group IDs using the network
--   interface.
rslsNetworkInterfaces :: Lens' RequestSpotLaunchSpecification [InstanceNetworkInterfaceSpecification]

-- | The ID of the RAM disk.
rslsRAMDiskId :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | The ID of the subnet in which to launch the instance.
rslsSubnetId :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | The ID of the kernel.
rslsKernelId :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | The instance type.
rslsInstanceType :: Lens' RequestSpotLaunchSpecification (Maybe InstanceType)

-- | Indicates whether the instance is optimized for EBS I<i>O. This
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal EBS I</i>O
--   performance. This optimization isn't available with all instance
--   types. Additional usage charges apply when using an EBS Optimized
--   instance. Default: <tt>false</tt>
rslsEBSOptimized :: Lens' RequestSpotLaunchSpecification (Maybe Bool)

-- | The user data to make available to the instances. If you are using an
--   AWS SDK or command line tool, Base64-encoding is performed for you,
--   and you can load the text from a file. Otherwise, you must provide
--   Base64-encoded text.
rslsUserData :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | Undocumented member.
rslsMonitoring :: Lens' RequestSpotLaunchSpecification (Maybe RunInstancesMonitoringEnabled)

-- | The IAM instance profile.
rslsIAMInstanceProfile :: Lens' RequestSpotLaunchSpecification (Maybe IAMInstanceProfileSpecification)

-- | The ID of the AMI.
rslsImageId :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | Deprecated.
rslsAddressingType :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | One or more block device mapping entries. Although you can specify
--   encrypted EBS volumes in this block device mapping for your Spot
--   Instances, these volumes are not encrypted.
rslsBlockDeviceMappings :: Lens' RequestSpotLaunchSpecification [BlockDeviceMapping]

-- | The placement information for the instance.
rslsPlacement :: Lens' RequestSpotLaunchSpecification (Maybe SpotPlacement)

-- | Describes a reservation.
--   
--   <i>See:</i> <a>reservation</a> smart constructor.
data Reservation

-- | Creates a value of <a>Reservation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rGroups</a> - [EC2-Classic only] One or more security
--   groups.</li>
--   <li><a>rInstances</a> - One or more instances.</li>
--   <li><a>rRequesterId</a> - The ID of the requester that launched the
--   instances on your behalf (for example, AWS Management Console or Auto
--   Scaling).</li>
--   <li><a>rReservationId</a> - The ID of the reservation.</li>
--   <li><a>rOwnerId</a> - The ID of the AWS account that owns the
--   reservation.</li>
--   </ul>
reservation :: Text -> Text -> Reservation

-- | <ul>
--   <li><i>EC2-Classic only</i> One or more security groups.</li>
--   </ul>
rGroups :: Lens' Reservation [GroupIdentifier]

-- | One or more instances.
rInstances :: Lens' Reservation [Instance]

-- | The ID of the requester that launched the instances on your behalf
--   (for example, AWS Management Console or Auto Scaling).
rRequesterId :: Lens' Reservation (Maybe Text)

-- | The ID of the reservation.
rReservationId :: Lens' Reservation Text

-- | The ID of the AWS account that owns the reservation.
rOwnerId :: Lens' Reservation Text

-- | The cost associated with the Reserved Instance.
--   
--   <i>See:</i> <a>reservationValue</a> smart constructor.
data ReservationValue

-- | Creates a value of <a>ReservationValue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rvHourlyPrice</a> - The hourly rate of the reservation.</li>
--   <li><a>rvRemainingTotalValue</a> - The balance of the total value (the
--   sum of remainingUpfrontValue + hourlyPrice * number of hours
--   remaining).</li>
--   <li><a>rvRemainingUpfrontValue</a> - The remaining upfront cost of the
--   reservation.</li>
--   </ul>
reservationValue :: ReservationValue

-- | The hourly rate of the reservation.
rvHourlyPrice :: Lens' ReservationValue (Maybe Text)

-- | The balance of the total value (the sum of remainingUpfrontValue +
--   hourlyPrice * number of hours remaining).
rvRemainingTotalValue :: Lens' ReservationValue (Maybe Text)

-- | The remaining upfront cost of the reservation.
rvRemainingUpfrontValue :: Lens' ReservationValue (Maybe Text)

-- | Describes the limit price of a Reserved Instance offering.
--   
--   <i>See:</i> <a>reservedInstanceLimitPrice</a> smart constructor.
data ReservedInstanceLimitPrice

-- | Creates a value of <a>ReservedInstanceLimitPrice</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rilpAmount</a> - Used for Reserved Instance Marketplace
--   offerings. Specifies the limit price on the total order (instanceCount
--   * price).</li>
--   <li><a>rilpCurrencyCode</a> - The currency in which the
--   <tt>limitPrice</tt> amount is specified. At this time, the only
--   supported currency is <tt>USD</tt> .</li>
--   </ul>
reservedInstanceLimitPrice :: ReservedInstanceLimitPrice

-- | Used for Reserved Instance Marketplace offerings. Specifies the limit
--   price on the total order (instanceCount * price).
rilpAmount :: Lens' ReservedInstanceLimitPrice (Maybe Double)

-- | The currency in which the <tt>limitPrice</tt> amount is specified. At
--   this time, the only supported currency is <tt>USD</tt> .
rilpCurrencyCode :: Lens' ReservedInstanceLimitPrice (Maybe CurrencyCodeValues)

-- | The total value of the Convertible Reserved Instance.
--   
--   <i>See:</i> <a>reservedInstanceReservationValue</a> smart constructor.
data ReservedInstanceReservationValue

-- | Creates a value of <a>ReservedInstanceReservationValue</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rirvReservationValue</a> - The total value of the Convertible
--   Reserved Instance that you are exchanging.</li>
--   <li><a>rirvReservedInstanceId</a> - The ID of the Convertible Reserved
--   Instance that you are exchanging.</li>
--   </ul>
reservedInstanceReservationValue :: ReservedInstanceReservationValue

-- | The total value of the Convertible Reserved Instance that you are
--   exchanging.
rirvReservationValue :: Lens' ReservedInstanceReservationValue (Maybe ReservationValue)

-- | The ID of the Convertible Reserved Instance that you are exchanging.
rirvReservedInstanceId :: Lens' ReservedInstanceReservationValue (Maybe Text)

-- | Describes a Reserved Instance.
--   
--   <i>See:</i> <a>reservedInstances</a> smart constructor.
data ReservedInstances

-- | Creates a value of <a>ReservedInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riState</a> - The state of the Reserved Instance purchase.</li>
--   <li><a>riCurrencyCode</a> - The currency of the Reserved Instance.
--   It's specified using ISO 4217 standard currency codes. At this time,
--   the only supported currency is <tt>USD</tt> .</li>
--   <li><a>riInstanceCount</a> - The number of reservations
--   purchased.</li>
--   <li><a>riProductDescription</a> - The Reserved Instance product
--   platform description.</li>
--   <li><a>riStart</a> - The date and time the Reserved Instance
--   started.</li>
--   <li><a>riInstanceType</a> - The instance type on which the Reserved
--   Instance can be used.</li>
--   <li><a>riEnd</a> - The time when the Reserved Instance expires.</li>
--   <li><a>riAvailabilityZone</a> - The Availability Zone in which the
--   Reserved Instance can be used.</li>
--   <li><a>riScope</a> - The scope of the Reserved Instance.</li>
--   <li><a>riRecurringCharges</a> - The recurring charge tag assigned to
--   the resource.</li>
--   <li><a>riOfferingType</a> - The Reserved Instance offering type.</li>
--   <li><a>riUsagePrice</a> - The usage price of the Reserved Instance,
--   per hour.</li>
--   <li><a>riFixedPrice</a> - The purchase price of the Reserved
--   Instance.</li>
--   <li><a>riReservedInstancesId</a> - The ID of the Reserved
--   Instance.</li>
--   <li><a>riInstanceTenancy</a> - The tenancy of the instance.</li>
--   <li><a>riOfferingClass</a> - The offering class of the Reserved
--   Instance.</li>
--   <li><a>riDuration</a> - The duration of the Reserved Instance, in
--   seconds.</li>
--   <li><a>riTags</a> - Any tags assigned to the resource.</li>
--   </ul>
reservedInstances :: ReservedInstances

-- | The state of the Reserved Instance purchase.
riState :: Lens' ReservedInstances (Maybe ReservedInstanceState)

-- | The currency of the Reserved Instance. It's specified using ISO 4217
--   standard currency codes. At this time, the only supported currency is
--   <tt>USD</tt> .
riCurrencyCode :: Lens' ReservedInstances (Maybe CurrencyCodeValues)

-- | The number of reservations purchased.
riInstanceCount :: Lens' ReservedInstances (Maybe Int)

-- | The Reserved Instance product platform description.
riProductDescription :: Lens' ReservedInstances (Maybe RIProductDescription)

-- | The date and time the Reserved Instance started.
riStart :: Lens' ReservedInstances (Maybe UTCTime)

-- | The instance type on which the Reserved Instance can be used.
riInstanceType :: Lens' ReservedInstances (Maybe InstanceType)

-- | The time when the Reserved Instance expires.
riEnd :: Lens' ReservedInstances (Maybe UTCTime)

-- | The Availability Zone in which the Reserved Instance can be used.
riAvailabilityZone :: Lens' ReservedInstances (Maybe Text)

-- | The scope of the Reserved Instance.
riScope :: Lens' ReservedInstances (Maybe Scope)

-- | The recurring charge tag assigned to the resource.
riRecurringCharges :: Lens' ReservedInstances [RecurringCharge]

-- | The Reserved Instance offering type.
riOfferingType :: Lens' ReservedInstances (Maybe OfferingTypeValues)

-- | The usage price of the Reserved Instance, per hour.
riUsagePrice :: Lens' ReservedInstances (Maybe Double)

-- | The purchase price of the Reserved Instance.
riFixedPrice :: Lens' ReservedInstances (Maybe Double)

-- | The ID of the Reserved Instance.
riReservedInstancesId :: Lens' ReservedInstances (Maybe Text)

-- | The tenancy of the instance.
riInstanceTenancy :: Lens' ReservedInstances (Maybe Tenancy)

-- | The offering class of the Reserved Instance.
riOfferingClass :: Lens' ReservedInstances (Maybe OfferingClassType)

-- | The duration of the Reserved Instance, in seconds.
riDuration :: Lens' ReservedInstances (Maybe Integer)

-- | Any tags assigned to the resource.
riTags :: Lens' ReservedInstances [Tag]

-- | Describes the configuration settings for the modified Reserved
--   Instances.
--   
--   <i>See:</i> <a>reservedInstancesConfiguration</a> smart constructor.
data ReservedInstancesConfiguration

-- | Creates a value of <a>ReservedInstancesConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ricPlatform</a> - The network platform of the modified Reserved
--   Instances, which is either EC2-Classic or EC2-VPC.</li>
--   <li><a>ricInstanceCount</a> - The number of modified Reserved
--   Instances.</li>
--   <li><a>ricInstanceType</a> - The instance type for the modified
--   Reserved Instances.</li>
--   <li><a>ricAvailabilityZone</a> - The Availability Zone for the
--   modified Reserved Instances.</li>
--   <li><a>ricScope</a> - Whether the Reserved Instance is applied to
--   instances in a region or instances in a specific Availability
--   Zone.</li>
--   </ul>
reservedInstancesConfiguration :: ReservedInstancesConfiguration

-- | The network platform of the modified Reserved Instances, which is
--   either EC2-Classic or EC2-VPC.
ricPlatform :: Lens' ReservedInstancesConfiguration (Maybe Text)

-- | The number of modified Reserved Instances.
ricInstanceCount :: Lens' ReservedInstancesConfiguration (Maybe Int)

-- | The instance type for the modified Reserved Instances.
ricInstanceType :: Lens' ReservedInstancesConfiguration (Maybe InstanceType)

-- | The Availability Zone for the modified Reserved Instances.
ricAvailabilityZone :: Lens' ReservedInstancesConfiguration (Maybe Text)

-- | Whether the Reserved Instance is applied to instances in a region or
--   instances in a specific Availability Zone.
ricScope :: Lens' ReservedInstancesConfiguration (Maybe Scope)

-- | Describes the ID of a Reserved Instance.
--   
--   <i>See:</i> <a>reservedInstancesId</a> smart constructor.
data ReservedInstancesId

-- | Creates a value of <a>ReservedInstancesId</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riiReservedInstancesId</a> - The ID of the Reserved
--   Instance.</li>
--   </ul>
reservedInstancesId :: ReservedInstancesId

-- | The ID of the Reserved Instance.
riiReservedInstancesId :: Lens' ReservedInstancesId (Maybe Text)

-- | Describes a Reserved Instance listing.
--   
--   <i>See:</i> <a>reservedInstancesListing</a> smart constructor.
data ReservedInstancesListing

-- | Creates a value of <a>ReservedInstancesListing</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rilStatus</a> - The status of the Reserved Instance
--   listing.</li>
--   <li><a>rilClientToken</a> - A unique, case-sensitive key supplied by
--   the client to ensure that the request is idempotent. For more
--   information, see <a>Ensuring Idempotency</a> .</li>
--   <li><a>rilUpdateDate</a> - The last modified timestamp of the
--   listing.</li>
--   <li><a>rilCreateDate</a> - The time the listing was created.</li>
--   <li><a>rilPriceSchedules</a> - The price of the Reserved Instance
--   listing.</li>
--   <li><a>rilStatusMessage</a> - The reason for the current status of the
--   Reserved Instance listing. The response can be blank.</li>
--   <li><a>rilReservedInstancesId</a> - The ID of the Reserved
--   Instance.</li>
--   <li><a>rilTags</a> - Any tags assigned to the resource.</li>
--   <li><a>rilInstanceCounts</a> - The number of instances in this
--   state.</li>
--   <li><a>rilReservedInstancesListingId</a> - The ID of the Reserved
--   Instance listing.</li>
--   </ul>
reservedInstancesListing :: ReservedInstancesListing

-- | The status of the Reserved Instance listing.
rilStatus :: Lens' ReservedInstancesListing (Maybe ListingStatus)

-- | A unique, case-sensitive key supplied by the client to ensure that the
--   request is idempotent. For more information, see <a>Ensuring
--   Idempotency</a> .
rilClientToken :: Lens' ReservedInstancesListing (Maybe Text)

-- | The last modified timestamp of the listing.
rilUpdateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)

-- | The time the listing was created.
rilCreateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)

-- | The price of the Reserved Instance listing.
rilPriceSchedules :: Lens' ReservedInstancesListing [PriceSchedule]

-- | The reason for the current status of the Reserved Instance listing.
--   The response can be blank.
rilStatusMessage :: Lens' ReservedInstancesListing (Maybe Text)

-- | The ID of the Reserved Instance.
rilReservedInstancesId :: Lens' ReservedInstancesListing (Maybe Text)

-- | Any tags assigned to the resource.
rilTags :: Lens' ReservedInstancesListing [Tag]

-- | The number of instances in this state.
rilInstanceCounts :: Lens' ReservedInstancesListing [InstanceCount]

-- | The ID of the Reserved Instance listing.
rilReservedInstancesListingId :: Lens' ReservedInstancesListing (Maybe Text)

-- | Describes a Reserved Instance modification.
--   
--   <i>See:</i> <a>reservedInstancesModification</a> smart constructor.
data ReservedInstancesModification

-- | Creates a value of <a>ReservedInstancesModification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rimModificationResults</a> - Contains target configurations
--   along with their corresponding new Reserved Instance IDs.</li>
--   <li><a>rimStatus</a> - The status of the Reserved Instances
--   modification request.</li>
--   <li><a>rimClientToken</a> - A unique, case-sensitive key supplied by
--   the client to ensure that the request is idempotent. For more
--   information, see <a>Ensuring Idempotency</a> .</li>
--   <li><a>rimUpdateDate</a> - The time when the modification request was
--   last updated.</li>
--   <li><a>rimCreateDate</a> - The time when the modification request was
--   created.</li>
--   <li><a>rimEffectiveDate</a> - The time for the modification to become
--   effective.</li>
--   <li><a>rimStatusMessage</a> - The reason for the status.</li>
--   <li><a>rimReservedInstancesModificationId</a> - A unique ID for the
--   Reserved Instance modification.</li>
--   <li><a>rimReservedInstancesIds</a> - The IDs of one or more Reserved
--   Instances.</li>
--   </ul>
reservedInstancesModification :: ReservedInstancesModification

-- | Contains target configurations along with their corresponding new
--   Reserved Instance IDs.
rimModificationResults :: Lens' ReservedInstancesModification [ReservedInstancesModificationResult]

-- | The status of the Reserved Instances modification request.
rimStatus :: Lens' ReservedInstancesModification (Maybe Text)

-- | A unique, case-sensitive key supplied by the client to ensure that the
--   request is idempotent. For more information, see <a>Ensuring
--   Idempotency</a> .
rimClientToken :: Lens' ReservedInstancesModification (Maybe Text)

-- | The time when the modification request was last updated.
rimUpdateDate :: Lens' ReservedInstancesModification (Maybe UTCTime)

-- | The time when the modification request was created.
rimCreateDate :: Lens' ReservedInstancesModification (Maybe UTCTime)

-- | The time for the modification to become effective.
rimEffectiveDate :: Lens' ReservedInstancesModification (Maybe UTCTime)

-- | The reason for the status.
rimStatusMessage :: Lens' ReservedInstancesModification (Maybe Text)

-- | A unique ID for the Reserved Instance modification.
rimReservedInstancesModificationId :: Lens' ReservedInstancesModification (Maybe Text)

-- | The IDs of one or more Reserved Instances.
rimReservedInstancesIds :: Lens' ReservedInstancesModification [ReservedInstancesId]

-- | Describes the modification request/s.
--   
--   <i>See:</i> <a>reservedInstancesModificationResult</a> smart
--   constructor.
data ReservedInstancesModificationResult

-- | Creates a value of <a>ReservedInstancesModificationResult</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rimrReservedInstancesId</a> - The ID for the Reserved Instances
--   that were created as part of the modification request. This field is
--   only available when the modification is fulfilled.</li>
--   <li><a>rimrTargetConfiguration</a> - The target Reserved Instances
--   configurations supplied as part of the modification request.</li>
--   </ul>
reservedInstancesModificationResult :: ReservedInstancesModificationResult

-- | The ID for the Reserved Instances that were created as part of the
--   modification request. This field is only available when the
--   modification is fulfilled.
rimrReservedInstancesId :: Lens' ReservedInstancesModificationResult (Maybe Text)

-- | The target Reserved Instances configurations supplied as part of the
--   modification request.
rimrTargetConfiguration :: Lens' ReservedInstancesModificationResult (Maybe ReservedInstancesConfiguration)

-- | Describes a Reserved Instance offering.
--   
--   <i>See:</i> <a>reservedInstancesOffering</a> smart constructor.
data ReservedInstancesOffering

-- | Creates a value of <a>ReservedInstancesOffering</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rioMarketplace</a> - Indicates whether the offering is
--   available through the Reserved Instance Marketplace (resale) or AWS.
--   If it's a Reserved Instance Marketplace offering, this is
--   <tt>true</tt> .</li>
--   <li><a>rioCurrencyCode</a> - The currency of the Reserved Instance
--   offering you are purchasing. It's specified using ISO 4217 standard
--   currency codes. At this time, the only supported currency is
--   <tt>USD</tt> .</li>
--   <li><a>rioProductDescription</a> - The Reserved Instance product
--   platform description.</li>
--   <li><a>rioInstanceType</a> - The instance type on which the Reserved
--   Instance can be used.</li>
--   <li><a>rioAvailabilityZone</a> - The Availability Zone in which the
--   Reserved Instance can be used.</li>
--   <li><a>rioPricingDetails</a> - The pricing details of the Reserved
--   Instance offering.</li>
--   <li><a>rioScope</a> - Whether the Reserved Instance is applied to
--   instances in a region or an Availability Zone.</li>
--   <li><a>rioRecurringCharges</a> - The recurring charge tag assigned to
--   the resource.</li>
--   <li><a>rioOfferingType</a> - The Reserved Instance offering type.</li>
--   <li><a>rioUsagePrice</a> - The usage price of the Reserved Instance,
--   per hour.</li>
--   <li><a>rioFixedPrice</a> - The purchase price of the Reserved
--   Instance.</li>
--   <li><a>rioInstanceTenancy</a> - The tenancy of the instance.</li>
--   <li><a>rioReservedInstancesOfferingId</a> - The ID of the Reserved
--   Instance offering. This is the offering ID used in
--   <tt>GetReservedInstancesExchangeQuote</tt> to confirm that an exchange
--   can be made.</li>
--   <li><a>rioOfferingClass</a> - If <tt>convertible</tt> it can be
--   exchanged for Reserved Instances of the same or higher monetary value,
--   with different configurations. If <tt>standard</tt> , it is not
--   possible to perform an exchange.</li>
--   <li><a>rioDuration</a> - The duration of the Reserved Instance, in
--   seconds.</li>
--   </ul>
reservedInstancesOffering :: ReservedInstancesOffering

-- | Indicates whether the offering is available through the Reserved
--   Instance Marketplace (resale) or AWS. If it's a Reserved Instance
--   Marketplace offering, this is <tt>true</tt> .
rioMarketplace :: Lens' ReservedInstancesOffering (Maybe Bool)

-- | The currency of the Reserved Instance offering you are purchasing.
--   It's specified using ISO 4217 standard currency codes. At this time,
--   the only supported currency is <tt>USD</tt> .
rioCurrencyCode :: Lens' ReservedInstancesOffering (Maybe CurrencyCodeValues)

-- | The Reserved Instance product platform description.
rioProductDescription :: Lens' ReservedInstancesOffering (Maybe RIProductDescription)

-- | The instance type on which the Reserved Instance can be used.
rioInstanceType :: Lens' ReservedInstancesOffering (Maybe InstanceType)

-- | The Availability Zone in which the Reserved Instance can be used.
rioAvailabilityZone :: Lens' ReservedInstancesOffering (Maybe Text)

-- | The pricing details of the Reserved Instance offering.
rioPricingDetails :: Lens' ReservedInstancesOffering [PricingDetail]

-- | Whether the Reserved Instance is applied to instances in a region or
--   an Availability Zone.
rioScope :: Lens' ReservedInstancesOffering (Maybe Scope)

-- | The recurring charge tag assigned to the resource.
rioRecurringCharges :: Lens' ReservedInstancesOffering [RecurringCharge]

-- | The Reserved Instance offering type.
rioOfferingType :: Lens' ReservedInstancesOffering (Maybe OfferingTypeValues)

-- | The usage price of the Reserved Instance, per hour.
rioUsagePrice :: Lens' ReservedInstancesOffering (Maybe Double)

-- | The purchase price of the Reserved Instance.
rioFixedPrice :: Lens' ReservedInstancesOffering (Maybe Double)

-- | The tenancy of the instance.
rioInstanceTenancy :: Lens' ReservedInstancesOffering (Maybe Tenancy)

-- | The ID of the Reserved Instance offering. This is the offering ID used
--   in <tt>GetReservedInstancesExchangeQuote</tt> to confirm that an
--   exchange can be made.
rioReservedInstancesOfferingId :: Lens' ReservedInstancesOffering (Maybe Text)

-- | If <tt>convertible</tt> it can be exchanged for Reserved Instances of
--   the same or higher monetary value, with different configurations. If
--   <tt>standard</tt> , it is not possible to perform an exchange.
rioOfferingClass :: Lens' ReservedInstancesOffering (Maybe OfferingClassType)

-- | The duration of the Reserved Instance, in seconds.
rioDuration :: Lens' ReservedInstancesOffering (Maybe Integer)

-- | Describes a route in a route table.
--   
--   <i>See:</i> <a>route</a> smart constructor.
data Route

-- | Creates a value of <a>Route</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rVPCPeeringConnectionId</a> - The ID of the VPC peering
--   connection.</li>
--   <li><a>rInstanceId</a> - The ID of a NAT instance in your VPC.</li>
--   <li><a>rOrigin</a> - Describes how the route was created. *
--   <tt>CreateRouteTable</tt> - The route was automatically created when
--   the route table was created. * <tt>CreateRoute</tt> - The route was
--   manually added to the route table. *
--   <tt>EnableVgwRoutePropagation</tt> - The route was propagated by route
--   propagation.</li>
--   <li><a>rState</a> - The state of the route. The <tt>blackhole</tt>
--   state indicates that the route's target isn't available (for example,
--   the specified gateway isn't attached to the VPC, or the specified NAT
--   instance has been terminated).</li>
--   <li><a>rEgressOnlyInternetGatewayId</a> - The ID of the egress-only
--   Internet gateway.</li>
--   <li><a>rDestinationIPv6CidrBlock</a> - The IPv6 CIDR block used for
--   the destination match.</li>
--   <li><a>rNatGatewayId</a> - The ID of a NAT gateway.</li>
--   <li><a>rNetworkInterfaceId</a> - The ID of the network interface.</li>
--   <li><a>rGatewayId</a> - The ID of a gateway attached to your VPC.</li>
--   <li><a>rInstanceOwnerId</a> - The AWS account ID of the owner of the
--   instance.</li>
--   <li><a>rDestinationPrefixListId</a> - The prefix of the AWS
--   service.</li>
--   <li><a>rDestinationCidrBlock</a> - The IPv4 CIDR block used for the
--   destination match.</li>
--   </ul>
route :: Route

-- | The ID of the VPC peering connection.
rVPCPeeringConnectionId :: Lens' Route (Maybe Text)

-- | The ID of a NAT instance in your VPC.
rInstanceId :: Lens' Route (Maybe Text)

-- | Describes how the route was created. * <tt>CreateRouteTable</tt> - The
--   route was automatically created when the route table was created. *
--   <tt>CreateRoute</tt> - The route was manually added to the route
--   table. * <tt>EnableVgwRoutePropagation</tt> - The route was propagated
--   by route propagation.
rOrigin :: Lens' Route (Maybe RouteOrigin)

-- | The state of the route. The <tt>blackhole</tt> state indicates that
--   the route's target isn't available (for example, the specified gateway
--   isn't attached to the VPC, or the specified NAT instance has been
--   terminated).
rState :: Lens' Route (Maybe RouteState)

-- | The ID of the egress-only Internet gateway.
rEgressOnlyInternetGatewayId :: Lens' Route (Maybe Text)

-- | The IPv6 CIDR block used for the destination match.
rDestinationIPv6CidrBlock :: Lens' Route (Maybe Text)

-- | The ID of a NAT gateway.
rNatGatewayId :: Lens' Route (Maybe Text)

-- | The ID of the network interface.
rNetworkInterfaceId :: Lens' Route (Maybe Text)

-- | The ID of a gateway attached to your VPC.
rGatewayId :: Lens' Route (Maybe Text)

-- | The AWS account ID of the owner of the instance.
rInstanceOwnerId :: Lens' Route (Maybe Text)

-- | The prefix of the AWS service.
rDestinationPrefixListId :: Lens' Route (Maybe Text)

-- | The IPv4 CIDR block used for the destination match.
rDestinationCidrBlock :: Lens' Route (Maybe Text)

-- | Describes a route table.
--   
--   <i>See:</i> <a>routeTable</a> smart constructor.
data RouteTable

-- | Creates a value of <a>RouteTable</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtRouteTableId</a> - The ID of the route table.</li>
--   <li><a>rtRoutes</a> - The routes in the route table.</li>
--   <li><a>rtVPCId</a> - The ID of the VPC.</li>
--   <li><a>rtPropagatingVGWs</a> - Any virtual private gateway (VGW)
--   propagating routes.</li>
--   <li><a>rtAssociations</a> - The associations between the route table
--   and one or more subnets.</li>
--   <li><a>rtTags</a> - Any tags assigned to the route table.</li>
--   </ul>
routeTable :: RouteTable

-- | The ID of the route table.
rtRouteTableId :: Lens' RouteTable (Maybe Text)

-- | The routes in the route table.
rtRoutes :: Lens' RouteTable [Route]

-- | The ID of the VPC.
rtVPCId :: Lens' RouteTable (Maybe Text)

-- | Any virtual private gateway (VGW) propagating routes.
rtPropagatingVGWs :: Lens' RouteTable [PropagatingVGW]

-- | The associations between the route table and one or more subnets.
rtAssociations :: Lens' RouteTable [RouteTableAssociation]

-- | Any tags assigned to the route table.
rtTags :: Lens' RouteTable [Tag]

-- | Describes an association between a route table and a subnet.
--   
--   <i>See:</i> <a>routeTableAssociation</a> smart constructor.
data RouteTableAssociation

-- | Creates a value of <a>RouteTableAssociation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtaRouteTableId</a> - The ID of the route table.</li>
--   <li><a>rtaRouteTableAssociationId</a> - The ID of the association
--   between a route table and a subnet.</li>
--   <li><a>rtaMain</a> - Indicates whether this is the main route
--   table.</li>
--   <li><a>rtaSubnetId</a> - The ID of the subnet. A subnet ID is not
--   returned for an implicit association.</li>
--   </ul>
routeTableAssociation :: RouteTableAssociation

-- | The ID of the route table.
rtaRouteTableId :: Lens' RouteTableAssociation (Maybe Text)

-- | The ID of the association between a route table and a subnet.
rtaRouteTableAssociationId :: Lens' RouteTableAssociation (Maybe Text)

-- | Indicates whether this is the main route table.
rtaMain :: Lens' RouteTableAssociation (Maybe Bool)

-- | The ID of the subnet. A subnet ID is not returned for an implicit
--   association.
rtaSubnetId :: Lens' RouteTableAssociation (Maybe Text)

-- | Describes the monitoring of an instance.
--   
--   <i>See:</i> <a>runInstancesMonitoringEnabled</a> smart constructor.
data RunInstancesMonitoringEnabled

-- | Creates a value of <a>RunInstancesMonitoringEnabled</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rimeEnabled</a> - Indicates whether detailed monitoring is
--   enabled. Otherwise, basic monitoring is enabled.</li>
--   </ul>
runInstancesMonitoringEnabled :: Bool -> RunInstancesMonitoringEnabled

-- | Indicates whether detailed monitoring is enabled. Otherwise, basic
--   monitoring is enabled.
rimeEnabled :: Lens' RunInstancesMonitoringEnabled Bool

-- | Describes the storage parameters for S3 and S3 buckets for an instance
--   store-backed AMI.
--   
--   <i>See:</i> <a>s3Storage</a> smart constructor.
data S3Storage

-- | Creates a value of <a>S3Storage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssPrefix</a> - The beginning of the file name of the AMI.</li>
--   <li><a>ssUploadPolicy</a> - An Amazon S3 upload policy that gives
--   Amazon EC2 permission to upload items into Amazon S3 on your behalf.--
--   <i>Note:</i> This <tt>Lens</tt> automatically encodes and decodes
--   Base64 data. The underlying isomorphism will encode to Base64
--   representation during serialisation, and decode from Base64
--   representation during deserialisation. This <tt>Lens</tt> accepts and
--   returns only raw unencoded data.</li>
--   <li><a>ssBucket</a> - The bucket in which to store the AMI. You can
--   specify a bucket that you already own or a new bucket that Amazon EC2
--   creates on your behalf. If you specify a bucket that belongs to
--   someone else, Amazon EC2 returns an error.</li>
--   <li><a>ssUploadPolicySignature</a> - The signature of the JSON
--   document.</li>
--   <li><a>ssAWSAccessKeyId</a> - The access key ID of the owner of the
--   bucket. Before you specify a value for your access key ID, review and
--   follow the guidance in <a>Best Practices for Managing AWS Access
--   Keys</a> .</li>
--   </ul>
s3Storage :: S3Storage

-- | The beginning of the file name of the AMI.
ssPrefix :: Lens' S3Storage (Maybe Text)

-- | An Amazon S3 upload policy that gives Amazon EC2 permission to upload
--   items into Amazon S3 on your behalf.-- <i>Note:</i> This <tt>Lens</tt>
--   automatically encodes and decodes Base64 data. The underlying
--   isomorphism will encode to Base64 representation during serialisation,
--   and decode from Base64 representation during deserialisation. This
--   <tt>Lens</tt> accepts and returns only raw unencoded data.
ssUploadPolicy :: Lens' S3Storage (Maybe ByteString)

-- | The bucket in which to store the AMI. You can specify a bucket that
--   you already own or a new bucket that Amazon EC2 creates on your
--   behalf. If you specify a bucket that belongs to someone else, Amazon
--   EC2 returns an error.
ssBucket :: Lens' S3Storage (Maybe Text)

-- | The signature of the JSON document.
ssUploadPolicySignature :: Lens' S3Storage (Maybe Text)

-- | The access key ID of the owner of the bucket. Before you specify a
--   value for your access key ID, review and follow the guidance in
--   <a>Best Practices for Managing AWS Access Keys</a> .
ssAWSAccessKeyId :: Lens' S3Storage (Maybe Text)

-- | Describes a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstance</a> smart constructor.
data ScheduledInstance

-- | Creates a value of <a>ScheduledInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siPreviousSlotEndTime</a> - The time that the previous schedule
--   ended or will end.</li>
--   <li><a>siPlatform</a> - The platform (<tt>Linux/UNIX</tt> or
--   <tt>Windows</tt> ).</li>
--   <li><a>siTermStartDate</a> - The start date for the Scheduled
--   Instance.</li>
--   <li><a>siInstanceCount</a> - The number of instances.</li>
--   <li><a>siScheduledInstanceId</a> - The Scheduled Instance ID.</li>
--   <li><a>siHourlyPrice</a> - The hourly price for a single
--   instance.</li>
--   <li><a>siCreateDate</a> - The date when the Scheduled Instance was
--   purchased.</li>
--   <li><a>siSlotDurationInHours</a> - The number of hours in the
--   schedule.</li>
--   <li><a>siTotalScheduledInstanceHours</a> - The total number of hours
--   for a single instance for the entire term.</li>
--   <li><a>siInstanceType</a> - The instance type.</li>
--   <li><a>siRecurrence</a> - The schedule recurrence.</li>
--   <li><a>siAvailabilityZone</a> - The Availability Zone.</li>
--   <li><a>siTermEndDate</a> - The end date for the Scheduled
--   Instance.</li>
--   <li><a>siNextSlotStartTime</a> - The time for the next schedule to
--   start.</li>
--   <li><a>siNetworkPlatform</a> - The network platform
--   (<tt>EC2-Classic</tt> or <tt>EC2-VPC</tt> ).</li>
--   </ul>
scheduledInstance :: ScheduledInstance

-- | The time that the previous schedule ended or will end.
siPreviousSlotEndTime :: Lens' ScheduledInstance (Maybe UTCTime)

-- | The platform (<tt>Linux/UNIX</tt> or <tt>Windows</tt> ).
siPlatform :: Lens' ScheduledInstance (Maybe Text)

-- | The start date for the Scheduled Instance.
siTermStartDate :: Lens' ScheduledInstance (Maybe UTCTime)

-- | The number of instances.
siInstanceCount :: Lens' ScheduledInstance (Maybe Int)

-- | The Scheduled Instance ID.
siScheduledInstanceId :: Lens' ScheduledInstance (Maybe Text)

-- | The hourly price for a single instance.
siHourlyPrice :: Lens' ScheduledInstance (Maybe Text)

-- | The date when the Scheduled Instance was purchased.
siCreateDate :: Lens' ScheduledInstance (Maybe UTCTime)

-- | The number of hours in the schedule.
siSlotDurationInHours :: Lens' ScheduledInstance (Maybe Int)

-- | The total number of hours for a single instance for the entire term.
siTotalScheduledInstanceHours :: Lens' ScheduledInstance (Maybe Int)

-- | The instance type.
siInstanceType :: Lens' ScheduledInstance (Maybe Text)

-- | The schedule recurrence.
siRecurrence :: Lens' ScheduledInstance (Maybe ScheduledInstanceRecurrence)

-- | The Availability Zone.
siAvailabilityZone :: Lens' ScheduledInstance (Maybe Text)

-- | The end date for the Scheduled Instance.
siTermEndDate :: Lens' ScheduledInstance (Maybe UTCTime)

-- | The time for the next schedule to start.
siNextSlotStartTime :: Lens' ScheduledInstance (Maybe UTCTime)

-- | The network platform (<tt>EC2-Classic</tt> or <tt>EC2-VPC</tt> ).
siNetworkPlatform :: Lens' ScheduledInstance (Maybe Text)

-- | Describes a schedule that is available for your Scheduled Instances.
--   
--   <i>See:</i> <a>scheduledInstanceAvailability</a> smart constructor.
data ScheduledInstanceAvailability

-- | Creates a value of <a>ScheduledInstanceAvailability</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siaMaxTermDurationInDays</a> - The maximum term. The only
--   possible value is 365 days.</li>
--   <li><a>siaPlatform</a> - The platform (<tt>Linux/UNIX</tt> or
--   <tt>Windows</tt> ).</li>
--   <li><a>siaPurchaseToken</a> - The purchase token. This token expires
--   in two hours.</li>
--   <li><a>siaHourlyPrice</a> - The hourly price for a single
--   instance.</li>
--   <li><a>siaAvailableInstanceCount</a> - The number of available
--   instances.</li>
--   <li><a>siaSlotDurationInHours</a> - The number of hours in the
--   schedule.</li>
--   <li><a>siaTotalScheduledInstanceHours</a> - The total number of hours
--   for a single instance for the entire term.</li>
--   <li><a>siaInstanceType</a> - The instance type. You can specify one of
--   the C3, C4, M4, or R3 instance types.</li>
--   <li><a>siaRecurrence</a> - The schedule recurrence.</li>
--   <li><a>siaAvailabilityZone</a> - The Availability Zone.</li>
--   <li><a>siaMinTermDurationInDays</a> - The minimum term. The only
--   possible value is 365 days.</li>
--   <li><a>siaFirstSlotStartTime</a> - The time period for the first
--   schedule to start.</li>
--   <li><a>siaNetworkPlatform</a> - The network platform
--   (<tt>EC2-Classic</tt> or <tt>EC2-VPC</tt> ).</li>
--   </ul>
scheduledInstanceAvailability :: ScheduledInstanceAvailability

-- | The maximum term. The only possible value is 365 days.
siaMaxTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)

-- | The platform (<tt>Linux/UNIX</tt> or <tt>Windows</tt> ).
siaPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)

-- | The purchase token. This token expires in two hours.
siaPurchaseToken :: Lens' ScheduledInstanceAvailability (Maybe Text)

-- | The hourly price for a single instance.
siaHourlyPrice :: Lens' ScheduledInstanceAvailability (Maybe Text)

-- | The number of available instances.
siaAvailableInstanceCount :: Lens' ScheduledInstanceAvailability (Maybe Int)

-- | The number of hours in the schedule.
siaSlotDurationInHours :: Lens' ScheduledInstanceAvailability (Maybe Int)

-- | The total number of hours for a single instance for the entire term.
siaTotalScheduledInstanceHours :: Lens' ScheduledInstanceAvailability (Maybe Int)

-- | The instance type. You can specify one of the C3, C4, M4, or R3
--   instance types.
siaInstanceType :: Lens' ScheduledInstanceAvailability (Maybe Text)

-- | The schedule recurrence.
siaRecurrence :: Lens' ScheduledInstanceAvailability (Maybe ScheduledInstanceRecurrence)

-- | The Availability Zone.
siaAvailabilityZone :: Lens' ScheduledInstanceAvailability (Maybe Text)

-- | The minimum term. The only possible value is 365 days.
siaMinTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)

-- | The time period for the first schedule to start.
siaFirstSlotStartTime :: Lens' ScheduledInstanceAvailability (Maybe UTCTime)

-- | The network platform (<tt>EC2-Classic</tt> or <tt>EC2-VPC</tt> ).
siaNetworkPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)

-- | Describes the recurring schedule for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstanceRecurrence</a> smart constructor.
data ScheduledInstanceRecurrence

-- | Creates a value of <a>ScheduledInstanceRecurrence</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sirFrequency</a> - The frequency (<tt>Daily</tt> ,
--   <tt>Weekly</tt> , or <tt>Monthly</tt> ).</li>
--   <li><a>sirOccurrenceRelativeToEnd</a> - Indicates whether the
--   occurrence is relative to the end of the specified week or month.</li>
--   <li><a>sirOccurrenceUnit</a> - The unit for <tt>occurrenceDaySet</tt>
--   (<tt>DayOfWeek</tt> or <tt>DayOfMonth</tt> ).</li>
--   <li><a>sirInterval</a> - The interval quantity. The interval unit
--   depends on the value of <tt>frequency</tt> . For example, every 2
--   weeks or every 2 months.</li>
--   <li><a>sirOccurrenceDaySet</a> - The days. For a monthly schedule,
--   this is one or more days of the month (1-31). For a weekly schedule,
--   this is one or more days of the week (1-7, where 1 is Sunday).</li>
--   </ul>
scheduledInstanceRecurrence :: ScheduledInstanceRecurrence

-- | The frequency (<tt>Daily</tt> , <tt>Weekly</tt> , or <tt>Monthly</tt>
--   ).
sirFrequency :: Lens' ScheduledInstanceRecurrence (Maybe Text)

-- | Indicates whether the occurrence is relative to the end of the
--   specified week or month.
sirOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrence (Maybe Bool)

-- | The unit for <tt>occurrenceDaySet</tt> (<tt>DayOfWeek</tt> or
--   <tt>DayOfMonth</tt> ).
sirOccurrenceUnit :: Lens' ScheduledInstanceRecurrence (Maybe Text)

-- | The interval quantity. The interval unit depends on the value of
--   <tt>frequency</tt> . For example, every 2 weeks or every 2 months.
sirInterval :: Lens' ScheduledInstanceRecurrence (Maybe Int)

-- | The days. For a monthly schedule, this is one or more days of the
--   month (1-31). For a weekly schedule, this is one or more days of the
--   week (1-7, where 1 is Sunday).
sirOccurrenceDaySet :: Lens' ScheduledInstanceRecurrence [Int]

-- | Describes the recurring schedule for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstanceRecurrenceRequest</a> smart
--   constructor.
data ScheduledInstanceRecurrenceRequest

-- | Creates a value of <a>ScheduledInstanceRecurrenceRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sirrFrequency</a> - The frequency (<tt>Daily</tt> ,
--   <tt>Weekly</tt> , or <tt>Monthly</tt> ).</li>
--   <li><a>sirrOccurrenceRelativeToEnd</a> - Indicates whether the
--   occurrence is relative to the end of the specified week or month. You
--   can't specify this value with a daily schedule.</li>
--   <li><a>sirrOccurrenceDays</a> - The days. For a monthly schedule, this
--   is one or more days of the month (1-31). For a weekly schedule, this
--   is one or more days of the week (1-7, where 1 is Sunday). You can't
--   specify this value with a daily schedule. If the occurrence is
--   relative to the end of the month, you can specify only a single
--   day.</li>
--   <li><a>sirrOccurrenceUnit</a> - The unit for <tt>OccurrenceDays</tt>
--   (<tt>DayOfWeek</tt> or <tt>DayOfMonth</tt> ). This value is required
--   for a monthly schedule. You can't specify <tt>DayOfWeek</tt> with a
--   weekly schedule. You can't specify this value with a daily
--   schedule.</li>
--   <li><a>sirrInterval</a> - The interval quantity. The interval unit
--   depends on the value of <tt>Frequency</tt> . For example, every 2
--   weeks or every 2 months.</li>
--   </ul>
scheduledInstanceRecurrenceRequest :: ScheduledInstanceRecurrenceRequest

-- | The frequency (<tt>Daily</tt> , <tt>Weekly</tt> , or <tt>Monthly</tt>
--   ).
sirrFrequency :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)

-- | Indicates whether the occurrence is relative to the end of the
--   specified week or month. You can't specify this value with a daily
--   schedule.
sirrOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Bool)

-- | The days. For a monthly schedule, this is one or more days of the
--   month (1-31). For a weekly schedule, this is one or more days of the
--   week (1-7, where 1 is Sunday). You can't specify this value with a
--   daily schedule. If the occurrence is relative to the end of the month,
--   you can specify only a single day.
sirrOccurrenceDays :: Lens' ScheduledInstanceRecurrenceRequest [Int]

-- | The unit for <tt>OccurrenceDays</tt> (<tt>DayOfWeek</tt> or
--   <tt>DayOfMonth</tt> ). This value is required for a monthly schedule.
--   You can't specify <tt>DayOfWeek</tt> with a weekly schedule. You can't
--   specify this value with a daily schedule.
sirrOccurrenceUnit :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)

-- | The interval quantity. The interval unit depends on the value of
--   <tt>Frequency</tt> . For example, every 2 weeks or every 2 months.
sirrInterval :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Int)

-- | Describes a block device mapping for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesBlockDeviceMapping</a> smart
--   constructor.
data ScheduledInstancesBlockDeviceMapping

-- | Creates a value of <a>ScheduledInstancesBlockDeviceMapping</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sibdmVirtualName</a> - The virtual device name
--   (<tt>ephemeral</tt> N). Instance store volumes are numbered starting
--   from 0. An instance type with two available instance store volumes can
--   specify mappings for <tt>ephemeral0</tt> and <tt>ephemeral1</tt> .The
--   number of available instance store volumes depends on the instance
--   type. After you connect to the instance, you must mount the volume.
--   Constraints: For M3 instances, you must specify instance store volumes
--   in the block device mapping for the instance. When you launch an M3
--   instance, we ignore any instance store volumes specified in the block
--   device mapping for the AMI.</li>
--   <li><a>sibdmNoDevice</a> - Suppresses the specified device included in
--   the block device mapping of the AMI.</li>
--   <li><a>sibdmEBS</a> - Parameters used to set up EBS volumes
--   automatically when the instance is launched.</li>
--   <li><a>sibdmDeviceName</a> - The device name exposed to the instance
--   (for example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).</li>
--   </ul>
scheduledInstancesBlockDeviceMapping :: ScheduledInstancesBlockDeviceMapping

-- | The virtual device name (<tt>ephemeral</tt> N). Instance store volumes
--   are numbered starting from 0. An instance type with two available
--   instance store volumes can specify mappings for <tt>ephemeral0</tt>
--   and <tt>ephemeral1</tt> .The number of available instance store
--   volumes depends on the instance type. After you connect to the
--   instance, you must mount the volume. Constraints: For M3 instances,
--   you must specify instance store volumes in the block device mapping
--   for the instance. When you launch an M3 instance, we ignore any
--   instance store volumes specified in the block device mapping for the
--   AMI.
sibdmVirtualName :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)

-- | Suppresses the specified device included in the block device mapping
--   of the AMI.
sibdmNoDevice :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)

-- | Parameters used to set up EBS volumes automatically when the instance
--   is launched.
sibdmEBS :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe ScheduledInstancesEBS)

-- | The device name exposed to the instance (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).
sibdmDeviceName :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)

-- | Describes an EBS volume for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesEBS</a> smart constructor.
data ScheduledInstancesEBS

-- | Creates a value of <a>ScheduledInstancesEBS</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sieDeleteOnTermination</a> - Indicates whether the volume is
--   deleted on instance termination.</li>
--   <li><a>sieVolumeSize</a> - The size of the volume, in GiB. Default: If
--   you're creating the volume from a snapshot and don't specify a volume
--   size, the default is the snapshot size.</li>
--   <li><a>sieIOPS</a> - The number of I<i>O operations per second (IOPS)
--   that the volume supports. For io1 volumes, this represents the number
--   of IOPS that are provisioned for the volume. For <tt>gp2</tt> volumes,
--   this represents the baseline performance of the volume and the rate at
--   which the volume accumulates I</i>O credits for bursting. For more
--   information about <tt>gp2</tt> baseline performance, I<i>O credits,
--   and bursting, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for <tt>io1</tt>
--   volumes and 100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This
--   parameter is required for requests to create <tt>io1</tt> volumes; it
--   is not used in requests to create <tt>gp2</tt> , <tt>st1</tt> ,
--   <tt>sc1</tt> , or <tt>standard</tt> volumes.</li>
--   <li><a>sieEncrypted</a> - Indicates whether the volume is encrypted.
--   You can attached encrypted volumes only to instances that support
--   them.</li>
--   <li><a>sieVolumeType</a> - The volume type. <tt>gp2</tt> for General
--   Purpose SSD, <tt>io1</tt> for Provisioned IOPS SSD, Throughput
--   Optimized HDD for <tt>st1</tt> , Cold HDD for <tt>sc1</tt> , or
--   <tt>standard</tt> for Magnetic. Default: <tt>standard</tt></li>
--   <li><a>sieSnapshotId</a> - The ID of the snapshot.</li>
--   </ul>
scheduledInstancesEBS :: ScheduledInstancesEBS

-- | Indicates whether the volume is deleted on instance termination.
sieDeleteOnTermination :: Lens' ScheduledInstancesEBS (Maybe Bool)

-- | The size of the volume, in GiB. Default: If you're creating the volume
--   from a snapshot and don't specify a volume size, the default is the
--   snapshot size.
sieVolumeSize :: Lens' ScheduledInstancesEBS (Maybe Int)

-- | The number of I<i>O operations per second (IOPS) that the volume
--   supports. For io1 volumes, this represents the number of IOPS that are
--   provisioned for the volume. For <tt>gp2</tt> volumes, this represents
--   the baseline performance of the volume and the rate at which the
--   volume accumulates I</i>O credits for bursting. For more information
--   about <tt>gp2</tt> baseline performance, I<i>O credits, and bursting,
--   see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for <tt>io1</tt>
--   volumes and 100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This
--   parameter is required for requests to create <tt>io1</tt> volumes; it
--   is not used in requests to create <tt>gp2</tt> , <tt>st1</tt> ,
--   <tt>sc1</tt> , or <tt>standard</tt> volumes.
sieIOPS :: Lens' ScheduledInstancesEBS (Maybe Int)

-- | Indicates whether the volume is encrypted. You can attached encrypted
--   volumes only to instances that support them.
sieEncrypted :: Lens' ScheduledInstancesEBS (Maybe Bool)

-- | The volume type. <tt>gp2</tt> for General Purpose SSD, <tt>io1</tt>
--   for Provisioned IOPS SSD, Throughput Optimized HDD for <tt>st1</tt> ,
--   Cold HDD for <tt>sc1</tt> , or <tt>standard</tt> for Magnetic.
--   Default: <tt>standard</tt>
sieVolumeType :: Lens' ScheduledInstancesEBS (Maybe Text)

-- | The ID of the snapshot.
sieSnapshotId :: Lens' ScheduledInstancesEBS (Maybe Text)

-- | Describes an IAM instance profile for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesIAMInstanceProfile</a> smart
--   constructor.
data ScheduledInstancesIAMInstanceProfile

-- | Creates a value of <a>ScheduledInstancesIAMInstanceProfile</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siiapARN</a> - The Amazon Resource Name (ARN).</li>
--   <li><a>siiapName</a> - The name.</li>
--   </ul>
scheduledInstancesIAMInstanceProfile :: ScheduledInstancesIAMInstanceProfile

-- | The Amazon Resource Name (ARN).
siiapARN :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)

-- | The name.
siiapName :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)

-- | Describes an IPv6 address.
--   
--   <i>See:</i> <a>scheduledInstancesIPv6Address</a> smart constructor.
data ScheduledInstancesIPv6Address

-- | Creates a value of <a>ScheduledInstancesIPv6Address</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siiaIPv6Address</a> - The IPv6 address.</li>
--   </ul>
scheduledInstancesIPv6Address :: ScheduledInstancesIPv6Address

-- | The IPv6 address.
siiaIPv6Address :: Lens' ScheduledInstancesIPv6Address (Maybe Text)

-- | Describes the launch specification for a Scheduled Instance.
--   
--   If you are launching the Scheduled Instance in EC2-VPC, you must
--   specify the ID of the subnet. You can specify the subnet using either
--   <tt>SubnetId</tt> or <tt>NetworkInterface</tt> .
--   
--   <i>See:</i> <a>scheduledInstancesLaunchSpecification</a> smart
--   constructor.
data ScheduledInstancesLaunchSpecification

-- | Creates a value of <a>ScheduledInstancesLaunchSpecification</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>silsSecurityGroupIds</a> - The IDs of one or more security
--   groups.</li>
--   <li><a>silsKeyName</a> - The name of the key pair.</li>
--   <li><a>silsNetworkInterfaces</a> - One or more network
--   interfaces.</li>
--   <li><a>silsRAMDiskId</a> - The ID of the RAM disk.</li>
--   <li><a>silsSubnetId</a> - The ID of the subnet in which to launch the
--   instances.</li>
--   <li><a>silsKernelId</a> - The ID of the kernel.</li>
--   <li><a>silsInstanceType</a> - The instance type.</li>
--   <li><a>silsEBSOptimized</a> - Indicates whether the instances are
--   optimized for EBS I<i>O. This optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal EBS I</i>O performance. This optimization isn't
--   available with all instance types. Additional usage charges apply when
--   using an EBS-optimized instance. Default: <tt>false</tt></li>
--   <li><a>silsUserData</a> - The base64-encoded MIME user data.</li>
--   <li><a>silsMonitoring</a> - Enable or disable monitoring for the
--   instances.</li>
--   <li><a>silsIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>silsBlockDeviceMappings</a> - One or more block device mapping
--   entries.</li>
--   <li><a>silsPlacement</a> - The placement information.</li>
--   <li><a>silsImageId</a> - The ID of the Amazon Machine Image
--   (AMI).</li>
--   </ul>
scheduledInstancesLaunchSpecification :: Text -> ScheduledInstancesLaunchSpecification

-- | The IDs of one or more security groups.
silsSecurityGroupIds :: Lens' ScheduledInstancesLaunchSpecification [Text]

-- | The name of the key pair.
silsKeyName :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)

-- | One or more network interfaces.
silsNetworkInterfaces :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesNetworkInterface]

-- | The ID of the RAM disk.
silsRAMDiskId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)

-- | The ID of the subnet in which to launch the instances.
silsSubnetId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)

-- | The ID of the kernel.
silsKernelId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)

-- | The instance type.
silsInstanceType :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)

-- | Indicates whether the instances are optimized for EBS I<i>O. This
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal EBS I</i>O
--   performance. This optimization isn't available with all instance
--   types. Additional usage charges apply when using an EBS-optimized
--   instance. Default: <tt>false</tt>
silsEBSOptimized :: Lens' ScheduledInstancesLaunchSpecification (Maybe Bool)

-- | The base64-encoded MIME user data.
silsUserData :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)

-- | Enable or disable monitoring for the instances.
silsMonitoring :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesMonitoring)

-- | The IAM instance profile.
silsIAMInstanceProfile :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesIAMInstanceProfile)

-- | One or more block device mapping entries.
silsBlockDeviceMappings :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesBlockDeviceMapping]

-- | The placement information.
silsPlacement :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesPlacement)

-- | The ID of the Amazon Machine Image (AMI).
silsImageId :: Lens' ScheduledInstancesLaunchSpecification Text

-- | Describes whether monitoring is enabled for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesMonitoring</a> smart constructor.
data ScheduledInstancesMonitoring

-- | Creates a value of <a>ScheduledInstancesMonitoring</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>simEnabled</a> - Indicates whether monitoring is enabled.</li>
--   </ul>
scheduledInstancesMonitoring :: ScheduledInstancesMonitoring

-- | Indicates whether monitoring is enabled.
simEnabled :: Lens' ScheduledInstancesMonitoring (Maybe Bool)

-- | Describes a network interface for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesNetworkInterface</a> smart
--   constructor.
data ScheduledInstancesNetworkInterface

-- | Creates a value of <a>ScheduledInstancesNetworkInterface</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siniGroups</a> - The IDs of one or more security groups.</li>
--   <li><a>siniDeleteOnTermination</a> - Indicates whether to delete the
--   interface when the instance is terminated.</li>
--   <li><a>siniAssociatePublicIPAddress</a> - Indicates whether to assign
--   a public IPv4 address to instances launched in a VPC. The public IPv4
--   address can only be assigned to a network interface for eth0, and can
--   only be assigned to a new network interface, not an existing one. You
--   cannot specify more than one network interface in the request. If
--   launching into a default subnet, the default value is <tt>true</tt>
--   .</li>
--   <li><a>siniPrivateIPAddressConfigs</a> - The private IPv4
--   addresses.</li>
--   <li><a>siniNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>siniSubnetId</a> - The ID of the subnet.</li>
--   <li><a>siniIPv6AddressCount</a> - The number of IPv6 addresses to
--   assign to the network interface. The IPv6 addresses are automatically
--   selected from the subnet range.</li>
--   <li><a>siniPrivateIPAddress</a> - The IPv4 address of the network
--   interface within the subnet.</li>
--   <li><a>siniSecondaryPrivateIPAddressCount</a> - The number of
--   secondary private IPv4 addresses.</li>
--   <li><a>siniDescription</a> - The description.</li>
--   <li><a>siniDeviceIndex</a> - The index of the device for the network
--   interface attachment.</li>
--   <li><a>siniIPv6Addresses</a> - One or more specific IPv6 addresses
--   from the subnet range.</li>
--   </ul>
scheduledInstancesNetworkInterface :: ScheduledInstancesNetworkInterface

-- | The IDs of one or more security groups.
siniGroups :: Lens' ScheduledInstancesNetworkInterface [Text]

-- | Indicates whether to delete the interface when the instance is
--   terminated.
siniDeleteOnTermination :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)

-- | Indicates whether to assign a public IPv4 address to instances
--   launched in a VPC. The public IPv4 address can only be assigned to a
--   network interface for eth0, and can only be assigned to a new network
--   interface, not an existing one. You cannot specify more than one
--   network interface in the request. If launching into a default subnet,
--   the default value is <tt>true</tt> .
siniAssociatePublicIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)

-- | The private IPv4 addresses.
siniPrivateIPAddressConfigs :: Lens' ScheduledInstancesNetworkInterface [ScheduledInstancesPrivateIPAddressConfig]

-- | The ID of the network interface.
siniNetworkInterfaceId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)

-- | The ID of the subnet.
siniSubnetId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)

-- | The number of IPv6 addresses to assign to the network interface. The
--   IPv6 addresses are automatically selected from the subnet range.
siniIPv6AddressCount :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)

-- | The IPv4 address of the network interface within the subnet.
siniPrivateIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)

-- | The number of secondary private IPv4 addresses.
siniSecondaryPrivateIPAddressCount :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)

-- | The description.
siniDescription :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)

-- | The index of the device for the network interface attachment.
siniDeviceIndex :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)

-- | One or more specific IPv6 addresses from the subnet range.
siniIPv6Addresses :: Lens' ScheduledInstancesNetworkInterface [ScheduledInstancesIPv6Address]

-- | Describes the placement for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesPlacement</a> smart constructor.
data ScheduledInstancesPlacement

-- | Creates a value of <a>ScheduledInstancesPlacement</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sipAvailabilityZone</a> - The Availability Zone.</li>
--   <li><a>sipGroupName</a> - The name of the placement group.</li>
--   </ul>
scheduledInstancesPlacement :: ScheduledInstancesPlacement

-- | The Availability Zone.
sipAvailabilityZone :: Lens' ScheduledInstancesPlacement (Maybe Text)

-- | The name of the placement group.
sipGroupName :: Lens' ScheduledInstancesPlacement (Maybe Text)

-- | Describes a private IPv4 address for a Scheduled Instance.
--   
--   <i>See:</i> <a>scheduledInstancesPrivateIPAddressConfig</a> smart
--   constructor.
data ScheduledInstancesPrivateIPAddressConfig

-- | Creates a value of <a>ScheduledInstancesPrivateIPAddressConfig</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sipiacPrimary</a> - Indicates whether this is a primary IPv4
--   address. Otherwise, this is a secondary IPv4 address.</li>
--   <li><a>sipiacPrivateIPAddress</a> - The IPv4 address.</li>
--   </ul>
scheduledInstancesPrivateIPAddressConfig :: ScheduledInstancesPrivateIPAddressConfig

-- | Indicates whether this is a primary IPv4 address. Otherwise, this is a
--   secondary IPv4 address.
sipiacPrimary :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Bool)

-- | The IPv4 address.
sipiacPrivateIPAddress :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Text)

-- | Describes a security group
--   
--   <i>See:</i> <a>securityGroup</a> smart constructor.
data SecurityGroup

-- | Creates a value of <a>SecurityGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sgVPCId</a> - [EC2-VPC] The ID of the VPC for the security
--   group.</li>
--   <li><a>sgIPPermissions</a> - One or more inbound rules associated with
--   the security group.</li>
--   <li><a>sgIPPermissionsEgress</a> - [EC2-VPC] One or more outbound
--   rules associated with the security group.</li>
--   <li><a>sgTags</a> - Any tags assigned to the security group.</li>
--   <li><a>sgOwnerId</a> - The AWS account ID of the owner of the security
--   group.</li>
--   <li><a>sgGroupId</a> - The ID of the security group.</li>
--   <li><a>sgGroupName</a> - The name of the security group.</li>
--   <li><a>sgDescription</a> - A description of the security group.</li>
--   </ul>
securityGroup :: Text -> Text -> Text -> Text -> SecurityGroup

-- | <ul>
--   <li><i>EC2-VPC</i> The ID of the VPC for the security group.</li>
--   </ul>
sgVPCId :: Lens' SecurityGroup (Maybe Text)

-- | One or more inbound rules associated with the security group.
sgIPPermissions :: Lens' SecurityGroup [IPPermission]

-- | <ul>
--   <li><i>EC2-VPC</i> One or more outbound rules associated with the
--   security group.</li>
--   </ul>
sgIPPermissionsEgress :: Lens' SecurityGroup [IPPermission]

-- | Any tags assigned to the security group.
sgTags :: Lens' SecurityGroup [Tag]

-- | The AWS account ID of the owner of the security group.
sgOwnerId :: Lens' SecurityGroup Text

-- | The ID of the security group.
sgGroupId :: Lens' SecurityGroup Text

-- | The name of the security group.
sgGroupName :: Lens' SecurityGroup Text

-- | A description of the security group.
sgDescription :: Lens' SecurityGroup Text

-- | Describes a VPC with a security group that references your security
--   group.
--   
--   <i>See:</i> <a>securityGroupReference</a> smart constructor.
data SecurityGroupReference

-- | Creates a value of <a>SecurityGroupReference</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sgrVPCPeeringConnectionId</a> - The ID of the VPC peering
--   connection.</li>
--   <li><a>sgrGroupId</a> - The ID of your security group.</li>
--   <li><a>sgrReferencingVPCId</a> - The ID of the VPC with the
--   referencing security group.</li>
--   </ul>
securityGroupReference :: Text -> Text -> SecurityGroupReference

-- | The ID of the VPC peering connection.
sgrVPCPeeringConnectionId :: Lens' SecurityGroupReference (Maybe Text)

-- | The ID of your security group.
sgrGroupId :: Lens' SecurityGroupReference Text

-- | The ID of the VPC with the referencing security group.
sgrReferencingVPCId :: Lens' SecurityGroupReference Text

-- | Describes the time period for a Scheduled Instance to start its first
--   schedule. The time period must span less than one day.
--   
--   <i>See:</i> <a>slotDateTimeRangeRequest</a> smart constructor.
data SlotDateTimeRangeRequest

-- | Creates a value of <a>SlotDateTimeRangeRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdtrrEarliestTime</a> - The earliest date and time, in UTC, for
--   the Scheduled Instance to start.</li>
--   <li><a>sdtrrLatestTime</a> - The latest date and time, in UTC, for the
--   Scheduled Instance to start. This value must be later than or equal to
--   the earliest date and at most three months in the future.</li>
--   </ul>
slotDateTimeRangeRequest :: UTCTime -> UTCTime -> SlotDateTimeRangeRequest

-- | The earliest date and time, in UTC, for the Scheduled Instance to
--   start.
sdtrrEarliestTime :: Lens' SlotDateTimeRangeRequest UTCTime

-- | The latest date and time, in UTC, for the Scheduled Instance to start.
--   This value must be later than or equal to the earliest date and at
--   most three months in the future.
sdtrrLatestTime :: Lens' SlotDateTimeRangeRequest UTCTime

-- | Describes the time period for a Scheduled Instance to start its first
--   schedule.
--   
--   <i>See:</i> <a>slotStartTimeRangeRequest</a> smart constructor.
data SlotStartTimeRangeRequest

-- | Creates a value of <a>SlotStartTimeRangeRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sstrrLatestTime</a> - The latest date and time, in UTC, for the
--   Scheduled Instance to start.</li>
--   <li><a>sstrrEarliestTime</a> - The earliest date and time, in UTC, for
--   the Scheduled Instance to start.</li>
--   </ul>
slotStartTimeRangeRequest :: SlotStartTimeRangeRequest

-- | The latest date and time, in UTC, for the Scheduled Instance to start.
sstrrLatestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)

-- | The earliest date and time, in UTC, for the Scheduled Instance to
--   start.
sstrrEarliestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)

-- | Describes a snapshot.
--   
--   <i>See:</i> <a>snapshot</a> smart constructor.
data Snapshot

-- | Creates a value of <a>Snapshot</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sStateMessage</a> - Encrypted Amazon EBS snapshots are copied
--   asynchronously. If a snapshot copy operation fails (for example, if
--   the proper AWS Key Management Service (AWS KMS) permissions are not
--   obtained) this field displays error state details to help you diagnose
--   why the error occurred. This parameter is only returned by the
--   <tt>DescribeSnapshots</tt> API operation.</li>
--   <li><a>sOwnerAlias</a> - Value from an Amazon-maintained list
--   (<tt>amazon</tt> | <tt>aws-marketplace</tt> | <tt>microsoft</tt> ) of
--   snapshot owners. Not to be confused with the user-configured AWS
--   account alias, which is set from the IAM console.</li>
--   <li><a>sDataEncryptionKeyId</a> - The data encryption key identifier
--   for the snapshot. This value is a unique identifier that corresponds
--   to the data encryption key that was used to encrypt the original
--   volume or snapshot copy. Because data encryption keys are inherited by
--   volumes created from snapshots, and vice versa, if snapshots share the
--   same data encryption key identifier, then they belong to the same
--   volume/snapshot lineage. This parameter is only returned by the
--   <tt>DescribeSnapshots</tt> API operation.</li>
--   <li><a>sKMSKeyId</a> - The full ARN of the AWS Key Management Service
--   (AWS KMS) customer master key (CMK) that was used to protect the
--   volume encryption key for the parent volume.</li>
--   <li><a>sTags</a> - Any tags assigned to the snapshot.</li>
--   <li><a>sSnapshotId</a> - The ID of the snapshot. Each snapshot
--   receives a unique identifier when it is created.</li>
--   <li><a>sOwnerId</a> - The AWS account ID of the EBS snapshot
--   owner.</li>
--   <li><a>sVolumeId</a> - The ID of the volume that was used to create
--   the snapshot. Snapshots created by the <tt>CopySnapshot</tt> action
--   have an arbitrary volume ID that should not be used for any
--   purpose.</li>
--   <li><a>sVolumeSize</a> - The size of the volume, in GiB.</li>
--   <li><a>sDescription</a> - The description for the snapshot.</li>
--   <li><a>sStartTime</a> - The time stamp when the snapshot was
--   initiated.</li>
--   <li><a>sProgress</a> - The progress of the snapshot, as a
--   percentage.</li>
--   <li><a>sState</a> - The snapshot state.</li>
--   <li><a>sEncrypted</a> - Indicates whether the snapshot is
--   encrypted.</li>
--   </ul>
snapshot :: Text -> Text -> Text -> Int -> Text -> UTCTime -> Text -> SnapshotState -> Bool -> Snapshot

-- | Encrypted Amazon EBS snapshots are copied asynchronously. If a
--   snapshot copy operation fails (for example, if the proper AWS Key
--   Management Service (AWS KMS) permissions are not obtained) this field
--   displays error state details to help you diagnose why the error
--   occurred. This parameter is only returned by the
--   <tt>DescribeSnapshots</tt> API operation.
sStateMessage :: Lens' Snapshot (Maybe Text)

-- | Value from an Amazon-maintained list (<tt>amazon</tt> |
--   <tt>aws-marketplace</tt> | <tt>microsoft</tt> ) of snapshot owners.
--   Not to be confused with the user-configured AWS account alias, which
--   is set from the IAM console.
sOwnerAlias :: Lens' Snapshot (Maybe Text)

-- | The data encryption key identifier for the snapshot. This value is a
--   unique identifier that corresponds to the data encryption key that was
--   used to encrypt the original volume or snapshot copy. Because data
--   encryption keys are inherited by volumes created from snapshots, and
--   vice versa, if snapshots share the same data encryption key
--   identifier, then they belong to the same volume/snapshot lineage. This
--   parameter is only returned by the <tt>DescribeSnapshots</tt> API
--   operation.
sDataEncryptionKeyId :: Lens' Snapshot (Maybe Text)

-- | The full ARN of the AWS Key Management Service (AWS KMS) customer
--   master key (CMK) that was used to protect the volume encryption key
--   for the parent volume.
sKMSKeyId :: Lens' Snapshot (Maybe Text)

-- | Any tags assigned to the snapshot.
sTags :: Lens' Snapshot [Tag]

-- | The ID of the snapshot. Each snapshot receives a unique identifier
--   when it is created.
sSnapshotId :: Lens' Snapshot Text

-- | The AWS account ID of the EBS snapshot owner.
sOwnerId :: Lens' Snapshot Text

-- | The ID of the volume that was used to create the snapshot. Snapshots
--   created by the <tt>CopySnapshot</tt> action have an arbitrary volume
--   ID that should not be used for any purpose.
sVolumeId :: Lens' Snapshot Text

-- | The size of the volume, in GiB.
sVolumeSize :: Lens' Snapshot Int

-- | The description for the snapshot.
sDescription :: Lens' Snapshot Text

-- | The time stamp when the snapshot was initiated.
sStartTime :: Lens' Snapshot UTCTime

-- | The progress of the snapshot, as a percentage.
sProgress :: Lens' Snapshot Text

-- | The snapshot state.
sState :: Lens' Snapshot SnapshotState

-- | Indicates whether the snapshot is encrypted.
sEncrypted :: Lens' Snapshot Bool

-- | Describes the snapshot created from the imported disk.
--   
--   <i>See:</i> <a>snapshotDetail</a> smart constructor.
data SnapshotDetail

-- | Creates a value of <a>SnapshotDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdStatus</a> - A brief status of the snapshot creation.</li>
--   <li><a>sdProgress</a> - The percentage of progress for the task.</li>
--   <li><a>sdFormat</a> - The format of the disk image from which the
--   snapshot is created.</li>
--   <li><a>sdURL</a> - The URL used to access the disk image.</li>
--   <li><a>sdDeviceName</a> - The block device mapping for the
--   snapshot.</li>
--   <li><a>sdStatusMessage</a> - A detailed status message for the
--   snapshot creation.</li>
--   <li><a>sdUserBucket</a> - The S3 bucket for the disk image.</li>
--   <li><a>sdDiskImageSize</a> - The size of the disk in the snapshot, in
--   GiB.</li>
--   <li><a>sdDescription</a> - A description for the snapshot.</li>
--   <li><a>sdSnapshotId</a> - The snapshot ID of the disk being
--   imported.</li>
--   </ul>
snapshotDetail :: SnapshotDetail

-- | A brief status of the snapshot creation.
sdStatus :: Lens' SnapshotDetail (Maybe Text)

-- | The percentage of progress for the task.
sdProgress :: Lens' SnapshotDetail (Maybe Text)

-- | The format of the disk image from which the snapshot is created.
sdFormat :: Lens' SnapshotDetail (Maybe Text)

-- | The URL used to access the disk image.
sdURL :: Lens' SnapshotDetail (Maybe Text)

-- | The block device mapping for the snapshot.
sdDeviceName :: Lens' SnapshotDetail (Maybe Text)

-- | A detailed status message for the snapshot creation.
sdStatusMessage :: Lens' SnapshotDetail (Maybe Text)

-- | The S3 bucket for the disk image.
sdUserBucket :: Lens' SnapshotDetail (Maybe UserBucketDetails)

-- | The size of the disk in the snapshot, in GiB.
sdDiskImageSize :: Lens' SnapshotDetail (Maybe Double)

-- | A description for the snapshot.
sdDescription :: Lens' SnapshotDetail (Maybe Text)

-- | The snapshot ID of the disk being imported.
sdSnapshotId :: Lens' SnapshotDetail (Maybe Text)

-- | The disk container object for the import snapshot request.
--   
--   <i>See:</i> <a>snapshotDiskContainer</a> smart constructor.
data SnapshotDiskContainer

-- | Creates a value of <a>SnapshotDiskContainer</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdcFormat</a> - The format of the disk image being imported.
--   Valid values: <tt>RAW</tt> | <tt>VHD</tt> | <tt>VMDK</tt> |
--   <tt>OVA</tt></li>
--   <li><a>sdcURL</a> - The URL to the Amazon S3-based disk image being
--   imported. It can either be a https URL (https:/<i>..) or an Amazon S3
--   URL (s3:</i>/..).</li>
--   <li><a>sdcUserBucket</a> - The S3 bucket for the disk image.</li>
--   <li><a>sdcDescription</a> - The description of the disk image being
--   imported.</li>
--   </ul>
snapshotDiskContainer :: SnapshotDiskContainer

-- | The format of the disk image being imported. Valid values:
--   <tt>RAW</tt> | <tt>VHD</tt> | <tt>VMDK</tt> | <tt>OVA</tt>
sdcFormat :: Lens' SnapshotDiskContainer (Maybe Text)

-- | The URL to the Amazon S3-based disk image being imported. It can
--   either be a https URL (https:/<i>..) or an Amazon S3 URL (s3:</i>/..).
sdcURL :: Lens' SnapshotDiskContainer (Maybe Text)

-- | The S3 bucket for the disk image.
sdcUserBucket :: Lens' SnapshotDiskContainer (Maybe UserBucket)

-- | The description of the disk image being imported.
sdcDescription :: Lens' SnapshotDiskContainer (Maybe Text)

-- | Details about the import snapshot task.
--   
--   <i>See:</i> <a>snapshotTaskDetail</a> smart constructor.
data SnapshotTaskDetail

-- | Creates a value of <a>SnapshotTaskDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stdStatus</a> - A brief status for the import snapshot
--   task.</li>
--   <li><a>stdProgress</a> - The percentage of completion for the import
--   snapshot task.</li>
--   <li><a>stdFormat</a> - The format of the disk image from which the
--   snapshot is created.</li>
--   <li><a>stdURL</a> - The URL of the disk image from which the snapshot
--   is created.</li>
--   <li><a>stdStatusMessage</a> - A detailed status message for the import
--   snapshot task.</li>
--   <li><a>stdUserBucket</a> - The S3 bucket for the disk image.</li>
--   <li><a>stdDiskImageSize</a> - The size of the disk in the snapshot, in
--   GiB.</li>
--   <li><a>stdDescription</a> - The description of the snapshot.</li>
--   <li><a>stdSnapshotId</a> - The snapshot ID of the disk being
--   imported.</li>
--   </ul>
snapshotTaskDetail :: SnapshotTaskDetail

-- | A brief status for the import snapshot task.
stdStatus :: Lens' SnapshotTaskDetail (Maybe Text)

-- | The percentage of completion for the import snapshot task.
stdProgress :: Lens' SnapshotTaskDetail (Maybe Text)

-- | The format of the disk image from which the snapshot is created.
stdFormat :: Lens' SnapshotTaskDetail (Maybe Text)

-- | The URL of the disk image from which the snapshot is created.
stdURL :: Lens' SnapshotTaskDetail (Maybe Text)

-- | A detailed status message for the import snapshot task.
stdStatusMessage :: Lens' SnapshotTaskDetail (Maybe Text)

-- | The S3 bucket for the disk image.
stdUserBucket :: Lens' SnapshotTaskDetail (Maybe UserBucketDetails)

-- | The size of the disk in the snapshot, in GiB.
stdDiskImageSize :: Lens' SnapshotTaskDetail (Maybe Double)

-- | The description of the snapshot.
stdDescription :: Lens' SnapshotTaskDetail (Maybe Text)

-- | The snapshot ID of the disk being imported.
stdSnapshotId :: Lens' SnapshotTaskDetail (Maybe Text)

-- | Describes the data feed for a Spot instance.
--   
--   <i>See:</i> <a>spotDatafeedSubscription</a> smart constructor.
data SpotDatafeedSubscription

-- | Creates a value of <a>SpotDatafeedSubscription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdsState</a> - The state of the Spot instance data feed
--   subscription.</li>
--   <li><a>sdsPrefix</a> - The prefix that is prepended to data feed
--   files.</li>
--   <li><a>sdsBucket</a> - The Amazon S3 bucket where the Spot instance
--   data feed is located.</li>
--   <li><a>sdsOwnerId</a> - The AWS account ID of the account.</li>
--   <li><a>sdsFault</a> - The fault codes for the Spot instance request,
--   if any.</li>
--   </ul>
spotDatafeedSubscription :: SpotDatafeedSubscription

-- | The state of the Spot instance data feed subscription.
sdsState :: Lens' SpotDatafeedSubscription (Maybe DatafeedSubscriptionState)

-- | The prefix that is prepended to data feed files.
sdsPrefix :: Lens' SpotDatafeedSubscription (Maybe Text)

-- | The Amazon S3 bucket where the Spot instance data feed is located.
sdsBucket :: Lens' SpotDatafeedSubscription (Maybe Text)

-- | The AWS account ID of the account.
sdsOwnerId :: Lens' SpotDatafeedSubscription (Maybe Text)

-- | The fault codes for the Spot instance request, if any.
sdsFault :: Lens' SpotDatafeedSubscription (Maybe SpotInstanceStateFault)

-- | Describes the launch specification for one or more Spot instances.
--   
--   <i>See:</i> <a>spotFleetLaunchSpecification</a> smart constructor.
data SpotFleetLaunchSpecification

-- | Creates a value of <a>SpotFleetLaunchSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sflsSecurityGroups</a> - One or more security groups. When
--   requesting instances in a VPC, you must specify the IDs of the
--   security groups. When requesting instances in EC2-Classic, you can
--   specify the names or the IDs of the security groups.</li>
--   <li><a>sflsSpotPrice</a> - The bid price per unit hour for the
--   specified instance type. If this value is not specified, the default
--   is the Spot bid price specified for the fleet. To determine the bid
--   price per unit hour, divide the Spot bid price by the value of
--   <tt>WeightedCapacity</tt> .</li>
--   <li><a>sflsWeightedCapacity</a> - The number of units provided by the
--   specified instance type. These are the same units that you chose to
--   set the target capacity in terms (instances or a performance
--   characteristic such as vCPUs, memory, or I/O). If the target capacity
--   divided by this value is not a whole number, we round the number of
--   instances to the next whole number. If this value is not specified,
--   the default is 1.</li>
--   <li><a>sflsKeyName</a> - The name of the key pair.</li>
--   <li><a>sflsNetworkInterfaces</a> - One or more network interfaces. If
--   you specify a network interface, you must specify subnet IDs and
--   security group IDs using the network interface.</li>
--   <li><a>sflsRAMDiskId</a> - The ID of the RAM disk.</li>
--   <li><a>sflsSubnetId</a> - The ID of the subnet in which to launch the
--   instances. To specify multiple subnets, separate them using commas;
--   for example, "subnet-a61dafcf, subnet-65ea5f08".</li>
--   <li><a>sflsKernelId</a> - The ID of the kernel.</li>
--   <li><a>sflsInstanceType</a> - The instance type. Note that T2 and HS1
--   instance types are not supported.</li>
--   <li><a>sflsEBSOptimized</a> - Indicates whether the instances are
--   optimized for EBS I<i>O. This optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal EBS I</i>O performance. This optimization isn't
--   available with all instance types. Additional usage charges apply when
--   using an EBS Optimized instance. Default: <tt>false</tt></li>
--   <li><a>sflsUserData</a> - The user data to make available to the
--   instances. If you are using an AWS SDK or command line tool,
--   Base64-encoding is performed for you, and you can load the text from a
--   file. Otherwise, you must provide Base64-encoded text.</li>
--   <li><a>sflsMonitoring</a> - Enable or disable monitoring for the
--   instances.</li>
--   <li><a>sflsIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>sflsImageId</a> - The ID of the AMI.</li>
--   <li><a>sflsAddressingType</a> - Deprecated.</li>
--   <li><a>sflsBlockDeviceMappings</a> - One or more block device mapping
--   entries.</li>
--   <li><a>sflsPlacement</a> - The placement information.</li>
--   </ul>
spotFleetLaunchSpecification :: SpotFleetLaunchSpecification

-- | One or more security groups. When requesting instances in a VPC, you
--   must specify the IDs of the security groups. When requesting instances
--   in EC2-Classic, you can specify the names or the IDs of the security
--   groups.
sflsSecurityGroups :: Lens' SpotFleetLaunchSpecification [GroupIdentifier]

-- | The bid price per unit hour for the specified instance type. If this
--   value is not specified, the default is the Spot bid price specified
--   for the fleet. To determine the bid price per unit hour, divide the
--   Spot bid price by the value of <tt>WeightedCapacity</tt> .
sflsSpotPrice :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | The number of units provided by the specified instance type. These are
--   the same units that you chose to set the target capacity in terms
--   (instances or a performance characteristic such as vCPUs, memory, or
--   I/O). If the target capacity divided by this value is not a whole
--   number, we round the number of instances to the next whole number. If
--   this value is not specified, the default is 1.
sflsWeightedCapacity :: Lens' SpotFleetLaunchSpecification (Maybe Double)

-- | The name of the key pair.
sflsKeyName :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | One or more network interfaces. If you specify a network interface,
--   you must specify subnet IDs and security group IDs using the network
--   interface.
sflsNetworkInterfaces :: Lens' SpotFleetLaunchSpecification [InstanceNetworkInterfaceSpecification]

-- | The ID of the RAM disk.
sflsRAMDiskId :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | The ID of the subnet in which to launch the instances. To specify
--   multiple subnets, separate them using commas; for example,
--   "subnet-a61dafcf, subnet-65ea5f08".
sflsSubnetId :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | The ID of the kernel.
sflsKernelId :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | The instance type. Note that T2 and HS1 instance types are not
--   supported.
sflsInstanceType :: Lens' SpotFleetLaunchSpecification (Maybe InstanceType)

-- | Indicates whether the instances are optimized for EBS I<i>O. This
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal EBS I</i>O
--   performance. This optimization isn't available with all instance
--   types. Additional usage charges apply when using an EBS Optimized
--   instance. Default: <tt>false</tt>
sflsEBSOptimized :: Lens' SpotFleetLaunchSpecification (Maybe Bool)

-- | The user data to make available to the instances. If you are using an
--   AWS SDK or command line tool, Base64-encoding is performed for you,
--   and you can load the text from a file. Otherwise, you must provide
--   Base64-encoded text.
sflsUserData :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | Enable or disable monitoring for the instances.
sflsMonitoring :: Lens' SpotFleetLaunchSpecification (Maybe SpotFleetMonitoring)

-- | The IAM instance profile.
sflsIAMInstanceProfile :: Lens' SpotFleetLaunchSpecification (Maybe IAMInstanceProfileSpecification)

-- | The ID of the AMI.
sflsImageId :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | Deprecated.
sflsAddressingType :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | One or more block device mapping entries.
sflsBlockDeviceMappings :: Lens' SpotFleetLaunchSpecification [BlockDeviceMapping]

-- | The placement information.
sflsPlacement :: Lens' SpotFleetLaunchSpecification (Maybe SpotPlacement)

-- | Describes whether monitoring is enabled.
--   
--   <i>See:</i> <a>spotFleetMonitoring</a> smart constructor.
data SpotFleetMonitoring

-- | Creates a value of <a>SpotFleetMonitoring</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfmEnabled</a> - Enables monitoring for the instance. Default:
--   <tt>false</tt></li>
--   </ul>
spotFleetMonitoring :: SpotFleetMonitoring

-- | Enables monitoring for the instance. Default: <tt>false</tt>
sfmEnabled :: Lens' SpotFleetMonitoring (Maybe Bool)

-- | Describes a Spot fleet request.
--   
--   <i>See:</i> <a>spotFleetRequestConfig</a> smart constructor.
data SpotFleetRequestConfig

-- | Creates a value of <a>SpotFleetRequestConfig</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfrcActivityStatus</a> - The progress of the Spot fleet
--   request. If there is an error, the status is <tt>error</tt> . After
--   all bids are placed, the status is <tt>pending_fulfillment</tt> . If
--   the size of the fleet is equal to or greater than its target capacity,
--   the status is <tt>fulfilled</tt> . If the size of the fleet is
--   decreased, the status is <tt>pending_termination</tt> while Spot
--   instances are terminating.</li>
--   <li><a>sfrcSpotFleetRequestId</a> - The ID of the Spot fleet
--   request.</li>
--   <li><a>sfrcSpotFleetRequestState</a> - The state of the Spot fleet
--   request.</li>
--   <li><a>sfrcSpotFleetRequestConfig</a> - Information about the
--   configuration of the Spot fleet request.</li>
--   <li><a>sfrcCreateTime</a> - The creation date and time of the
--   request.</li>
--   </ul>
spotFleetRequestConfig :: Text -> BatchState -> SpotFleetRequestConfigData -> UTCTime -> SpotFleetRequestConfig

-- | The progress of the Spot fleet request. If there is an error, the
--   status is <tt>error</tt> . After all bids are placed, the status is
--   <tt>pending_fulfillment</tt> . If the size of the fleet is equal to or
--   greater than its target capacity, the status is <tt>fulfilled</tt> .
--   If the size of the fleet is decreased, the status is
--   <tt>pending_termination</tt> while Spot instances are terminating.
sfrcActivityStatus :: Lens' SpotFleetRequestConfig (Maybe ActivityStatus)

-- | The ID of the Spot fleet request.
sfrcSpotFleetRequestId :: Lens' SpotFleetRequestConfig Text

-- | The state of the Spot fleet request.
sfrcSpotFleetRequestState :: Lens' SpotFleetRequestConfig BatchState

-- | Information about the configuration of the Spot fleet request.
sfrcSpotFleetRequestConfig :: Lens' SpotFleetRequestConfig SpotFleetRequestConfigData

-- | The creation date and time of the request.
sfrcCreateTime :: Lens' SpotFleetRequestConfig UTCTime

-- | Describes the configuration of a Spot fleet request.
--   
--   <i>See:</i> <a>spotFleetRequestConfigData</a> smart constructor.
data SpotFleetRequestConfigData

-- | Creates a value of <a>SpotFleetRequestConfigData</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfrcdClientToken</a> - A unique, case-sensitive identifier you
--   provide to ensure idempotency of your listings. This helps avoid
--   duplicate listings. For more information, see <a>Ensuring
--   Idempotency</a> .</li>
--   <li><a>sfrcdExcessCapacityTerminationPolicy</a> - Indicates whether
--   running Spot instances should be terminated if the target capacity of
--   the Spot fleet request is decreased below the current size of the Spot
--   fleet.</li>
--   <li><a>sfrcdValidUntil</a> - The end date and time of the request, in
--   UTC format (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i>
--   :<i>MM</i> :<i>SS</i> Z). At this point, no new Spot instance requests
--   are placed or enabled to fulfill the request.</li>
--   <li><a>sfrcdTerminateInstancesWithExpiration</a> - Indicates whether
--   running Spot instances should be terminated when the Spot fleet
--   request expires.</li>
--   <li><a>sfrcdFulfilledCapacity</a> - The number of units fulfilled by
--   this request compared to the set target capacity.</li>
--   <li><a>sfrcdType</a> - The type of request. Indicates whether the
--   fleet will only <tt>request</tt> the target capacity or also attempt
--   to <tt>maintain</tt> it. When you <tt>request</tt> a certain target
--   capacity, the fleet will only place the required bids. It will not
--   attempt to replenish Spot instances if capacity is diminished, nor
--   will it submit bids in alternative Spot pools if capacity is not
--   available. When you want to <tt>maintain</tt> a certain target
--   capacity, fleet will place the required bids to meet this target
--   capacity. It will also automatically replenish any interrupted
--   instances. Default: <tt>maintain</tt> .</li>
--   <li><a>sfrcdValidFrom</a> - The start date and time of the request, in
--   UTC format (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i>
--   :<i>MM</i> :<i>SS</i> Z). The default is to start fulfilling the
--   request immediately.</li>
--   <li><a>sfrcdAllocationStrategy</a> - Indicates how to allocate the
--   target capacity across the Spot pools specified by the Spot fleet
--   request. The default is <tt>lowestPrice</tt> .</li>
--   <li><a>sfrcdSpotPrice</a> - The bid price per unit hour.</li>
--   <li><a>sfrcdTargetCapacity</a> - The number of units to request. You
--   can choose to set the target capacity in terms of instances or a
--   performance characteristic that is important to your application
--   workload, such as vCPUs, memory, or I/O.</li>
--   <li><a>sfrcdIAMFleetRole</a> - Grants the Spot fleet permission to
--   terminate Spot instances on your behalf when you cancel its Spot fleet
--   request using <tt>CancelSpotFleetRequests</tt> or when the Spot fleet
--   request expires, if you set <tt>terminateInstancesWithExpiration</tt>
--   .</li>
--   <li><a>sfrcdLaunchSpecifications</a> - Information about the launch
--   specifications for the Spot fleet request.</li>
--   </ul>
spotFleetRequestConfigData :: Text -> Int -> Text -> NonEmpty SpotFleetLaunchSpecification -> SpotFleetRequestConfigData

-- | A unique, case-sensitive identifier you provide to ensure idempotency
--   of your listings. This helps avoid duplicate listings. For more
--   information, see <a>Ensuring Idempotency</a> .
sfrcdClientToken :: Lens' SpotFleetRequestConfigData (Maybe Text)

-- | Indicates whether running Spot instances should be terminated if the
--   target capacity of the Spot fleet request is decreased below the
--   current size of the Spot fleet.
sfrcdExcessCapacityTerminationPolicy :: Lens' SpotFleetRequestConfigData (Maybe ExcessCapacityTerminationPolicy)

-- | The end date and time of the request, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
--   At this point, no new Spot instance requests are placed or enabled to
--   fulfill the request.
sfrcdValidUntil :: Lens' SpotFleetRequestConfigData (Maybe UTCTime)

-- | Indicates whether running Spot instances should be terminated when the
--   Spot fleet request expires.
sfrcdTerminateInstancesWithExpiration :: Lens' SpotFleetRequestConfigData (Maybe Bool)

-- | The number of units fulfilled by this request compared to the set
--   target capacity.
sfrcdFulfilledCapacity :: Lens' SpotFleetRequestConfigData (Maybe Double)

-- | The type of request. Indicates whether the fleet will only
--   <tt>request</tt> the target capacity or also attempt to
--   <tt>maintain</tt> it. When you <tt>request</tt> a certain target
--   capacity, the fleet will only place the required bids. It will not
--   attempt to replenish Spot instances if capacity is diminished, nor
--   will it submit bids in alternative Spot pools if capacity is not
--   available. When you want to <tt>maintain</tt> a certain target
--   capacity, fleet will place the required bids to meet this target
--   capacity. It will also automatically replenish any interrupted
--   instances. Default: <tt>maintain</tt> .
sfrcdType :: Lens' SpotFleetRequestConfigData (Maybe FleetType)

-- | The start date and time of the request, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
--   The default is to start fulfilling the request immediately.
sfrcdValidFrom :: Lens' SpotFleetRequestConfigData (Maybe UTCTime)

-- | Indicates how to allocate the target capacity across the Spot pools
--   specified by the Spot fleet request. The default is
--   <tt>lowestPrice</tt> .
sfrcdAllocationStrategy :: Lens' SpotFleetRequestConfigData (Maybe AllocationStrategy)

-- | The bid price per unit hour.
sfrcdSpotPrice :: Lens' SpotFleetRequestConfigData Text

-- | The number of units to request. You can choose to set the target
--   capacity in terms of instances or a performance characteristic that is
--   important to your application workload, such as vCPUs, memory, or I/O.
sfrcdTargetCapacity :: Lens' SpotFleetRequestConfigData Int

-- | Grants the Spot fleet permission to terminate Spot instances on your
--   behalf when you cancel its Spot fleet request using
--   <tt>CancelSpotFleetRequests</tt> or when the Spot fleet request
--   expires, if you set <tt>terminateInstancesWithExpiration</tt> .
sfrcdIAMFleetRole :: Lens' SpotFleetRequestConfigData Text

-- | Information about the launch specifications for the Spot fleet
--   request.
sfrcdLaunchSpecifications :: Lens' SpotFleetRequestConfigData (NonEmpty SpotFleetLaunchSpecification)

-- | Describes a Spot instance request.
--   
--   <i>See:</i> <a>spotInstanceRequest</a> smart constructor.
data SpotInstanceRequest

-- | Creates a value of <a>SpotInstanceRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sirInstanceId</a> - The instance ID, if an instance has been
--   launched to fulfill the Spot instance request.</li>
--   <li><a>sirStatus</a> - The status code and status message describing
--   the Spot instance request.</li>
--   <li><a>sirState</a> - The state of the Spot instance request. Spot bid
--   status information can help you track your Spot instance requests. For
--   more information, see <a>Spot Bid Status</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> .</li>
--   <li><a>sirActualBlockHourlyPrice</a> - If you specified a duration and
--   your Spot instance request was fulfilled, this is the fixed hourly
--   price in effect for the Spot instance while it runs.</li>
--   <li><a>sirBlockDurationMinutes</a> - The duration for the Spot
--   instance, in minutes.</li>
--   <li><a>sirProductDescription</a> - The product description associated
--   with the Spot instance.</li>
--   <li><a>sirSpotPrice</a> - The maximum hourly price (bid) for the Spot
--   instance launched to fulfill the request.</li>
--   <li><a>sirLaunchSpecification</a> - Additional information for
--   launching instances.</li>
--   <li><a>sirAvailabilityZoneGroup</a> - The Availability Zone group. If
--   you specify the same Availability Zone group for all Spot instance
--   requests, all Spot instances are launched in the same Availability
--   Zone.</li>
--   <li><a>sirLaunchedAvailabilityZone</a> - The Availability Zone in
--   which the bid is launched.</li>
--   <li><a>sirValidUntil</a> - The end date of the request, in UTC format
--   (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i>
--   :<i>SS</i> Z). If this is a one-time request, it remains active until
--   all instances launch, the request is canceled, or this date is
--   reached. If the request is persistent, it remains active until it is
--   canceled or this date is reached.</li>
--   <li><a>sirLaunchGroup</a> - The instance launch group. Launch groups
--   are Spot instances that launch together and terminate together.</li>
--   <li><a>sirFault</a> - The fault codes for the Spot instance request,
--   if any.</li>
--   <li><a>sirSpotInstanceRequestId</a> - The ID of the Spot instance
--   request.</li>
--   <li><a>sirType</a> - The Spot instance request type.</li>
--   <li><a>sirValidFrom</a> - The start date of the request, in UTC format
--   (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i>
--   :<i>SS</i> Z). The request becomes active at this date and time.</li>
--   <li><a>sirCreateTime</a> - The date and time when the Spot instance
--   request was created, in UTC format (for example, <i>YYYY</i>
--   -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).</li>
--   <li><a>sirTags</a> - Any tags assigned to the resource.</li>
--   </ul>
spotInstanceRequest :: SpotInstanceRequest

-- | The instance ID, if an instance has been launched to fulfill the Spot
--   instance request.
sirInstanceId :: Lens' SpotInstanceRequest (Maybe Text)

-- | The status code and status message describing the Spot instance
--   request.
sirStatus :: Lens' SpotInstanceRequest (Maybe SpotInstanceStatus)

-- | The state of the Spot instance request. Spot bid status information
--   can help you track your Spot instance requests. For more information,
--   see <a>Spot Bid Status</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .
sirState :: Lens' SpotInstanceRequest (Maybe SpotInstanceState)

-- | If you specified a duration and your Spot instance request was
--   fulfilled, this is the fixed hourly price in effect for the Spot
--   instance while it runs.
sirActualBlockHourlyPrice :: Lens' SpotInstanceRequest (Maybe Text)

-- | The duration for the Spot instance, in minutes.
sirBlockDurationMinutes :: Lens' SpotInstanceRequest (Maybe Int)

-- | The product description associated with the Spot instance.
sirProductDescription :: Lens' SpotInstanceRequest (Maybe RIProductDescription)

-- | The maximum hourly price (bid) for the Spot instance launched to
--   fulfill the request.
sirSpotPrice :: Lens' SpotInstanceRequest (Maybe Text)

-- | Additional information for launching instances.
sirLaunchSpecification :: Lens' SpotInstanceRequest (Maybe LaunchSpecification)

-- | The Availability Zone group. If you specify the same Availability Zone
--   group for all Spot instance requests, all Spot instances are launched
--   in the same Availability Zone.
sirAvailabilityZoneGroup :: Lens' SpotInstanceRequest (Maybe Text)

-- | The Availability Zone in which the bid is launched.
sirLaunchedAvailabilityZone :: Lens' SpotInstanceRequest (Maybe Text)

-- | The end date of the request, in UTC format (for example, <i>YYYY</i>
--   -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z). If this is
--   a one-time request, it remains active until all instances launch, the
--   request is canceled, or this date is reached. If the request is
--   persistent, it remains active until it is canceled or this date is
--   reached.
sirValidUntil :: Lens' SpotInstanceRequest (Maybe UTCTime)

-- | The instance launch group. Launch groups are Spot instances that
--   launch together and terminate together.
sirLaunchGroup :: Lens' SpotInstanceRequest (Maybe Text)

-- | The fault codes for the Spot instance request, if any.
sirFault :: Lens' SpotInstanceRequest (Maybe SpotInstanceStateFault)

-- | The ID of the Spot instance request.
sirSpotInstanceRequestId :: Lens' SpotInstanceRequest (Maybe Text)

-- | The Spot instance request type.
sirType :: Lens' SpotInstanceRequest (Maybe SpotInstanceType)

-- | The start date of the request, in UTC format (for example, <i>YYYY</i>
--   -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z). The request
--   becomes active at this date and time.
sirValidFrom :: Lens' SpotInstanceRequest (Maybe UTCTime)

-- | The date and time when the Spot instance request was created, in UTC
--   format (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i>
--   :<i>MM</i> :<i>SS</i> Z).
sirCreateTime :: Lens' SpotInstanceRequest (Maybe UTCTime)

-- | Any tags assigned to the resource.
sirTags :: Lens' SpotInstanceRequest [Tag]

-- | Describes a Spot instance state change.
--   
--   <i>See:</i> <a>spotInstanceStateFault</a> smart constructor.
data SpotInstanceStateFault

-- | Creates a value of <a>SpotInstanceStateFault</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sisfCode</a> - The reason code for the Spot instance state
--   change.</li>
--   <li><a>sisfMessage</a> - The message for the Spot instance state
--   change.</li>
--   </ul>
spotInstanceStateFault :: SpotInstanceStateFault

-- | The reason code for the Spot instance state change.
sisfCode :: Lens' SpotInstanceStateFault (Maybe Text)

-- | The message for the Spot instance state change.
sisfMessage :: Lens' SpotInstanceStateFault (Maybe Text)

-- | Describes the status of a Spot instance request.
--   
--   <i>See:</i> <a>spotInstanceStatus</a> smart constructor.
data SpotInstanceStatus

-- | Creates a value of <a>SpotInstanceStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sisUpdateTime</a> - The date and time of the most recent status
--   update, in UTC format (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i>
--   T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).</li>
--   <li><a>sisCode</a> - The status code. For a list of status codes, see
--   <a>Spot Bid Status Codes</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .</li>
--   <li><a>sisMessage</a> - The description for the status code.</li>
--   </ul>
spotInstanceStatus :: SpotInstanceStatus

-- | The date and time of the most recent status update, in UTC format (for
--   example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i>
--   :<i>SS</i> Z).
sisUpdateTime :: Lens' SpotInstanceStatus (Maybe UTCTime)

-- | The status code. For a list of status codes, see <a>Spot Bid Status
--   Codes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
sisCode :: Lens' SpotInstanceStatus (Maybe Text)

-- | The description for the status code.
sisMessage :: Lens' SpotInstanceStatus (Maybe Text)

-- | Describes Spot instance placement.
--   
--   <i>See:</i> <a>spotPlacement</a> smart constructor.
data SpotPlacement

-- | Creates a value of <a>SpotPlacement</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spAvailabilityZone</a> - The Availability Zone. [Spot fleet
--   only] To specify multiple Availability Zones, separate them using
--   commas; for example, "us-west-2a, us-west-2b".</li>
--   <li><a>spGroupName</a> - The name of the placement group (for cluster
--   instances).</li>
--   </ul>
spotPlacement :: SpotPlacement

-- | The Availability Zone. [Spot fleet only] To specify multiple
--   Availability Zones, separate them using commas; for example,
--   "us-west-2a, us-west-2b".
spAvailabilityZone :: Lens' SpotPlacement (Maybe Text)

-- | The name of the placement group (for cluster instances).
spGroupName :: Lens' SpotPlacement (Maybe Text)

-- | Describes the maximum hourly price (bid) for any Spot instance
--   launched to fulfill the request.
--   
--   <i>See:</i> <a>spotPrice</a> smart constructor.
data SpotPrice

-- | Creates a value of <a>SpotPrice</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sProductDescription</a> - A general description of the
--   AMI.</li>
--   <li><a>sSpotPrice</a> - The maximum price (bid) that you are willing
--   to pay for a Spot instance.</li>
--   <li><a>sInstanceType</a> - The instance type. Note that T2 and HS1
--   instance types are not supported.</li>
--   <li><a>sAvailabilityZone</a> - The Availability Zone.</li>
--   <li><a>sTimestamp</a> - The date and time the request was created, in
--   UTC format (for example, <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i>
--   :<i>MM</i> :<i>SS</i> Z).</li>
--   </ul>
spotPrice :: SpotPrice

-- | A general description of the AMI.
sProductDescription :: Lens' SpotPrice (Maybe RIProductDescription)

-- | The maximum price (bid) that you are willing to pay for a Spot
--   instance.
sSpotPrice :: Lens' SpotPrice (Maybe Text)

-- | The instance type. Note that T2 and HS1 instance types are not
--   supported.
sInstanceType :: Lens' SpotPrice (Maybe InstanceType)

-- | The Availability Zone.
sAvailabilityZone :: Lens' SpotPrice (Maybe Text)

-- | The date and time the request was created, in UTC format (for example,
--   <i>YYYY</i> -<i>MM</i> -<i>DD</i> T<i>HH</i> :<i>MM</i> :<i>SS</i> Z).
sTimestamp :: Lens' SpotPrice (Maybe UTCTime)

-- | Describes a stale rule in a security group.
--   
--   <i>See:</i> <a>staleIPPermission</a> smart constructor.
data StaleIPPermission

-- | Creates a value of <a>StaleIPPermission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sipFromPort</a> - The start of the port range for the TCP and
--   UDP protocols, or an ICMP type number. A value of <tt>-1</tt>
--   indicates all ICMP types.</li>
--   <li><a>sipUserIdGroupPairs</a> - One or more security group pairs.
--   Returns the ID of the referenced security group and VPC, and the ID
--   and status of the VPC peering connection.</li>
--   <li><a>sipPrefixListIds</a> - One or more prefix list IDs for an AWS
--   service. Not applicable for stale security group rules.</li>
--   <li><a>sipIPProtocol</a> - The IP protocol name (for <tt>tcp</tt> ,
--   <tt>udp</tt> , and <tt>icmp</tt> ) or number (see <a>Protocol
--   Numbers)</a> .</li>
--   <li><a>sipToPort</a> - The end of the port range for the TCP and UDP
--   protocols, or an ICMP type number. A value of <tt>-1</tt> indicates
--   all ICMP types.</li>
--   <li><a>sipIPRanges</a> - One or more IP ranges. Not applicable for
--   stale security group rules.</li>
--   </ul>
staleIPPermission :: StaleIPPermission

-- | The start of the port range for the TCP and UDP protocols, or an ICMP
--   type number. A value of <tt>-1</tt> indicates all ICMP types.
sipFromPort :: Lens' StaleIPPermission (Maybe Int)

-- | One or more security group pairs. Returns the ID of the referenced
--   security group and VPC, and the ID and status of the VPC peering
--   connection.
sipUserIdGroupPairs :: Lens' StaleIPPermission [UserIdGroupPair]

-- | One or more prefix list IDs for an AWS service. Not applicable for
--   stale security group rules.
sipPrefixListIds :: Lens' StaleIPPermission [Text]

-- | The IP protocol name (for <tt>tcp</tt> , <tt>udp</tt> , and
--   <tt>icmp</tt> ) or number (see <a>Protocol Numbers)</a> .
sipIPProtocol :: Lens' StaleIPPermission (Maybe Text)

-- | The end of the port range for the TCP and UDP protocols, or an ICMP
--   type number. A value of <tt>-1</tt> indicates all ICMP types.
sipToPort :: Lens' StaleIPPermission (Maybe Int)

-- | One or more IP ranges. Not applicable for stale security group rules.
sipIPRanges :: Lens' StaleIPPermission [Text]

-- | Describes a stale security group (a security group that contains stale
--   rules).
--   
--   <i>See:</i> <a>staleSecurityGroup</a> smart constructor.
data StaleSecurityGroup

-- | Creates a value of <a>StaleSecurityGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssgVPCId</a> - The ID of the VPC for the security group.</li>
--   <li><a>ssgGroupName</a> - The name of the security group.</li>
--   <li><a>ssgStaleIPPermissionsEgress</a> - Information about the stale
--   outbound rules in the security group.</li>
--   <li><a>ssgStaleIPPermissions</a> - Information about the stale inbound
--   rules in the security group.</li>
--   <li><a>ssgDescription</a> - The description of the security
--   group.</li>
--   <li><a>ssgGroupId</a> - The ID of the security group.</li>
--   </ul>
staleSecurityGroup :: Text -> StaleSecurityGroup

-- | The ID of the VPC for the security group.
ssgVPCId :: Lens' StaleSecurityGroup (Maybe Text)

-- | The name of the security group.
ssgGroupName :: Lens' StaleSecurityGroup (Maybe Text)

-- | Information about the stale outbound rules in the security group.
ssgStaleIPPermissionsEgress :: Lens' StaleSecurityGroup [StaleIPPermission]

-- | Information about the stale inbound rules in the security group.
ssgStaleIPPermissions :: Lens' StaleSecurityGroup [StaleIPPermission]

-- | The description of the security group.
ssgDescription :: Lens' StaleSecurityGroup (Maybe Text)

-- | The ID of the security group.
ssgGroupId :: Lens' StaleSecurityGroup Text

-- | Describes a state change.
--   
--   <i>See:</i> <a>stateReason</a> smart constructor.
data StateReason

-- | Creates a value of <a>StateReason</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>srCode</a> - The reason code for the state change.</li>
--   <li><a>srMessage</a> - The message for the state change. *
--   <tt>Server.SpotInstanceTermination</tt> : A Spot instance was
--   terminated due to an increase in the market price. *
--   <tt>Server.InternalError</tt> : An internal error occurred during
--   instance launch, resulting in termination. *
--   <tt>Server.InsufficientInstanceCapacity</tt> : There was insufficient
--   instance capacity to satisfy the launch request. *
--   <tt>Client.InternalError</tt> : A client error caused the instance to
--   terminate on launch. * <tt>Client.InstanceInitiatedShutdown</tt> : The
--   instance was shut down using the <tt>shutdown -h</tt> command from the
--   instance. * <tt>Client.UserInitiatedShutdown</tt> : The instance was
--   shut down using the Amazon EC2 API. *
--   <tt>Client.VolumeLimitExceeded</tt> : The limit on the number of EBS
--   volumes or total storage was exceeded. Decrease usage or request an
--   increase in your limits. * <tt>Client.InvalidSnapshot.NotFound</tt> :
--   The specified snapshot was not found.</li>
--   </ul>
stateReason :: StateReason

-- | The reason code for the state change.
srCode :: Lens' StateReason (Maybe Text)

-- | The message for the state change. *
--   <tt>Server.SpotInstanceTermination</tt> : A Spot instance was
--   terminated due to an increase in the market price. *
--   <tt>Server.InternalError</tt> : An internal error occurred during
--   instance launch, resulting in termination. *
--   <tt>Server.InsufficientInstanceCapacity</tt> : There was insufficient
--   instance capacity to satisfy the launch request. *
--   <tt>Client.InternalError</tt> : A client error caused the instance to
--   terminate on launch. * <tt>Client.InstanceInitiatedShutdown</tt> : The
--   instance was shut down using the <tt>shutdown -h</tt> command from the
--   instance. * <tt>Client.UserInitiatedShutdown</tt> : The instance was
--   shut down using the Amazon EC2 API. *
--   <tt>Client.VolumeLimitExceeded</tt> : The limit on the number of EBS
--   volumes or total storage was exceeded. Decrease usage or request an
--   increase in your limits. * <tt>Client.InvalidSnapshot.NotFound</tt> :
--   The specified snapshot was not found.
srMessage :: Lens' StateReason (Maybe Text)

-- | Describes the storage location for an instance store-backed AMI.
--   
--   <i>See:</i> <a>storage</a> smart constructor.
data Storage

-- | Creates a value of <a>Storage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sS3</a> - An Amazon S3 storage location.</li>
--   </ul>
storage :: Storage

-- | An Amazon S3 storage location.
sS3 :: Lens' Storage (Maybe S3Storage)

-- | Describes a subnet.
--   
--   <i>See:</i> <a>subnet</a> smart constructor.
data Subnet

-- | Creates a value of <a>Subnet</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>subIPv6CidrBlockAssociationSet</a> - Information about the IPv6
--   CIDR blocks associated with the subnet.</li>
--   <li><a>subAssignIPv6AddressOnCreation</a> - Indicates whether a
--   network interface created in this subnet (including a network
--   interface created by <tt>RunInstances</tt> ) receives an IPv6
--   address.</li>
--   <li><a>subMapPublicIPOnLaunch</a> - Indicates whether instances
--   launched in this subnet receive a public IPv4 address.</li>
--   <li><a>subDefaultForAz</a> - Indicates whether this is the default
--   subnet for the Availability Zone.</li>
--   <li><a>subTags</a> - Any tags assigned to the subnet.</li>
--   <li><a>subAvailabilityZone</a> - The Availability Zone of the
--   subnet.</li>
--   <li><a>subAvailableIPAddressCount</a> - The number of unused private
--   IPv4 addresses in the subnet. Note that the IPv4 addresses for any
--   stopped instances are considered unavailable.</li>
--   <li><a>subCidrBlock</a> - The IPv4 CIDR block assigned to the
--   subnet.</li>
--   <li><a>subState</a> - The current state of the subnet.</li>
--   <li><a>subSubnetId</a> - The ID of the subnet.</li>
--   <li><a>subVPCId</a> - The ID of the VPC the subnet is in.</li>
--   </ul>
subnet :: Text -> Int -> Text -> SubnetState -> Text -> Text -> Subnet

-- | Information about the IPv6 CIDR blocks associated with the subnet.
subIPv6CidrBlockAssociationSet :: Lens' Subnet [SubnetIPv6CidrBlockAssociation]

-- | Indicates whether a network interface created in this subnet
--   (including a network interface created by <tt>RunInstances</tt> )
--   receives an IPv6 address.
subAssignIPv6AddressOnCreation :: Lens' Subnet (Maybe Bool)

-- | Indicates whether instances launched in this subnet receive a public
--   IPv4 address.
subMapPublicIPOnLaunch :: Lens' Subnet (Maybe Bool)

-- | Indicates whether this is the default subnet for the Availability
--   Zone.
subDefaultForAz :: Lens' Subnet (Maybe Bool)

-- | Any tags assigned to the subnet.
subTags :: Lens' Subnet [Tag]

-- | The Availability Zone of the subnet.
subAvailabilityZone :: Lens' Subnet Text

-- | The number of unused private IPv4 addresses in the subnet. Note that
--   the IPv4 addresses for any stopped instances are considered
--   unavailable.
subAvailableIPAddressCount :: Lens' Subnet Int

-- | The IPv4 CIDR block assigned to the subnet.
subCidrBlock :: Lens' Subnet Text

-- | The current state of the subnet.
subState :: Lens' Subnet SubnetState

-- | The ID of the subnet.
subSubnetId :: Lens' Subnet Text

-- | The ID of the VPC the subnet is in.
subVPCId :: Lens' Subnet Text

-- | Describes the state of a CIDR block.
--   
--   <i>See:</i> <a>subnetCidrBlockState</a> smart constructor.
data SubnetCidrBlockState

-- | Creates a value of <a>SubnetCidrBlockState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scbsState</a> - The state of a CIDR block.</li>
--   <li><a>scbsStatusMessage</a> - A message about the status of the CIDR
--   block, if applicable.</li>
--   </ul>
subnetCidrBlockState :: SubnetCidrBlockState

-- | The state of a CIDR block.
scbsState :: Lens' SubnetCidrBlockState (Maybe SubnetCidrBlockStateCode)

-- | A message about the status of the CIDR block, if applicable.
scbsStatusMessage :: Lens' SubnetCidrBlockState (Maybe Text)

-- | Describes an IPv6 CIDR block associated with a subnet.
--   
--   <i>See:</i> <a>subnetIPv6CidrBlockAssociation</a> smart constructor.
data SubnetIPv6CidrBlockAssociation

-- | Creates a value of <a>SubnetIPv6CidrBlockAssociation</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sicbaAssociationId</a> - The association ID for the CIDR
--   block.</li>
--   <li><a>sicbaIPv6CidrBlock</a> - The IPv6 CIDR block.</li>
--   <li><a>sicbaIPv6CidrBlockState</a> - Information about the state of
--   the CIDR block.</li>
--   </ul>
subnetIPv6CidrBlockAssociation :: SubnetIPv6CidrBlockAssociation

-- | The association ID for the CIDR block.
sicbaAssociationId :: Lens' SubnetIPv6CidrBlockAssociation (Maybe Text)

-- | The IPv6 CIDR block.
sicbaIPv6CidrBlock :: Lens' SubnetIPv6CidrBlockAssociation (Maybe Text)

-- | Information about the state of the CIDR block.
sicbaIPv6CidrBlockState :: Lens' SubnetIPv6CidrBlockAssociation (Maybe SubnetCidrBlockState)

-- | Describes a tag.
--   
--   <i>See:</i> <a>tag</a> smart constructor.
data Tag

-- | Creates a value of <a>Tag</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tagKey</a> - The key of the tag. Constraints: Tag keys are
--   case-sensitive and accept a maximum of 127 Unicode characters. May not
--   begin with <tt>aws:</tt></li>
--   <li><a>tagValue</a> - The value of the tag. Constraints: Tag values
--   are case-sensitive and accept a maximum of 255 Unicode
--   characters.</li>
--   </ul>
tag :: Text -> Text -> Tag

-- | The key of the tag. Constraints: Tag keys are case-sensitive and
--   accept a maximum of 127 Unicode characters. May not begin with
--   <tt>aws:</tt>
tagKey :: Lens' Tag Text

-- | The value of the tag. Constraints: Tag values are case-sensitive and
--   accept a maximum of 255 Unicode characters.
tagValue :: Lens' Tag Text

-- | Describes a tag.
--   
--   <i>See:</i> <a>tagDescription</a> smart constructor.
data TagDescription

-- | Creates a value of <a>TagDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdResourceId</a> - The ID of the resource. For example,
--   <tt>ami-1a2b3c4d</tt> .</li>
--   <li><a>tdResourceType</a> - The resource type.</li>
--   <li><a>tdKey</a> - The tag key.</li>
--   <li><a>tdValue</a> - The tag value.</li>
--   </ul>
tagDescription :: Text -> ResourceType -> Text -> Text -> TagDescription

-- | The ID of the resource. For example, <tt>ami-1a2b3c4d</tt> .
tdResourceId :: Lens' TagDescription Text

-- | The resource type.
tdResourceType :: Lens' TagDescription ResourceType

-- | The tag key.
tdKey :: Lens' TagDescription Text

-- | The tag value.
tdValue :: Lens' TagDescription Text

-- | Information about the Convertible Reserved Instance offering.
--   
--   <i>See:</i> <a>targetConfiguration</a> smart constructor.
data TargetConfiguration

-- | Creates a value of <a>TargetConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcInstanceCount</a> - The number of instances the Convertible
--   Reserved Instance offering can be applied to. This parameter is
--   reserved and cannot be specified in a request</li>
--   <li><a>tcOfferingId</a> - The ID of the Convertible Reserved Instance
--   offering.</li>
--   </ul>
targetConfiguration :: TargetConfiguration

-- | The number of instances the Convertible Reserved Instance offering can
--   be applied to. This parameter is reserved and cannot be specified in a
--   request
tcInstanceCount :: Lens' TargetConfiguration (Maybe Int)

-- | The ID of the Convertible Reserved Instance offering.
tcOfferingId :: Lens' TargetConfiguration (Maybe Text)

-- | Details about the target configuration.
--   
--   <i>See:</i> <a>targetConfigurationRequest</a> smart constructor.
data TargetConfigurationRequest

-- | Creates a value of <a>TargetConfigurationRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcrInstanceCount</a> - The number of instances the Covertible
--   Reserved Instance offering can be applied to. This parameter is
--   reserved and cannot be specified in a request</li>
--   <li><a>tcrOfferingId</a> - The Convertible Reserved Instance offering
--   ID.</li>
--   </ul>
targetConfigurationRequest :: Text -> TargetConfigurationRequest

-- | The number of instances the Covertible Reserved Instance offering can
--   be applied to. This parameter is reserved and cannot be specified in a
--   request
tcrInstanceCount :: Lens' TargetConfigurationRequest (Maybe Int)

-- | The Convertible Reserved Instance offering ID.
tcrOfferingId :: Lens' TargetConfigurationRequest Text

-- | The total value of the new Convertible Reserved Instances.
--   
--   <i>See:</i> <a>targetReservationValue</a> smart constructor.
data TargetReservationValue

-- | Creates a value of <a>TargetReservationValue</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>trvReservationValue</a> - The total value of the Convertible
--   Reserved Instances that make up the exchange. This is the sum of the
--   list value, remaining upfront price, and additional upfront cost of
--   the exchange.</li>
--   <li><a>trvTargetConfiguration</a> - The configuration of the
--   Convertible Reserved Instances that make up the exchange.</li>
--   </ul>
targetReservationValue :: TargetReservationValue

-- | The total value of the Convertible Reserved Instances that make up the
--   exchange. This is the sum of the list value, remaining upfront price,
--   and additional upfront cost of the exchange.
trvReservationValue :: Lens' TargetReservationValue (Maybe ReservationValue)

-- | The configuration of the Convertible Reserved Instances that make up
--   the exchange.
trvTargetConfiguration :: Lens' TargetReservationValue (Maybe TargetConfiguration)

-- | Information about items that were not successfully processed in a
--   batch call.
--   
--   <i>See:</i> <a>unsuccessfulItem</a> smart constructor.
data UnsuccessfulItem

-- | Creates a value of <a>UnsuccessfulItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uiResourceId</a> - The ID of the resource.</li>
--   <li><a>uiError</a> - Information about the error.</li>
--   </ul>
unsuccessfulItem :: UnsuccessfulItemError -> UnsuccessfulItem

-- | The ID of the resource.
uiResourceId :: Lens' UnsuccessfulItem (Maybe Text)

-- | Information about the error.
uiError :: Lens' UnsuccessfulItem UnsuccessfulItemError

-- | Information about the error that occurred. For more information about
--   errors, see <a>Error Codes</a> .
--   
--   <i>See:</i> <a>unsuccessfulItemError</a> smart constructor.
data UnsuccessfulItemError

-- | Creates a value of <a>UnsuccessfulItemError</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uieCode</a> - The error code.</li>
--   <li><a>uieMessage</a> - The error message accompanying the error
--   code.</li>
--   </ul>
unsuccessfulItemError :: Text -> Text -> UnsuccessfulItemError

-- | The error code.
uieCode :: Lens' UnsuccessfulItemError Text

-- | The error message accompanying the error code.
uieMessage :: Lens' UnsuccessfulItemError Text

-- | Describes the S3 bucket for the disk image.
--   
--   <i>See:</i> <a>userBucket</a> smart constructor.
data UserBucket

-- | Creates a value of <a>UserBucket</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ubS3Key</a> - The file name of the disk image.</li>
--   <li><a>ubS3Bucket</a> - The name of the S3 bucket where the disk image
--   is located.</li>
--   </ul>
userBucket :: UserBucket

-- | The file name of the disk image.
ubS3Key :: Lens' UserBucket (Maybe Text)

-- | The name of the S3 bucket where the disk image is located.
ubS3Bucket :: Lens' UserBucket (Maybe Text)

-- | Describes the S3 bucket for the disk image.
--   
--   <i>See:</i> <a>userBucketDetails</a> smart constructor.
data UserBucketDetails

-- | Creates a value of <a>UserBucketDetails</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ubdS3Key</a> - The file name of the disk image.</li>
--   <li><a>ubdS3Bucket</a> - The S3 bucket from which the disk image was
--   created.</li>
--   </ul>
userBucketDetails :: UserBucketDetails

-- | The file name of the disk image.
ubdS3Key :: Lens' UserBucketDetails (Maybe Text)

-- | The S3 bucket from which the disk image was created.
ubdS3Bucket :: Lens' UserBucketDetails (Maybe Text)

-- | Describes the user data for an instance.
--   
--   <i>See:</i> <a>userData</a> smart constructor.
data UserData

-- | Creates a value of <a>UserData</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udData</a> - The user data. If you are using an AWS SDK or
--   command line tool, Base64-encoding is performed for you, and you can
--   load the text from a file. Otherwise, you must provide Base64-encoded
--   text.</li>
--   </ul>
userData :: UserData

-- | The user data. If you are using an AWS SDK or command line tool,
--   Base64-encoding is performed for you, and you can load the text from a
--   file. Otherwise, you must provide Base64-encoded text.
udData :: Lens' UserData (Maybe Text)

-- | Describes a security group and AWS account ID pair.
--   
--   <i>See:</i> <a>userIdGroupPair</a> smart constructor.
data UserIdGroupPair

-- | Creates a value of <a>UserIdGroupPair</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uigpVPCPeeringConnectionId</a> - The ID of the VPC peering
--   connection, if applicable.</li>
--   <li><a>uigpVPCId</a> - The ID of the VPC for the referenced security
--   group, if applicable.</li>
--   <li><a>uigpUserId</a> - The ID of an AWS account. For a referenced
--   security group in another VPC, the account ID of the referenced
--   security group is returned. [EC2-Classic] Required when adding or
--   removing rules that reference a security group in another AWS
--   account.</li>
--   <li><a>uigpGroupId</a> - The ID of the security group.</li>
--   <li><a>uigpGroupName</a> - The name of the security group. In a
--   request, use this parameter for a security group in EC2-Classic or a
--   default VPC only. For a security group in a nondefault VPC, use the
--   security group ID.</li>
--   <li><a>uigpPeeringStatus</a> - The status of a VPC peering connection,
--   if applicable.</li>
--   </ul>
userIdGroupPair :: UserIdGroupPair

-- | The ID of the VPC peering connection, if applicable.
uigpVPCPeeringConnectionId :: Lens' UserIdGroupPair (Maybe Text)

-- | The ID of the VPC for the referenced security group, if applicable.
uigpVPCId :: Lens' UserIdGroupPair (Maybe Text)

-- | The ID of an AWS account. For a referenced security group in another
--   VPC, the account ID of the referenced security group is returned.
--   [EC2-Classic] Required when adding or removing rules that reference a
--   security group in another AWS account.
uigpUserId :: Lens' UserIdGroupPair (Maybe Text)

-- | The ID of the security group.
uigpGroupId :: Lens' UserIdGroupPair (Maybe Text)

-- | The name of the security group. In a request, use this parameter for a
--   security group in EC2-Classic or a default VPC only. For a security
--   group in a nondefault VPC, use the security group ID.
uigpGroupName :: Lens' UserIdGroupPair (Maybe Text)

-- | The status of a VPC peering connection, if applicable.
uigpPeeringStatus :: Lens' UserIdGroupPair (Maybe Text)

-- | Describes telemetry for a VPN tunnel.
--   
--   <i>See:</i> <a>vgwTelemetry</a> smart constructor.
data VGWTelemetry

-- | Creates a value of <a>VGWTelemetry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vtStatus</a> - The status of the VPN tunnel.</li>
--   <li><a>vtOutsideIPAddress</a> - The Internet-routable IP address of
--   the virtual private gateway's outside interface.</li>
--   <li><a>vtLastStatusChange</a> - The date and time of the last change
--   in status.</li>
--   <li><a>vtAcceptedRouteCount</a> - The number of accepted routes.</li>
--   <li><a>vtStatusMessage</a> - If an error occurs, a description of the
--   error.</li>
--   </ul>
vgwTelemetry :: VGWTelemetry

-- | The status of the VPN tunnel.
vtStatus :: Lens' VGWTelemetry (Maybe TelemetryStatus)

-- | The Internet-routable IP address of the virtual private gateway's
--   outside interface.
vtOutsideIPAddress :: Lens' VGWTelemetry (Maybe Text)

-- | The date and time of the last change in status.
vtLastStatusChange :: Lens' VGWTelemetry (Maybe UTCTime)

-- | The number of accepted routes.
vtAcceptedRouteCount :: Lens' VGWTelemetry (Maybe Int)

-- | If an error occurs, a description of the error.
vtStatusMessage :: Lens' VGWTelemetry (Maybe Text)

-- | Describes a VPC.
--   
--   <i>See:</i> <a>vpc</a> smart constructor.
data VPC

-- | Creates a value of <a>VPC</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcIPv6CidrBlockAssociationSet</a> - Information about the IPv6
--   CIDR blocks associated with the VPC.</li>
--   <li><a>vpcTags</a> - Any tags assigned to the VPC.</li>
--   <li><a>vpcIsDefault</a> - Indicates whether the VPC is the default
--   VPC.</li>
--   <li><a>vpcCidrBlock</a> - The IPv4 CIDR block for the VPC.</li>
--   <li><a>vpcDHCPOptionsId</a> - The ID of the set of DHCP options you've
--   associated with the VPC (or <tt>default</tt> if the default options
--   are associated with the VPC).</li>
--   <li><a>vpcInstanceTenancy</a> - The allowed tenancy of instances
--   launched into the VPC.</li>
--   <li><a>vpcState</a> - The current state of the VPC.</li>
--   <li><a>vpcVPCId</a> - The ID of the VPC.</li>
--   </ul>
vpc :: Text -> Text -> Tenancy -> VPCState -> Text -> VPC

-- | Information about the IPv6 CIDR blocks associated with the VPC.
vpcIPv6CidrBlockAssociationSet :: Lens' VPC [VPCIPv6CidrBlockAssociation]

-- | Any tags assigned to the VPC.
vpcTags :: Lens' VPC [Tag]

-- | Indicates whether the VPC is the default VPC.
vpcIsDefault :: Lens' VPC (Maybe Bool)

-- | The IPv4 CIDR block for the VPC.
vpcCidrBlock :: Lens' VPC Text

-- | The ID of the set of DHCP options you've associated with the VPC (or
--   <tt>default</tt> if the default options are associated with the VPC).
vpcDHCPOptionsId :: Lens' VPC Text

-- | The allowed tenancy of instances launched into the VPC.
vpcInstanceTenancy :: Lens' VPC Tenancy

-- | The current state of the VPC.
vpcState :: Lens' VPC VPCState

-- | The ID of the VPC.
vpcVPCId :: Lens' VPC Text

-- | Describes an attachment between a virtual private gateway and a VPC.
--   
--   <i>See:</i> <a>vpcAttachment</a> smart constructor.
data VPCAttachment

-- | Creates a value of <a>VPCAttachment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vaState</a> - The current state of the attachment.</li>
--   <li><a>vaVPCId</a> - The ID of the VPC.</li>
--   </ul>
vpcAttachment :: VPCAttachment

-- | The current state of the attachment.
vaState :: Lens' VPCAttachment (Maybe AttachmentStatus)

-- | The ID of the VPC.
vaVPCId :: Lens' VPCAttachment (Maybe Text)

-- | Describes the state of a CIDR block.
--   
--   <i>See:</i> <a>vpcCidrBlockState</a> smart constructor.
data VPCCidrBlockState

-- | Creates a value of <a>VPCCidrBlockState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcbsState</a> - The state of the CIDR block.</li>
--   <li><a>vcbsStatusMessage</a> - A message about the status of the CIDR
--   block, if applicable.</li>
--   </ul>
vpcCidrBlockState :: VPCCidrBlockState

-- | The state of the CIDR block.
vcbsState :: Lens' VPCCidrBlockState (Maybe VPCCidrBlockStateCode)

-- | A message about the status of the CIDR block, if applicable.
vcbsStatusMessage :: Lens' VPCCidrBlockState (Maybe Text)

-- | Describes whether a VPC is enabled for ClassicLink.
--   
--   <i>See:</i> <a>vpcClassicLink</a> smart constructor.
data VPCClassicLink

-- | Creates a value of <a>VPCClassicLink</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vclVPCId</a> - The ID of the VPC.</li>
--   <li><a>vclTags</a> - Any tags assigned to the VPC.</li>
--   <li><a>vclClassicLinkEnabled</a> - Indicates whether the VPC is
--   enabled for ClassicLink.</li>
--   </ul>
vpcClassicLink :: VPCClassicLink

-- | The ID of the VPC.
vclVPCId :: Lens' VPCClassicLink (Maybe Text)

-- | Any tags assigned to the VPC.
vclTags :: Lens' VPCClassicLink [Tag]

-- | Indicates whether the VPC is enabled for ClassicLink.
vclClassicLinkEnabled :: Lens' VPCClassicLink (Maybe Bool)

-- | Describes a VPC endpoint.
--   
--   <i>See:</i> <a>vpcEndpoint</a> smart constructor.
data VPCEndpoint

-- | Creates a value of <a>VPCEndpoint</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>veState</a> - The state of the VPC endpoint.</li>
--   <li><a>vePolicyDocument</a> - The policy document associated with the
--   endpoint.</li>
--   <li><a>veVPCId</a> - The ID of the VPC to which the endpoint is
--   associated.</li>
--   <li><a>veCreationTimestamp</a> - The date and time the VPC endpoint
--   was created.</li>
--   <li><a>veServiceName</a> - The name of the AWS service to which the
--   endpoint is associated.</li>
--   <li><a>veVPCEndpointId</a> - The ID of the VPC endpoint.</li>
--   <li><a>veRouteTableIds</a> - One or more route tables associated with
--   the endpoint.</li>
--   </ul>
vpcEndpoint :: VPCEndpoint

-- | The state of the VPC endpoint.
veState :: Lens' VPCEndpoint (Maybe State)

-- | The policy document associated with the endpoint.
vePolicyDocument :: Lens' VPCEndpoint (Maybe Text)

-- | The ID of the VPC to which the endpoint is associated.
veVPCId :: Lens' VPCEndpoint (Maybe Text)

-- | The date and time the VPC endpoint was created.
veCreationTimestamp :: Lens' VPCEndpoint (Maybe UTCTime)

-- | The name of the AWS service to which the endpoint is associated.
veServiceName :: Lens' VPCEndpoint (Maybe Text)

-- | The ID of the VPC endpoint.
veVPCEndpointId :: Lens' VPCEndpoint (Maybe Text)

-- | One or more route tables associated with the endpoint.
veRouteTableIds :: Lens' VPCEndpoint [Text]

-- | Describes an IPv6 CIDR block associated with a VPC.
--   
--   <i>See:</i> <a>vpcIPv6CidrBlockAssociation</a> smart constructor.
data VPCIPv6CidrBlockAssociation

-- | Creates a value of <a>VPCIPv6CidrBlockAssociation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vicbaAssociationId</a> - The association ID for the IPv6 CIDR
--   block.</li>
--   <li><a>vicbaIPv6CidrBlock</a> - The IPv6 CIDR block.</li>
--   <li><a>vicbaIPv6CidrBlockState</a> - Information about the state of
--   the CIDR block.</li>
--   </ul>
vpcIPv6CidrBlockAssociation :: VPCIPv6CidrBlockAssociation

-- | The association ID for the IPv6 CIDR block.
vicbaAssociationId :: Lens' VPCIPv6CidrBlockAssociation (Maybe Text)

-- | The IPv6 CIDR block.
vicbaIPv6CidrBlock :: Lens' VPCIPv6CidrBlockAssociation (Maybe Text)

-- | Information about the state of the CIDR block.
vicbaIPv6CidrBlockState :: Lens' VPCIPv6CidrBlockAssociation (Maybe VPCCidrBlockState)

-- | Describes a VPC peering connection.
--   
--   <i>See:</i> <a>vpcPeeringConnection</a> smart constructor.
data VPCPeeringConnection

-- | Creates a value of <a>VPCPeeringConnection</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcpcVPCPeeringConnectionId</a> - The ID of the VPC peering
--   connection.</li>
--   <li><a>vpcpcStatus</a> - The status of the VPC peering
--   connection.</li>
--   <li><a>vpcpcAccepterVPCInfo</a> - Information about the accepter VPC.
--   CIDR block information is not returned when creating a VPC peering
--   connection, or when describing a VPC peering connection that's in the
--   <tt>initiating-request</tt> or <tt>pending-acceptance</tt> state.</li>
--   <li><a>vpcpcRequesterVPCInfo</a> - Information about the requester
--   VPC.</li>
--   <li><a>vpcpcExpirationTime</a> - The time that an unaccepted VPC
--   peering connection will expire.</li>
--   <li><a>vpcpcTags</a> - Any tags assigned to the resource.</li>
--   </ul>
vpcPeeringConnection :: VPCPeeringConnection

-- | The ID of the VPC peering connection.
vpcpcVPCPeeringConnectionId :: Lens' VPCPeeringConnection (Maybe Text)

-- | The status of the VPC peering connection.
vpcpcStatus :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionStateReason)

-- | Information about the accepter VPC. CIDR block information is not
--   returned when creating a VPC peering connection, or when describing a
--   VPC peering connection that's in the <tt>initiating-request</tt> or
--   <tt>pending-acceptance</tt> state.
vpcpcAccepterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)

-- | Information about the requester VPC.
vpcpcRequesterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)

-- | The time that an unaccepted VPC peering connection will expire.
vpcpcExpirationTime :: Lens' VPCPeeringConnection (Maybe UTCTime)

-- | Any tags assigned to the resource.
vpcpcTags :: Lens' VPCPeeringConnection [Tag]

-- | Describes the VPC peering connection options.
--   
--   <i>See:</i> <a>vpcPeeringConnectionOptionsDescription</a> smart
--   constructor.
data VPCPeeringConnectionOptionsDescription

-- | Creates a value of <a>VPCPeeringConnectionOptionsDescription</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcodAllowEgressFromLocalVPCToRemoteClassicLink</a> - Indicates
--   whether a local VPC can communicate with a ClassicLink connection in
--   the peer VPC over the VPC peering connection.</li>
--   <li><a>vpcodAllowEgressFromLocalClassicLinkToRemoteVPC</a> - Indicates
--   whether a local ClassicLink connection can communicate with the peer
--   VPC over the VPC peering connection.</li>
--   <li><a>vpcodAllowDNSResolutionFromRemoteVPC</a> - Indicates whether a
--   local VPC can resolve public DNS hostnames to private IP addresses
--   when queried from instances in a peer VPC.</li>
--   </ul>
vpcPeeringConnectionOptionsDescription :: VPCPeeringConnectionOptionsDescription

-- | Indicates whether a local VPC can communicate with a ClassicLink
--   connection in the peer VPC over the VPC peering connection.
vpcodAllowEgressFromLocalVPCToRemoteClassicLink :: Lens' VPCPeeringConnectionOptionsDescription (Maybe Bool)

-- | Indicates whether a local ClassicLink connection can communicate with
--   the peer VPC over the VPC peering connection.
vpcodAllowEgressFromLocalClassicLinkToRemoteVPC :: Lens' VPCPeeringConnectionOptionsDescription (Maybe Bool)

-- | Indicates whether a local VPC can resolve public DNS hostnames to
--   private IP addresses when queried from instances in a peer VPC.
vpcodAllowDNSResolutionFromRemoteVPC :: Lens' VPCPeeringConnectionOptionsDescription (Maybe Bool)

-- | Describes the status of a VPC peering connection.
--   
--   <i>See:</i> <a>vpcPeeringConnectionStateReason</a> smart constructor.
data VPCPeeringConnectionStateReason

-- | Creates a value of <a>VPCPeeringConnectionStateReason</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcsrCode</a> - The status of the VPC peering connection.</li>
--   <li><a>vpcsrMessage</a> - A message that provides more information
--   about the status, if applicable.</li>
--   </ul>
vpcPeeringConnectionStateReason :: VPCPeeringConnectionStateReason

-- | The status of the VPC peering connection.
vpcsrCode :: Lens' VPCPeeringConnectionStateReason (Maybe VPCPeeringConnectionStateReasonCode)

-- | A message that provides more information about the status, if
--   applicable.
vpcsrMessage :: Lens' VPCPeeringConnectionStateReason (Maybe Text)

-- | Describes a VPC in a VPC peering connection.
--   
--   <i>See:</i> <a>vpcPeeringConnectionVPCInfo</a> smart constructor.
data VPCPeeringConnectionVPCInfo

-- | Creates a value of <a>VPCPeeringConnectionVPCInfo</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcviVPCId</a> - The ID of the VPC.</li>
--   <li><a>vpcviOwnerId</a> - The AWS account ID of the VPC owner.</li>
--   <li><a>vpcviPeeringOptions</a> - Information about the VPC peering
--   connection options for the accepter or requester VPC.</li>
--   <li><a>vpcviCidrBlock</a> - The IPv4 CIDR block for the VPC.</li>
--   <li><a>vpcviIPv6CidrBlockSet</a> - The IPv6 CIDR block for the
--   VPC.</li>
--   </ul>
vpcPeeringConnectionVPCInfo :: VPCPeeringConnectionVPCInfo

-- | The ID of the VPC.
vpcviVPCId :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)

-- | The AWS account ID of the VPC owner.
vpcviOwnerId :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)

-- | Information about the VPC peering connection options for the accepter
--   or requester VPC.
vpcviPeeringOptions :: Lens' VPCPeeringConnectionVPCInfo (Maybe VPCPeeringConnectionOptionsDescription)

-- | The IPv4 CIDR block for the VPC.
vpcviCidrBlock :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)

-- | The IPv6 CIDR block for the VPC.
vpcviIPv6CidrBlockSet :: Lens' VPCPeeringConnectionVPCInfo [IPv6CidrBlock]

-- | Describes a VPN connection.
--   
--   <i>See:</i> <a>vpnConnection</a> smart constructor.
data VPNConnection

-- | Creates a value of <a>VPNConnection</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcCustomerGatewayConfiguration</a> - The configuration
--   information for the VPN connection's customer gateway (in the native
--   XML format). This element is always present in the
--   <tt>CreateVpnConnection</tt> response; however, it's present in the
--   <tt>DescribeVpnConnections</tt> response only if the VPN connection is
--   in the <tt>pending</tt> or <tt>available</tt> state.</li>
--   <li><a>vcRoutes</a> - The static routes associated with the VPN
--   connection.</li>
--   <li><a>vcVPNGatewayId</a> - The ID of the virtual private gateway at
--   the AWS side of the VPN connection.</li>
--   <li><a>vcOptions</a> - The VPN connection options.</li>
--   <li><a>vcTags</a> - Any tags assigned to the VPN connection.</li>
--   <li><a>vcVGWTelemetry</a> - Information about the VPN tunnel.</li>
--   <li><a>vcVPNConnectionId</a> - The ID of the VPN connection.</li>
--   <li><a>vcCustomerGatewayId</a> - The ID of the customer gateway at
--   your end of the VPN connection.</li>
--   <li><a>vcState</a> - The current state of the VPN connection.</li>
--   <li><a>vcType</a> - The type of VPN connection.</li>
--   </ul>
vpnConnection :: Text -> Text -> VPNState -> GatewayType -> VPNConnection

-- | The configuration information for the VPN connection's customer
--   gateway (in the native XML format). This element is always present in
--   the <tt>CreateVpnConnection</tt> response; however, it's present in
--   the <tt>DescribeVpnConnections</tt> response only if the VPN
--   connection is in the <tt>pending</tt> or <tt>available</tt> state.
vcCustomerGatewayConfiguration :: Lens' VPNConnection (Maybe Text)

-- | The static routes associated with the VPN connection.
vcRoutes :: Lens' VPNConnection [VPNStaticRoute]

-- | The ID of the virtual private gateway at the AWS side of the VPN
--   connection.
vcVPNGatewayId :: Lens' VPNConnection (Maybe Text)

-- | The VPN connection options.
vcOptions :: Lens' VPNConnection (Maybe VPNConnectionOptions)

-- | Any tags assigned to the VPN connection.
vcTags :: Lens' VPNConnection [Tag]

-- | Information about the VPN tunnel.
vcVGWTelemetry :: Lens' VPNConnection [VGWTelemetry]

-- | The ID of the VPN connection.
vcVPNConnectionId :: Lens' VPNConnection Text

-- | The ID of the customer gateway at your end of the VPN connection.
vcCustomerGatewayId :: Lens' VPNConnection Text

-- | The current state of the VPN connection.
vcState :: Lens' VPNConnection VPNState

-- | The type of VPN connection.
vcType :: Lens' VPNConnection GatewayType

-- | Describes VPN connection options.
--   
--   <i>See:</i> <a>vpnConnectionOptions</a> smart constructor.
data VPNConnectionOptions

-- | Creates a value of <a>VPNConnectionOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcoStaticRoutesOnly</a> - Indicates whether the VPN connection
--   uses static routes only. Static routes must be used for devices that
--   don't support BGP.</li>
--   </ul>
vpnConnectionOptions :: VPNConnectionOptions

-- | Indicates whether the VPN connection uses static routes only. Static
--   routes must be used for devices that don't support BGP.
vcoStaticRoutesOnly :: Lens' VPNConnectionOptions (Maybe Bool)

-- | Describes VPN connection options.
--   
--   <i>See:</i> <a>vpnConnectionOptionsSpecification</a> smart
--   constructor.
data VPNConnectionOptionsSpecification

-- | Creates a value of <a>VPNConnectionOptionsSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcosStaticRoutesOnly</a> - Indicates whether the VPN connection
--   uses static routes only. Static routes must be used for devices that
--   don't support BGP.</li>
--   </ul>
vpnConnectionOptionsSpecification :: VPNConnectionOptionsSpecification

-- | Indicates whether the VPN connection uses static routes only. Static
--   routes must be used for devices that don't support BGP.
vcosStaticRoutesOnly :: Lens' VPNConnectionOptionsSpecification (Maybe Bool)

-- | Describes a virtual private gateway.
--   
--   <i>See:</i> <a>vpnGateway</a> smart constructor.
data VPNGateway

-- | Creates a value of <a>VPNGateway</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vgState</a> - The current state of the virtual private
--   gateway.</li>
--   <li><a>vgVPCAttachments</a> - Any VPCs attached to the virtual private
--   gateway.</li>
--   <li><a>vgVPNGatewayId</a> - The ID of the virtual private
--   gateway.</li>
--   <li><a>vgAvailabilityZone</a> - The Availability Zone where the
--   virtual private gateway was created, if applicable. This field may be
--   empty or not returned.</li>
--   <li><a>vgType</a> - The type of VPN connection the virtual private
--   gateway supports.</li>
--   <li><a>vgTags</a> - Any tags assigned to the virtual private
--   gateway.</li>
--   </ul>
vpnGateway :: VPNGateway

-- | The current state of the virtual private gateway.
vgState :: Lens' VPNGateway (Maybe VPNState)

-- | Any VPCs attached to the virtual private gateway.
vgVPCAttachments :: Lens' VPNGateway [VPCAttachment]

-- | The ID of the virtual private gateway.
vgVPNGatewayId :: Lens' VPNGateway (Maybe Text)

-- | The Availability Zone where the virtual private gateway was created,
--   if applicable. This field may be empty or not returned.
vgAvailabilityZone :: Lens' VPNGateway (Maybe Text)

-- | The type of VPN connection the virtual private gateway supports.
vgType :: Lens' VPNGateway (Maybe GatewayType)

-- | Any tags assigned to the virtual private gateway.
vgTags :: Lens' VPNGateway [Tag]

-- | Describes a static route for a VPN connection.
--   
--   <i>See:</i> <a>vpnStaticRoute</a> smart constructor.
data VPNStaticRoute

-- | Creates a value of <a>VPNStaticRoute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsrState</a> - The current state of the static route.</li>
--   <li><a>vsrSource</a> - Indicates how the routes were provided.</li>
--   <li><a>vsrDestinationCidrBlock</a> - The CIDR block associated with
--   the local subnet of the customer data center.</li>
--   </ul>
vpnStaticRoute :: VPNStaticRoute

-- | The current state of the static route.
vsrState :: Lens' VPNStaticRoute (Maybe VPNState)

-- | Indicates how the routes were provided.
vsrSource :: Lens' VPNStaticRoute (Maybe VPNStaticRouteSource)

-- | The CIDR block associated with the local subnet of the customer data
--   center.
vsrDestinationCidrBlock :: Lens' VPNStaticRoute (Maybe Text)

-- | Describes a volume.
--   
--   <i>See:</i> <a>volume</a> smart constructor.
data Volume

-- | Creates a value of <a>Volume</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vAttachments</a> - Information about the volume
--   attachments.</li>
--   <li><a>vIOPS</a> - The number of I<i>O operations per second (IOPS)
--   that the volume supports. For Provisioned IOPS SSD volumes, this
--   represents the number of IOPS that are provisioned for the volume. For
--   General Purpose SSD volumes, this represents the baseline performance
--   of the volume and the rate at which the volume accumulates I</i>O
--   credits for bursting. For more information on General Purpose SSD
--   baseline performance, I<i>O credits, and bursting, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for io1 volumes and
--   100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This parameter is
--   required for requests to create <tt>io1</tt> volumes; it is not used
--   in requests to create <tt>gp2</tt> , <tt>st1</tt> , <tt>sc1</tt> , or
--   <tt>standard</tt> volumes.</li>
--   <li><a>vKMSKeyId</a> - The full ARN of the AWS Key Management Service
--   (AWS KMS) customer master key (CMK) that was used to protect the
--   volume encryption key for the volume.</li>
--   <li><a>vTags</a> - Any tags assigned to the volume.</li>
--   <li><a>vAvailabilityZone</a> - The Availability Zone for the
--   volume.</li>
--   <li><a>vCreateTime</a> - The time stamp when volume creation was
--   initiated.</li>
--   <li><a>vEncrypted</a> - Indicates whether the volume will be
--   encrypted.</li>
--   <li><a>vSize</a> - The size of the volume, in GiBs.</li>
--   <li><a>vSnapshotId</a> - The snapshot from which the volume was
--   created, if applicable.</li>
--   <li><a>vState</a> - The volume state.</li>
--   <li><a>vVolumeId</a> - The ID of the volume.</li>
--   <li><a>vVolumeType</a> - The volume type. This can be <tt>gp2</tt> for
--   General Purpose SSD, <tt>io1</tt> for Provisioned IOPS SSD,
--   <tt>st1</tt> for Throughput Optimized HDD, <tt>sc1</tt> for Cold HDD,
--   or <tt>standard</tt> for Magnetic volumes.</li>
--   </ul>
volume :: Text -> UTCTime -> Bool -> Int -> Text -> VolumeState -> Text -> VolumeType -> Volume

-- | Information about the volume attachments.
vAttachments :: Lens' Volume [VolumeAttachment]

-- | The number of I<i>O operations per second (IOPS) that the volume
--   supports. For Provisioned IOPS SSD volumes, this represents the number
--   of IOPS that are provisioned for the volume. For General Purpose SSD
--   volumes, this represents the baseline performance of the volume and
--   the rate at which the volume accumulates I</i>O credits for bursting.
--   For more information on General Purpose SSD baseline performance,
--   I<i>O credits, and bursting, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSVolumeTypes.html
--   Amazon EBS Volume Types&gt; in the </i>Amazon Elastic Compute Cloud
--   User Guide/ . Constraint: Range is 100-20000 IOPS for io1 volumes and
--   100-10000 IOPS for <tt>gp2</tt> volumes. Condition: This parameter is
--   required for requests to create <tt>io1</tt> volumes; it is not used
--   in requests to create <tt>gp2</tt> , <tt>st1</tt> , <tt>sc1</tt> , or
--   <tt>standard</tt> volumes.
vIOPS :: Lens' Volume (Maybe Int)

-- | The full ARN of the AWS Key Management Service (AWS KMS) customer
--   master key (CMK) that was used to protect the volume encryption key
--   for the volume.
vKMSKeyId :: Lens' Volume (Maybe Text)

-- | Any tags assigned to the volume.
vTags :: Lens' Volume [Tag]

-- | The Availability Zone for the volume.
vAvailabilityZone :: Lens' Volume Text

-- | The time stamp when volume creation was initiated.
vCreateTime :: Lens' Volume UTCTime

-- | Indicates whether the volume will be encrypted.
vEncrypted :: Lens' Volume Bool

-- | The size of the volume, in GiBs.
vSize :: Lens' Volume Int

-- | The snapshot from which the volume was created, if applicable.
vSnapshotId :: Lens' Volume Text

-- | The volume state.
vState :: Lens' Volume VolumeState

-- | The ID of the volume.
vVolumeId :: Lens' Volume Text

-- | The volume type. This can be <tt>gp2</tt> for General Purpose SSD,
--   <tt>io1</tt> for Provisioned IOPS SSD, <tt>st1</tt> for Throughput
--   Optimized HDD, <tt>sc1</tt> for Cold HDD, or <tt>standard</tt> for
--   Magnetic volumes.
vVolumeType :: Lens' Volume VolumeType

-- | Describes volume attachment details.
--   
--   <i>See:</i> <a>volumeAttachment</a> smart constructor.
data VolumeAttachment

-- | Creates a value of <a>VolumeAttachment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>volInstanceId</a> - The ID of the instance.</li>
--   <li><a>volDeleteOnTermination</a> - Indicates whether the EBS volume
--   is deleted on instance termination.</li>
--   <li><a>volState</a> - The attachment state of the volume.</li>
--   <li><a>volDevice</a> - The device name.</li>
--   <li><a>volVolumeId</a> - The ID of the volume.</li>
--   <li><a>volAttachTime</a> - The time stamp when the attachment
--   initiated.</li>
--   </ul>
volumeAttachment :: VolumeAttachment

-- | The ID of the instance.
volInstanceId :: Lens' VolumeAttachment (Maybe Text)

-- | Indicates whether the EBS volume is deleted on instance termination.
volDeleteOnTermination :: Lens' VolumeAttachment (Maybe Bool)

-- | The attachment state of the volume.
volState :: Lens' VolumeAttachment (Maybe VolumeAttachmentState)

-- | The device name.
volDevice :: Lens' VolumeAttachment (Maybe Text)

-- | The ID of the volume.
volVolumeId :: Lens' VolumeAttachment (Maybe Text)

-- | The time stamp when the attachment initiated.
volAttachTime :: Lens' VolumeAttachment (Maybe UTCTime)

-- | Describes an EBS volume.
--   
--   <i>See:</i> <a>volumeDetail</a> smart constructor.
data VolumeDetail

-- | Creates a value of <a>VolumeDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vdSize</a> - The size of the volume, in GiB.</li>
--   </ul>
volumeDetail :: Integer -> VolumeDetail

-- | The size of the volume, in GiB.
vdSize :: Lens' VolumeDetail Integer

-- | Describes a volume status operation code.
--   
--   <i>See:</i> <a>volumeStatusAction</a> smart constructor.
data VolumeStatusAction

-- | Creates a value of <a>VolumeStatusAction</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsaEventType</a> - The event type associated with this
--   operation.</li>
--   <li><a>vsaCode</a> - The code identifying the operation, for example,
--   <tt>enable-volume-io</tt> .</li>
--   <li><a>vsaDescription</a> - A description of the operation.</li>
--   <li><a>vsaEventId</a> - The ID of the event associated with this
--   operation.</li>
--   </ul>
volumeStatusAction :: VolumeStatusAction

-- | The event type associated with this operation.
vsaEventType :: Lens' VolumeStatusAction (Maybe Text)

-- | The code identifying the operation, for example,
--   <tt>enable-volume-io</tt> .
vsaCode :: Lens' VolumeStatusAction (Maybe Text)

-- | A description of the operation.
vsaDescription :: Lens' VolumeStatusAction (Maybe Text)

-- | The ID of the event associated with this operation.
vsaEventId :: Lens' VolumeStatusAction (Maybe Text)

-- | Describes a volume status.
--   
--   <i>See:</i> <a>volumeStatusDetails</a> smart constructor.
data VolumeStatusDetails

-- | Creates a value of <a>VolumeStatusDetails</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsdStatus</a> - The intended status of the volume status.</li>
--   <li><a>vsdName</a> - The name of the volume status.</li>
--   </ul>
volumeStatusDetails :: VolumeStatusDetails

-- | The intended status of the volume status.
vsdStatus :: Lens' VolumeStatusDetails (Maybe Text)

-- | The name of the volume status.
vsdName :: Lens' VolumeStatusDetails (Maybe VolumeStatusName)

-- | Describes a volume status event.
--   
--   <i>See:</i> <a>volumeStatusEvent</a> smart constructor.
data VolumeStatusEvent

-- | Creates a value of <a>VolumeStatusEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vseNotBefore</a> - The earliest start time of the event.</li>
--   <li><a>vseEventType</a> - The type of this event.</li>
--   <li><a>vseDescription</a> - A description of the event.</li>
--   <li><a>vseNotAfter</a> - The latest end time of the event.</li>
--   <li><a>vseEventId</a> - The ID of this event.</li>
--   </ul>
volumeStatusEvent :: VolumeStatusEvent

-- | The earliest start time of the event.
vseNotBefore :: Lens' VolumeStatusEvent (Maybe UTCTime)

-- | The type of this event.
vseEventType :: Lens' VolumeStatusEvent (Maybe Text)

-- | A description of the event.
vseDescription :: Lens' VolumeStatusEvent (Maybe Text)

-- | The latest end time of the event.
vseNotAfter :: Lens' VolumeStatusEvent (Maybe UTCTime)

-- | The ID of this event.
vseEventId :: Lens' VolumeStatusEvent (Maybe Text)

-- | Describes the status of a volume.
--   
--   <i>See:</i> <a>volumeStatusInfo</a> smart constructor.
data VolumeStatusInfo

-- | Creates a value of <a>VolumeStatusInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsiStatus</a> - The status of the volume.</li>
--   <li><a>vsiDetails</a> - The details of the volume status.</li>
--   </ul>
volumeStatusInfo :: VolumeStatusInfo

-- | The status of the volume.
vsiStatus :: Lens' VolumeStatusInfo (Maybe VolumeStatusInfoStatus)

-- | The details of the volume status.
vsiDetails :: Lens' VolumeStatusInfo [VolumeStatusDetails]

-- | Describes the volume status.
--   
--   <i>See:</i> <a>volumeStatusItem</a> smart constructor.
data VolumeStatusItem

-- | Creates a value of <a>VolumeStatusItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsiVolumeStatus</a> - The volume status.</li>
--   <li><a>vsiActions</a> - The details of the operation.</li>
--   <li><a>vsiEvents</a> - A list of events associated with the
--   volume.</li>
--   <li><a>vsiAvailabilityZone</a> - The Availability Zone of the
--   volume.</li>
--   <li><a>vsiVolumeId</a> - The volume ID.</li>
--   </ul>
volumeStatusItem :: VolumeStatusItem

-- | The volume status.
vsiVolumeStatus :: Lens' VolumeStatusItem (Maybe VolumeStatusInfo)

-- | The details of the operation.
vsiActions :: Lens' VolumeStatusItem [VolumeStatusAction]

-- | A list of events associated with the volume.
vsiEvents :: Lens' VolumeStatusItem [VolumeStatusEvent]

-- | The Availability Zone of the volume.
vsiAvailabilityZone :: Lens' VolumeStatusItem (Maybe Text)

-- | The volume ID.
vsiVolumeId :: Lens' VolumeStatusItem (Maybe Text)
