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


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
ASError' :: ActivityStatus
ASFulfilled :: ActivityStatus
ASPendingFulfillment :: ActivityStatus
ASPendingTermination :: 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
ASDiversified :: AllocationStrategy
ASLowestPrice :: 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
CBECFleetRequestIdDoesNotExist :: CancelBatchErrorCode
CBECFleetRequestIdMalformed :: CancelBatchErrorCode
CBECFleetRequestNotInCancellableState :: CancelBatchErrorCode
CBECUnexpectedError :: CancelBatchErrorCode
data CancelSpotInstanceRequestState
CSIRSActive :: CancelSpotInstanceRequestState
CSIRSCancelled :: CancelSpotInstanceRequestState
CSIRSClosed :: CancelSpotInstanceRequestState
CSIRSCompleted :: CancelSpotInstanceRequestState
CSIRSOpen :: CancelSpotInstanceRequestState
data ConnectionNotificationState
Disabled :: ConnectionNotificationState
Enabled :: ConnectionNotificationState
data ConnectionNotificationType
Topic :: ConnectionNotificationType
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 DefaultTargetCapacityType
DTCTOnDemand :: DefaultTargetCapacityType
DTCTSpot :: DefaultTargetCapacityType
data DeleteFleetErrorCode
DFECFleetIdDoesNotExist :: DeleteFleetErrorCode
DFECFleetIdMalformed :: DeleteFleetErrorCode
DFECFleetNotInDeletableState :: DeleteFleetErrorCode
DFECUnexpectedError :: DeleteFleetErrorCode
data DeviceType
EBS :: DeviceType
InstanceStore :: DeviceType
data DiskImageFormat
Raw :: DiskImageFormat
VHD :: DiskImageFormat
VMDK :: DiskImageFormat
data DomainType
DTStandard :: DomainType
DTVPC :: DomainType
data ElasticGpuState
Attached :: ElasticGpuState
data ElasticGpuStatus
EGSImpaired :: ElasticGpuStatus
EGSOK :: ElasticGpuStatus
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 FleetActivityStatus
Error' :: FleetActivityStatus
Fulfilled :: FleetActivityStatus
PendingFulfillment :: FleetActivityStatus
PendingTermination :: FleetActivityStatus
data FleetEventType
FETFleetChange :: FleetEventType
FETInstanceChange :: FleetEventType
FETServiceError :: FleetEventType
data FleetExcessCapacityTerminationPolicy
NoTermination :: FleetExcessCapacityTerminationPolicy
Termination :: FleetExcessCapacityTerminationPolicy
data FleetStateCode
FSCActive :: FleetStateCode
FSCDeleted :: FleetStateCode
FSCDeletedRunning :: FleetStateCode
FSCDeletedTerminating :: FleetStateCode
FSCFailed :: FleetStateCode
FSCModifying :: FleetStateCode
FSCSubmitted :: FleetStateCode
data FleetType
FTMaintain :: FleetType
FTRequest :: FleetType
data FlowLogsResourceType
FLRTNetworkInterface :: FlowLogsResourceType
FLRTSubnet :: FlowLogsResourceType
FLRTVPC :: FlowLogsResourceType
data FpgaImageAttributeName
FIANDescription :: FpgaImageAttributeName
FIANLoadPermission :: FpgaImageAttributeName
FIANName :: FpgaImageAttributeName
FIANProductCodes :: FpgaImageAttributeName
data FpgaImageStateCode
FISCAvailable :: FpgaImageStateCode
FISCFailed :: FpgaImageStateCode
FISCPending :: FpgaImageStateCode
FISCUnavailable :: FpgaImageStateCode
data GatewayType
IPsec_1 :: GatewayType
data HostTenancy
HTDedicated :: HostTenancy
HTHost :: HostTenancy
data HypervisorType
Ovm :: HypervisorType
Xen :: HypervisorType
data IAMInstanceProfileAssociationState
Associated :: IAMInstanceProfileAssociationState
Associating :: IAMInstanceProfileAssociationState
Disassociated :: IAMInstanceProfileAssociationState
Disassociating :: IAMInstanceProfileAssociationState
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 InstanceHealthStatus
Healthy :: InstanceHealthStatus
Unhealthy :: InstanceHealthStatus
data InstanceInterruptionBehavior
Hibernate :: InstanceInterruptionBehavior
Stop :: InstanceInterruptionBehavior
Terminate :: InstanceInterruptionBehavior
data InstanceLifecycleType
ILTScheduled :: InstanceLifecycleType
ILTSpot :: 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
C5_18XLarge :: InstanceType
C5_2XLarge :: InstanceType
C5_4XLarge :: InstanceType
C5_9XLarge :: InstanceType
C5_Large :: InstanceType
C5_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
G3_16XLarge :: InstanceType
G3_4XLarge :: InstanceType
G3_8XLarge :: InstanceType
H1_16XLarge :: InstanceType
H1_2XLarge :: InstanceType
H1_4XLarge :: InstanceType
H1_8XLarge :: InstanceType
HI1_4XLarge :: InstanceType
HS1_8XLarge :: InstanceType
I2_2XLarge :: InstanceType
I2_4XLarge :: InstanceType
I2_8XLarge :: InstanceType
I2_XLarge :: InstanceType
I3_16XLarge :: InstanceType
I3_2XLarge :: InstanceType
I3_4XLarge :: InstanceType
I3_8XLarge :: InstanceType
I3_Large :: InstanceType
I3_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
M5_12XLarge :: InstanceType
M5_24XLarge :: InstanceType
M5_2XLarge :: InstanceType
M5_4XLarge :: InstanceType
M5_Large :: InstanceType
M5_XLarge :: InstanceType
P2_16XLarge :: InstanceType
P2_8XLarge :: InstanceType
P2_XLarge :: InstanceType
P3_16XLarge :: InstanceType
P3_2XLarge :: InstanceType
P3_8XLarge :: InstanceType
R3_2XLarge :: InstanceType
R3_4XLarge :: InstanceType
R3_8XLarge :: InstanceType
R3_Large :: InstanceType
R3_XLarge :: InstanceType
R4_16XLarge :: InstanceType
R4_2XLarge :: InstanceType
R4_4XLarge :: InstanceType
R4_8XLarge :: InstanceType
R4_Large :: InstanceType
R4_XLarge :: InstanceType
T1_Micro :: InstanceType
T2_2XLarge :: InstanceType
T2_Large :: InstanceType
T2_Medium :: InstanceType
T2_Micro :: InstanceType
T2_Nano :: InstanceType
T2_Small :: InstanceType
T2_XLarge :: InstanceType
X1_16XLarge :: InstanceType
X1_32XLarge :: InstanceType
X1e_16XLarge :: InstanceType
X1e_2XLarge :: InstanceType
X1e_32XLarge :: InstanceType
X1e_4XLarge :: InstanceType
X1e_8XLarge :: InstanceType
X1e_XLarge :: InstanceType
data InterfacePermissionType
EIPAssociate :: InterfacePermissionType
InstanceAttach :: InterfacePermissionType
data LaunchTemplateErrorCode
LaunchTemplateIdDoesNotExist :: LaunchTemplateErrorCode
LaunchTemplateIdMalformed :: LaunchTemplateErrorCode
LaunchTemplateNameDoesNotExist :: LaunchTemplateErrorCode
LaunchTemplateNameMalformed :: LaunchTemplateErrorCode
LaunchTemplateVersionDoesNotExist :: LaunchTemplateErrorCode
UnexpectedError :: LaunchTemplateErrorCode
data ListingState
LAvailable :: ListingState
LCancelled :: ListingState
LPending :: ListingState
LSold :: ListingState
data ListingStatus
LSActive :: ListingStatus
LSCancelled :: ListingStatus
LSClosed :: ListingStatus
LSPending :: ListingStatus
data MarketType
Spot :: MarketType
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 NetworkInterfacePermissionStateCode
NIPSCGranted :: NetworkInterfacePermissionStateCode
NIPSCPending :: NetworkInterfacePermissionStateCode
NIPSCRevoked :: NetworkInterfacePermissionStateCode
NIPSCRevoking :: NetworkInterfacePermissionStateCode
data NetworkInterfaceStatus
NISAssociated :: NetworkInterfaceStatus
NISAttaching :: NetworkInterfaceStatus
NISAvailable :: NetworkInterfaceStatus
NISDetaching :: NetworkInterfaceStatus
NISInUse :: NetworkInterfaceStatus
data NetworkInterfaceType
NITInterface :: NetworkInterfaceType
NITNatGateway :: NetworkInterfaceType
data OfferingClassType
OCTConvertible :: OfferingClassType
OCTStandard :: 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
Spread :: PlacementStrategy
data PlatformValues
Windows :: PlatformValues
data PrincipalType
PTAccount :: PrincipalType
PTAll :: PrincipalType
PTOrganizationUnit :: PrincipalType
PTRole :: PrincipalType
PTService :: PrincipalType
PTUser :: PrincipalType
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 ResetFpgaImageAttributeName
LoadPermission :: ResetFpgaImageAttributeName
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 ServiceState
SerAvailable :: ServiceState
SerDeleted :: ServiceState
SerDeleting :: ServiceState
SerFailed :: ServiceState
SerPending :: ServiceState
data ServiceType
Gateway :: ServiceType
Interface :: ServiceType
data ShutdownBehavior
SBStop :: ShutdownBehavior
SBTerminate :: ShutdownBehavior
data SnapshotAttributeName
SANCreateVolumePermission :: SnapshotAttributeName
SANProductCodes :: SnapshotAttributeName
data SnapshotState
SSCompleted :: SnapshotState
SSError' :: SnapshotState
SSPending :: SnapshotState
data SpotAllocationStrategy
Diversified :: SpotAllocationStrategy
LowestPrice :: SpotAllocationStrategy
data SpotInstanceInterruptionBehavior
SIIBHibernate :: SpotInstanceInterruptionBehavior
SIIBStop :: SpotInstanceInterruptionBehavior
SIIBTerminate :: SpotInstanceInterruptionBehavior
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
SExpired :: State
SFailed :: State
SPending :: State
SPendingAcceptance :: State
SRejected :: State
data StatusName
Reachability :: StatusName
data StatusType
STFailed :: StatusType
STInitializing :: StatusType
STInsufficientData :: StatusType
STPassed :: StatusType
data SubnetCidrBlockStateCode
SCBSCAssociated :: SubnetCidrBlockStateCode
SCBSCAssociating :: SubnetCidrBlockStateCode
SCBSCDisassociated :: SubnetCidrBlockStateCode
SCBSCDisassociating :: SubnetCidrBlockStateCode
SCBSCFailed :: SubnetCidrBlockStateCode
SCBSCFailing :: 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 UnsuccessfulInstanceCreditSpecificationErrorCode
IncorrectInstanceState :: UnsuccessfulInstanceCreditSpecificationErrorCode
InstanceCreditSpecification_NotSupported :: UnsuccessfulInstanceCreditSpecificationErrorCode
InvalidInstanceId_Malformed :: UnsuccessfulInstanceCreditSpecificationErrorCode
InvalidInstanceId_NotFound :: UnsuccessfulInstanceCreditSpecificationErrorCode
data VPCAttributeName
EnableDNSHostnames :: VPCAttributeName
EnableDNSSupport :: VPCAttributeName
data VPCCidrBlockStateCode
VCBSCAssociated :: VPCCidrBlockStateCode
VCBSCAssociating :: VPCCidrBlockStateCode
VCBSCDisassociated :: VPCCidrBlockStateCode
VCBSCDisassociating :: VPCCidrBlockStateCode
VCBSCFailed :: VPCCidrBlockStateCode
VCBSCFailing :: VPCCidrBlockStateCode
data VPCEndpointType
VETGateway :: VPCEndpointType
VETInterface :: VPCEndpointType
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 VPCTenancy
VTDefault :: VPCTenancy
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 VolumeModificationState
Completed :: VolumeModificationState
Failed :: VolumeModificationState
Modifying :: VolumeModificationState
Optimizing :: VolumeModificationState
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
GP2 :: VolumeType
IO1 :: VolumeType
SC1 :: VolumeType
ST1 :: VolumeType
Standard :: 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>aiInstanceHealth</a> - The health status of the instance. If
--   the status of either the instance status check or the system status
--   check is <tt>impaired</tt> , the health status of the instance is
--   <tt>unhealthy</tt> . Otherwise, the health status is <tt>healthy</tt>
--   .</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 health status of the instance. If the status of either the
--   instance status check or the system status check is <tt>impaired</tt>
--   , the health status of the instance is <tt>unhealthy</tt> . Otherwise,
--   the health status is <tt>healthy</tt> .
aiInstanceHealth :: Lens' ActiveInstance (Maybe InstanceHealthStatus)

-- | 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>
--   <li><a>aTags</a> - Any tags assigned to 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)

-- | Any tags assigned to the Elastic IP address.
aTags :: Lens' Address [Tag]

-- | Describes a principal.
--   
--   <i>See:</i> <a>allowedPrincipal</a> smart constructor.
data AllowedPrincipal

-- | Creates a value of <a>AllowedPrincipal</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>apPrincipalType</a> - The type of principal.</li>
--   <li><a>apPrincipal</a> - The Amazon Resource Name (ARN) of the
--   principal.</li>
--   </ul>
allowedPrincipal :: AllowedPrincipal

-- | The type of principal.
apPrincipalType :: Lens' AllowedPrincipal (Maybe PrincipalType)

-- | The Amazon Resource Name (ARN) of the principal.
apPrincipal :: Lens' AllowedPrincipal (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. The value is
--   case-sensitive.</li>
--   </ul>
attributeValue :: AttributeValue

-- | The attribute value. 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 (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 (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)

-- | The CPU options for the instance.
--   
--   <i>See:</i> <a>cpuOptions</a> smart constructor.
data CPUOptions

-- | Creates a value of <a>CPUOptions</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coCoreCount</a> - The number of CPU cores for the
--   instance.</li>
--   <li><a>coThreadsPerCore</a> - The number of threads per CPU core.</li>
--   </ul>
cpuOptions :: CPUOptions

-- | The number of CPU cores for the instance.
coCoreCount :: Lens' CPUOptions (Maybe Int)

-- | The number of threads per CPU core.
coThreadsPerCore :: Lens' CPUOptions (Maybe Int)

-- | The CPU options for the instance. Both the core count and threads per
--   core must be specified in the request.
--   
--   <i>See:</i> <a>cpuOptionsRequest</a> smart constructor.
data CPUOptionsRequest

-- | Creates a value of <a>CPUOptionsRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>corCoreCount</a> - The number of CPU cores for the
--   instance.</li>
--   <li><a>corThreadsPerCore</a> - The number of threads per CPU core. To
--   disable Intel Hyper-Threading Technology for the instance, specify a
--   value of <tt>1</tt> . Otherwise, specify the default value of
--   <tt>2</tt> .</li>
--   </ul>
cpuOptionsRequest :: CPUOptionsRequest

-- | The number of CPU cores for the instance.
corCoreCount :: Lens' CPUOptionsRequest (Maybe Int)

-- | The number of threads per CPU core. To disable Intel Hyper-Threading
--   Technology for the instance, specify a value of <tt>1</tt> .
--   Otherwise, specify the default value of <tt>2</tt> .
corThreadsPerCore :: Lens' CPUOptionsRequest (Maybe Int)

-- | 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>csfreiError</a> - The error.</li>
--   <li><a>csfreiSpotFleetRequestId</a> - The ID of the Spot Fleet
--   request.</li>
--   </ul>
cancelSpotFleetRequestsErrorItem :: CancelSpotFleetRequestsError -> Text -> CancelSpotFleetRequestsErrorItem

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

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

-- | 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>csfrsiCurrentSpotFleetRequestState</a> - The current state of
--   the Spot Fleet request.</li>
--   <li><a>csfrsiPreviousSpotFleetRequestState</a> - The previous state of
--   the Spot Fleet request.</li>
--   <li><a>csfrsiSpotFleetRequestId</a> - The ID of the Spot Fleet
--   request.</li>
--   </ul>
cancelSpotFleetRequestsSuccessItem :: BatchState -> BatchState -> Text -> CancelSpotFleetRequestsSuccessItem

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

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

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

-- | 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 an IPv4 CIDR block.
--   
--   <i>See:</i> <a>cidrBlock</a> smart constructor.
data CidrBlock

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

-- | The IPv4 CIDR block.
cbCidrBlock :: Lens' CidrBlock (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 a Classic Load Balancer.
--   
--   <i>See:</i> <a>classicLoadBalancer</a> smart constructor.
data ClassicLoadBalancer

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

-- | The name of the load balancer.
clbName :: Lens' ClassicLoadBalancer Text

-- | Describes the Classic Load Balancers to attach to a Spot Fleet. Spot
--   Fleet registers the running Spot Instances with these Classic Load
--   Balancers.
--   
--   <i>See:</i> <a>classicLoadBalancersConfig</a> smart constructor.
data ClassicLoadBalancersConfig

-- | Creates a value of <a>ClassicLoadBalancersConfig</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clbcClassicLoadBalancers</a> - One or more Classic Load
--   Balancers.</li>
--   </ul>
classicLoadBalancersConfig :: NonEmpty ClassicLoadBalancer -> ClassicLoadBalancersConfig

-- | One or more Classic Load Balancers.
clbcClassicLoadBalancers :: Lens' ClassicLoadBalancersConfig (NonEmpty ClassicLoadBalancer)

-- | 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 connection notification for a VPC endpoint or VPC endpoint
--   service.
--   
--   <i>See:</i> <a>connectionNotification</a> smart constructor.
data ConnectionNotification

-- | Creates a value of <a>ConnectionNotification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cnConnectionNotificationState</a> - The state of the
--   notification.</li>
--   <li><a>cnConnectionNotificationType</a> - The type of
--   notification.</li>
--   <li><a>cnConnectionEvents</a> - The events for the notification. Valid
--   values are <tt>Accept</tt> , <tt>Connect</tt> , <tt>Delete</tt> , and
--   <tt>Reject</tt> .</li>
--   <li><a>cnServiceId</a> - The ID of the endpoint service.</li>
--   <li><a>cnVPCEndpointId</a> - The ID of the VPC endpoint.</li>
--   <li><a>cnConnectionNotificationId</a> - The ID of the
--   notification.</li>
--   <li><a>cnConnectionNotificationARN</a> - The ARN of the SNS topic for
--   the notification.</li>
--   </ul>
connectionNotification :: ConnectionNotification

-- | The state of the notification.
cnConnectionNotificationState :: Lens' ConnectionNotification (Maybe ConnectionNotificationState)

-- | The type of notification.
cnConnectionNotificationType :: Lens' ConnectionNotification (Maybe ConnectionNotificationType)

-- | The events for the notification. Valid values are <tt>Accept</tt> ,
--   <tt>Connect</tt> , <tt>Delete</tt> , and <tt>Reject</tt> .
cnConnectionEvents :: Lens' ConnectionNotification [Text]

-- | The ID of the endpoint service.
cnServiceId :: Lens' ConnectionNotification (Maybe Text)

-- | The ID of the VPC endpoint.
cnVPCEndpointId :: Lens' ConnectionNotification (Maybe Text)

-- | The ID of the notification.
cnConnectionNotificationId :: Lens' ConnectionNotification (Maybe Text)

-- | The ARN of the SNS topic for the notification.
cnConnectionNotificationARN :: Lens' ConnectionNotification (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>ctState</a> - The state of the conversion 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>ctConversionTaskId</a> - The ID of the conversion 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>
--   </ul>
conversionTask :: ConversionTask

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

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

-- | 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 ID of the conversion task.
ctConversionTaskId :: Lens' ConversionTask (Maybe Text)

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

-- | 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 the credit option for CPU usage of a T2 instance.
--   
--   <i>See:</i> <a>creditSpecification</a> smart constructor.
data CreditSpecification

-- | Creates a value of <a>CreditSpecification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csCPUCredits</a> - The credit option for CPU usage of a T2
--   instance.</li>
--   </ul>
creditSpecification :: CreditSpecification

-- | The credit option for CPU usage of a T2 instance.
csCPUCredits :: Lens' CreditSpecification (Maybe Text)

-- | The credit option for CPU usage of a T2 instance.
--   
--   <i>See:</i> <a>creditSpecificationRequest</a> smart constructor.
data CreditSpecificationRequest

-- | Creates a value of <a>CreditSpecificationRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csrCPUCredits</a> - The credit option for CPU usage of a T2
--   instance. Valid values are <tt>standard</tt> and <tt>unlimited</tt>
--   .</li>
--   </ul>
creditSpecificationRequest :: Text -> CreditSpecificationRequest

-- | The credit option for CPU usage of a T2 instance. Valid values are
--   <tt>standard</tt> and <tt>unlimited</tt> .
csrCPUCredits :: Lens' CreditSpecificationRequest Text

-- | 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 DNS entry.
--   
--   <i>See:</i> <a>dnsEntry</a> smart constructor.
data DNSEntry

-- | Creates a value of <a>DNSEntry</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deHostedZoneId</a> - The ID of the private hosted zone.</li>
--   <li><a>deDNSName</a> - The DNS name.</li>
--   </ul>
dnsEntry :: DNSEntry

-- | The ID of the private hosted zone.
deHostedZoneId :: Lens' DNSEntry (Maybe Text)

-- | The DNS name.
deDNSName :: Lens' DNSEntry (Maybe Text)

-- | Describes an EC2 Fleet error.
--   
--   <i>See:</i> <a>deleteFleetError</a> smart constructor.
data DeleteFleetError

-- | Creates a value of <a>DeleteFleetError</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfeCode</a> - The error code.</li>
--   <li><a>dfeMessage</a> - The description for the error code.</li>
--   </ul>
deleteFleetError :: DeleteFleetError

-- | The error code.
dfeCode :: Lens' DeleteFleetError (Maybe DeleteFleetErrorCode)

-- | The description for the error code.
dfeMessage :: Lens' DeleteFleetError (Maybe Text)

-- | Describes an EC2 Fleet that was not successfully deleted.
--   
--   <i>See:</i> <a>deleteFleetErrorItem</a> smart constructor.
data DeleteFleetErrorItem

-- | Creates a value of <a>DeleteFleetErrorItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfeiError</a> - The error.</li>
--   <li><a>dfeiFleetId</a> - The ID of the EC2 Fleet.</li>
--   </ul>
deleteFleetErrorItem :: DeleteFleetErrorItem

-- | The error.
dfeiError :: Lens' DeleteFleetErrorItem (Maybe DeleteFleetError)

-- | The ID of the EC2 Fleet.
dfeiFleetId :: Lens' DeleteFleetErrorItem (Maybe Text)

-- | Describes an EC2 Fleet that was successfully deleted.
--   
--   <i>See:</i> <a>deleteFleetSuccessItem</a> smart constructor.
data DeleteFleetSuccessItem

-- | Creates a value of <a>DeleteFleetSuccessItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfsiCurrentFleetState</a> - The current state of the EC2
--   Fleet.</li>
--   <li><a>dfsiPreviousFleetState</a> - The previous state of the EC2
--   Fleet.</li>
--   <li><a>dfsiFleetId</a> - The ID of the EC2 Fleet.</li>
--   </ul>
deleteFleetSuccessItem :: DeleteFleetSuccessItem

-- | The current state of the EC2 Fleet.
dfsiCurrentFleetState :: Lens' DeleteFleetSuccessItem (Maybe FleetStateCode)

-- | The previous state of the EC2 Fleet.
dfsiPreviousFleetState :: Lens' DeleteFleetSuccessItem (Maybe FleetStateCode)

-- | The ID of the EC2 Fleet.
dfsiFleetId :: Lens' DeleteFleetSuccessItem (Maybe Text)

-- | Describes a launch template version that could not be deleted.
--   
--   <i>See:</i> <a>deleteLaunchTemplateVersionsResponseErrorItem</a> smart
--   constructor.
data DeleteLaunchTemplateVersionsResponseErrorItem

-- | Creates a value of
--   <a>DeleteLaunchTemplateVersionsResponseErrorItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dltvreiLaunchTemplateName</a> - The name of the launch
--   template.</li>
--   <li><a>dltvreiLaunchTemplateId</a> - The ID of the launch
--   template.</li>
--   <li><a>dltvreiVersionNumber</a> - The version number of the launch
--   template.</li>
--   <li><a>dltvreiResponseError</a> - Information about the error.</li>
--   </ul>
deleteLaunchTemplateVersionsResponseErrorItem :: DeleteLaunchTemplateVersionsResponseErrorItem

-- | The name of the launch template.
dltvreiLaunchTemplateName :: Lens' DeleteLaunchTemplateVersionsResponseErrorItem (Maybe Text)

-- | The ID of the launch template.
dltvreiLaunchTemplateId :: Lens' DeleteLaunchTemplateVersionsResponseErrorItem (Maybe Text)

-- | The version number of the launch template.
dltvreiVersionNumber :: Lens' DeleteLaunchTemplateVersionsResponseErrorItem (Maybe Integer)

-- | Information about the error.
dltvreiResponseError :: Lens' DeleteLaunchTemplateVersionsResponseErrorItem (Maybe ResponseError)

-- | Describes a launch template version that was successfully deleted.
--   
--   <i>See:</i> <a>deleteLaunchTemplateVersionsResponseSuccessItem</a>
--   smart constructor.
data DeleteLaunchTemplateVersionsResponseSuccessItem

-- | Creates a value of
--   <a>DeleteLaunchTemplateVersionsResponseSuccessItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dltvrsiLaunchTemplateName</a> - The name of the launch
--   template.</li>
--   <li><a>dltvrsiLaunchTemplateId</a> - The ID of the launch
--   template.</li>
--   <li><a>dltvrsiVersionNumber</a> - The version number of the launch
--   template.</li>
--   </ul>
deleteLaunchTemplateVersionsResponseSuccessItem :: DeleteLaunchTemplateVersionsResponseSuccessItem

-- | The name of the launch template.
dltvrsiLaunchTemplateName :: Lens' DeleteLaunchTemplateVersionsResponseSuccessItem (Maybe Text)

-- | The ID of the launch template.
dltvrsiLaunchTemplateId :: Lens' DeleteLaunchTemplateVersionsResponseSuccessItem (Maybe Text)

-- | The version number of the launch template.
dltvrsiVersionNumber :: Lens' DeleteLaunchTemplateVersionsResponseSuccessItem (Maybe Integer)

-- | 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>dSize</a> - The size of the disk image, in GiB.</li>
--   <li><a>dChecksum</a> - The checksum computed for the disk image.</li>
--   <li><a>dFormat</a> - The disk image format.</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 :: DiskImageDescription

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

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

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

-- | 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 (Maybe 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>didBytes</a> - The size of the disk image, in GiB.</li>
--   <li><a>didFormat</a> - The disk image format.</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 :: Integer -> DiskImageFormat -> Text -> DiskImageDetail

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

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

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

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

-- | The volume identifier.
divdId :: Lens' DiskImageVolumeDescription (Maybe 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 volumes can only be attached to instances that
--   support Amazon EBS encryption. If you are creating a volume from a
--   snapshot, you can't specify an encryption value. This is because only
--   blank volumes can be encrypted on creation.</li>
--   <li><a>ebdKMSKeyId</a> - Identifier (key ID, key alias, ID ARN, or
--   alias ARN) for a user-managed CMK under which the EBS volume is
--   encrypted. Note: This parameter is only supported on
--   <tt>BlockDeviceMapping</tt> objects called by <a>RunInstances</a> ,
--   <a>RequestSpotFleet</a> , and <a>RequestSpotInstances</a> .</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 volumes can
--   only be attached to instances that support Amazon EBS encryption. If
--   you are creating a volume from a snapshot, you can't specify an
--   encryption value. This is because only blank volumes can be encrypted
--   on creation.
ebdEncrypted :: Lens' EBSBlockDevice (Maybe Bool)

-- | Identifier (key ID, key alias, ID ARN, or alias ARN) for a
--   user-managed CMK under which the EBS volume is encrypted. Note: This
--   parameter is only supported on <tt>BlockDeviceMapping</tt> objects
--   called by <a>RunInstances</a> , <a>RequestSpotFleet</a> , and
--   <a>RequestSpotInstances</a> .
ebdKMSKeyId :: Lens' EBSBlockDevice (Maybe Text)

-- | 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 the association between an instance and an Elastic GPU.
--   
--   <i>See:</i> <a>elasticGpuAssociation</a> smart constructor.
data ElasticGpuAssociation

-- | Creates a value of <a>ElasticGpuAssociation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>egaElasticGpuId</a> - The ID of the Elastic GPU.</li>
--   <li><a>egaElasticGpuAssociationId</a> - The ID of the
--   association.</li>
--   <li><a>egaElasticGpuAssociationTime</a> - The time the Elastic GPU was
--   associated with the instance.</li>
--   <li><a>egaElasticGpuAssociationState</a> - The state of the
--   association between the instance and the Elastic GPU.</li>
--   </ul>
elasticGpuAssociation :: ElasticGpuAssociation

-- | The ID of the Elastic GPU.
egaElasticGpuId :: Lens' ElasticGpuAssociation (Maybe Text)

-- | The ID of the association.
egaElasticGpuAssociationId :: Lens' ElasticGpuAssociation (Maybe Text)

-- | The time the Elastic GPU was associated with the instance.
egaElasticGpuAssociationTime :: Lens' ElasticGpuAssociation (Maybe Text)

-- | The state of the association between the instance and the Elastic GPU.
egaElasticGpuAssociationState :: Lens' ElasticGpuAssociation (Maybe Text)

-- | Describes the status of an Elastic GPU.
--   
--   <i>See:</i> <a>elasticGpuHealth</a> smart constructor.
data ElasticGpuHealth

-- | Creates a value of <a>ElasticGpuHealth</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eghStatus</a> - The health status.</li>
--   </ul>
elasticGpuHealth :: ElasticGpuHealth

-- | The health status.
eghStatus :: Lens' ElasticGpuHealth (Maybe ElasticGpuStatus)

-- | A specification for an Elastic GPU.
--   
--   <i>See:</i> <a>elasticGpuSpecification</a> smart constructor.
data ElasticGpuSpecification

-- | Creates a value of <a>ElasticGpuSpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>egsType</a> - The type of Elastic GPU.</li>
--   </ul>
elasticGpuSpecification :: Text -> ElasticGpuSpecification

-- | The type of Elastic GPU.
egsType :: Lens' ElasticGpuSpecification Text

-- | Describes an elastic GPU.
--   
--   <i>See:</i> <a>elasticGpuSpecificationResponse</a> smart constructor.
data ElasticGpuSpecificationResponse

-- | Creates a value of <a>ElasticGpuSpecificationResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eType</a> - The elastic GPU type.</li>
--   </ul>
elasticGpuSpecificationResponse :: ElasticGpuSpecificationResponse

-- | The elastic GPU type.
eType :: Lens' ElasticGpuSpecificationResponse (Maybe Text)

-- | Describes an Elastic GPU.
--   
--   <i>See:</i> <a>elasticGpus</a> smart constructor.
data ElasticGpus

-- | Creates a value of <a>ElasticGpus</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>egInstanceId</a> - The ID of the instance to which the Elastic
--   GPU is attached.</li>
--   <li><a>egElasticGpuType</a> - The type of Elastic GPU.</li>
--   <li><a>egElasticGpuId</a> - The ID of the Elastic GPU.</li>
--   <li><a>egElasticGpuState</a> - The state of the Elastic GPU.</li>
--   <li><a>egElasticGpuHealth</a> - The status of the Elastic GPU.</li>
--   <li><a>egAvailabilityZone</a> - The Availability Zone in the which the
--   Elastic GPU resides.</li>
--   </ul>
elasticGpus :: ElasticGpus

-- | The ID of the instance to which the Elastic GPU is attached.
egInstanceId :: Lens' ElasticGpus (Maybe Text)

-- | The type of Elastic GPU.
egElasticGpuType :: Lens' ElasticGpus (Maybe Text)

-- | The ID of the Elastic GPU.
egElasticGpuId :: Lens' ElasticGpus (Maybe Text)

-- | The state of the Elastic GPU.
egElasticGpuState :: Lens' ElasticGpus (Maybe ElasticGpuState)

-- | The status of the Elastic GPU.
egElasticGpuHealth :: Lens' ElasticGpus (Maybe ElasticGpuHealth)

-- | The Availability Zone in the which the Elastic GPU resides.
egAvailabilityZone :: Lens' ElasticGpus (Maybe Text)

-- | 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 does not
--   launch additional Spot Instances. 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
--   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 request was
--   fulfilled and a new instance was launched. * <tt>terminated</tt> - An
--   instance was terminated by the user. The following are the
--   <tt>Information</tt> events: * <tt>launchSpecUnusable</tt> - The price
--   in a launch specification is not valid because it is below the Spot
--   price or the Spot price is above the On-Demand price. *
--   <tt>fleetProgressHalted</tt> - The price in every launch specification
--   is not valid. A launch specification might become valid if the Spot
--   price changes.</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 does not
--   launch additional Spot Instances. 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
--   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 request was
--   fulfilled and a new instance was launched. * <tt>terminated</tt> - An
--   instance was terminated by the user. The following are the
--   <tt>Information</tt> events: * <tt>launchSpecUnusable</tt> - The price
--   in a launch specification is not valid because it is below the Spot
--   price or the Spot price is above the On-Demand price. *
--   <tt>fleetProgressHalted</tt> - The price in every launch specification
--   is not valid. A launch specification might become valid if the Spot
--   price changes.
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 from a describe operation. Filters can be used to
--   match a set of resources by specific criteria, such as tags,
--   attributes, or IDs. The filters supported by a describe operation are
--   documented with the describe operation. For example:
--   
--   <ul>
--   <li><tt>DescribeAvailabilityZones</tt></li>
--   <li><tt>DescribeImages</tt></li>
--   <li><tt>DescribeInstances</tt></li>
--   <li><tt>DescribeKeyPairs</tt></li>
--   <li><tt>DescribeSecurityGroups</tt></li>
--   <li><tt>DescribeSnapshots</tt></li>
--   <li><tt>DescribeSubnets</tt></li>
--   <li><tt>DescribeTags</tt></li>
--   <li><tt>DescribeVolumes</tt></li>
--   <li><tt>DescribeVpcs</tt></li>
--   </ul>
--   
--   <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 an EC2 Fleet.
--   
--   <i>See:</i> <a>fleetData</a> smart constructor.
data FleetData

-- | Creates a value of <a>FleetData</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fdClientToken</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>fdTargetCapacitySpecification</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. If the request
--   type is <tt>maintain</tt> , you can specify a target capacity of 0 and
--   add capacity later.</li>
--   <li><a>fdSpotOptions</a> - The configuration of Spot Instances in an
--   EC2 Fleet.</li>
--   <li><a>fdExcessCapacityTerminationPolicy</a> - Indicates whether
--   running instances should be terminated if the target capacity of the
--   EC2 Fleet is decreased below the current size of the EC2 Fleet.</li>
--   <li><a>fdFleetState</a> - The state of the EC2 Fleet.</li>
--   <li><a>fdLaunchTemplateConfigs</a> - The launch template and
--   overrides.</li>
--   <li><a>fdValidUntil</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 instance requests are
--   placed or able to fulfill the request. The default end date is 7 days
--   from the current date.</li>
--   <li><a>fdTerminateInstancesWithExpiration</a> - Indicates whether
--   running instances should be terminated when the EC2 Fleet
--   expires.</li>
--   <li><a>fdFulfilledCapacity</a> - The number of units fulfilled by this
--   request compared to the set target capacity.</li>
--   <li><a>fdType</a> - The type of request. Indicates whether the EC2
--   Fleet only <tt>requests</tt> the target capacity, or also attempts to
--   <tt>maintain</tt> it. If you request a certain target capacity, EC2
--   Fleet only places the required requests; it does not attempt to
--   replenish instances if capacity is diminished, and does not submit
--   requests in alternative capacity pools if capacity is unavailable. To
--   maintain a certain target capacity, EC2 Fleet places the required
--   requests to meet this target capacity. It also automatically
--   replenishes any interrupted Spot Instances. Default: <tt>maintain</tt>
--   .</li>
--   <li><a>fdValidFrom</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>fdReplaceUnhealthyInstances</a> - Indicates whether EC2 Fleet
--   should replace unhealthy instances.</li>
--   <li><a>fdFulfilledOnDemandCapacity</a> - The number of units fulfilled
--   by this request compared to the set target On-Demand capacity.</li>
--   <li><a>fdFleetId</a> - The ID of the EC2 Fleet.</li>
--   <li><a>fdCreateTime</a> - The creation date and time of the EC2
--   Fleet.</li>
--   <li><a>fdTags</a> - The tags for an EC2 Fleet resource.</li>
--   <li><a>fdActivityStatus</a> - The progress of the EC2 Fleet. If there
--   is an error, the status is <tt>error</tt> . After all requests are
--   placed, the status is <tt>pending_fulfillment</tt> . If the size of
--   the EC2 Fleet is equal to or greater than its target capacity, the
--   status is <tt>fulfilled</tt> . If the size of the EC2 Fleet is
--   decreased, the status is <tt>pending_termination</tt> while instances
--   are terminating.</li>
--   </ul>
fleetData :: FleetData

-- | 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
fdClientToken :: Lens' FleetData (Maybe 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.
--   If the request type is <tt>maintain</tt> , you can specify a target
--   capacity of 0 and add capacity later.
fdTargetCapacitySpecification :: Lens' FleetData (Maybe TargetCapacitySpecification)

-- | The configuration of Spot Instances in an EC2 Fleet.
fdSpotOptions :: Lens' FleetData (Maybe SpotOptions)

-- | Indicates whether running instances should be terminated if the target
--   capacity of the EC2 Fleet is decreased below the current size of the
--   EC2 Fleet.
fdExcessCapacityTerminationPolicy :: Lens' FleetData (Maybe FleetExcessCapacityTerminationPolicy)

-- | The state of the EC2 Fleet.
fdFleetState :: Lens' FleetData (Maybe FleetStateCode)

-- | The launch template and overrides.
fdLaunchTemplateConfigs :: Lens' FleetData [FleetLaunchTemplateConfig]

-- | 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 instance requests are placed or able to fulfill
--   the request. The default end date is 7 days from the current date.
fdValidUntil :: Lens' FleetData (Maybe UTCTime)

-- | Indicates whether running instances should be terminated when the EC2
--   Fleet expires.
fdTerminateInstancesWithExpiration :: Lens' FleetData (Maybe Bool)

-- | The number of units fulfilled by this request compared to the set
--   target capacity.
fdFulfilledCapacity :: Lens' FleetData (Maybe Double)

-- | The type of request. Indicates whether the EC2 Fleet only
--   <tt>requests</tt> the target capacity, or also attempts to
--   <tt>maintain</tt> it. If you request a certain target capacity, EC2
--   Fleet only places the required requests; it does not attempt to
--   replenish instances if capacity is diminished, and does not submit
--   requests in alternative capacity pools if capacity is unavailable. To
--   maintain a certain target capacity, EC2 Fleet places the required
--   requests to meet this target capacity. It also automatically
--   replenishes any interrupted Spot Instances. Default: <tt>maintain</tt>
--   .
fdType :: Lens' FleetData (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.
fdValidFrom :: Lens' FleetData (Maybe UTCTime)

-- | Indicates whether EC2 Fleet should replace unhealthy instances.
fdReplaceUnhealthyInstances :: Lens' FleetData (Maybe Bool)

-- | The number of units fulfilled by this request compared to the set
--   target On-Demand capacity.
fdFulfilledOnDemandCapacity :: Lens' FleetData (Maybe Double)

-- | The ID of the EC2 Fleet.
fdFleetId :: Lens' FleetData (Maybe Text)

-- | The creation date and time of the EC2 Fleet.
fdCreateTime :: Lens' FleetData (Maybe UTCTime)

-- | The tags for an EC2 Fleet resource.
fdTags :: Lens' FleetData [Tag]

-- | The progress of the EC2 Fleet. If there is an error, the status is
--   <tt>error</tt> . After all requests are placed, the status is
--   <tt>pending_fulfillment</tt> . If the size of the EC2 Fleet is equal
--   to or greater than its target capacity, the status is
--   <tt>fulfilled</tt> . If the size of the EC2 Fleet is decreased, the
--   status is <tt>pending_termination</tt> while instances are
--   terminating.
fdActivityStatus :: Lens' FleetData (Maybe FleetActivityStatus)

-- | Describes a launch template and overrides.
--   
--   <i>See:</i> <a>fleetLaunchTemplateConfig</a> smart constructor.
data FleetLaunchTemplateConfig

-- | Creates a value of <a>FleetLaunchTemplateConfig</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fltcOverrides</a> - Any parameters that you specify override
--   the same parameters in the launch template.</li>
--   <li><a>fltcLaunchTemplateSpecification</a> - The launch template.</li>
--   </ul>
fleetLaunchTemplateConfig :: FleetLaunchTemplateConfig

-- | Any parameters that you specify override the same parameters in the
--   launch template.
fltcOverrides :: Lens' FleetLaunchTemplateConfig [FleetLaunchTemplateOverrides]

-- | The launch template.
fltcLaunchTemplateSpecification :: Lens' FleetLaunchTemplateConfig (Maybe FleetLaunchTemplateSpecification)

-- | Describes a launch template and overrides.
--   
--   <i>See:</i> <a>fleetLaunchTemplateConfigRequest</a> smart constructor.
data FleetLaunchTemplateConfigRequest

-- | Creates a value of <a>FleetLaunchTemplateConfigRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fltcrOverrides</a> - Any parameters that you specify override
--   the same parameters in the launch template.</li>
--   <li><a>fltcrLaunchTemplateSpecification</a> - The launch template to
--   use. You must specify either the launch template ID or launch template
--   name in the request.</li>
--   </ul>
fleetLaunchTemplateConfigRequest :: FleetLaunchTemplateConfigRequest

-- | Any parameters that you specify override the same parameters in the
--   launch template.
fltcrOverrides :: Lens' FleetLaunchTemplateConfigRequest [FleetLaunchTemplateOverridesRequest]

-- | The launch template to use. You must specify either the launch
--   template ID or launch template name in the request.
fltcrLaunchTemplateSpecification :: Lens' FleetLaunchTemplateConfigRequest (Maybe FleetLaunchTemplateSpecificationRequest)

-- | Describes overrides for a launch template.
--   
--   <i>See:</i> <a>fleetLaunchTemplateOverrides</a> smart constructor.
data FleetLaunchTemplateOverrides

-- | Creates a value of <a>FleetLaunchTemplateOverrides</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fltoWeightedCapacity</a> - The number of units provided by the
--   specified instance type.</li>
--   <li><a>fltoSubnetId</a> - The ID of the subnet in which to launch the
--   instances.</li>
--   <li><a>fltoInstanceType</a> - The instance type.</li>
--   <li><a>fltoAvailabilityZone</a> - The Availability Zone in which to
--   launch the instances.</li>
--   <li><a>fltoMaxPrice</a> - The maximum price per unit hour that you are
--   willing to pay for a Spot Instance.</li>
--   </ul>
fleetLaunchTemplateOverrides :: FleetLaunchTemplateOverrides

-- | The number of units provided by the specified instance type.
fltoWeightedCapacity :: Lens' FleetLaunchTemplateOverrides (Maybe Double)

-- | The ID of the subnet in which to launch the instances.
fltoSubnetId :: Lens' FleetLaunchTemplateOverrides (Maybe Text)

-- | The instance type.
fltoInstanceType :: Lens' FleetLaunchTemplateOverrides (Maybe InstanceType)

-- | The Availability Zone in which to launch the instances.
fltoAvailabilityZone :: Lens' FleetLaunchTemplateOverrides (Maybe Text)

-- | The maximum price per unit hour that you are willing to pay for a Spot
--   Instance.
fltoMaxPrice :: Lens' FleetLaunchTemplateOverrides (Maybe Text)

-- | Describes overrides for a launch template.
--   
--   <i>See:</i> <a>fleetLaunchTemplateOverridesRequest</a> smart
--   constructor.
data FleetLaunchTemplateOverridesRequest

-- | Creates a value of <a>FleetLaunchTemplateOverridesRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fltorWeightedCapacity</a> - The number of units provided by the
--   specified instance type.</li>
--   <li><a>fltorSubnetId</a> - The ID of the subnet in which to launch the
--   instances.</li>
--   <li><a>fltorInstanceType</a> - The instance type.</li>
--   <li><a>fltorAvailabilityZone</a> - The Availability Zone in which to
--   launch the instances.</li>
--   <li><a>fltorMaxPrice</a> - The maximum price per unit hour that you
--   are willing to pay for a Spot Instance.</li>
--   </ul>
fleetLaunchTemplateOverridesRequest :: FleetLaunchTemplateOverridesRequest

-- | The number of units provided by the specified instance type.
fltorWeightedCapacity :: Lens' FleetLaunchTemplateOverridesRequest (Maybe Double)

-- | The ID of the subnet in which to launch the instances.
fltorSubnetId :: Lens' FleetLaunchTemplateOverridesRequest (Maybe Text)

-- | The instance type.
fltorInstanceType :: Lens' FleetLaunchTemplateOverridesRequest (Maybe InstanceType)

-- | The Availability Zone in which to launch the instances.
fltorAvailabilityZone :: Lens' FleetLaunchTemplateOverridesRequest (Maybe Text)

-- | The maximum price per unit hour that you are willing to pay for a Spot
--   Instance.
fltorMaxPrice :: Lens' FleetLaunchTemplateOverridesRequest (Maybe Text)

-- | Describes a launch template.
--   
--   <i>See:</i> <a>fleetLaunchTemplateSpecification</a> smart constructor.
data FleetLaunchTemplateSpecification

-- | Creates a value of <a>FleetLaunchTemplateSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fltsLaunchTemplateName</a> - The name of the launch template.
--   You must specify either a template name or a template ID.</li>
--   <li><a>fltsLaunchTemplateId</a> - The ID of the launch template. You
--   must specify either a template ID or a template name.</li>
--   <li><a>fltsVersion</a> - The version number. By default, the default
--   version of the launch template is used.</li>
--   </ul>
fleetLaunchTemplateSpecification :: FleetLaunchTemplateSpecification

-- | The name of the launch template. You must specify either a template
--   name or a template ID.
fltsLaunchTemplateName :: Lens' FleetLaunchTemplateSpecification (Maybe Text)

-- | The ID of the launch template. You must specify either a template ID
--   or a template name.
fltsLaunchTemplateId :: Lens' FleetLaunchTemplateSpecification (Maybe Text)

-- | The version number. By default, the default version of the launch
--   template is used.
fltsVersion :: Lens' FleetLaunchTemplateSpecification (Maybe Text)

-- | The launch template to use. You must specify either the launch
--   template ID or launch template name in the request.
--   
--   <i>See:</i> <a>fleetLaunchTemplateSpecificationRequest</a> smart
--   constructor.
data FleetLaunchTemplateSpecificationRequest

-- | Creates a value of <a>FleetLaunchTemplateSpecificationRequest</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fltsrLaunchTemplateName</a> - The name of the launch
--   template.</li>
--   <li><a>fltsrLaunchTemplateId</a> - The ID of the launch template.</li>
--   <li><a>fltsrVersion</a> - The version number of the launch
--   template.</li>
--   </ul>
fleetLaunchTemplateSpecificationRequest :: FleetLaunchTemplateSpecificationRequest

-- | The name of the launch template.
fltsrLaunchTemplateName :: Lens' FleetLaunchTemplateSpecificationRequest (Maybe Text)

-- | The ID of the launch template.
fltsrLaunchTemplateId :: Lens' FleetLaunchTemplateSpecificationRequest (Maybe Text)

-- | The version number of the launch template.
fltsrVersion :: Lens' FleetLaunchTemplateSpecificationRequest (Maybe 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 an Amazon FPGA image (AFI).
--   
--   <i>See:</i> <a>fpgaImage</a> smart constructor.
data FpgaImage

-- | Creates a value of <a>FpgaImage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fiShellVersion</a> - The version of the AWS Shell that was used
--   to create the bitstream.</li>
--   <li><a>fiPciId</a> - Information about the PCI bus.</li>
--   <li><a>fiState</a> - Information about the state of the AFI.</li>
--   <li><a>fiOwnerAlias</a> - The alias of the AFI owner. Possible values
--   include <tt>self</tt> , <tt>amazon</tt> , and <tt>aws-marketplace</tt>
--   .</li>
--   <li><a>fiFpgaImageId</a> - The FPGA image identifier (AFI ID).</li>
--   <li><a>fiOwnerId</a> - The AWS account ID of the AFI owner.</li>
--   <li><a>fiUpdateTime</a> - The time of the most recent update to the
--   AFI.</li>
--   <li><a>fiName</a> - The name of the AFI.</li>
--   <li><a>fiProductCodes</a> - The product codes for the AFI.</li>
--   <li><a>fiDescription</a> - The description of the AFI.</li>
--   <li><a>fiCreateTime</a> - The date and time the AFI was created.</li>
--   <li><a>fiTags</a> - Any tags assigned to the AFI.</li>
--   <li><a>fiPublic</a> - Indicates whether the AFI is public.</li>
--   <li><a>fiFpgaImageGlobalId</a> - The global FPGA image identifier
--   (AGFI ID).</li>
--   </ul>
fpgaImage :: FpgaImage

-- | The version of the AWS Shell that was used to create the bitstream.
fiShellVersion :: Lens' FpgaImage (Maybe Text)

-- | Information about the PCI bus.
fiPciId :: Lens' FpgaImage (Maybe PciId)

-- | Information about the state of the AFI.
fiState :: Lens' FpgaImage (Maybe FpgaImageState)

-- | The alias of the AFI owner. Possible values include <tt>self</tt> ,
--   <tt>amazon</tt> , and <tt>aws-marketplace</tt> .
fiOwnerAlias :: Lens' FpgaImage (Maybe Text)

-- | The FPGA image identifier (AFI ID).
fiFpgaImageId :: Lens' FpgaImage (Maybe Text)

-- | The AWS account ID of the AFI owner.
fiOwnerId :: Lens' FpgaImage (Maybe Text)

-- | The time of the most recent update to the AFI.
fiUpdateTime :: Lens' FpgaImage (Maybe UTCTime)

-- | The name of the AFI.
fiName :: Lens' FpgaImage (Maybe Text)

-- | The product codes for the AFI.
fiProductCodes :: Lens' FpgaImage [ProductCode]

-- | The description of the AFI.
fiDescription :: Lens' FpgaImage (Maybe Text)

-- | The date and time the AFI was created.
fiCreateTime :: Lens' FpgaImage (Maybe UTCTime)

-- | Any tags assigned to the AFI.
fiTags :: Lens' FpgaImage [Tag]

-- | Indicates whether the AFI is public.
fiPublic :: Lens' FpgaImage (Maybe Bool)

-- | The global FPGA image identifier (AGFI ID).
fiFpgaImageGlobalId :: Lens' FpgaImage (Maybe Text)

-- | Describes an Amazon FPGA image (AFI) attribute.
--   
--   <i>See:</i> <a>fpgaImageAttribute</a> smart constructor.
data FpgaImageAttribute

-- | Creates a value of <a>FpgaImageAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fiaFpgaImageId</a> - The ID of the AFI.</li>
--   <li><a>fiaName</a> - The name of the AFI.</li>
--   <li><a>fiaProductCodes</a> - One or more product codes.</li>
--   <li><a>fiaDescription</a> - The description of the AFI.</li>
--   <li><a>fiaLoadPermissions</a> - One or more load permissions.</li>
--   </ul>
fpgaImageAttribute :: FpgaImageAttribute

-- | The ID of the AFI.
fiaFpgaImageId :: Lens' FpgaImageAttribute (Maybe Text)

-- | The name of the AFI.
fiaName :: Lens' FpgaImageAttribute (Maybe Text)

-- | One or more product codes.
fiaProductCodes :: Lens' FpgaImageAttribute [ProductCode]

-- | The description of the AFI.
fiaDescription :: Lens' FpgaImageAttribute (Maybe Text)

-- | One or more load permissions.
fiaLoadPermissions :: Lens' FpgaImageAttribute [LoadPermission]

-- | Describes the state of the bitstream generation process for an Amazon
--   FPGA image (AFI).
--   
--   <i>See:</i> <a>fpgaImageState</a> smart constructor.
data FpgaImageState

-- | Creates a value of <a>FpgaImageState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fisCode</a> - The state. The following are the possible values:
--   * <tt>pending</tt> - AFI bitstream generation is in progress. *
--   <tt>available</tt> - The AFI is available for use. * <tt>failed</tt> -
--   AFI bitstream generation failed. * <tt>unavailable</tt> - The AFI is
--   no longer available for use.</li>
--   <li><a>fisMessage</a> - If the state is <tt>failed</tt> , this is the
--   error message.</li>
--   </ul>
fpgaImageState :: FpgaImageState

-- | The state. The following are the possible values: * <tt>pending</tt> -
--   AFI bitstream generation is in progress. * <tt>available</tt> - The
--   AFI is available for use. * <tt>failed</tt> - AFI bitstream generation
--   failed. * <tt>unavailable</tt> - The AFI is no longer available for
--   use.
fisCode :: Lens' FpgaImageState (Maybe FpgaImageStateCode)

-- | If the state is <tt>failed</tt> , this is the error message.
fisMessage :: Lens' FpgaImageState (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>hrEventInformation</a> - Information about the event.</li>
--   <li><a>hrEventType</a> - The event type. * <tt>error</tt> - An error
--   with the Spot Fleet request. * <tt>fleetRequestChange</tt> - A change
--   in the status or configuration of the Spot Fleet request. *
--   <tt>instanceChange</tt> - An instance was launched or terminated. *
--   <tt>Information</tt> - An informational event.</li>
--   <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>
--   </ul>
historyRecord :: EventInformation -> EventType -> UTCTime -> HistoryRecord

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

-- | The event type. * <tt>error</tt> - An error with the Spot Fleet
--   request. * <tt>fleetRequestChange</tt> - A change in the status or
--   configuration of the Spot Fleet request. * <tt>instanceChange</tt> -
--   An instance was launched or terminated. * <tt>Information</tt> - An
--   informational event.
hrEventType :: Lens' HistoryRecord EventType

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

-- | Describes an event in the history of the EC2 Fleet.
--   
--   <i>See:</i> <a>historyRecordEntry</a> smart constructor.
data HistoryRecordEntry

-- | Creates a value of <a>HistoryRecordEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hreEventType</a> - The event type.</li>
--   <li><a>hreEventInformation</a> - Information about the event.</li>
--   <li><a>hreTimestamp</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>
--   </ul>
historyRecordEntry :: HistoryRecordEntry

-- | The event type.
hreEventType :: Lens' HistoryRecordEntry (Maybe FleetEventType)

-- | Information about the event.
hreEventInformation :: Lens' HistoryRecordEntry (Maybe EventInformation)

-- | 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).
hreTimestamp :: Lens' HistoryRecordEntry (Maybe UTCTime)

-- | 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>hReleaseTime</a> - The time that the Dedicated Host was
--   released.</li>
--   <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>hAllocationTime</a> - The time that the Dedicated Host was
--   allocated.</li>
--   <li><a>hAutoPlacement</a> - Whether auto-placement is on or off.</li>
--   </ul>
host :: Host

-- | The time that the Dedicated Host was released.
hReleaseTime :: Lens' Host (Maybe UTCTime)

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

-- | The time that the Dedicated Host was allocated.
hAllocationTime :: Lens' Host (Maybe UTCTime)

-- | 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 association between an IAM instance profile and an
--   instance.
--   
--   <i>See:</i> <a>iamInstanceProfileAssociation</a> smart constructor.
data IAMInstanceProfileAssociation

-- | Creates a value of <a>IAMInstanceProfileAssociation</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iapaAssociationId</a> - The ID of the association.</li>
--   <li><a>iapaInstanceId</a> - The ID of the instance.</li>
--   <li><a>iapaState</a> - The state of the association.</li>
--   <li><a>iapaIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>iapaTimestamp</a> - The time the IAM instance profile was
--   associated with the instance.</li>
--   </ul>
iamInstanceProfileAssociation :: IAMInstanceProfileAssociation

-- | The ID of the association.
iapaAssociationId :: Lens' IAMInstanceProfileAssociation (Maybe Text)

-- | The ID of the instance.
iapaInstanceId :: Lens' IAMInstanceProfileAssociation (Maybe Text)

-- | The state of the association.
iapaState :: Lens' IAMInstanceProfileAssociation (Maybe IAMInstanceProfileAssociationState)

-- | The IAM instance profile.
iapaIAMInstanceProfile :: Lens' IAMInstanceProfileAssociation (Maybe IAMInstanceProfile)

-- | The time the IAM instance profile was associated with the instance.
iapaTimestamp :: Lens' IAMInstanceProfileAssociation (Maybe UTCTime)

-- | 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 set of permissions for 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. If you specify all ICMP/ICMPv6
--   types, you must specify all codes.</li>
--   <li><a>ipUserIdGroupPairs</a> - One or more security group and AWS
--   account ID pairs.</li>
--   <li><a>ipPrefixListIds</a> - (EC2-VPC only; 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. If you specify
--   all ICMP/ICMPv6 types, you must specify all codes.</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. If you specify all ICMP/ICMPv6 types, you must
--   specify all codes.
ipFromPort :: Lens' IPPermission (Maybe Int)

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

-- | (EC2-VPC only; 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. If you specify all
--   ICMP/ICMPv6 types, you must specify all codes.
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>iprDescription</a> - A description for the security group rule
--   that references this IPv4 address range. Constraints: Up to 255
--   characters in length. Allowed characters are a-z, A-Z, 0-9, spaces,
--   and ._-:/()#,@[]+=;{}!$*</li>
--   <li><a>iprCidrIP</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 length.</li>
--   </ul>
ipRange :: Text -> IPRange

-- | A description for the security group rule that references this IPv4
--   address range. Constraints: Up to 255 characters in length. Allowed
--   characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*
iprDescription :: Lens' IPRange (Maybe Text)

-- | 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 length.
iprCidrIP :: 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 length.</li>
--   <li><a>irDescription</a> - A description for the security group rule
--   that references this IPv6 address range. Constraints: Up to 255
--   characters in length. Allowed characters are a-z, A-Z, 0-9, spaces,
--   and ._-:/()#,@[]+=;{}!$*</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 length.
irCidrIPv6 :: Lens' IPv6Range (Maybe Text)

-- | A description for the security group rule that references this IPv6
--   address range. Constraints: Up to 255 characters in length. Allowed
--   characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*
irDescription :: 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 volume
--   (for example, <tt><i>dev</i>sda1</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 volume (for example,
--   <tt><i>dev</i>sda1</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>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>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 Base64-encoded user data to make
--   available to the instance.</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 Base64-encoded user data to make available to the instance.
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>iitdVolumes</a> - One or more volumes.</li>
--   <li><a>iitdDescription</a> - A description of the task.</li>
--   </ul>
importInstanceTaskDetails :: ImportInstanceTaskDetails

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

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

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

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

-- | 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>iivdiAvailabilityZone</a> - The Availability Zone where the
--   resulting instance will reside.</li>
--   <li><a>iivdiBytesConverted</a> - The number of bytes converted so
--   far.</li>
--   <li><a>iivdiImage</a> - The image.</li>
--   <li><a>iivdiStatus</a> - The status of the import of this particular
--   disk image.</li>
--   <li><a>iivdiVolume</a> - The volume.</li>
--   </ul>
importInstanceVolumeDetailItem :: Text -> Integer -> DiskImageDescription -> Text -> DiskImageVolumeDescription -> 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 Availability Zone where the resulting instance will reside.
iivdiAvailabilityZone :: Lens' ImportInstanceVolumeDetailItem Text

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

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

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

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

-- | 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>ivtdBytesConverted</a> - The number of bytes converted so
--   far.</li>
--   <li><a>ivtdImage</a> - The image.</li>
--   <li><a>ivtdVolume</a> - The volume.</li>
--   <li><a>ivtdAvailabilityZone</a> - The Availability Zone where the
--   resulting volume will reside.</li>
--   <li><a>ivtdDescription</a> - The description you provided when
--   starting the import volume task.</li>
--   </ul>
importVolumeTaskDetails :: ImportVolumeTaskDetails

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

-- | The image.
ivtdImage :: Lens' ImportVolumeTaskDetails (Maybe DiskImageDescription)

-- | The volume.
ivtdVolume :: Lens' ImportVolumeTaskDetails (Maybe DiskImageVolumeDescription)

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

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

-- | 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 that checking is enabled, and <tt>false</tt> means
--   that 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>insElasticGpuAssociations</a> - The Elastic GPU associated with
--   the instance.</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>insCPUOptions</a> - The CPU options for the instance.</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 device name of the root device
--   volume (for example, <tt><i>dev</i>sda1</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 Amazon 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 resolves 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 that checking is enabled,
--   and <tt>false</tt> means that 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)

-- | The Elastic GPU associated with the instance.
insElasticGpuAssociations :: Lens' Instance [ElasticGpuAssociation]

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

-- | The CPU options for the instance.
insCPUOptions :: Lens' Instance (Maybe CPUOptions)

-- | <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 device name of the root device volume (for example,
--   <tt><i>dev</i>sda1</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 Amazon 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 resolves
--   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 (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 (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 (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 (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 the credit option for CPU usage of a T2 instance.
--   
--   <i>See:</i> <a>instanceCreditSpecification</a> smart constructor.
data InstanceCreditSpecification

-- | Creates a value of <a>InstanceCreditSpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icsInstanceId</a> - The ID of the instance.</li>
--   <li><a>icsCPUCredits</a> - The credit option for CPU usage of the
--   instance. Valid values are <tt>standard</tt> and <tt>unlimited</tt>
--   .</li>
--   </ul>
instanceCreditSpecification :: InstanceCreditSpecification

-- | The ID of the instance.
icsInstanceId :: Lens' InstanceCreditSpecification (Maybe Text)

-- | The credit option for CPU usage of the instance. Valid values are
--   <tt>standard</tt> and <tt>unlimited</tt> .
icsCPUCredits :: Lens' InstanceCreditSpecification (Maybe Text)

-- | Describes the credit option for CPU usage of a T2 instance.
--   
--   <i>See:</i> <a>instanceCreditSpecificationRequest</a> smart
--   constructor.
data InstanceCreditSpecificationRequest

-- | Creates a value of <a>InstanceCreditSpecificationRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icsrInstanceId</a> - The ID of the instance.</li>
--   <li><a>icsrCPUCredits</a> - The credit option for CPU usage of the
--   instance. Valid values are <tt>standard</tt> and <tt>unlimited</tt>
--   .</li>
--   </ul>
instanceCreditSpecificationRequest :: InstanceCreditSpecificationRequest

-- | The ID of the instance.
icsrInstanceId :: Lens' InstanceCreditSpecificationRequest (Maybe Text)

-- | The credit option for CPU usage of the instance. Valid values are
--   <tt>standard</tt> and <tt>unlimited</tt> .
icsrCPUCredits :: Lens' InstanceCreditSpecificationRequest (Maybe Text)

-- | 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 an IPv6 address.
--   
--   <i>See:</i> <a>instanceIPv6AddressRequest</a> smart constructor.
data InstanceIPv6AddressRequest

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

-- | The IPv6 address.
iiarIPv6Address :: Lens' InstanceIPv6AddressRequest (Maybe Text)

-- | Describes the market (purchasing) option for the instances.
--   
--   <i>See:</i> <a>instanceMarketOptionsRequest</a> smart constructor.
data InstanceMarketOptionsRequest

-- | Creates a value of <a>InstanceMarketOptionsRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>imorMarketType</a> - The market type.</li>
--   <li><a>imorSpotOptions</a> - The options for Spot Instances.</li>
--   </ul>
instanceMarketOptionsRequest :: InstanceMarketOptionsRequest

-- | The market type.
imorMarketType :: Lens' InstanceMarketOptionsRequest (Maybe MarketType)

-- | The options for Spot Instances.
imorSpotOptions :: Lens' InstanceMarketOptionsRequest (Maybe SpotMarketOptions)

-- | 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. For an
--   Internet gateway, the state is <tt>available</tt> when attached to a
--   VPC; otherwise, this value is not returned.</li>
--   <li><a>igaVPCId</a> - The ID of the VPC.</li>
--   </ul>
internetGatewayAttachment :: AttachmentStatus -> Text -> InternetGatewayAttachment

-- | The current state of the attachment. For an Internet gateway, the
--   state is <tt>available</tt> when attached to a VPC; otherwise, this
--   value is not returned.
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>lGroup</a> - The name of the group.</li>
--   <li><a>lUserId</a> - The AWS account ID.</li>
--   </ul>
launchPermission :: LaunchPermission

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

-- | The AWS account ID.
lUserId :: 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>lRemove</a> - The AWS account ID to remove from the list of
--   launch permissions for the AMI.</li>
--   <li><a>lAdd</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.
lRemove :: Lens' LaunchPermissionModifications [LaunchPermission]

-- | The AWS account ID to add to the list of launch permissions for the
--   AMI.
lAdd :: 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 Base64-encoded user data for the
--   instance.</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.</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 Base64-encoded user data for the instance.
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.
lsBlockDeviceMappings :: Lens' LaunchSpecification [BlockDeviceMapping]

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

-- | Describes a launch template.
--   
--   <i>See:</i> <a>launchTemplate</a> smart constructor.
data LaunchTemplate

-- | Creates a value of <a>LaunchTemplate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltLaunchTemplateName</a> - The name of the launch
--   template.</li>
--   <li><a>ltLatestVersionNumber</a> - The version number of the latest
--   version of the launch template.</li>
--   <li><a>ltLaunchTemplateId</a> - The ID of the launch template.</li>
--   <li><a>ltCreatedBy</a> - The principal that created the launch
--   template.</li>
--   <li><a>ltDefaultVersionNumber</a> - The version number of the default
--   version of the launch template.</li>
--   <li><a>ltCreateTime</a> - The time launch template was created.</li>
--   <li><a>ltTags</a> - The tags for the launch template.</li>
--   </ul>
launchTemplate :: LaunchTemplate

-- | The name of the launch template.
ltLaunchTemplateName :: Lens' LaunchTemplate (Maybe Text)

-- | The version number of the latest version of the launch template.
ltLatestVersionNumber :: Lens' LaunchTemplate (Maybe Integer)

-- | The ID of the launch template.
ltLaunchTemplateId :: Lens' LaunchTemplate (Maybe Text)

-- | The principal that created the launch template.
ltCreatedBy :: Lens' LaunchTemplate (Maybe Text)

-- | The version number of the default version of the launch template.
ltDefaultVersionNumber :: Lens' LaunchTemplate (Maybe Integer)

-- | The time launch template was created.
ltCreateTime :: Lens' LaunchTemplate (Maybe UTCTime)

-- | The tags for the launch template.
ltTags :: Lens' LaunchTemplate [Tag]

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

-- | Creates a value of <a>LaunchTemplateBlockDeviceMapping</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltbdmVirtualName</a> - The virtual device name
--   (ephemeralN).</li>
--   <li><a>ltbdmNoDevice</a> - Suppresses the specified device included in
--   the block device mapping of the AMI.</li>
--   <li><a>ltbdmEBS</a> - Information about the block device for an EBS
--   volume.</li>
--   <li><a>ltbdmDeviceName</a> - The device name.</li>
--   </ul>
launchTemplateBlockDeviceMapping :: LaunchTemplateBlockDeviceMapping

-- | The virtual device name (ephemeralN).
ltbdmVirtualName :: Lens' LaunchTemplateBlockDeviceMapping (Maybe Text)

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

-- | Information about the block device for an EBS volume.
ltbdmEBS :: Lens' LaunchTemplateBlockDeviceMapping (Maybe LaunchTemplateEBSBlockDevice)

-- | The device name.
ltbdmDeviceName :: Lens' LaunchTemplateBlockDeviceMapping (Maybe Text)

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

-- | Creates a value of <a>LaunchTemplateBlockDeviceMappingRequest</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltbdmrVirtualName</a> - The virtual device name (ephemeralN).
--   Instance store volumes are numbered starting from 0. An instance type
--   with 2 available instance store volumes can specify mappings for
--   ephemeral0 and ephemeral1. The number of available instance store
--   volumes depends on the instance type. After you connect to the
--   instance, you must mount the volume.</li>
--   <li><a>ltbdmrNoDevice</a> - Suppresses the specified device included
--   in the block device mapping of the AMI.</li>
--   <li><a>ltbdmrEBS</a> - Parameters used to automatically set up EBS
--   volumes when the instance is launched.</li>
--   <li><a>ltbdmrDeviceName</a> - The device name (for example,
--   <i>dev</i>sdh or xvdh).</li>
--   </ul>
launchTemplateBlockDeviceMappingRequest :: LaunchTemplateBlockDeviceMappingRequest

-- | The virtual device name (ephemeralN). Instance store volumes are
--   numbered starting from 0. An instance type with 2 available instance
--   store volumes can specify mappings for ephemeral0 and ephemeral1. The
--   number of available instance store volumes depends on the instance
--   type. After you connect to the instance, you must mount the volume.
ltbdmrVirtualName :: Lens' LaunchTemplateBlockDeviceMappingRequest (Maybe Text)

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

-- | Parameters used to automatically set up EBS volumes when the instance
--   is launched.
ltbdmrEBS :: Lens' LaunchTemplateBlockDeviceMappingRequest (Maybe LaunchTemplateEBSBlockDeviceRequest)

-- | The device name (for example, <i>dev</i>sdh or xvdh).
ltbdmrDeviceName :: Lens' LaunchTemplateBlockDeviceMappingRequest (Maybe Text)

-- | Describes a launch template and overrides.
--   
--   <i>See:</i> <a>launchTemplateConfig</a> smart constructor.
data LaunchTemplateConfig

-- | Creates a value of <a>LaunchTemplateConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltcOverrides</a> - Any parameters that you specify override the
--   same parameters in the launch template.</li>
--   <li><a>ltcLaunchTemplateSpecification</a> - The launch template.</li>
--   </ul>
launchTemplateConfig :: LaunchTemplateConfig

-- | Any parameters that you specify override the same parameters in the
--   launch template.
ltcOverrides :: Lens' LaunchTemplateConfig [LaunchTemplateOverrides]

-- | The launch template.
ltcLaunchTemplateSpecification :: Lens' LaunchTemplateConfig (Maybe FleetLaunchTemplateSpecification)

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

-- | Creates a value of <a>LaunchTemplateEBSBlockDevice</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltebdDeleteOnTermination</a> - Indicates whether the EBS volume
--   is deleted on instance termination.</li>
--   <li><a>ltebdVolumeSize</a> - The size of the volume, in GiB.</li>
--   <li><a>ltebdIOPS</a> - The number of I/O operations per second (IOPS)
--   that the volume supports.</li>
--   <li><a>ltebdEncrypted</a> - Indicates whether the EBS volume is
--   encrypted.</li>
--   <li><a>ltebdKMSKeyId</a> - The ARN of the AWS Key Management Service
--   (AWS KMS) CMK used for encryption.</li>
--   <li><a>ltebdVolumeType</a> - The volume type.</li>
--   <li><a>ltebdSnapshotId</a> - The ID of the snapshot.</li>
--   </ul>
launchTemplateEBSBlockDevice :: LaunchTemplateEBSBlockDevice

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

-- | The size of the volume, in GiB.
ltebdVolumeSize :: Lens' LaunchTemplateEBSBlockDevice (Maybe Int)

-- | The number of I/O operations per second (IOPS) that the volume
--   supports.
ltebdIOPS :: Lens' LaunchTemplateEBSBlockDevice (Maybe Int)

-- | Indicates whether the EBS volume is encrypted.
ltebdEncrypted :: Lens' LaunchTemplateEBSBlockDevice (Maybe Bool)

-- | The ARN of the AWS Key Management Service (AWS KMS) CMK used for
--   encryption.
ltebdKMSKeyId :: Lens' LaunchTemplateEBSBlockDevice (Maybe Text)

-- | The volume type.
ltebdVolumeType :: Lens' LaunchTemplateEBSBlockDevice (Maybe VolumeType)

-- | The ID of the snapshot.
ltebdSnapshotId :: Lens' LaunchTemplateEBSBlockDevice (Maybe Text)

-- | The parameters for a block device for an EBS volume.
--   
--   <i>See:</i> <a>launchTemplateEBSBlockDeviceRequest</a> smart
--   constructor.
data LaunchTemplateEBSBlockDeviceRequest

-- | Creates a value of <a>LaunchTemplateEBSBlockDeviceRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltebdrDeleteOnTermination</a> - Indicates whether the EBS
--   volume is deleted on instance termination.</li>
--   <li><a>ltebdrVolumeSize</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>ltebdrIOPS</a> - The number of I<i>O operations per second
--   (IOPS) that the volume supports. For io1, this represents the number
--   of IOPS that are provisioned for the volume. For gp2, 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/O credits, and
--   bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute
--   Cloud User Guide. Condition: This parameter is required for requests
--   to create io1 volumes; it is not used in requests to create gp2, st1,
--   sc1, or standard volumes.</li>
--   <li><a>ltebdrEncrypted</a> - Indicates whether the EBS volume is
--   encrypted. Encrypted volumes can only be attached to instances that
--   support Amazon EBS encryption. If you are creating a volume from a
--   snapshot, you can't specify an encryption value.</li>
--   <li><a>ltebdrKMSKeyId</a> - The ARN of the AWS Key Management Service
--   (AWS KMS) CMK used for encryption.</li>
--   <li><a>ltebdrVolumeType</a> - The volume type.</li>
--   <li><a>ltebdrSnapshotId</a> - The ID of the snapshot.</li>
--   </ul>
launchTemplateEBSBlockDeviceRequest :: LaunchTemplateEBSBlockDeviceRequest

-- | Indicates whether the EBS volume is deleted on instance termination.
ltebdrDeleteOnTermination :: Lens' LaunchTemplateEBSBlockDeviceRequest (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.
ltebdrVolumeSize :: Lens' LaunchTemplateEBSBlockDeviceRequest (Maybe Int)

-- | The number of I<i>O operations per second (IOPS) that the volume
--   supports. For io1, this represents the number of IOPS that are
--   provisioned for the volume. For gp2, 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/O credits, and bursting, see
--   Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User
--   Guide. Condition: This parameter is required for requests to create
--   io1 volumes; it is not used in requests to create gp2, st1, sc1, or
--   standard volumes.
ltebdrIOPS :: Lens' LaunchTemplateEBSBlockDeviceRequest (Maybe Int)

-- | Indicates whether the EBS volume is encrypted. Encrypted volumes can
--   only be attached to instances that support Amazon EBS encryption. If
--   you are creating a volume from a snapshot, you can't specify an
--   encryption value.
ltebdrEncrypted :: Lens' LaunchTemplateEBSBlockDeviceRequest (Maybe Bool)

-- | The ARN of the AWS Key Management Service (AWS KMS) CMK used for
--   encryption.
ltebdrKMSKeyId :: Lens' LaunchTemplateEBSBlockDeviceRequest (Maybe Text)

-- | The volume type.
ltebdrVolumeType :: Lens' LaunchTemplateEBSBlockDeviceRequest (Maybe VolumeType)

-- | The ID of the snapshot.
ltebdrSnapshotId :: Lens' LaunchTemplateEBSBlockDeviceRequest (Maybe Text)

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

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

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

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

-- | An IAM instance profile.
--   
--   <i>See:</i>
--   <a>launchTemplateIAMInstanceProfileSpecificationRequest</a> smart
--   constructor.
data LaunchTemplateIAMInstanceProfileSpecificationRequest

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

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

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

-- | The market (purchasing) option for the instances.
--   
--   <i>See:</i> <a>launchTemplateInstanceMarketOptions</a> smart
--   constructor.
data LaunchTemplateInstanceMarketOptions

-- | Creates a value of <a>LaunchTemplateInstanceMarketOptions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltimoMarketType</a> - The market type.</li>
--   <li><a>ltimoSpotOptions</a> - The options for Spot Instances.</li>
--   </ul>
launchTemplateInstanceMarketOptions :: LaunchTemplateInstanceMarketOptions

-- | The market type.
ltimoMarketType :: Lens' LaunchTemplateInstanceMarketOptions (Maybe MarketType)

-- | The options for Spot Instances.
ltimoSpotOptions :: Lens' LaunchTemplateInstanceMarketOptions (Maybe LaunchTemplateSpotMarketOptions)

-- | The market (purchasing) option for the instances.
--   
--   <i>See:</i> <a>launchTemplateInstanceMarketOptionsRequest</a> smart
--   constructor.
data LaunchTemplateInstanceMarketOptionsRequest

-- | Creates a value of <a>LaunchTemplateInstanceMarketOptionsRequest</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltimorMarketType</a> - The market type.</li>
--   <li><a>ltimorSpotOptions</a> - The options for Spot Instances.</li>
--   </ul>
launchTemplateInstanceMarketOptionsRequest :: LaunchTemplateInstanceMarketOptionsRequest

-- | The market type.
ltimorMarketType :: Lens' LaunchTemplateInstanceMarketOptionsRequest (Maybe MarketType)

-- | The options for Spot Instances.
ltimorSpotOptions :: Lens' LaunchTemplateInstanceMarketOptionsRequest (Maybe LaunchTemplateSpotMarketOptionsRequest)

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

-- | Creates a value of
--   <a>LaunchTemplateInstanceNetworkInterfaceSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltinisGroups</a> - The IDs of one or more security groups.</li>
--   <li><a>ltinisPrivateIPAddresses</a> - One or more private IPv4
--   addresses.</li>
--   <li><a>ltinisDeleteOnTermination</a> - Indicates whether the network
--   interface is deleted when the instance is terminated.</li>
--   <li><a>ltinisAssociatePublicIPAddress</a> - Indicates whether to
--   associate a public IPv4 address with eth0 for a new network
--   interface.</li>
--   <li><a>ltinisNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>ltinisSubnetId</a> - The ID of the subnet for the network
--   interface.</li>
--   <li><a>ltinisIPv6AddressCount</a> - The number of IPv6 addresses for
--   the network interface.</li>
--   <li><a>ltinisPrivateIPAddress</a> - The primary private IPv4 address
--   of the network interface.</li>
--   <li><a>ltinisSecondaryPrivateIPAddressCount</a> - The number of
--   secondary private IPv4 addresses for the network interface.</li>
--   <li><a>ltinisDescription</a> - A description for the network
--   interface.</li>
--   <li><a>ltinisDeviceIndex</a> - The device index for the network
--   interface attachment.</li>
--   <li><a>ltinisIPv6Addresses</a> - The IPv6 addresses for the network
--   interface.</li>
--   </ul>
launchTemplateInstanceNetworkInterfaceSpecification :: LaunchTemplateInstanceNetworkInterfaceSpecification

-- | The IDs of one or more security groups.
ltinisGroups :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification [Text]

-- | One or more private IPv4 addresses.
ltinisPrivateIPAddresses :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification [PrivateIPAddressSpecification]

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

-- | Indicates whether to associate a public IPv4 address with eth0 for a
--   new network interface.
ltinisAssociatePublicIPAddress :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Bool)

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

-- | The ID of the subnet for the network interface.
ltinisSubnetId :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Text)

-- | The number of IPv6 addresses for the network interface.
ltinisIPv6AddressCount :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Int)

-- | The primary private IPv4 address of the network interface.
ltinisPrivateIPAddress :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Text)

-- | The number of secondary private IPv4 addresses for the network
--   interface.
ltinisSecondaryPrivateIPAddressCount :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Int)

-- | A description for the network interface.
ltinisDescription :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Text)

-- | The device index for the network interface attachment.
ltinisDeviceIndex :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Int)

-- | The IPv6 addresses for the network interface.
ltinisIPv6Addresses :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification [InstanceIPv6Address]

-- | The parameters for a network interface.
--   
--   <i>See:</i>
--   <a>launchTemplateInstanceNetworkInterfaceSpecificationRequest</a>
--   smart constructor.
data LaunchTemplateInstanceNetworkInterfaceSpecificationRequest

-- | Creates a value of
--   <a>LaunchTemplateInstanceNetworkInterfaceSpecificationRequest</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltinisrGroups</a> - The IDs of one or more security
--   groups.</li>
--   <li><a>ltinisrPrivateIPAddresses</a> - One or more private IPv4
--   addresses.</li>
--   <li><a>ltinisrDeleteOnTermination</a> - Indicates whether the network
--   interface is deleted when the instance is terminated.</li>
--   <li><a>ltinisrAssociatePublicIPAddress</a> - Associates a public IPv4
--   address with eth0 for a new network interface.</li>
--   <li><a>ltinisrNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>ltinisrSubnetId</a> - The ID of the subnet for the network
--   interface.</li>
--   <li><a>ltinisrIPv6AddressCount</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.</li>
--   <li><a>ltinisrPrivateIPAddress</a> - The primary private IPv4 address
--   of the network interface.</li>
--   <li><a>ltinisrSecondaryPrivateIPAddressCount</a> - The number of
--   secondary private IPv4 addresses to assign to a network
--   interface.</li>
--   <li><a>ltinisrDescription</a> - A description for the network
--   interface.</li>
--   <li><a>ltinisrDeviceIndex</a> - The device index for the network
--   interface attachment.</li>
--   <li><a>ltinisrIPv6Addresses</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>
--   </ul>
launchTemplateInstanceNetworkInterfaceSpecificationRequest :: LaunchTemplateInstanceNetworkInterfaceSpecificationRequest

-- | The IDs of one or more security groups.
ltinisrGroups :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest [Text]

-- | One or more private IPv4 addresses.
ltinisrPrivateIPAddresses :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest [PrivateIPAddressSpecification]

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

-- | Associates a public IPv4 address with eth0 for a new network
--   interface.
ltinisrAssociatePublicIPAddress :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Bool)

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

-- | The ID of the subnet for the network interface.
ltinisrSubnetId :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Text)

-- | 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.
ltinisrIPv6AddressCount :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Int)

-- | The primary private IPv4 address of the network interface.
ltinisrPrivateIPAddress :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Text)

-- | The number of secondary private IPv4 addresses to assign to a network
--   interface.
ltinisrSecondaryPrivateIPAddressCount :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Int)

-- | A description for the network interface.
ltinisrDescription :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Text)

-- | The device index for the network interface attachment.
ltinisrDeviceIndex :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Int)

-- | 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.
ltinisrIPv6Addresses :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest [InstanceIPv6AddressRequest]

-- | Describes overrides for a launch template.
--   
--   <i>See:</i> <a>launchTemplateOverrides</a> smart constructor.
data LaunchTemplateOverrides

-- | Creates a value of <a>LaunchTemplateOverrides</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltoSpotPrice</a> - The maximum price per unit hour that you are
--   willing to pay for a Spot Instance.</li>
--   <li><a>ltoWeightedCapacity</a> - The number of units provided by the
--   specified instance type.</li>
--   <li><a>ltoSubnetId</a> - The ID of the subnet in which to launch the
--   instances.</li>
--   <li><a>ltoInstanceType</a> - The instance type.</li>
--   <li><a>ltoAvailabilityZone</a> - The Availability Zone in which to
--   launch the instances.</li>
--   </ul>
launchTemplateOverrides :: LaunchTemplateOverrides

-- | The maximum price per unit hour that you are willing to pay for a Spot
--   Instance.
ltoSpotPrice :: Lens' LaunchTemplateOverrides (Maybe Text)

-- | The number of units provided by the specified instance type.
ltoWeightedCapacity :: Lens' LaunchTemplateOverrides (Maybe Double)

-- | The ID of the subnet in which to launch the instances.
ltoSubnetId :: Lens' LaunchTemplateOverrides (Maybe Text)

-- | The instance type.
ltoInstanceType :: Lens' LaunchTemplateOverrides (Maybe InstanceType)

-- | The Availability Zone in which to launch the instances.
ltoAvailabilityZone :: Lens' LaunchTemplateOverrides (Maybe Text)

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

-- | Creates a value of <a>LaunchTemplatePlacement</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltpAffinity</a> - The affinity setting for the instance on the
--   Dedicated Host.</li>
--   <li><a>ltpHostId</a> - The ID of the Dedicated Host for the
--   instance.</li>
--   <li><a>ltpSpreadDomain</a> - Reserved for future use.</li>
--   <li><a>ltpAvailabilityZone</a> - The Availability Zone of the
--   instance.</li>
--   <li><a>ltpTenancy</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.</li>
--   <li><a>ltpGroupName</a> - The name of the placement group for the
--   instance.</li>
--   </ul>
launchTemplatePlacement :: LaunchTemplatePlacement

-- | The affinity setting for the instance on the Dedicated Host.
ltpAffinity :: Lens' LaunchTemplatePlacement (Maybe Text)

-- | The ID of the Dedicated Host for the instance.
ltpHostId :: Lens' LaunchTemplatePlacement (Maybe Text)

-- | Reserved for future use.
ltpSpreadDomain :: Lens' LaunchTemplatePlacement (Maybe Text)

-- | The Availability Zone of the instance.
ltpAvailabilityZone :: Lens' LaunchTemplatePlacement (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.
ltpTenancy :: Lens' LaunchTemplatePlacement (Maybe Tenancy)

-- | The name of the placement group for the instance.
ltpGroupName :: Lens' LaunchTemplatePlacement (Maybe Text)

-- | The placement for the instance.
--   
--   <i>See:</i> <a>launchTemplatePlacementRequest</a> smart constructor.
data LaunchTemplatePlacementRequest

-- | Creates a value of <a>LaunchTemplatePlacementRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltprAffinity</a> - The affinity setting for an instance on a
--   Dedicated Host.</li>
--   <li><a>ltprHostId</a> - The ID of the Dedicated Host for the
--   instance.</li>
--   <li><a>ltprSpreadDomain</a> - Reserved for future use.</li>
--   <li><a>ltprAvailabilityZone</a> - The Availability Zone for the
--   instance.</li>
--   <li><a>ltprTenancy</a> - The tenancy of the instance (if the instance
--   is running in a VPC). An instance with a tenancy of dedicated runs on
--   single-tenant hardware.</li>
--   <li><a>ltprGroupName</a> - The name of the placement group for the
--   instance.</li>
--   </ul>
launchTemplatePlacementRequest :: LaunchTemplatePlacementRequest

-- | The affinity setting for an instance on a Dedicated Host.
ltprAffinity :: Lens' LaunchTemplatePlacementRequest (Maybe Text)

-- | The ID of the Dedicated Host for the instance.
ltprHostId :: Lens' LaunchTemplatePlacementRequest (Maybe Text)

-- | Reserved for future use.
ltprSpreadDomain :: Lens' LaunchTemplatePlacementRequest (Maybe Text)

-- | The Availability Zone for the instance.
ltprAvailabilityZone :: Lens' LaunchTemplatePlacementRequest (Maybe Text)

-- | The tenancy of the instance (if the instance is running in a VPC). An
--   instance with a tenancy of dedicated runs on single-tenant hardware.
ltprTenancy :: Lens' LaunchTemplatePlacementRequest (Maybe Tenancy)

-- | The name of the placement group for the instance.
ltprGroupName :: Lens' LaunchTemplatePlacementRequest (Maybe Text)

-- | The launch template to use. You must specify either the launch
--   template ID or launch template name in the request, but not both.
--   
--   <i>See:</i> <a>launchTemplateSpecification</a> smart constructor.
data LaunchTemplateSpecification

-- | Creates a value of <a>LaunchTemplateSpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltsLaunchTemplateName</a> - The name of the launch
--   template.</li>
--   <li><a>ltsLaunchTemplateId</a> - The ID of the launch template.</li>
--   <li><a>ltsVersion</a> - The version number of the launch template.
--   Default: The default version for the launch template.</li>
--   </ul>
launchTemplateSpecification :: LaunchTemplateSpecification

-- | The name of the launch template.
ltsLaunchTemplateName :: Lens' LaunchTemplateSpecification (Maybe Text)

-- | The ID of the launch template.
ltsLaunchTemplateId :: Lens' LaunchTemplateSpecification (Maybe Text)

-- | The version number of the launch template. Default: The default
--   version for the launch template.
ltsVersion :: Lens' LaunchTemplateSpecification (Maybe Text)

-- | The options for Spot Instances.
--   
--   <i>See:</i> <a>launchTemplateSpotMarketOptions</a> smart constructor.
data LaunchTemplateSpotMarketOptions

-- | Creates a value of <a>LaunchTemplateSpotMarketOptions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltsmoBlockDurationMinutes</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).</li>
--   <li><a>ltsmoInstanceInterruptionBehavior</a> - The behavior when a
--   Spot Instance is interrupted.</li>
--   <li><a>ltsmoValidUntil</a> - The end date of the request. For 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.</li>
--   <li><a>ltsmoSpotInstanceType</a> - The Spot Instance request
--   type.</li>
--   <li><a>ltsmoMaxPrice</a> - The maximum hourly price you're willing to
--   pay for the Spot Instances.</li>
--   </ul>
launchTemplateSpotMarketOptions :: LaunchTemplateSpotMarketOptions

-- | 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).
ltsmoBlockDurationMinutes :: Lens' LaunchTemplateSpotMarketOptions (Maybe Int)

-- | The behavior when a Spot Instance is interrupted.
ltsmoInstanceInterruptionBehavior :: Lens' LaunchTemplateSpotMarketOptions (Maybe InstanceInterruptionBehavior)

-- | The end date of the request. For 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.
ltsmoValidUntil :: Lens' LaunchTemplateSpotMarketOptions (Maybe UTCTime)

-- | The Spot Instance request type.
ltsmoSpotInstanceType :: Lens' LaunchTemplateSpotMarketOptions (Maybe SpotInstanceType)

-- | The maximum hourly price you're willing to pay for the Spot Instances.
ltsmoMaxPrice :: Lens' LaunchTemplateSpotMarketOptions (Maybe Text)

-- | The options for Spot Instances.
--   
--   <i>See:</i> <a>launchTemplateSpotMarketOptionsRequest</a> smart
--   constructor.
data LaunchTemplateSpotMarketOptionsRequest

-- | Creates a value of <a>LaunchTemplateSpotMarketOptionsRequest</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltsmorBlockDurationMinutes</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).</li>
--   <li><a>ltsmorInstanceInterruptionBehavior</a> - The behavior when a
--   Spot Instance is interrupted. The default is <tt>terminate</tt> .</li>
--   <li><a>ltsmorValidUntil</a> - The end date of the request. For 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. The default end date is 7 days from the
--   current date.</li>
--   <li><a>ltsmorSpotInstanceType</a> - The Spot Instance request
--   type.</li>
--   <li><a>ltsmorMaxPrice</a> - The maximum hourly price you're willing to
--   pay for the Spot Instances.</li>
--   </ul>
launchTemplateSpotMarketOptionsRequest :: LaunchTemplateSpotMarketOptionsRequest

-- | 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).
ltsmorBlockDurationMinutes :: Lens' LaunchTemplateSpotMarketOptionsRequest (Maybe Int)

-- | The behavior when a Spot Instance is interrupted. The default is
--   <tt>terminate</tt> .
ltsmorInstanceInterruptionBehavior :: Lens' LaunchTemplateSpotMarketOptionsRequest (Maybe InstanceInterruptionBehavior)

-- | The end date of the request. For 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. The default end
--   date is 7 days from the current date.
ltsmorValidUntil :: Lens' LaunchTemplateSpotMarketOptionsRequest (Maybe UTCTime)

-- | The Spot Instance request type.
ltsmorSpotInstanceType :: Lens' LaunchTemplateSpotMarketOptionsRequest (Maybe SpotInstanceType)

-- | The maximum hourly price you're willing to pay for the Spot Instances.
ltsmorMaxPrice :: Lens' LaunchTemplateSpotMarketOptionsRequest (Maybe Text)

-- | The tag specification for the launch template.
--   
--   <i>See:</i> <a>launchTemplateTagSpecification</a> smart constructor.
data LaunchTemplateTagSpecification

-- | Creates a value of <a>LaunchTemplateTagSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lttsResourceType</a> - The type of resource.</li>
--   <li><a>lttsTags</a> - The tags for the resource.</li>
--   </ul>
launchTemplateTagSpecification :: LaunchTemplateTagSpecification

-- | The type of resource.
lttsResourceType :: Lens' LaunchTemplateTagSpecification (Maybe ResourceType)

-- | The tags for the resource.
lttsTags :: Lens' LaunchTemplateTagSpecification [Tag]

-- | The tags specification for the launch template.
--   
--   <i>See:</i> <a>launchTemplateTagSpecificationRequest</a> smart
--   constructor.
data LaunchTemplateTagSpecificationRequest

-- | Creates a value of <a>LaunchTemplateTagSpecificationRequest</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lttsrResourceType</a> - The type of resource to tag. Currently,
--   the resource types that support tagging on creation are
--   <tt>instance</tt> and <tt>volume</tt> .</li>
--   <li><a>lttsrTags</a> - The tags to apply to the resource.</li>
--   </ul>
launchTemplateTagSpecificationRequest :: LaunchTemplateTagSpecificationRequest

-- | The type of resource to tag. Currently, the resource types that
--   support tagging on creation are <tt>instance</tt> and <tt>volume</tt>
--   .
lttsrResourceType :: Lens' LaunchTemplateTagSpecificationRequest (Maybe ResourceType)

-- | The tags to apply to the resource.
lttsrTags :: Lens' LaunchTemplateTagSpecificationRequest [Tag]

-- | Describes a launch template version.
--   
--   <i>See:</i> <a>launchTemplateVersion</a> smart constructor.
data LaunchTemplateVersion

-- | Creates a value of <a>LaunchTemplateVersion</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltvLaunchTemplateName</a> - The name of the launch
--   template.</li>
--   <li><a>ltvLaunchTemplateId</a> - The ID of the launch template.</li>
--   <li><a>ltvCreatedBy</a> - The principal that created the version.</li>
--   <li><a>ltvDefaultVersion</a> - Indicates whether the version is the
--   default version.</li>
--   <li><a>ltvVersionNumber</a> - The version number.</li>
--   <li><a>ltvVersionDescription</a> - The description for the
--   version.</li>
--   <li><a>ltvLaunchTemplateData</a> - Information about the launch
--   template.</li>
--   <li><a>ltvCreateTime</a> - The time the version was created.</li>
--   </ul>
launchTemplateVersion :: LaunchTemplateVersion

-- | The name of the launch template.
ltvLaunchTemplateName :: Lens' LaunchTemplateVersion (Maybe Text)

-- | The ID of the launch template.
ltvLaunchTemplateId :: Lens' LaunchTemplateVersion (Maybe Text)

-- | The principal that created the version.
ltvCreatedBy :: Lens' LaunchTemplateVersion (Maybe Text)

-- | Indicates whether the version is the default version.
ltvDefaultVersion :: Lens' LaunchTemplateVersion (Maybe Bool)

-- | The version number.
ltvVersionNumber :: Lens' LaunchTemplateVersion (Maybe Integer)

-- | The description for the version.
ltvVersionDescription :: Lens' LaunchTemplateVersion (Maybe Text)

-- | Information about the launch template.
ltvLaunchTemplateData :: Lens' LaunchTemplateVersion (Maybe ResponseLaunchTemplateData)

-- | The time the version was created.
ltvCreateTime :: Lens' LaunchTemplateVersion (Maybe UTCTime)

-- | Describes the monitoring for the instance.
--   
--   <i>See:</i> <a>launchTemplatesMonitoring</a> smart constructor.
data LaunchTemplatesMonitoring

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

-- | Indicates whether detailed monitoring is enabled. Otherwise, basic
--   monitoring is enabled.
ltmEnabled :: Lens' LaunchTemplatesMonitoring (Maybe Bool)

-- | Describes the monitoring for the instance.
--   
--   <i>See:</i> <a>launchTemplatesMonitoringRequest</a> smart constructor.
data LaunchTemplatesMonitoringRequest

-- | Creates a value of <a>LaunchTemplatesMonitoringRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltmrEnabled</a> - Specify <tt>true</tt> to enable detailed
--   monitoring. Otherwise, basic monitoring is enabled.</li>
--   </ul>
launchTemplatesMonitoringRequest :: LaunchTemplatesMonitoringRequest

-- | Specify <tt>true</tt> to enable detailed monitoring. Otherwise, basic
--   monitoring is enabled.
ltmrEnabled :: Lens' LaunchTemplatesMonitoringRequest (Maybe Bool)

-- | Describes the Classic Load Balancers and target groups to attach to a
--   Spot Fleet request.
--   
--   <i>See:</i> <a>loadBalancersConfig</a> smart constructor.
data LoadBalancersConfig

-- | Creates a value of <a>LoadBalancersConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbcClassicLoadBalancersConfig</a> - The Classic Load
--   Balancers.</li>
--   <li><a>lbcTargetGroupsConfig</a> - The target groups.</li>
--   </ul>
loadBalancersConfig :: LoadBalancersConfig

-- | The Classic Load Balancers.
lbcClassicLoadBalancersConfig :: Lens' LoadBalancersConfig (Maybe ClassicLoadBalancersConfig)

-- | The target groups.
lbcTargetGroupsConfig :: Lens' LoadBalancersConfig (Maybe TargetGroupsConfig)

-- | Describes a load permission.
--   
--   <i>See:</i> <a>loadPermission</a> smart constructor.
data LoadPermission

-- | Creates a value of <a>LoadPermission</a> 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>
loadPermission :: LoadPermission

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

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

-- | Describes modifications to the load permissions of an Amazon FPGA
--   image (AFI).
--   
--   <i>See:</i> <a>loadPermissionModifications</a> smart constructor.
data LoadPermissionModifications

-- | Creates a value of <a>LoadPermissionModifications</a> 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 load permissions to remove.</li>
--   <li><a>lpmAdd</a> - The load permissions to add.</li>
--   </ul>
loadPermissionModifications :: LoadPermissionModifications

-- | The load permissions to remove.
lpmRemove :: Lens' LoadPermissionModifications [LoadPermissionRequest]

-- | The load permissions to add.
lpmAdd :: Lens' LoadPermissionModifications [LoadPermissionRequest]

-- | Describes a load permission.
--   
--   <i>See:</i> <a>loadPermissionRequest</a> smart constructor.
data LoadPermissionRequest

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

-- | The name of the group.
lprGroup :: Lens' LoadPermissionRequest (Maybe PermissionGroup)

-- | The AWS account ID.
lprUserId :: Lens' LoadPermissionRequest (Maybe Text)

-- | 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>
--   <li><a>ngTags</a> - The tags for the NAT gateway.</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)

-- | The tags for the NAT gateway.
ngTags :: Lens' NatGateway [Tag]

-- | 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 a permission for a network interface.
--   
--   <i>See:</i> <a>networkInterfacePermission</a> smart constructor.
data NetworkInterfacePermission

-- | Creates a value of <a>NetworkInterfacePermission</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nipPermissionState</a> - Information about the state of the
--   permission.</li>
--   <li><a>nipNetworkInterfacePermissionId</a> - The ID of the network
--   interface permission.</li>
--   <li><a>nipNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>nipAWSAccountId</a> - The AWS account ID.</li>
--   <li><a>nipAWSService</a> - The AWS service.</li>
--   <li><a>nipPermission</a> - The type of permission.</li>
--   </ul>
networkInterfacePermission :: NetworkInterfacePermission

-- | Information about the state of the permission.
nipPermissionState :: Lens' NetworkInterfacePermission (Maybe NetworkInterfacePermissionState)

-- | The ID of the network interface permission.
nipNetworkInterfacePermissionId :: Lens' NetworkInterfacePermission (Maybe Text)

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

-- | The AWS account ID.
nipAWSAccountId :: Lens' NetworkInterfacePermission (Maybe Text)

-- | The AWS service.
nipAWSService :: Lens' NetworkInterfacePermission (Maybe Text)

-- | The type of permission.
nipPermission :: Lens' NetworkInterfacePermission (Maybe InterfacePermissionType)

-- | Describes the state of a network interface permission.
--   
--   <i>See:</i> <a>networkInterfacePermissionState</a> smart constructor.
data NetworkInterfacePermissionState

-- | Creates a value of <a>NetworkInterfacePermissionState</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nipsState</a> - The state of the permission.</li>
--   <li><a>nipsStatusMessage</a> - A status message, if applicable.</li>
--   </ul>
networkInterfacePermissionState :: NetworkInterfacePermissionState

-- | The state of the permission.
nipsState :: Lens' NetworkInterfacePermissionState (Maybe NetworkInterfacePermissionStateCode)

-- | A status message, if applicable.
nipsStatusMessage :: Lens' NetworkInterfacePermissionState (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 data that identifies an Amazon FPGA image (AFI) on the
--   PCI bus.
--   
--   <i>See:</i> <a>pciId</a> smart constructor.
data PciId

-- | Creates a value of <a>PciId</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>piSubsystemId</a> - The ID of the subsystem.</li>
--   <li><a>piDeviceId</a> - The ID of the device.</li>
--   <li><a>piSubsystemVendorId</a> - The ID of the vendor for the
--   subsystem.</li>
--   <li><a>piVendorId</a> - The ID of the vendor.</li>
--   </ul>
pciId :: PciId

-- | The ID of the subsystem.
piSubsystemId :: Lens' PciId (Maybe Text)

-- | The ID of the device.
piDeviceId :: Lens' PciId (Maybe Text)

-- | The ID of the vendor for the subsystem.
piSubsystemVendorId :: Lens' PciId (Maybe Text)

-- | The ID of the vendor.
piVendorId :: Lens' PciId (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, the public
--   DNS hostnames of instances in the specified VPC resolve 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, the public DNS hostnames of instances in the specified VPC
--   resolve 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 Dedicated Host on which the
--   instance resides. This parameter is not supported for the
--   <tt>ImportInstance</tt> command.</li>
--   <li><a>pSpreadDomain</a> - Reserved for future use.</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 Dedicated Host on which the instance resides. This
--   parameter is not supported for the <tt>ImportInstance</tt> command.
pHostId :: Lens' Placement (Maybe Text)

-- | Reserved for future use.
pSpreadDomain :: 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)

-- | <ul>
--   <li><i>EC2-VPC only</i> The ID of the prefix.</li>
--   </ul>
--   
--   <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>
--   <li><a>pliDescription</a> - A description for the security group rule
--   that references this prefix list ID. Constraints: Up to 255 characters
--   in length. Allowed characters are a-z, A-Z, 0-9, spaces, and
--   ._-:/()#,@[]+=;{}!$*</li>
--   </ul>
prefixListId :: PrefixListId

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

-- | A description for the security group rule that references this prefix
--   list ID. Constraints: Up to 255 characters in length. Allowed
--   characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*
pliDescription :: 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)

-- | PrincipalIdFormat description
--   
--   <i>See:</i> <a>principalIdFormat</a> smart constructor.
data PrincipalIdFormat

-- | Creates a value of <a>PrincipalIdFormat</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pifARN</a> - PrincipalIdFormatARN description</li>
--   <li><a>pifStatuses</a> - PrincipalIdFormatStatuses description</li>
--   </ul>
principalIdFormat :: PrincipalIdFormat

-- | PrincipalIdFormatARN description
pifARN :: Lens' PrincipalIdFormat (Maybe Text)

-- | PrincipalIdFormatStatuses description
pifStatuses :: Lens' PrincipalIdFormat [IdFormat]

-- | 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>prInstanceCount</a> - The number of instances.</li>
--   <li><a>prPurchaseToken</a> - The purchase token.</li>
--   </ul>
purchaseRequest :: Int -> Text -> PurchaseRequest

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

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

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

-- | The information to include in the launch template.
--   
--   <i>See:</i> <a>requestLaunchTemplateData</a> smart constructor.
data RequestLaunchTemplateData

-- | Creates a value of <a>RequestLaunchTemplateData</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rltdSecurityGroupIds</a> - One or more security group IDs. You
--   can create a security group using <tt>CreateSecurityGroup</tt> . You
--   cannot specify both a security group ID and security name in the same
--   request.</li>
--   <li><a>rltdSecurityGroups</a> - [EC2-Classic, default VPC] One or more
--   security group names. For a nondefault VPC, you must use security
--   group IDs instead. You cannot specify both a security group ID and
--   security name in the same request.</li>
--   <li><a>rltdInstanceMarketOptions</a> - The market (purchasing) option
--   for the instances.</li>
--   <li><a>rltdDisableAPITermination</a> - If set to <tt>true</tt> , you
--   can't terminate the instance using the Amazon EC2 console, CLI, or
--   API. To change this attribute to <tt>false</tt> after launch, use
--   <tt>ModifyInstanceAttribute</tt> .</li>
--   <li><a>rltdKeyName</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>rltdNetworkInterfaces</a> - One or more network
--   interfaces.</li>
--   <li><a>rltdRamDiskId</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>User Provided Kernels</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .</li>
--   <li><a>rltdKernelId</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>User Provided Kernels</a> in the <i>Amazon
--   Elastic Compute Cloud User Guide</i> .</li>
--   <li><a>rltdElasticGpuSpecifications</a> - An elastic GPU to associate
--   with the instance.</li>
--   <li><a>rltdInstanceType</a> - The instance type. For more information,
--   see <a>Instance Types</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>rltdEBSOptimized</a> - Indicates whether the instance is
--   optimized for Amazon EBS I<i>O. This optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal Amazon 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>rltdUserData</a> - The Base64-encoded 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).</li>
--   <li><a>rltdMonitoring</a> - The monitoring for the instance.</li>
--   <li><a>rltdTagSpecifications</a> - The tags to apply to the resources
--   during launch. You can tag instances and volumes. The specified tags
--   are applied to all instances or volumes that are created during
--   launch.</li>
--   <li><a>rltdIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>rltdImageId</a> - The ID of the AMI, which you can get by using
--   <tt>DescribeImages</tt> .</li>
--   <li><a>rltdInstanceInitiatedShutdownBehavior</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>rltdCreditSpecification</a> - The credit option for CPU usage
--   of the instance. Valid for T2 instances only.</li>
--   <li><a>rltdBlockDeviceMappings</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>rltdPlacement</a> - The placement for the instance.</li>
--   </ul>
requestLaunchTemplateData :: RequestLaunchTemplateData

-- | One or more security group IDs. You can create a security group using
--   <tt>CreateSecurityGroup</tt> . You cannot specify both a security
--   group ID and security name in the same request.
rltdSecurityGroupIds :: Lens' RequestLaunchTemplateData [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. You
--   cannot specify both a security group ID and security name in the same
--   request.</li>
--   </ul>
rltdSecurityGroups :: Lens' RequestLaunchTemplateData [Text]

-- | The market (purchasing) option for the instances.
rltdInstanceMarketOptions :: Lens' RequestLaunchTemplateData (Maybe LaunchTemplateInstanceMarketOptionsRequest)

-- | If set to <tt>true</tt> , you can't terminate the instance using the
--   Amazon EC2 console, CLI, or API. To change this attribute to
--   <tt>false</tt> after launch, use <tt>ModifyInstanceAttribute</tt> .
rltdDisableAPITermination :: Lens' RequestLaunchTemplateData (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.
rltdKeyName :: Lens' RequestLaunchTemplateData (Maybe Text)

-- | One or more network interfaces.
rltdNetworkInterfaces :: Lens' RequestLaunchTemplateData [LaunchTemplateInstanceNetworkInterfaceSpecificationRequest]

-- | 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>User Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
rltdRamDiskId :: Lens' RequestLaunchTemplateData (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>User Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
rltdKernelId :: Lens' RequestLaunchTemplateData (Maybe Text)

-- | An elastic GPU to associate with the instance.
rltdElasticGpuSpecifications :: Lens' RequestLaunchTemplateData [ElasticGpuSpecification]

-- | The instance type. For more information, see <a>Instance Types</a> in
--   the <i>Amazon Elastic Compute Cloud User Guide</i> .
rltdInstanceType :: Lens' RequestLaunchTemplateData (Maybe InstanceType)

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

-- | The Base64-encoded 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).
rltdUserData :: Lens' RequestLaunchTemplateData (Maybe Text)

-- | The monitoring for the instance.
rltdMonitoring :: Lens' RequestLaunchTemplateData (Maybe LaunchTemplatesMonitoringRequest)

-- | The tags to apply to the resources during launch. You can tag
--   instances and volumes. The specified tags are applied to all instances
--   or volumes that are created during launch.
rltdTagSpecifications :: Lens' RequestLaunchTemplateData [LaunchTemplateTagSpecificationRequest]

-- | The IAM instance profile.
rltdIAMInstanceProfile :: Lens' RequestLaunchTemplateData (Maybe LaunchTemplateIAMInstanceProfileSpecificationRequest)

-- | The ID of the AMI, which you can get by using <tt>DescribeImages</tt>
--   .
rltdImageId :: Lens' RequestLaunchTemplateData (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>
rltdInstanceInitiatedShutdownBehavior :: Lens' RequestLaunchTemplateData (Maybe ShutdownBehavior)

-- | The credit option for CPU usage of the instance. Valid for T2
--   instances only.
rltdCreditSpecification :: Lens' RequestLaunchTemplateData (Maybe CreditSpecificationRequest)

-- | 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.
rltdBlockDeviceMappings :: Lens' RequestLaunchTemplateData [LaunchTemplateBlockDeviceMappingRequest]

-- | The placement for the instance.
rltdPlacement :: Lens' RequestLaunchTemplateData (Maybe LaunchTemplatePlacementRequest)

-- | 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> - One or more security group IDs.</li>
--   <li><a>rslsSecurityGroups</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>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 Base64-encoded user data for the
--   instance.</li>
--   <li><a>rslsMonitoring</a> - Indicates whether basic or detailed
--   monitoring is enabled for the instance. Default: Disabled</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. You can't specify both a snapshot ID and an encryption value.
--   This is because only blank volumes can be encrypted on creation. If a
--   snapshot is the basis for a volume, it is not blank and its encryption
--   status is used for the volume encryption status.</li>
--   <li><a>rslsPlacement</a> - The placement information for the
--   instance.</li>
--   </ul>
requestSpotLaunchSpecification :: RequestSpotLaunchSpecification

-- | One or more security group IDs.
rslsSecurityGroupIds :: Lens' RequestSpotLaunchSpecification [Text]

-- | 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.
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 Base64-encoded user data for the instance.
rslsUserData :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | Indicates whether basic or detailed monitoring is enabled for the
--   instance. Default: Disabled
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. You can't specify both a
--   snapshot ID and an encryption value. This is because only blank
--   volumes can be encrypted on creation. If a snapshot is the basis for a
--   volume, it is not blank and its encryption status is used for the
--   volume encryption status.
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 the error that's returned when you cannot delete a launch
--   template version.
--   
--   <i>See:</i> <a>responseError</a> smart constructor.
data ResponseError

-- | Creates a value of <a>ResponseError</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>reCode</a> - The error code.</li>
--   <li><a>reMessage</a> - The error message, if applicable.</li>
--   </ul>
responseError :: ResponseError

-- | The error code.
reCode :: Lens' ResponseError (Maybe LaunchTemplateErrorCode)

-- | The error message, if applicable.
reMessage :: Lens' ResponseError (Maybe Text)

-- | The information for a launch template.
--   
--   <i>See:</i> <a>responseLaunchTemplateData</a> smart constructor.
data ResponseLaunchTemplateData

-- | Creates a value of <a>ResponseLaunchTemplateData</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rSecurityGroupIds</a> - The security group IDs.</li>
--   <li><a>rSecurityGroups</a> - The security group names.</li>
--   <li><a>rInstanceMarketOptions</a> - The market (purchasing) option for
--   the instances.</li>
--   <li><a>rDisableAPITermination</a> - If set to <tt>true</tt> ,
--   indicates that the instance cannot be terminated using the Amazon EC2
--   console, command line tool, or API.</li>
--   <li><a>rKeyName</a> - The name of the key pair.</li>
--   <li><a>rNetworkInterfaces</a> - The network interfaces.</li>
--   <li><a>rRamDiskId</a> - The ID of the RAM disk, if applicable.</li>
--   <li><a>rKernelId</a> - The ID of the kernel, if applicable.</li>
--   <li><a>rElasticGpuSpecifications</a> - The elastic GPU
--   specification.</li>
--   <li><a>rInstanceType</a> - The instance type.</li>
--   <li><a>rEBSOptimized</a> - Indicates whether the instance is optimized
--   for Amazon EBS I/O.</li>
--   <li><a>rUserData</a> - The user data for the instance.</li>
--   <li><a>rMonitoring</a> - The monitoring for the instance.</li>
--   <li><a>rTagSpecifications</a> - The tags.</li>
--   <li><a>rIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>rImageId</a> - The ID of the AMI that was used to launch the
--   instance.</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).</li>
--   <li><a>rCreditSpecification</a> - The credit option for CPU usage of
--   the instance.</li>
--   <li><a>rBlockDeviceMappings</a> - The block device mappings.</li>
--   <li><a>rPlacement</a> - The placement of the instance.</li>
--   </ul>
responseLaunchTemplateData :: ResponseLaunchTemplateData

-- | The security group IDs.
rSecurityGroupIds :: Lens' ResponseLaunchTemplateData [Text]

-- | The security group names.
rSecurityGroups :: Lens' ResponseLaunchTemplateData [Text]

-- | The market (purchasing) option for the instances.
rInstanceMarketOptions :: Lens' ResponseLaunchTemplateData (Maybe LaunchTemplateInstanceMarketOptions)

-- | If set to <tt>true</tt> , indicates that the instance cannot be
--   terminated using the Amazon EC2 console, command line tool, or API.
rDisableAPITermination :: Lens' ResponseLaunchTemplateData (Maybe Bool)

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

-- | The network interfaces.
rNetworkInterfaces :: Lens' ResponseLaunchTemplateData [LaunchTemplateInstanceNetworkInterfaceSpecification]

-- | The ID of the RAM disk, if applicable.
rRamDiskId :: Lens' ResponseLaunchTemplateData (Maybe Text)

-- | The ID of the kernel, if applicable.
rKernelId :: Lens' ResponseLaunchTemplateData (Maybe Text)

-- | The elastic GPU specification.
rElasticGpuSpecifications :: Lens' ResponseLaunchTemplateData [ElasticGpuSpecificationResponse]

-- | The instance type.
rInstanceType :: Lens' ResponseLaunchTemplateData (Maybe InstanceType)

-- | Indicates whether the instance is optimized for Amazon EBS I/O.
rEBSOptimized :: Lens' ResponseLaunchTemplateData (Maybe Bool)

-- | The user data for the instance.
rUserData :: Lens' ResponseLaunchTemplateData (Maybe Text)

-- | The monitoring for the instance.
rMonitoring :: Lens' ResponseLaunchTemplateData (Maybe LaunchTemplatesMonitoring)

-- | The tags.
rTagSpecifications :: Lens' ResponseLaunchTemplateData [LaunchTemplateTagSpecification]

-- | The IAM instance profile.
rIAMInstanceProfile :: Lens' ResponseLaunchTemplateData (Maybe LaunchTemplateIAMInstanceProfileSpecification)

-- | The ID of the AMI that was used to launch the instance.
rImageId :: Lens' ResponseLaunchTemplateData (Maybe Text)

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

-- | The credit option for CPU usage of the instance.
rCreditSpecification :: Lens' ResponseLaunchTemplateData (Maybe CreditSpecification)

-- | The block device mappings.
rBlockDeviceMappings :: Lens' ResponseLaunchTemplateData [LaunchTemplateBlockDeviceMapping]

-- | The placement of the instance.
rPlacement :: Lens' ResponseLaunchTemplateData (Maybe LaunchTemplatePlacement)

-- | 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 (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 (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 security group.
--   
--   <i>See:</i> <a>securityGroupIdentifier</a> smart constructor.
data SecurityGroupIdentifier

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

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

-- | The name of the security group.
sgiGroupName :: Lens' SecurityGroupIdentifier (Maybe 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 a service configuration for a VPC endpoint service.
--   
--   <i>See:</i> <a>serviceConfiguration</a> smart constructor.
data ServiceConfiguration

-- | Creates a value of <a>ServiceConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scNetworkLoadBalancerARNs</a> - The Amazon Resource Names
--   (ARNs) of the Network Load Balancers for the service.</li>
--   <li><a>scBaseEndpointDNSNames</a> - The DNS names for the
--   service.</li>
--   <li><a>scAvailabilityZones</a> - In the Availability Zones in which
--   the service is available.</li>
--   <li><a>scServiceName</a> - The name of the service.</li>
--   <li><a>scServiceState</a> - The service state.</li>
--   <li><a>scServiceType</a> - The type of service.</li>
--   <li><a>scAcceptanceRequired</a> - Indicates whether requests from
--   other AWS accounts to create an endpoint to the service must first be
--   accepted.</li>
--   <li><a>scServiceId</a> - The ID of the service.</li>
--   <li><a>scPrivateDNSName</a> - The private DNS name for the
--   service.</li>
--   </ul>
serviceConfiguration :: ServiceConfiguration

-- | The Amazon Resource Names (ARNs) of the Network Load Balancers for the
--   service.
scNetworkLoadBalancerARNs :: Lens' ServiceConfiguration [Text]

-- | The DNS names for the service.
scBaseEndpointDNSNames :: Lens' ServiceConfiguration [Text]

-- | In the Availability Zones in which the service is available.
scAvailabilityZones :: Lens' ServiceConfiguration [Text]

-- | The name of the service.
scServiceName :: Lens' ServiceConfiguration (Maybe Text)

-- | The service state.
scServiceState :: Lens' ServiceConfiguration (Maybe ServiceState)

-- | The type of service.
scServiceType :: Lens' ServiceConfiguration [ServiceTypeDetail]

-- | Indicates whether requests from other AWS accounts to create an
--   endpoint to the service must first be accepted.
scAcceptanceRequired :: Lens' ServiceConfiguration (Maybe Bool)

-- | The ID of the service.
scServiceId :: Lens' ServiceConfiguration (Maybe Text)

-- | The private DNS name for the service.
scPrivateDNSName :: Lens' ServiceConfiguration (Maybe Text)

-- | Describes a VPC endpoint service.
--   
--   <i>See:</i> <a>serviceDetail</a> smart constructor.
data ServiceDetail

-- | Creates a value of <a>ServiceDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdVPCEndpointPolicySupported</a> - Indicates whether the
--   service supports endpoint policies.</li>
--   <li><a>sdBaseEndpointDNSNames</a> - The DNS names for the
--   service.</li>
--   <li><a>sdOwner</a> - The AWS account ID of the service owner.</li>
--   <li><a>sdAvailabilityZones</a> - The Availability Zones in which the
--   service is available.</li>
--   <li><a>sdServiceName</a> - The Amazon Resource Name (ARN) of the
--   service.</li>
--   <li><a>sdServiceType</a> - The type of service.</li>
--   <li><a>sdAcceptanceRequired</a> - Indicates whether VPC endpoint
--   connection requests to the service must be accepted by the service
--   owner.</li>
--   <li><a>sdPrivateDNSName</a> - The private DNS name for the
--   service.</li>
--   </ul>
serviceDetail :: ServiceDetail

-- | Indicates whether the service supports endpoint policies.
sdVPCEndpointPolicySupported :: Lens' ServiceDetail (Maybe Bool)

-- | The DNS names for the service.
sdBaseEndpointDNSNames :: Lens' ServiceDetail [Text]

-- | The AWS account ID of the service owner.
sdOwner :: Lens' ServiceDetail (Maybe Text)

-- | The Availability Zones in which the service is available.
sdAvailabilityZones :: Lens' ServiceDetail [Text]

-- | The Amazon Resource Name (ARN) of the service.
sdServiceName :: Lens' ServiceDetail (Maybe Text)

-- | The type of service.
sdServiceType :: Lens' ServiceDetail [ServiceTypeDetail]

-- | Indicates whether VPC endpoint connection requests to the service must
--   be accepted by the service owner.
sdAcceptanceRequired :: Lens' ServiceDetail (Maybe Bool)

-- | The private DNS name for the service.
sdPrivateDNSName :: Lens' ServiceDetail (Maybe Text)

-- | Describes the type of service for a VPC endpoint.
--   
--   <i>See:</i> <a>serviceTypeDetail</a> smart constructor.
data ServiceTypeDetail

-- | Creates a value of <a>ServiceTypeDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stdServiceType</a> - The type of service.</li>
--   </ul>
serviceTypeDetail :: ServiceTypeDetail

-- | The type of service.
stdServiceType :: Lens' ServiceTypeDetail (Maybe ServiceType)

-- | 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>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>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 maximum price per unit hour that you
--   are willing to pay for a Spot Instance. If this value is not
--   specified, the default is the Spot price specified for the fleet. To
--   determine the Spot price per unit hour, divide the Spot 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.</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 Base64-encoded user data to make
--   available to the instances.</li>
--   <li><a>sflsMonitoring</a> - Enable or disable monitoring for the
--   instances.</li>
--   <li><a>sflsTagSpecifications</a> - The tags to apply during
--   creation.</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. You can't specify both a snapshot ID and an encryption value.
--   This is because only blank volumes can be encrypted on creation. If a
--   snapshot is the basis for a volume, it is not blank and its encryption
--   status is used for the volume encryption status.</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 maximum price per unit hour that you are willing to pay for a Spot
--   Instance. If this value is not specified, the default is the Spot
--   price specified for the fleet. To determine the Spot price per unit
--   hour, divide the Spot 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.
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 Base64-encoded user data to make available to the instances.
sflsUserData :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | Enable or disable monitoring for the instances.
sflsMonitoring :: Lens' SpotFleetLaunchSpecification (Maybe SpotFleetMonitoring)

-- | The tags to apply during creation.
sflsTagSpecifications :: Lens' SpotFleetLaunchSpecification [SpotFleetTagSpecification]

-- | 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. You can't specify both a
--   snapshot ID and an encryption value. This is because only blank
--   volumes can be encrypted on creation. If a snapshot is the basis for a
--   volume, it is not blank and its encryption status is used for the
--   volume encryption status.
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 requests 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>sfrcCreateTime</a> - The creation date and time of the
--   request.</li>
--   <li><a>sfrcSpotFleetRequestConfig</a> - The configuration of the Spot
--   Fleet request.</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>
--   </ul>
spotFleetRequestConfig :: UTCTime -> SpotFleetRequestConfigData -> Text -> BatchState -> SpotFleetRequestConfig

-- | The progress of the Spot Fleet request. If there is an error, the
--   status is <tt>error</tt> . After all requests 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 creation date and time of the request.
sfrcCreateTime :: Lens' SpotFleetRequestConfig UTCTime

-- | The configuration of the Spot Fleet request.
sfrcSpotFleetRequestConfig :: Lens' SpotFleetRequestConfig SpotFleetRequestConfigData

-- | The ID of the Spot Fleet request.
sfrcSpotFleetRequestId :: Lens' SpotFleetRequestConfig Text

-- | The state of the Spot Fleet request.
sfrcSpotFleetRequestState :: Lens' SpotFleetRequestConfig BatchState

-- | 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 that
--   you provide to ensure the idempotency of your listings. This helps to
--   avoid duplicate listings. For more information, see <a>Ensuring
--   Idempotency</a> .</li>
--   <li><a>sfrcdInstanceInterruptionBehavior</a> - The behavior when a
--   Spot Instance is interrupted. The default is <tt>terminate</tt> .</li>
--   <li><a>sfrcdSpotPrice</a> - The maximum price per unit hour that you
--   are willing to pay for a Spot Instance. The default is the On-Demand
--   price.</li>
--   <li><a>sfrcdLoadBalancersConfig</a> - One or more Classic Load
--   Balancers and target groups to attach to the Spot Fleet request. Spot
--   Fleet registers the running Spot Instances with the specified Classic
--   Load Balancers and target groups. With Network Load Balancers, Spot
--   Fleet cannot register instances that have the following instance
--   types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3,
--   and T1.</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>sfrcdOnDemandTargetCapacity</a> - The number of On-Demand 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. If the request
--   type is <tt>maintain</tt> , you can specify a target capacity of 0 and
--   add capacity later.</li>
--   <li><a>sfrcdLaunchTemplateConfigs</a> - The launch template and
--   overrides.</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 able to fulfill the request. The default end date is 7
--   days from the current date.</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 Spot
--   Fleet only requests the target capacity or also attempts to maintain
--   it. When this value is <tt>request</tt> , the Spot Fleet only places
--   the required requests. It does not attempt to replenish Spot Instances
--   if capacity is diminished, nor does it submit requests in alternative
--   Spot pools if capacity is not available. To maintain a certain target
--   capacity, the Spot Fleet places the required requests to meet capacity
--   and automatically replenishes 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>sfrcdReplaceUnhealthyInstances</a> - Indicates whether Spot
--   Fleet should replace unhealthy instances.</li>
--   <li><a>sfrcdLaunchSpecifications</a> - The launch specifications for
--   the Spot Fleet request.</li>
--   <li><a>sfrcdOnDemandFulfilledCapacity</a> - The number of On-Demand
--   units fulfilled by this request compared to the set target On-Demand
--   capacity.</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>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>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. If the request type is
--   <tt>maintain</tt> , you can specify a target capacity of 0 and add
--   capacity later.</li>
--   </ul>
spotFleetRequestConfigData :: Text -> Int -> SpotFleetRequestConfigData

-- | A unique, case-sensitive identifier that you provide to ensure the
--   idempotency of your listings. This helps to avoid duplicate listings.
--   For more information, see <a>Ensuring Idempotency</a> .
sfrcdClientToken :: Lens' SpotFleetRequestConfigData (Maybe Text)

-- | The behavior when a Spot Instance is interrupted. The default is
--   <tt>terminate</tt> .
sfrcdInstanceInterruptionBehavior :: Lens' SpotFleetRequestConfigData (Maybe InstanceInterruptionBehavior)

-- | The maximum price per unit hour that you are willing to pay for a Spot
--   Instance. The default is the On-Demand price.
sfrcdSpotPrice :: Lens' SpotFleetRequestConfigData (Maybe Text)

-- | One or more Classic Load Balancers and target groups to attach to the
--   Spot Fleet request. Spot Fleet registers the running Spot Instances
--   with the specified Classic Load Balancers and target groups. With
--   Network Load Balancers, Spot Fleet cannot register instances that have
--   the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1,
--   G2, HI1, HS1, M1, M2, M3, and T1.
sfrcdLoadBalancersConfig :: Lens' SpotFleetRequestConfigData (Maybe LoadBalancersConfig)

-- | 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 number of On-Demand 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. If the request type is <tt>maintain</tt> , you can specify a
--   target capacity of 0 and add capacity later.
sfrcdOnDemandTargetCapacity :: Lens' SpotFleetRequestConfigData (Maybe Int)

-- | The launch template and overrides.
sfrcdLaunchTemplateConfigs :: Lens' SpotFleetRequestConfigData [LaunchTemplateConfig]

-- | 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 able to
--   fulfill the request. The default end date is 7 days from the current
--   date.
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 Spot Fleet only requests
--   the target capacity or also attempts to maintain it. When this value
--   is <tt>request</tt> , the Spot Fleet only places the required
--   requests. It does not attempt to replenish Spot Instances if capacity
--   is diminished, nor does it submit requests in alternative Spot pools
--   if capacity is not available. To maintain a certain target capacity,
--   the Spot Fleet places the required requests to meet capacity and
--   automatically replenishes 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 whether Spot Fleet should replace unhealthy instances.
sfrcdReplaceUnhealthyInstances :: Lens' SpotFleetRequestConfigData (Maybe Bool)

-- | The launch specifications for the Spot Fleet request.
sfrcdLaunchSpecifications :: Lens' SpotFleetRequestConfigData [SpotFleetLaunchSpecification]

-- | The number of On-Demand units fulfilled by this request compared to
--   the set target On-Demand capacity.
sfrcdOnDemandFulfilledCapacity :: Lens' SpotFleetRequestConfigData (Maybe Double)

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

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

-- | 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.
--   If the request type is <tt>maintain</tt> , you can specify a target
--   capacity of 0 and add capacity later.
sfrcdTargetCapacity :: Lens' SpotFleetRequestConfigData Int

-- | The tags for a Spot Fleet resource.
--   
--   <i>See:</i> <a>spotFleetTagSpecification</a> smart constructor.
data SpotFleetTagSpecification

-- | Creates a value of <a>SpotFleetTagSpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sftsResourceType</a> - The type of resource. Currently, the
--   only resource type that is supported is <tt>instance</tt> .</li>
--   <li><a>sftsTags</a> - The tags.</li>
--   </ul>
spotFleetTagSpecification :: SpotFleetTagSpecification

-- | The type of resource. Currently, the only resource type that is
--   supported is <tt>instance</tt> .
sftsResourceType :: Lens' SpotFleetTagSpecification (Maybe ResourceType)

-- | The tags.
sftsTags :: Lens' SpotFleetTagSpecification [Tag]

-- | 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
--   status information helps track your Spot Instance requests. For more
--   information, see <a>Spot Status</a> in the <i>Amazon EC2 User Guide
--   for Linux Instances</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>sirInstanceInterruptionBehavior</a> - The behavior when a Spot
--   Instance is interrupted.</li>
--   <li><a>sirProductDescription</a> - The product description associated
--   with the Spot Instance.</li>
--   <li><a>sirSpotPrice</a> - The maximum price per hour that you are
--   willing to pay for a Spot Instance.</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 request 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. The default end date is 7 days from
--   the current date.</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 status information helps
--   track your Spot Instance requests. For more information, see <a>Spot
--   Status</a> in the <i>Amazon EC2 User Guide for Linux Instances</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 behavior when a Spot Instance is interrupted.
sirInstanceInterruptionBehavior :: Lens' SpotInstanceRequest (Maybe InstanceInterruptionBehavior)

-- | The product description associated with the Spot Instance.
sirProductDescription :: Lens' SpotInstanceRequest (Maybe RIProductDescription)

-- | The maximum price per hour that you are willing to pay for a Spot
--   Instance.
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 request 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. The default end date is 7 days from the current date.
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 Status Codes</a> in the <i>Amazon EC2 User Guide for Linux
--   Instances</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 Status
--   Codes</a> in the <i>Amazon EC2 User Guide for Linux Instances</i> .
sisCode :: Lens' SpotInstanceStatus (Maybe Text)

-- | The description for the status code.
sisMessage :: Lens' SpotInstanceStatus (Maybe Text)

-- | The options for Spot Instances.
--   
--   <i>See:</i> <a>spotMarketOptions</a> smart constructor.
data SpotMarketOptions

-- | Creates a value of <a>SpotMarketOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>smoBlockDurationMinutes</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).</li>
--   <li><a>smoInstanceInterruptionBehavior</a> - The behavior when a Spot
--   Instance is interrupted. The default is <tt>terminate</tt> .</li>
--   <li><a>smoValidUntil</a> - The end date of the request. For 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. The default end date is 7 days from the current
--   date.</li>
--   <li><a>smoSpotInstanceType</a> - The Spot Instance request type.</li>
--   <li><a>smoMaxPrice</a> - The maximum hourly price you're willing to
--   pay for the Spot Instances. The default is the On-Demand price.</li>
--   </ul>
spotMarketOptions :: SpotMarketOptions

-- | 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).
smoBlockDurationMinutes :: Lens' SpotMarketOptions (Maybe Int)

-- | The behavior when a Spot Instance is interrupted. The default is
--   <tt>terminate</tt> .
smoInstanceInterruptionBehavior :: Lens' SpotMarketOptions (Maybe InstanceInterruptionBehavior)

-- | The end date of the request. For 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. The default end
--   date is 7 days from the current date.
smoValidUntil :: Lens' SpotMarketOptions (Maybe UTCTime)

-- | The Spot Instance request type.
smoSpotInstanceType :: Lens' SpotMarketOptions (Maybe SpotInstanceType)

-- | The maximum hourly price you're willing to pay for the Spot Instances.
--   The default is the On-Demand price.
smoMaxPrice :: Lens' SpotMarketOptions (Maybe Text)

-- | Describes the configuration of Spot Instances in an EC2 Fleet.
--   
--   <i>See:</i> <a>spotOptions</a> smart constructor.
data SpotOptions

-- | Creates a value of <a>SpotOptions</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>soInstanceInterruptionBehavior</a> - The behavior when a Spot
--   Instance is interrupted. The default is <tt>terminate</tt> .</li>
--   <li><a>soAllocationStrategy</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>
--   </ul>
spotOptions :: SpotOptions

-- | The behavior when a Spot Instance is interrupted. The default is
--   <tt>terminate</tt> .
soInstanceInterruptionBehavior :: Lens' SpotOptions (Maybe SpotInstanceInterruptionBehavior)

-- | Indicates how to allocate the target capacity across the Spot pools
--   specified by the Spot Fleet request. The default is
--   <tt>lowestPrice</tt> .
soAllocationStrategy :: Lens' SpotOptions (Maybe SpotAllocationStrategy)

-- | Describes the configuration of Spot Instances in an EC2 Fleet request.
--   
--   <i>See:</i> <a>spotOptionsRequest</a> smart constructor.
data SpotOptionsRequest

-- | Creates a value of <a>SpotOptionsRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sorInstanceInterruptionBehavior</a> - The behavior when a Spot
--   Instance is interrupted. The default is <tt>terminate</tt> .</li>
--   <li><a>sorAllocationStrategy</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>
--   </ul>
spotOptionsRequest :: SpotOptionsRequest

-- | The behavior when a Spot Instance is interrupted. The default is
--   <tt>terminate</tt> .
sorInstanceInterruptionBehavior :: Lens' SpotOptionsRequest (Maybe SpotInstanceInterruptionBehavior)

-- | Indicates how to allocate the target capacity across the Spot pools
--   specified by the Spot Fleet request. The default is
--   <tt>lowestPrice</tt> .
sorAllocationStrategy :: Lens' SpotOptionsRequest (Maybe SpotAllocationStrategy)

-- | 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>spTenancy</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 Spot Instances.</li>
--   <li><a>spGroupName</a> - The name of the placement group.</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 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 Spot
--   Instances.
spTenancy :: Lens' SpotPlacement (Maybe Tenancy)

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

-- | Describes the maximum price per hour that you are willing to pay for a
--   Spot Instance.
--   
--   <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 per hour that you are
--   willing to pay for a Spot Instance.</li>
--   <li><a>sInstanceType</a> - The instance type.</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 per hour that you are willing to pay for a Spot
--   Instance.
sSpotPrice :: Lens' SpotPrice (Maybe Text)

-- | The instance type.
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.InsufficientInstanceCapacity</tt> : There was insufficient
--   instance capacity to satisfy the launch request. *
--   <tt>Server.InternalError</tt> : An internal error occurred during
--   instance launch, resulting in termination. *
--   <tt>Server.ScheduledStop</tt> : The instance was stopped due to a
--   scheduled retirement. * <tt>Server.SpotInstanceTermination</tt> : A
--   Spot Instance was terminated due to an increase in the Spot price. *
--   <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.InstanceTerminated</tt> : The instance was
--   terminated or rebooted during AMI creation. *
--   <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.InsufficientInstanceCapacity</tt> : There was insufficient
--   instance capacity to satisfy the launch request. *
--   <tt>Server.InternalError</tt> : An internal error occurred during
--   instance launch, resulting in termination. *
--   <tt>Server.ScheduledStop</tt> : The instance was stopped due to a
--   scheduled retirement. * <tt>Server.SpotInstanceTermination</tt> : A
--   Spot Instance was terminated due to an increase in the Spot price. *
--   <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.InstanceTerminated</tt> : The instance was
--   terminated or rebooted during AMI creation. *
--   <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 storage location in Amazon S3.
--   
--   <i>See:</i> <a>storageLocation</a> smart constructor.
data StorageLocation

-- | Creates a value of <a>StorageLocation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slBucket</a> - The name of the S3 bucket.</li>
--   <li><a>slKey</a> - The key.</li>
--   </ul>
storageLocation :: StorageLocation

-- | The name of the S3 bucket.
slBucket :: Lens' StorageLocation (Maybe Text)

-- | The key.
slKey :: Lens' StorageLocation (Maybe Text)

-- | 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 the T2 instance whose credit option for CPU usage was
--   successfully modified.
--   
--   <i>See:</i> <a>successfulInstanceCreditSpecificationItem</a> smart
--   constructor.
data SuccessfulInstanceCreditSpecificationItem

-- | Creates a value of <a>SuccessfulInstanceCreditSpecificationItem</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sicsiInstanceId</a> - The ID of the instance.</li>
--   </ul>
successfulInstanceCreditSpecificationItem :: SuccessfulInstanceCreditSpecificationItem

-- | The ID of the instance.
sicsiInstanceId :: Lens' SuccessfulInstanceCreditSpecificationItem (Maybe Text)

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

-- | The tags to apply to a resource when the resource is being created.
--   
--   <i>See:</i> <a>tagSpecification</a> smart constructor.
data TagSpecification

-- | Creates a value of <a>TagSpecification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tsResourceType</a> - The type of resource to tag. Currently,
--   the resource types that support tagging on creation are
--   <tt>instance</tt> and <tt>volume</tt> .</li>
--   <li><a>tsTags</a> - The tags to apply to the resource.</li>
--   </ul>
tagSpecification :: TagSpecification

-- | The type of resource to tag. Currently, the resource types that
--   support tagging on creation are <tt>instance</tt> and <tt>volume</tt>
--   .
tsResourceType :: Lens' TagSpecification (Maybe ResourceType)

-- | The tags to apply to the resource.
tsTags :: Lens' TagSpecification [Tag]

-- | 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.
--   If the request type is <tt>maintain</tt> , you can specify a target
--   capacity of 0 and add capacity later.
--   
--   <i>See:</i> <a>targetCapacitySpecification</a> smart constructor.
data TargetCapacitySpecification

-- | Creates a value of <a>TargetCapacitySpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcsOnDemandTargetCapacity</a> - The number of On-Demand units
--   to request.</li>
--   <li><a>tcsDefaultTargetCapacityType</a> - The default
--   <tt>TotalTargetCapacity</tt> , which is either <tt>Spot</tt> or
--   <tt>On-Demand</tt> .</li>
--   <li><a>tcsTotalTargetCapacity</a> - The number of units to request,
--   filled using <tt>DefaultTargetCapacityType</tt> .</li>
--   <li><a>tcsSpotTargetCapacity</a> - The maximum number of Spot units to
--   launch.</li>
--   </ul>
targetCapacitySpecification :: TargetCapacitySpecification

-- | The number of On-Demand units to request.
tcsOnDemandTargetCapacity :: Lens' TargetCapacitySpecification (Maybe Int)

-- | The default <tt>TotalTargetCapacity</tt> , which is either
--   <tt>Spot</tt> or <tt>On-Demand</tt> .
tcsDefaultTargetCapacityType :: Lens' TargetCapacitySpecification (Maybe DefaultTargetCapacityType)

-- | The number of units to request, filled using
--   <tt>DefaultTargetCapacityType</tt> .
tcsTotalTargetCapacity :: Lens' TargetCapacitySpecification (Maybe Int)

-- | The maximum number of Spot units to launch.
tcsSpotTargetCapacity :: Lens' TargetCapacitySpecification (Maybe Int)

-- | 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.
--   If the request type is <tt>maintain</tt> , you can specify a target
--   capacity of 0 and add capacity later.
--   
--   <i>See:</i> <a>targetCapacitySpecificationRequest</a> smart
--   constructor.
data TargetCapacitySpecificationRequest

-- | Creates a value of <a>TargetCapacitySpecificationRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcsrOnDemandTargetCapacity</a> - The number of On-Demand units
--   to request.</li>
--   <li><a>tcsrDefaultTargetCapacityType</a> - The default
--   <tt>TotalTargetCapacity</tt> , which is either <tt>Spot</tt> or
--   <tt>On-Demand</tt> .</li>
--   <li><a>tcsrSpotTargetCapacity</a> - The number of Spot units to
--   request.</li>
--   <li><a>tcsrTotalTargetCapacity</a> - The number of units to request,
--   filled using <tt>DefaultTargetCapacityType</tt> .</li>
--   </ul>
targetCapacitySpecificationRequest :: Int -> TargetCapacitySpecificationRequest

-- | The number of On-Demand units to request.
tcsrOnDemandTargetCapacity :: Lens' TargetCapacitySpecificationRequest (Maybe Int)

-- | The default <tt>TotalTargetCapacity</tt> , which is either
--   <tt>Spot</tt> or <tt>On-Demand</tt> .
tcsrDefaultTargetCapacityType :: Lens' TargetCapacitySpecificationRequest (Maybe DefaultTargetCapacityType)

-- | The number of Spot units to request.
tcsrSpotTargetCapacity :: Lens' TargetCapacitySpecificationRequest (Maybe Int)

-- | The number of units to request, filled using
--   <tt>DefaultTargetCapacityType</tt> .
tcsrTotalTargetCapacity :: Lens' TargetCapacitySpecificationRequest Int

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

-- | Describes a load balancer target group.
--   
--   <i>See:</i> <a>targetGroup</a> smart constructor.
data TargetGroup

-- | Creates a value of <a>TargetGroup</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tgARN</a> - The Amazon Resource Name (ARN) of the target
--   group.</li>
--   </ul>
targetGroup :: Text -> TargetGroup

-- | The Amazon Resource Name (ARN) of the target group.
tgARN :: Lens' TargetGroup Text

-- | Describes the target groups to attach to a Spot Fleet. Spot Fleet
--   registers the running Spot Instances with these target groups.
--   
--   <i>See:</i> <a>targetGroupsConfig</a> smart constructor.
data TargetGroupsConfig

-- | Creates a value of <a>TargetGroupsConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tgcTargetGroups</a> - One or more target groups.</li>
--   </ul>
targetGroupsConfig :: NonEmpty TargetGroup -> TargetGroupsConfig

-- | One or more target groups.
tgcTargetGroups :: Lens' TargetGroupsConfig (NonEmpty TargetGroup)

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

-- | Describes the T2 instance whose credit option for CPU usage was not
--   modified.
--   
--   <i>See:</i> <a>unsuccessfulInstanceCreditSpecificationItem</a> smart
--   constructor.
data UnsuccessfulInstanceCreditSpecificationItem

-- | Creates a value of <a>UnsuccessfulInstanceCreditSpecificationItem</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uicsiInstanceId</a> - The ID of the instance.</li>
--   <li><a>uicsiError</a> - The applicable error for the T2 instance whose
--   credit option for CPU usage was not modified.</li>
--   </ul>
unsuccessfulInstanceCreditSpecificationItem :: UnsuccessfulInstanceCreditSpecificationItem

-- | The ID of the instance.
uicsiInstanceId :: Lens' UnsuccessfulInstanceCreditSpecificationItem (Maybe Text)

-- | The applicable error for the T2 instance whose credit option for CPU
--   usage was not modified.
uicsiError :: Lens' UnsuccessfulInstanceCreditSpecificationItem (Maybe UnsuccessfulInstanceCreditSpecificationItemError)

-- | Information about the error for the T2 instance whose credit option
--   for CPU usage was not modified.
--   
--   <i>See:</i> <a>unsuccessfulInstanceCreditSpecificationItemError</a>
--   smart constructor.
data UnsuccessfulInstanceCreditSpecificationItemError

-- | Creates a value of
--   <a>UnsuccessfulInstanceCreditSpecificationItemError</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uicsieCode</a> - The error code.</li>
--   <li><a>uicsieMessage</a> - The applicable error message.</li>
--   </ul>
unsuccessfulInstanceCreditSpecificationItemError :: UnsuccessfulInstanceCreditSpecificationItemError

-- | The error code.
uicsieCode :: Lens' UnsuccessfulInstanceCreditSpecificationItemError (Maybe UnsuccessfulInstanceCreditSpecificationErrorCode)

-- | The applicable error message.
uicsieMessage :: Lens' UnsuccessfulInstanceCreditSpecificationItemError (Maybe Text)

-- | 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 in the response. If the referenced security
--   group is deleted, this value is not 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. For a referenced security group in another VPC,
--   this value is not returned if the referenced security group is
--   deleted.</li>
--   <li><a>uigpDescription</a> - A description for the security group rule
--   that references this user ID group pair. Constraints: Up to 255
--   characters in length. Allowed characters are a-z, A-Z, 0-9, spaces,
--   and ._-:/()#,@[]+=;{}!$*</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 in
--   the response. If the referenced security group is deleted, this value
--   is not 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. For a referenced
--   security group in another VPC, this value is not returned if the
--   referenced security group is deleted.
uigpGroupName :: Lens' UserIdGroupPair (Maybe Text)

-- | A description for the security group rule that references this user ID
--   group pair. Constraints: Up to 255 characters in length. Allowed
--   characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*
uigpDescription :: 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>vpcCidrBlockAssociationSet</a> - Information about the IPv4
--   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 primary 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]

-- | Information about the IPv4 CIDR blocks associated with the VPC.
vpcCidrBlockAssociationSet :: Lens' VPC [VPCCidrBlockAssociation]

-- | Any tags assigned to the VPC.
vpcTags :: Lens' VPC [Tag]

-- | Indicates whether the VPC is the default VPC.
vpcIsDefault :: Lens' VPC (Maybe Bool)

-- | The primary 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 an IPv4 CIDR block associated with a VPC.
--   
--   <i>See:</i> <a>vpcCidrBlockAssociation</a> smart constructor.
data VPCCidrBlockAssociation

-- | Creates a value of <a>VPCCidrBlockAssociation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcbaAssociationId</a> - The association ID for the IPv4 CIDR
--   block.</li>
--   <li><a>vcbaCidrBlockState</a> - Information about the state of the
--   CIDR block.</li>
--   <li><a>vcbaCidrBlock</a> - The IPv4 CIDR block.</li>
--   </ul>
vpcCidrBlockAssociation :: VPCCidrBlockAssociation

-- | The association ID for the IPv4 CIDR block.
vcbaAssociationId :: Lens' VPCCidrBlockAssociation (Maybe Text)

-- | Information about the state of the CIDR block.
vcbaCidrBlockState :: Lens' VPCCidrBlockAssociation (Maybe VPCCidrBlockState)

-- | The IPv4 CIDR block.
vcbaCidrBlock :: Lens' VPCCidrBlockAssociation (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>veGroups</a> - (Interface endpoint) Information about the
--   security groups associated with the network interface.</li>
--   <li><a>veState</a> - The state of the VPC endpoint.</li>
--   <li><a>vePolicyDocument</a> - The policy document associated with the
--   endpoint, if applicable.</li>
--   <li><a>veSubnetIds</a> - (Interface endpoint) One or more subnets in
--   which the endpoint is located.</li>
--   <li><a>veNetworkInterfaceIds</a> - (Interface endpoint) One or more
--   network interfaces for the endpoint.</li>
--   <li><a>veVPCId</a> - The ID of the VPC to which the endpoint is
--   associated.</li>
--   <li><a>veDNSEntries</a> - (Interface endpoint) The DNS entries for the
--   endpoint.</li>
--   <li><a>veVPCEndpointType</a> - The type of endpoint.</li>
--   <li><a>vePrivateDNSEnabled</a> - (Interface endpoint) Indicates
--   whether the VPC is associated with a private hosted zone.</li>
--   <li><a>veCreationTimestamp</a> - The date and time the VPC endpoint
--   was created.</li>
--   <li><a>veServiceName</a> - The name of the service to which the
--   endpoint is associated.</li>
--   <li><a>veVPCEndpointId</a> - The ID of the VPC endpoint.</li>
--   <li><a>veRouteTableIds</a> - (Gateway endpoint) One or more route
--   tables associated with the endpoint.</li>
--   </ul>
vpcEndpoint :: VPCEndpoint

-- | (Interface endpoint) Information about the security groups associated
--   with the network interface.
veGroups :: Lens' VPCEndpoint [SecurityGroupIdentifier]

-- | The state of the VPC endpoint.
veState :: Lens' VPCEndpoint (Maybe State)

-- | The policy document associated with the endpoint, if applicable.
vePolicyDocument :: Lens' VPCEndpoint (Maybe Text)

-- | (Interface endpoint) One or more subnets in which the endpoint is
--   located.
veSubnetIds :: Lens' VPCEndpoint [Text]

-- | (Interface endpoint) One or more network interfaces for the endpoint.
veNetworkInterfaceIds :: Lens' VPCEndpoint [Text]

-- | The ID of the VPC to which the endpoint is associated.
veVPCId :: Lens' VPCEndpoint (Maybe Text)

-- | (Interface endpoint) The DNS entries for the endpoint.
veDNSEntries :: Lens' VPCEndpoint [DNSEntry]

-- | The type of endpoint.
veVPCEndpointType :: Lens' VPCEndpoint (Maybe VPCEndpointType)

-- | (Interface endpoint) Indicates whether the VPC is associated with a
--   private hosted zone.
vePrivateDNSEnabled :: Lens' VPCEndpoint (Maybe Bool)

-- | The date and time the VPC endpoint was created.
veCreationTimestamp :: Lens' VPCEndpoint (Maybe UTCTime)

-- | The name of the service to which the endpoint is associated.
veServiceName :: Lens' VPCEndpoint (Maybe Text)

-- | The ID of the VPC endpoint.
veVPCEndpointId :: Lens' VPCEndpoint (Maybe Text)

-- | (Gateway endpoint) One or more route tables associated with the
--   endpoint.
veRouteTableIds :: Lens' VPCEndpoint [Text]

-- | Describes a VPC endpoint connection to a service.
--   
--   <i>See:</i> <a>vpcEndpointConnection</a> smart constructor.
data VPCEndpointConnection

-- | Creates a value of <a>VPCEndpointConnection</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vecVPCEndpointOwner</a> - The AWS account ID of the owner of
--   the VPC endpoint.</li>
--   <li><a>vecVPCEndpointState</a> - The state of the VPC endpoint.</li>
--   <li><a>vecCreationTimestamp</a> - The date and time the VPC endpoint
--   was created.</li>
--   <li><a>vecServiceId</a> - The ID of the service to which the endpoint
--   is connected.</li>
--   <li><a>vecVPCEndpointId</a> - The ID of the VPC endpoint.</li>
--   </ul>
vpcEndpointConnection :: VPCEndpointConnection

-- | The AWS account ID of the owner of the VPC endpoint.
vecVPCEndpointOwner :: Lens' VPCEndpointConnection (Maybe Text)

-- | The state of the VPC endpoint.
vecVPCEndpointState :: Lens' VPCEndpointConnection (Maybe State)

-- | The date and time the VPC endpoint was created.
vecCreationTimestamp :: Lens' VPCEndpointConnection (Maybe UTCTime)

-- | The ID of the service to which the endpoint is connected.
vecServiceId :: Lens' VPCEndpointConnection (Maybe Text)

-- | The ID of the VPC endpoint.
vecVPCEndpointId :: Lens' VPCEndpointConnection (Maybe 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 only returned when describing an active VPC
--   peering connection.</li>
--   <li><a>vpcpcRequesterVPCInfo</a> - Information about the requester
--   VPC. CIDR block information is only returned when describing an active
--   VPC peering connection.</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 only
--   returned when describing an active VPC peering connection.
vpcpcAccepterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)

-- | Information about the requester VPC. CIDR block information is only
--   returned when describing an active VPC peering connection.
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>vpcviCidrBlockSet</a> - Information about the IPv4 CIDR blocks
--   for the VPC.</li>
--   <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>vpcviRegion</a> - The region in which the VPC is located.</li>
--   <li><a>vpcviIPv6CidrBlockSet</a> - The IPv6 CIDR block for the
--   VPC.</li>
--   </ul>
vpcPeeringConnectionVPCInfo :: VPCPeeringConnectionVPCInfo

-- | Information about the IPv4 CIDR blocks for the VPC.
vpcviCidrBlockSet :: Lens' VPCPeeringConnectionVPCInfo [CidrBlock]

-- | 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 region in which the VPC is located.
vpcviRegion :: 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>vcCategory</a> - The category of the VPN connection. A value of
--   <tt>VPN</tt> indicates an AWS VPN connection. A value of
--   <tt>VPN-Classic</tt> indicates an AWS Classic VPN connection. For more
--   information, see <a>AWS Managed VPN Categories</a> in the <i>Amazon
--   Virtual Private Cloud User Guide</i> .</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 category of the VPN connection. A value of <tt>VPN</tt> indicates
--   an AWS VPN connection. A value of <tt>VPN-Classic</tt> indicates an
--   AWS Classic VPN connection. For more information, see <a>AWS Managed
--   VPN Categories</a> in the <i>Amazon Virtual Private Cloud User
--   Guide</i> .
vcCategory :: 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>vcosTunnelOptions</a> - The tunnel options for the VPN
--   connection.</li>
--   <li><a>vcosStaticRoutesOnly</a> - Indicate whether the VPN connection
--   uses static routes only. If you are creating a VPN connection for a
--   device that does not support BGP, you must specify <tt>true</tt> . Use
--   <tt>CreateVpnConnectionRoute</tt> to create a static route. Default:
--   <tt>false</tt></li>
--   </ul>
vpnConnectionOptionsSpecification :: VPNConnectionOptionsSpecification

-- | The tunnel options for the VPN connection.
vcosTunnelOptions :: Lens' VPNConnectionOptionsSpecification [VPNTunnelOptionsSpecification]

-- | Indicate whether the VPN connection uses static routes only. If you
--   are creating a VPN connection for a device that does not support BGP,
--   you must specify <tt>true</tt> . Use <tt>CreateVpnConnectionRoute</tt>
--   to create a static route. Default: <tt>false</tt>
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>vgAmazonSideASN</a> - The private Autonomous System Number
--   (ASN) for the Amazon side of a BGP session.</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 private Autonomous System Number (ASN) for the Amazon side of a
--   BGP session.
vgAmazonSideASN :: Lens' VPNGateway (Maybe Integer)

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

-- | The tunnel options for a VPN connection.
--   
--   <i>See:</i> <a>vpnTunnelOptionsSpecification</a> smart constructor.
data VPNTunnelOptionsSpecification

-- | Creates a value of <a>VPNTunnelOptionsSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vtosTunnelInsideCidr</a> - The range of inside IP addresses for
--   the tunnel. Any specified CIDR blocks must be unique across all VPN
--   connections that use the same virtual private gateway. Constraints: A
--   size <i>30 CIDR block from the @169.254.0.0</i>16<tt> range. The
--   following CIDR blocks are reserved and cannot be used: *
--   </tt>169.254.0.0<i>30<tt> * </tt>169.254.1.0</i>30<tt> *
--   </tt>169.254.2.0<i>30<tt> * </tt>169.254.3.0</i>30<tt> *
--   </tt>169.254.4.0<i>30<tt> * </tt>169.254.5.0</i>30<tt> *
--   </tt>169.254.169.252/30@</li>
--   <li><a>vtosPreSharedKey</a> - The pre-shared key (PSK) to establish
--   initial authentication between the virtual private gateway and
--   customer gateway. Constraints: Allowed characters are alphanumeric
--   characters and ._. Must be between 8 and 64 characters in length and
--   cannot start with zero (0).</li>
--   </ul>
vpnTunnelOptionsSpecification :: VPNTunnelOptionsSpecification

-- | The range of inside IP addresses for the tunnel. Any specified CIDR
--   blocks must be unique across all VPN connections that use the same
--   virtual private gateway. Constraints: A size <i>30 CIDR block from the
--   @169.254.0.0</i>16<tt> range. The following CIDR blocks are reserved
--   and cannot be used: * </tt>169.254.0.0<i>30<tt> *
--   </tt>169.254.1.0</i>30<tt> * </tt>169.254.2.0<i>30<tt> *
--   </tt>169.254.3.0</i>30<tt> * </tt>169.254.4.0<i>30<tt> *
--   </tt>169.254.5.0</i>30<tt> * </tt>169.254.169.252/30@
vtosTunnelInsideCidr :: Lens' VPNTunnelOptionsSpecification (Maybe Text)

-- | The pre-shared key (PSK) to establish initial authentication between
--   the virtual private gateway and customer gateway. Constraints: Allowed
--   characters are alphanumeric characters and ._. Must be between 8 and
--   64 characters in length and cannot start with zero (0).
vtosPreSharedKey :: Lens' VPNTunnelOptionsSpecification (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-32000 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-32000 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 the modification status of an EBS volume.
--   
--   If the volume has never been modified, some element values will be
--   null.
--   
--   <i>See:</i> <a>volumeModification</a> smart constructor.
data VolumeModification

-- | Creates a value of <a>VolumeModification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vmProgress</a> - Modification progress from 0 to 100%.</li>
--   <li><a>vmStartTime</a> - Modification start time</li>
--   <li><a>vmModificationState</a> - Current state of modification.
--   Modification state is null for unmodified volumes.</li>
--   <li><a>vmTargetVolumeType</a> - Target EBS volume type of the volume
--   being modified.</li>
--   <li><a>vmOriginalVolumeType</a> - Original EBS volume type of the
--   volume being modified.</li>
--   <li><a>vmTargetSize</a> - Target size of the volume being
--   modified.</li>
--   <li><a>vmTargetIOPS</a> - Target IOPS rate of the volume being
--   modified.</li>
--   <li><a>vmOriginalSize</a> - Original size of the volume being
--   modified.</li>
--   <li><a>vmOriginalIOPS</a> - Original IOPS rate of the volume being
--   modified.</li>
--   <li><a>vmStatusMessage</a> - Generic status message on modification
--   progress or failure.</li>
--   <li><a>vmEndTime</a> - Modification completion or failure time.</li>
--   <li><a>vmVolumeId</a> - ID of the volume being modified.</li>
--   </ul>
volumeModification :: VolumeModification

-- | Modification progress from 0 to 100%.
vmProgress :: Lens' VolumeModification (Maybe Integer)

-- | Modification start time
vmStartTime :: Lens' VolumeModification (Maybe UTCTime)

-- | Current state of modification. Modification state is null for
--   unmodified volumes.
vmModificationState :: Lens' VolumeModification (Maybe VolumeModificationState)

-- | Target EBS volume type of the volume being modified.
vmTargetVolumeType :: Lens' VolumeModification (Maybe VolumeType)

-- | Original EBS volume type of the volume being modified.
vmOriginalVolumeType :: Lens' VolumeModification (Maybe VolumeType)

-- | Target size of the volume being modified.
vmTargetSize :: Lens' VolumeModification (Maybe Int)

-- | Target IOPS rate of the volume being modified.
vmTargetIOPS :: Lens' VolumeModification (Maybe Int)

-- | Original size of the volume being modified.
vmOriginalSize :: Lens' VolumeModification (Maybe Int)

-- | Original IOPS rate of the volume being modified.
vmOriginalIOPS :: Lens' VolumeModification (Maybe Int)

-- | Generic status message on modification progress or failure.
vmStatusMessage :: Lens' VolumeModification (Maybe Text)

-- | Modification completion or failure time.
vmEndTime :: Lens' VolumeModification (Maybe UTCTime)

-- | ID of the volume being modified.
vmVolumeId :: Lens' VolumeModification (Maybe Text)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.TerminateInstances.TerminateInstancesResponse
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


-- | Stops an Amazon EBS-backed instance.
--   
--   We don't charge usage for a stopped instance, or data transfer fees;
--   however, your root partition Amazon EBS volume remains and continues
--   to persist your data, and you are charged for Amazon EBS volume usage.
--   Every time you start your Windows instance, Amazon EC2 charges you for
--   a full instance hour. If you stop and restart your Windows instance, a
--   new instance hour begins and Amazon EC2 charges you for another full
--   instance hour even if you are still within the same 60-minute period
--   when it was stopped. Every time you start your Linux instance, Amazon
--   EC2 charges a one-minute minimum for instance usage, and thereafter
--   charges per second for instance usage.
--   
--   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 Control.DeepSeq.NFData Network.AWS.EC2.StopInstances.StopInstancesResponse
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


-- | Starts an Amazon EBS-backed instance 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 instance usage.
--   However, your root partition Amazon EBS volume remains and continues
--   to persist your data, and you are charged for Amazon EBS volume usage.
--   You can restart your instance at any time. Every time you start your
--   Windows instance, Amazon EC2 charges you for a full instance hour. If
--   you stop and restart your Windows instance, a new instance hour begins
--   and Amazon EC2 charges you for another full instance hour even if you
--   are still within the same 60-minute period when it was stopped. Every
--   time you start your Linux instance, Amazon EC2 charges a one-minute
--   minimum for instance usage, and thereafter charges per second for
--   instance usage.
--   
--   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 Control.DeepSeq.NFData Network.AWS.EC2.StartInstances.StartInstancesResponse
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


-- | 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>rsiLaunchSpecification</a> - The launch specification. You must
--   match the instance type, Availability Zone, network, and platform of
--   the schedule that you purchased.</li>
--   <li><a>rsiScheduledInstanceId</a> - The Scheduled Instance ID.</li>
--   </ul>
runScheduledInstances :: ScheduledInstancesLaunchSpecification -> Text -> 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 launch specification. You must match the instance type,
--   Availability Zone, network, and platform of the schedule that you
--   purchased.
rsiLaunchSpecification :: Lens' RunScheduledInstances ScheduledInstancesLaunchSpecification

-- | The Scheduled Instance ID.
rsiScheduledInstanceId :: Lens' RunScheduledInstances Text

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.RunScheduledInstances.RunScheduledInstancesResponse
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


-- | 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>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>
--   
--   You can create a <a>launch template</a> , which is a resource that
--   contains the parameters to launch an instance. When you launch an
--   instance using <a>RunInstances</a> , you can specify the launch
--   template instead of specifying the launch parameters.
--   
--   To ensure faster instance launches, break up large requests into
--   smaller batches. For example, create five separate launch requests for
--   100 instances each instead of one 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> . You can tag instances and EBS volumes
--   during launch, after launch, or both. 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>risAdditionalInfo</a> - Reserved.</li>
--   <li><a>risSecurityGroupIds</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>risSecurityGroups</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>risClientToken</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>risInstanceMarketOptions</a> - The market (purchasing) option
--   for the instances.</li>
--   <li><a>risDisableAPITermination</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>risKeyName</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>risNetworkInterfaces</a> - One or more network interfaces.</li>
--   <li><a>risRAMDiskId</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>risCPUOptions</a> - The CPU options for the instance. For more
--   information, see <a>Optimizing CPU Options</a> in the <i>Amazon
--   Elastic Compute Cloud User Guide</i> .</li>
--   <li><a>risSubnetId</a> - [EC2-VPC] The ID of the subnet to launch the
--   instance into.</li>
--   <li><a>risKernelId</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>risInstanceType</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>risEBSOptimized</a> - Indicates whether the instance is
--   optimized for Amazon EBS I<i>O. This optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal Amazon 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>risUserData</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 a 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>risMonitoring</a> - The monitoring for the instance.</li>
--   <li><a>risTagSpecifications</a> - The tags to apply to the resources
--   during launch. You can tag instances and volumes. The specified tags
--   are applied to all instances or volumes that are created during
--   launch.</li>
--   <li><a>risIPv6AddressCount</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>risIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>risElasticGpuSpecification</a> - An elastic GPU to associate
--   with the instance.</li>
--   <li><a>risImageId</a> - The ID of the AMI, which you can get by
--   calling <tt>DescribeImages</tt> . An AMI is required to launch an
--   instance and must be specified here or in a launch template.</li>
--   <li><a>risPrivateIPAddress</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>risInstanceInitiatedShutdownBehavior</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>risLaunchTemplate</a> - The launch template to use to launch
--   the instances. Any parameters that you specify in <a>RunInstances</a>
--   override the same parameters in the launch template. You can specify
--   either the name or ID of a launch template, but not both.</li>
--   <li><a>risCreditSpecification</a> - The credit option for CPU usage of
--   the instance. Valid values are <tt>standard</tt> and
--   <tt>unlimited</tt> . To change this attribute after launch, use
--   <tt>ModifyInstanceCreditSpecification</tt> . For more information, see
--   <a>T2 Instances</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> . Default: <tt>standard</tt></li>
--   <li><a>risBlockDeviceMappings</a> - One or more block device mapping
--   entries. You can't specify both a snapshot ID and an encryption value.
--   This is because only blank volumes can be encrypted on creation. If a
--   snapshot is the basis for a volume, it is not blank and its encryption
--   status is used for the volume encryption status.</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>risPlacement</a> - The placement for the instance.</li>
--   <li><a>risIPv6Addresses</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>risMaxCount</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>
--   <li><a>risMinCount</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>
--   </ul>
runInstances :: Int -> Int -> RunInstances

-- | Contains the parameters for RunInstances.
--   
--   <i>See:</i> <a>runInstances</a> smart constructor.
data RunInstances

-- | Reserved.
risAdditionalInfo :: 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.
risSecurityGroupIds :: 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>
risSecurityGroups :: 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
risClientToken :: Lens' RunInstances (Maybe Text)

-- | The market (purchasing) option for the instances.
risInstanceMarketOptions :: Lens' RunInstances (Maybe InstanceMarketOptionsRequest)

-- | 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>
risDisableAPITermination :: 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.
risKeyName :: Lens' RunInstances (Maybe Text)

-- | One or more network interfaces.
risNetworkInterfaces :: 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> .
risRAMDiskId :: Lens' RunInstances (Maybe Text)

-- | The CPU options for the instance. For more information, see
--   <a>Optimizing CPU Options</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
risCPUOptions :: Lens' RunInstances (Maybe CPUOptionsRequest)

-- | <ul>
--   <li><i>EC2-VPC</i> The ID of the subnet to launch the instance
--   into.</li>
--   </ul>
risSubnetId :: 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> .
risKernelId :: 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>
risInstanceType :: Lens' RunInstances (Maybe InstanceType)

-- | Indicates whether the instance is optimized for Amazon EBS I<i>O. This
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal Amazon 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>
risEBSOptimized :: 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 a 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.
risUserData :: Lens' RunInstances (Maybe Text)

-- | The monitoring for the instance.
risMonitoring :: Lens' RunInstances (Maybe RunInstancesMonitoringEnabled)

-- | The tags to apply to the resources during launch. You can tag
--   instances and volumes. The specified tags are applied to all instances
--   or volumes that are created during launch.
risTagSpecifications :: Lens' RunInstances [TagSpecification]

-- | <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>
risIPv6AddressCount :: Lens' RunInstances (Maybe Int)

-- | The IAM instance profile.
risIAMInstanceProfile :: Lens' RunInstances (Maybe IAMInstanceProfileSpecification)

-- | An elastic GPU to associate with the instance.
risElasticGpuSpecification :: Lens' RunInstances [ElasticGpuSpecification]

-- | The ID of the AMI, which you can get by calling
--   <tt>DescribeImages</tt> . An AMI is required to launch an instance and
--   must be specified here or in a launch template.
risImageId :: Lens' RunInstances (Maybe Text)

-- | <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>
risPrivateIPAddress :: 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>
risInstanceInitiatedShutdownBehavior :: Lens' RunInstances (Maybe ShutdownBehavior)

-- | The launch template to use to launch the instances. Any parameters
--   that you specify in <a>RunInstances</a> override the same parameters
--   in the launch template. You can specify either the name or ID of a
--   launch template, but not both.
risLaunchTemplate :: Lens' RunInstances (Maybe LaunchTemplateSpecification)

-- | The credit option for CPU usage of the instance. Valid values are
--   <tt>standard</tt> and <tt>unlimited</tt> . To change this attribute
--   after launch, use <tt>ModifyInstanceCreditSpecification</tt> . For
--   more information, see <a>T2 Instances</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> . Default: <tt>standard</tt>
risCreditSpecification :: Lens' RunInstances (Maybe CreditSpecificationRequest)

-- | One or more block device mapping entries. You can't specify both a
--   snapshot ID and an encryption value. This is because only blank
--   volumes can be encrypted on creation. If a snapshot is the basis for a
--   volume, it is not blank and its encryption status is used for the
--   volume encryption status.
risBlockDeviceMappings :: 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> .
risDryRun :: Lens' RunInstances (Maybe Bool)

-- | The placement for the instance.
risPlacement :: 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>
risIPv6Addresses :: Lens' RunInstances [InstanceIPv6Address]

-- | 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.
risMaxCount :: Lens' RunInstances Int

-- | 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.
risMinCount :: 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


-- | Removes one or more ingress rules from a security group. To remove a
--   rule, the values that you specify (for example, ports) must match the
--   existing rule's values exactly.
--   
--   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. If the security group rule
--   has a description, you do not have to specify the description to
--   revoke the rule.
--   
--   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> - One or more sets of IP permissions. You
--   can't specify a source security group and a CIDR IP address range in
--   the same set of permissions.</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. You must
--   specify either the security group ID or the security group name in the
--   request. For security groups in a nondefault VPC, you must specify the
--   security group ID.</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. You must specify either the security group ID or the
--   security group name in the request.</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)

-- | One or more sets of IP permissions. You can't specify a source
--   security group and a CIDR IP address range in the same set of
--   permissions.
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. You must specify either the security
--   group ID or the security group name in the request. For security
--   groups in a nondefault VPC, you must specify the security group ID.
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.
--   You must specify either the security group ID or the security group
--   name in the request.</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 Control.DeepSeq.NFData Network.AWS.EC2.RevokeSecurityGroupIngress.RevokeSecurityGroupIngressResponse
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


-- | <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. To remove a rule, the values that you
--   specify (for example, ports) must match the existing rule's values
--   exactly.</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. If the security group
--   rule has a description, you do not have to specify the description to
--   revoke the rule.
--   
--   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> - Not supported. Use a set of IP permissions
--   to specify the port.</li>
--   <li><a>rsgeIPPermissions</a> - One or more sets of IP permissions. You
--   can't specify a destination security group and a CIDR IP address range
--   in the same set of permissions.</li>
--   <li><a>rsgeIPProtocol</a> - Not supported. Use a set of IP permissions
--   to specify the protocol name or number.</li>
--   <li><a>rsgeToPort</a> - Not supported. Use a set of IP permissions to
--   specify the port.</li>
--   <li><a>rsgeCidrIP</a> - Not supported. Use a set of IP permissions to
--   specify the CIDR.</li>
--   <li><a>rsgeSourceSecurityGroupOwnerId</a> - Not supported. Use a set
--   of IP permissions to specify a destination security group.</li>
--   <li><a>rsgeSourceSecurityGroupName</a> - Not supported. Use a set of
--   IP permissions to specify a destination security group.</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

-- | Not supported. Use a set of IP permissions to specify the port.
rsgeFromPort :: Lens' RevokeSecurityGroupEgress (Maybe Int)

-- | One or more sets of IP permissions. You can't specify a destination
--   security group and a CIDR IP address range in the same set of
--   permissions.
rsgeIPPermissions :: Lens' RevokeSecurityGroupEgress [IPPermission]

-- | Not supported. Use a set of IP permissions to specify the protocol
--   name or number.
rsgeIPProtocol :: Lens' RevokeSecurityGroupEgress (Maybe Text)

-- | Not supported. Use a set of IP permissions to specify the port.
rsgeToPort :: Lens' RevokeSecurityGroupEgress (Maybe Int)

-- | Not supported. Use a set of IP permissions to specify the CIDR.
rsgeCidrIP :: Lens' RevokeSecurityGroupEgress (Maybe Text)

-- | Not supported. Use a set of IP permissions to specify a destination
--   security group.
rsgeSourceSecurityGroupOwnerId :: Lens' RevokeSecurityGroupEgress (Maybe Text)

-- | Not supported. Use a set of IP permissions to specify a destination
--   security group.
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 Control.DeepSeq.NFData Network.AWS.EC2.RevokeSecurityGroupEgress.RevokeSecurityGroupEgressResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.RestoreAddressToClassic.RestoreAddressToClassicResponse
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


-- | 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>rsaAttribute</a> - The attribute to reset. Currently, only the
--   attribute for permission to create volumes can be reset.</li>
--   <li><a>rsaSnapshotId</a> - The ID of the snapshot.</li>
--   </ul>
resetSnapshotAttribute :: SnapshotAttributeName -> Text -> 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 attribute to reset. Currently, only the attribute for permission
--   to create volumes can be reset.
rsaAttribute :: Lens' ResetSnapshotAttribute SnapshotAttributeName

-- | The ID of the snapshot.
rsaSnapshotId :: Lens' ResetSnapshotAttribute Text

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ResetSnapshotAttribute.ResetSnapshotAttributeResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ResetNetworkInterfaceAttribute.ResetNetworkInterfaceAttributeResponse
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


-- | 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>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>
--   <li><a>riaInstanceId</a> - The ID of the instance.</li>
--   </ul>
resetInstanceAttribute :: InstanceAttributeName -> Text -> 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 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

-- | The ID of the instance.
riaInstanceId :: Lens' ResetInstanceAttribute Text

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ResetInstanceAttribute.ResetInstanceAttributeResponse
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


-- | 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>resAttribute</a> - The attribute to reset (currently you can
--   only reset the launch permission attribute).</li>
--   <li><a>resImageId</a> - The ID of the AMI.</li>
--   </ul>
resetImageAttribute :: ResetImageAttributeName -> Text -> 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 attribute to reset (currently you can only reset the launch
--   permission attribute).
resAttribute :: Lens' ResetImageAttribute ResetImageAttributeName

-- | The ID of the AMI.
resImageId :: Lens' ResetImageAttribute Text

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ResetImageAttribute.ResetImageAttributeResponse
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


-- | Resets the specified attribute of the specified Amazon FPGA Image
--   (AFI) to its default value. You can only reset the load permission
--   attribute.
module Network.AWS.EC2.ResetFpgaImageAttribute

-- | Creates a value of <a>ResetFpgaImageAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rfiaAttribute</a> - The attribute.</li>
--   <li><a>rfiaDryRun</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>rfiaFpgaImageId</a> - The ID of the AFI.</li>
--   </ul>
resetFpgaImageAttribute :: Text -> ResetFpgaImageAttribute

-- | <i>See:</i> <a>resetFpgaImageAttribute</a> smart constructor.
data ResetFpgaImageAttribute

-- | The attribute.
rfiaAttribute :: Lens' ResetFpgaImageAttribute (Maybe ResetFpgaImageAttributeName)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rfiaDryRun :: Lens' ResetFpgaImageAttribute (Maybe Bool)

-- | The ID of the AFI.
rfiaFpgaImageId :: Lens' ResetFpgaImageAttribute Text

-- | Creates a value of <a>ResetFpgaImageAttributeResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rfiarsReturn</a> - Is <tt>true</tt> if the request succeeds,
--   and an error otherwise.</li>
--   <li><a>rfiarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
resetFpgaImageAttributeResponse :: Int -> ResetFpgaImageAttributeResponse

-- | <i>See:</i> <a>resetFpgaImageAttributeResponse</a> smart constructor.
data ResetFpgaImageAttributeResponse

-- | Is <tt>true</tt> if the request succeeds, and an error otherwise.
rfiarsReturn :: Lens' ResetFpgaImageAttributeResponse (Maybe Bool)

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


-- | Creates a Spot Instance request. Spot Instances are instances that
--   Amazon EC2 launches when the maximum price that you specify exceeds
--   the current Spot price. For more information, see <a>Spot Instance
--   Requests</a> in the <i>Amazon EC2 User Guide for Linux Instances</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>rBlockDurationMinutes</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. You
--   can't specify an Availability Zone group or a launch group if you
--   specify a duration.</li>
--   <li><a>rClientToken</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 EC2
--   User Guide for Linux Instances</i> .</li>
--   <li><a>rInstanceCount</a> - The maximum number of Spot Instances to
--   launch. Default: 1</li>
--   <li><a>rInstanceInterruptionBehavior</a> - The behavior when a Spot
--   Instance is interrupted. The default is <tt>terminate</tt> .</li>
--   <li><a>rSpotPrice</a> - The maximum price per hour that you are
--   willing to pay for a Spot Instance. The default is the On-Demand
--   price.</li>
--   <li><a>rLaunchSpecification</a> - The launch specification.</li>
--   <li><a>rAvailabilityZoneGroup</a> - The user-specified name for a
--   logical grouping of requests. 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 requests 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 request is expired, or the
--   maximum price you specified falls below current Spot price), 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>rValidUntil</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 is reached. The default end date is 7 days from the current
--   date.</li>
--   <li><a>rLaunchGroup</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>rType</a> - The Spot Instance request type. Default:
--   <tt>one-time</tt></li>
--   <li><a>rValidFrom</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.</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>
--   </ul>
requestSpotInstances :: 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. You can't specify an
--   Availability Zone group or a launch group if you specify a duration.
rBlockDurationMinutes :: 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 EC2 User Guide for Linux
--   Instances</i> .
rClientToken :: Lens' RequestSpotInstances (Maybe Text)

-- | The maximum number of Spot Instances to launch. Default: 1
rInstanceCount :: Lens' RequestSpotInstances (Maybe Int)

-- | The behavior when a Spot Instance is interrupted. The default is
--   <tt>terminate</tt> .
rInstanceInterruptionBehavior :: Lens' RequestSpotInstances (Maybe InstanceInterruptionBehavior)

-- | The maximum price per hour that you are willing to pay for a Spot
--   Instance. The default is the On-Demand price.
rSpotPrice :: Lens' RequestSpotInstances (Maybe Text)

-- | The launch specification.
rLaunchSpecification :: Lens' RequestSpotInstances (Maybe RequestSpotLaunchSpecification)

-- | The user-specified name for a logical grouping of requests. 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 requests
--   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 request is expired, or the maximum price you specified falls below
--   current Spot price), 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.
rAvailabilityZoneGroup :: 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 is reached. The
--   default end date is 7 days from the current date.
rValidUntil :: 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
rLaunchGroup :: Lens' RequestSpotInstances (Maybe Text)

-- | The Spot Instance request type. Default: <tt>one-time</tt>
rType :: 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.
rValidFrom :: 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> .
rDryRun :: Lens' RequestSpotInstances (Maybe Bool)

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.RequestSpotInstances.RequestSpotInstancesResponse
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


-- | Creates a Spot Fleet request.
--   
--   The Spot Fleet request specifies the total target capacity and the
--   On-Demand target capacity. Amazon EC2 calculates the difference
--   between the total capacity and On-Demand capacity, and launches the
--   difference as Spot capacity.
--   
--   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.
--   
--   You can specify tags for the Spot Instances. You cannot tag other
--   resource types in a Spot Fleet request because only the
--   <tt>instance</tt> resource type is supported.
--   
--   For more information, see <a>Spot Fleet Requests</a> in the <i>Amazon
--   EC2 User Guide for Linux Instances</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 Control.DeepSeq.NFData Network.AWS.EC2.RequestSpotFleet.RequestSpotFleetResponse
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


-- | 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>rissStartTime</a> - The time at which the reported instance
--   health state began.</li>
--   <li><a>rissEndTime</a> - The time at which the reported instance
--   health state ended.</li>
--   <li><a>rissDescription</a> - Descriptive text about the health state
--   of your instance.</li>
--   <li><a>rissDryRun</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>rissInstances</a> - One or more instances.</li>
--   <li><a>rissReasonCodes</a> - One or more reason codes that describe
--   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 that I believe are network related. *
--   <tt>performance-instance-store</tt> : My instance is experiencing
--   performance problems that I believe are related to the instance
--   stores. * <tt>performance-ebs-volume</tt> : My instance is
--   experiencing performance problems that 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>
--   <li><a>rissStatus</a> - The status of all instances listed.</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.
rissStartTime :: Lens' ReportInstanceStatus (Maybe UTCTime)

-- | The time at which the reported instance health state ended.
rissEndTime :: Lens' ReportInstanceStatus (Maybe UTCTime)

-- | Descriptive text about the health state of your instance.
rissDescription :: 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> .
rissDryRun :: Lens' ReportInstanceStatus (Maybe Bool)

-- | One or more instances.
rissInstances :: Lens' ReportInstanceStatus [Text]

-- | One or more reason codes that describe 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 that I believe are
--   network related. * <tt>performance-instance-store</tt> : My instance
--   is experiencing performance problems that I believe are related to the
--   instance stores. * <tt>performance-ebs-volume</tt> : My instance is
--   experiencing performance problems that 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]
rissReasonCodes :: Lens' ReportInstanceStatus [ReportInstanceReasonCodes]

-- | The status of all instances listed.
rissStatus :: Lens' ReportInstanceStatus ReportStatusType

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ReportInstanceStatus.ReportInstanceStatusResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ReplaceRouteTableAssociation.ReplaceRouteTableAssociationResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ReplaceRoute.ReplaceRouteResponse
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


-- | 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>rnaeEgress</a> - Indicates whether to replace the egress rule.
--   Default: If no value is specified, we replace the ingress rule.</li>
--   <li><a>rnaeNetworkACLId</a> - The ID of the ACL.</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>rnaeRuleNumber</a> - The rule number of the entry to
--   replace.</li>
--   </ul>
replaceNetworkACLEntry :: Bool -> Text -> Text -> RuleAction -> Int -> 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)

-- | Indicates whether to replace the egress rule. Default: If no value is
--   specified, we replace the ingress rule.
rnaeEgress :: Lens' ReplaceNetworkACLEntry Bool

-- | The ID of the ACL.
rnaeNetworkACLId :: Lens' ReplaceNetworkACLEntry Text

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

-- | The rule number of the entry to replace.
rnaeRuleNumber :: Lens' ReplaceNetworkACLEntry Int

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ReplaceNetworkACLEntry.ReplaceNetworkACLEntryResponse
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


-- | 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> .
--   
--   This is an idempotent operation.
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 Control.DeepSeq.NFData Network.AWS.EC2.ReplaceNetworkACLAssociation.ReplaceNetworkACLAssociationResponse
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


-- | Replaces an IAM instance profile for the specified running instance.
--   You can use this action to change the IAM instance profile that's
--   associated with an instance without having to disassociate the
--   existing IAM instance profile first.
--   
--   Use <tt>DescribeIamInstanceProfileAssociations</tt> to get the
--   association ID.
module Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation

-- | Creates a value of <a>ReplaceIAMInstanceProfileAssociation</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riapaIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>riapaAssociationId</a> - The ID of the existing IAM instance
--   profile association.</li>
--   </ul>
replaceIAMInstanceProfileAssociation :: IAMInstanceProfileSpecification -> Text -> ReplaceIAMInstanceProfileAssociation

-- | <i>See:</i> <a>replaceIAMInstanceProfileAssociation</a> smart
--   constructor.
data ReplaceIAMInstanceProfileAssociation

-- | The IAM instance profile.
riapaIAMInstanceProfile :: Lens' ReplaceIAMInstanceProfileAssociation IAMInstanceProfileSpecification

-- | The ID of the existing IAM instance profile association.
riapaAssociationId :: Lens' ReplaceIAMInstanceProfileAssociation Text

-- | Creates a value of <a>ReplaceIAMInstanceProfileAssociationResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riaparsIAMInstanceProfileAssociation</a> - Information about
--   the IAM instance profile association.</li>
--   <li><a>riaparsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
replaceIAMInstanceProfileAssociationResponse :: Int -> ReplaceIAMInstanceProfileAssociationResponse

-- | <i>See:</i> <a>replaceIAMInstanceProfileAssociationResponse</a> smart
--   constructor.
data ReplaceIAMInstanceProfileAssociationResponse

-- | Information about the IAM instance profile association.
riaparsIAMInstanceProfileAssociation :: Lens' ReplaceIAMInstanceProfileAssociationResponse (Maybe IAMInstanceProfileAssociation)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ReleaseHosts.ReleaseHostsResponse
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


-- | Releases the specified Elastic IP address.
--   
--   <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 can release it.
--   Otherwise, Amazon EC2 returns an error
--   (<tt>InvalidIPAddress.InUse</tt> ).</li>
--   </ul>
--   
--   After releasing an Elastic IP address, it is released to the IP
--   address pool. 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-VPC</i> After you release an Elastic IP address for use in
--   a VPC, you might be able to recover it. For more information, see
--   <tt>AllocateAddress</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 Control.DeepSeq.NFData Network.AWS.EC2.ReleaseAddress.ReleaseAddressResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.RejectVPCPeeringConnection.RejectVPCPeeringConnectionResponse
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


-- | Rejects one or more VPC endpoint connection requests to your VPC
--   endpoint service.
module Network.AWS.EC2.RejectVPCEndpointConnections

-- | Creates a value of <a>RejectVPCEndpointConnections</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rvecDryRun</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>rvecServiceId</a> - The ID of the service.</li>
--   <li><a>rvecVPCEndpointIds</a> - The IDs of one or more VPC
--   endpoints.</li>
--   </ul>
rejectVPCEndpointConnections :: Text -> RejectVPCEndpointConnections

-- | <i>See:</i> <a>rejectVPCEndpointConnections</a> smart constructor.
data RejectVPCEndpointConnections

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
rvecDryRun :: Lens' RejectVPCEndpointConnections (Maybe Bool)

-- | The ID of the service.
rvecServiceId :: Lens' RejectVPCEndpointConnections Text

-- | The IDs of one or more VPC endpoints.
rvecVPCEndpointIds :: Lens' RejectVPCEndpointConnections [Text]

-- | Creates a value of <a>RejectVPCEndpointConnectionsResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rvecrsUnsuccessful</a> - Information about the endpoints that
--   were not rejected, if applicable.</li>
--   <li><a>rvecrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
rejectVPCEndpointConnectionsResponse :: Int -> RejectVPCEndpointConnectionsResponse

-- | <i>See:</i> <a>rejectVPCEndpointConnectionsResponse</a> smart
--   constructor.
data RejectVPCEndpointConnectionsResponse

-- | Information about the endpoints that were not rejected, if applicable.
rvecrsUnsuccessful :: Lens' RejectVPCEndpointConnectionsResponse [UnsuccessfulItem]

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


-- | 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. You specify the
--   snapshot using the block device mapping. For more information, see
--   <a>Launching a Linux Instance from a Backup</a> in the <i>Amazon
--   Elastic Compute Cloud User Guide</i> .
--   
--   You can't register an image where a secondary (non-root) snapshot has
--   AWS Marketplace product codes.
--   
--   Some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and
--   SUSE Linux Enterprise Server (SLES), use the EC2 billing product code
--   associated with an AMI to verify the 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. To create an
--   AMI that must retain billing codes, 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
--   (<tt>hvm</tt> | <tt>paravirtual</tt> ). 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>riBillingProducts</a> - The billing product codes. Your account
--   must be authorized to specify billing product codes. Otherwise, you
--   can use the AWS Marketplace to bill for the use of an AMI.</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 device name of the root device
--   volume (for example, <tt><i>dev</i>sda1</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 (<tt>hvm</tt> | <tt>paravirtual</tt> ).
--   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 billing product codes. Your account must be authorized to specify
--   billing product codes. Otherwise, you can use the AWS Marketplace to
--   bill for the use of an AMI.
riBillingProducts :: Lens' RegisterImage [Text]

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

-- | The ID of the kernel.
riKernelId :: Lens' RegisterImage (Maybe Text)

-- | The device name of the root device volume (for example,
--   <tt><i>dev</i>sda1</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 Control.DeepSeq.NFData Network.AWS.EC2.RegisterImage.RegisterImageResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.RebootInstances.RebootInstancesResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.PurchaseScheduledInstances.PurchaseScheduledInstancesResponse
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


-- | 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>prioInstanceCount</a> - The number of Reserved Instances to
--   purchase.</li>
--   <li><a>prioReservedInstancesOfferingId</a> - The ID of the Reserved
--   Instance offering to purchase.</li>
--   </ul>
purchaseReservedInstancesOffering :: Int -> Text -> 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 number of Reserved Instances to purchase.
prioInstanceCount :: Lens' PurchaseReservedInstancesOffering Int

-- | The ID of the Reserved Instance offering to purchase.
prioReservedInstancesOfferingId :: Lens' PurchaseReservedInstancesOffering Text

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.PurchaseReservedInstancesOffering.PurchaseReservedInstancesOfferingResponse
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


-- | 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>phrHostIdSet</a> - The ID<i>s of the Dedicated Host</i>s that
--   the reservation will be associated with.</li>
--   <li><a>phrOfferingId</a> - The ID of the offering.</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<i>s of the Dedicated Host</i>s that the reservation will be
--   associated with.
phrHostIdSet :: Lens' PurchaseHostReservation [Text]

-- | The ID of the offering.
phrOfferingId :: 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 Control.DeepSeq.NFData Network.AWS.EC2.PurchaseHostReservation.PurchaseHostReservationResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.MoveAddressToVPC.MoveAddressToVPCResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.MonitorInstances.MonitorInstancesResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ModifyVolumeAttribute.ModifyVolumeAttributeResponse
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


-- | You can modify several parameters of an existing EBS volume, including
--   volume size, volume type, and IOPS capacity. If your EBS volume is
--   attached to a current-generation EC2 instance type, you may be able to
--   apply these changes without stopping the instance or detaching the
--   volume from it. For more information about modifying an EBS volume
--   running Linux, see <a>Modifying the Size, IOPS, or Type of an EBS
--   Volume on Linux</a> . For more information about modifying an EBS
--   volume running Windows, see <a>Modifying the Size, IOPS, or Type of an
--   EBS Volume on Windows</a> .
--   
--   When you complete a resize operation on your volume, you need to
--   extend the volume's file-system size to take advantage of the new
--   storage capacity. For information about extending a Linux file system,
--   see <a>Extending a Linux File System</a> . For information about
--   extending a Windows file system, see <a>Extending a Windows File
--   System</a> .
--   
--   You can use CloudWatch Events to check the status of a modification to
--   an EBS volume. For information about CloudWatch Events, see the
--   <a>Amazon CloudWatch Events User Guide</a> . You can also track the
--   status of a modification using the
--   <tt>DescribeVolumesModifications</tt> API. For information about
--   tracking status changes using either method, see <a>Monitoring Volume
--   Modifications</a> .
module Network.AWS.EC2.ModifyVolume

-- | Creates a value of <a>ModifyVolume</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvSize</a> - Target size in GiB of the volume to be modified.
--   Target volume size must be greater than or equal to than the existing
--   size of the volume. For information about available EBS volume sizes,
--   see
--   <a>http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html</a>
--   . Default: If no size is specified, the existing size is
--   retained.</li>
--   <li><a>mvIOPS</a> - Target IOPS rate of the volume to be modified.
--   Only valid for Provisioned IOPS SSD (<tt>io1</tt> ) volumes. For more
--   information about <tt>io1</tt> IOPS configuration, see
--   <a>http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html#EBSVolumeTypes_piops</a>
--   . Default: If no IOPS value is specified, the existing value is
--   retained.</li>
--   <li><a>mvVolumeType</a> - Target EBS volume type of the volume to be
--   modified The API does not support modifications for volume type
--   <tt>standard</tt> . You also cannot change the type of a volume to
--   <tt>standard</tt> . Default: If no type is specified, the existing
--   type is retained.</li>
--   <li><a>mvDryRun</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>mvVolumeId</a> - The ID of the volume.</li>
--   </ul>
modifyVolume :: Text -> ModifyVolume

-- | <i>See:</i> <a>modifyVolume</a> smart constructor.
data ModifyVolume

-- | Target size in GiB of the volume to be modified. Target volume size
--   must be greater than or equal to than the existing size of the volume.
--   For information about available EBS volume sizes, see
--   <a>http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html</a>
--   . Default: If no size is specified, the existing size is retained.
mvSize :: Lens' ModifyVolume (Maybe Int)

-- | Target IOPS rate of the volume to be modified. Only valid for
--   Provisioned IOPS SSD (<tt>io1</tt> ) volumes. For more information
--   about <tt>io1</tt> IOPS configuration, see
--   <a>http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html#EBSVolumeTypes_piops</a>
--   . Default: If no IOPS value is specified, the existing value is
--   retained.
mvIOPS :: Lens' ModifyVolume (Maybe Int)

-- | Target EBS volume type of the volume to be modified The API does not
--   support modifications for volume type <tt>standard</tt> . You also
--   cannot change the type of a volume to <tt>standard</tt> . Default: If
--   no type is specified, the existing type is retained.
mvVolumeType :: Lens' ModifyVolume (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> .
mvDryRun :: Lens' ModifyVolume (Maybe Bool)

-- | The ID of the volume.
mvVolumeId :: Lens' ModifyVolume Text

-- | Creates a value of <a>ModifyVolumeResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvrsVolumeModification</a> - A <a>VolumeModification</a>
--   object.</li>
--   <li><a>mvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyVolumeResponse :: Int -> ModifyVolumeResponse

-- | <i>See:</i> <a>modifyVolumeResponse</a> smart constructor.
data ModifyVolumeResponse

-- | A <a>VolumeModification</a> object.
mvrsVolumeModification :: Lens' ModifyVolumeResponse (Maybe VolumeModification)

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


-- | Modifies the instance tenancy attribute of the specified VPC. You can
--   change the instance tenancy attribute of a VPC to <tt>default</tt>
--   only. You cannot change the instance tenancy attribute to
--   <tt>dedicated</tt> .
--   
--   After you modify the tenancy of the VPC, any new instances that you
--   launch into the VPC have a tenancy of <tt>default</tt> , unless you
--   specify otherwise during launch. The tenancy of any existing instances
--   in the VPC is not affected.
--   
--   For more information about Dedicated Instances, see <a>Dedicated
--   Instances</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.ModifyVPCTenancy

-- | Creates a value of <a>ModifyVPCTenancy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvtDryRun</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>mvtVPCId</a> - The ID of the VPC.</li>
--   <li><a>mvtInstanceTenancy</a> - The instance tenancy attribute for the
--   VPC.</li>
--   </ul>
modifyVPCTenancy :: Text -> VPCTenancy -> ModifyVPCTenancy

-- | Contains the parameters for ModifyVpcTenancy.
--   
--   <i>See:</i> <a>modifyVPCTenancy</a> smart constructor.
data ModifyVPCTenancy

-- | 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> .
mvtDryRun :: Lens' ModifyVPCTenancy (Maybe Bool)

-- | The ID of the VPC.
mvtVPCId :: Lens' ModifyVPCTenancy Text

-- | The instance tenancy attribute for the VPC.
mvtInstanceTenancy :: Lens' ModifyVPCTenancy VPCTenancy

-- | Creates a value of <a>ModifyVPCTenancyResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvtrsReturnValue</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, returns an error.</li>
--   <li><a>mvtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyVPCTenancyResponse :: Int -> ModifyVPCTenancyResponse

-- | Contains the output of ModifyVpcTenancy.
--   
--   <i>See:</i> <a>modifyVPCTenancyResponse</a> smart constructor.
data ModifyVPCTenancyResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, returns an
--   error.
mvtrsReturnValue :: Lens' ModifyVPCTenancyResponse (Maybe Bool)

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


-- | 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 the ability 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 Control.DeepSeq.NFData Network.AWS.EC2.ModifyVPCPeeringConnectionOptions.ModifyVPCPeeringConnectionOptionsResponse
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


-- | Modifies the permissions for your <a>VPC endpoint service</a> . You
--   can add or remove permissions for service consumers (IAM users, IAM
--   roles, and AWS accounts) to connect to your endpoint service.
module Network.AWS.EC2.ModifyVPCEndpointServicePermissions

-- | Creates a value of <a>ModifyVPCEndpointServicePermissions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvespRemoveAllowedPrincipals</a> - One or more Amazon Resource
--   Names (ARNs) of principals for which to remove permission.</li>
--   <li><a>mvespAddAllowedPrincipals</a> - One or more Amazon Resource
--   Names (ARNs) of principals for which to allow permission. Specify
--   <tt>*</tt> to allow all principals.</li>
--   <li><a>mvespDryRun</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>mvespServiceId</a> - The ID of the service.</li>
--   </ul>
modifyVPCEndpointServicePermissions :: Text -> ModifyVPCEndpointServicePermissions

-- | <i>See:</i> <a>modifyVPCEndpointServicePermissions</a> smart
--   constructor.
data ModifyVPCEndpointServicePermissions

-- | One or more Amazon Resource Names (ARNs) of principals for which to
--   remove permission.
mvespRemoveAllowedPrincipals :: Lens' ModifyVPCEndpointServicePermissions [Text]

-- | One or more Amazon Resource Names (ARNs) of principals for which to
--   allow permission. Specify <tt>*</tt> to allow all principals.
mvespAddAllowedPrincipals :: Lens' ModifyVPCEndpointServicePermissions [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> .
mvespDryRun :: Lens' ModifyVPCEndpointServicePermissions (Maybe Bool)

-- | The ID of the service.
mvespServiceId :: Lens' ModifyVPCEndpointServicePermissions Text

-- | Creates a value of <a>ModifyVPCEndpointServicePermissionsResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvesprsReturnValue</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>mvesprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyVPCEndpointServicePermissionsResponse :: Int -> ModifyVPCEndpointServicePermissionsResponse

-- | <i>See:</i> <a>modifyVPCEndpointServicePermissionsResponse</a> smart
--   constructor.
data ModifyVPCEndpointServicePermissionsResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
mvesprsReturnValue :: Lens' ModifyVPCEndpointServicePermissionsResponse (Maybe Bool)

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


-- | Modifies the attributes of your VPC endpoint service configuration.
--   You can change the Network Load Balancers for your service, and you
--   can specify whether acceptance is required for requests to connect to
--   your endpoint service through an interface VPC endpoint.
module Network.AWS.EC2.ModifyVPCEndpointServiceConfiguration

-- | Creates a value of <a>ModifyVPCEndpointServiceConfiguration</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvescRemoveNetworkLoadBalancerARNs</a> - The Amazon Resource
--   Names (ARNs) of Network Load Balancers to remove from your service
--   configuration.</li>
--   <li><a>mvescAcceptanceRequired</a> - Indicate whether requests to
--   create an endpoint to your service must be accepted.</li>
--   <li><a>mvescAddNetworkLoadBalancerARNs</a> - The Amazon Resource Names
--   (ARNs) of Network Load Balancers to add to your service
--   configuration.</li>
--   <li><a>mvescDryRun</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>mvescServiceId</a> - The ID of the service.</li>
--   </ul>
modifyVPCEndpointServiceConfiguration :: Text -> ModifyVPCEndpointServiceConfiguration

-- | <i>See:</i> <a>modifyVPCEndpointServiceConfiguration</a> smart
--   constructor.
data ModifyVPCEndpointServiceConfiguration

-- | The Amazon Resource Names (ARNs) of Network Load Balancers to remove
--   from your service configuration.
mvescRemoveNetworkLoadBalancerARNs :: Lens' ModifyVPCEndpointServiceConfiguration [Text]

-- | Indicate whether requests to create an endpoint to your service must
--   be accepted.
mvescAcceptanceRequired :: Lens' ModifyVPCEndpointServiceConfiguration (Maybe Bool)

-- | The Amazon Resource Names (ARNs) of Network Load Balancers to add to
--   your service configuration.
mvescAddNetworkLoadBalancerARNs :: Lens' ModifyVPCEndpointServiceConfiguration [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> .
mvescDryRun :: Lens' ModifyVPCEndpointServiceConfiguration (Maybe Bool)

-- | The ID of the service.
mvescServiceId :: Lens' ModifyVPCEndpointServiceConfiguration Text

-- | Creates a value of
--   <a>ModifyVPCEndpointServiceConfigurationResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvescrsReturn</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>mvescrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyVPCEndpointServiceConfigurationResponse :: Int -> ModifyVPCEndpointServiceConfigurationResponse

-- | <i>See:</i> <a>modifyVPCEndpointServiceConfigurationResponse</a> smart
--   constructor.
data ModifyVPCEndpointServiceConfigurationResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
mvescrsReturn :: Lens' ModifyVPCEndpointServiceConfigurationResponse (Maybe Bool)

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


-- | Modifies a connection notification for VPC endpoint or VPC endpoint
--   service. You can change the SNS topic for the notification, or the
--   events for which to be notified.
module Network.AWS.EC2.ModifyVPCEndpointConnectionNotification

-- | Creates a value of <a>ModifyVPCEndpointConnectionNotification</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvecnConnectionEvents</a> - One or more events for the
--   endpoint. Valid values are <tt>Accept</tt> , <tt>Connect</tt> ,
--   <tt>Delete</tt> , and <tt>Reject</tt> .</li>
--   <li><a>mvecnConnectionNotificationARN</a> - The ARN for the SNS topic
--   for the notification.</li>
--   <li><a>mvecnDryRun</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>mvecnConnectionNotificationId</a> - The ID of the
--   notification.</li>
--   </ul>
modifyVPCEndpointConnectionNotification :: Text -> ModifyVPCEndpointConnectionNotification

-- | <i>See:</i> <a>modifyVPCEndpointConnectionNotification</a> smart
--   constructor.
data ModifyVPCEndpointConnectionNotification

-- | One or more events for the endpoint. Valid values are <tt>Accept</tt>
--   , <tt>Connect</tt> , <tt>Delete</tt> , and <tt>Reject</tt> .
mvecnConnectionEvents :: Lens' ModifyVPCEndpointConnectionNotification [Text]

-- | The ARN for the SNS topic for the notification.
mvecnConnectionNotificationARN :: Lens' ModifyVPCEndpointConnectionNotification (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> .
mvecnDryRun :: Lens' ModifyVPCEndpointConnectionNotification (Maybe Bool)

-- | The ID of the notification.
mvecnConnectionNotificationId :: Lens' ModifyVPCEndpointConnectionNotification Text

-- | Creates a value of
--   <a>ModifyVPCEndpointConnectionNotificationResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvecnrsReturnValue</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>mvecnrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyVPCEndpointConnectionNotificationResponse :: Int -> ModifyVPCEndpointConnectionNotificationResponse

-- | <i>See:</i> <a>modifyVPCEndpointConnectionNotificationResponse</a>
--   smart constructor.
data ModifyVPCEndpointConnectionNotificationResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, it returns
--   an error.
mvecnrsReturnValue :: Lens' ModifyVPCEndpointConnectionNotificationResponse (Maybe Bool)

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


-- | Modifies attributes of a specified VPC endpoint. The attributes that
--   you can modify depend on the type of VPC endpoint (interface or
--   gateway). For more information, see <a>VPC Endpoints</a> in the
--   <i>Amazon Virtual Private Cloud User Guide</i> .
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> - (Gateway endpoint) A policy document to
--   attach to the endpoint. The policy must be in valid JSON format.</li>
--   <li><a>mveRemoveRouteTableIds</a> - (Gateway endpoint) One or more
--   route table IDs to disassociate from the endpoint.</li>
--   <li><a>mveResetPolicy</a> - (Gateway endpoint) Specify <tt>true</tt>
--   to reset the policy document to the default policy. The default policy
--   allows full access to the service.</li>
--   <li><a>mveAddRouteTableIds</a> - (Gateway endpoint) One or more route
--   tables IDs to associate with the endpoint.</li>
--   <li><a>mvePrivateDNSEnabled</a> - (Interface endpoint) Indicate
--   whether a private hosted zone is associated with the VPC.</li>
--   <li><a>mveAddSubnetIds</a> - (Interface endpoint) One or more subnet
--   IDs in which to serve the endpoint.</li>
--   <li><a>mveRemoveSubnetIds</a> - (Interface endpoint) One or more
--   subnets IDs in which to remove the endpoint.</li>
--   <li><a>mveAddSecurityGroupIds</a> - (Interface endpoint) One or more
--   security group IDs to associate with the network interface.</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>mveRemoveSecurityGroupIds</a> - (Interface endpoint) One or
--   more security group IDs to disassociate from the network
--   interface.</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

-- | (Gateway endpoint) A policy document to attach to the endpoint. The
--   policy must be in valid JSON format.
mvePolicyDocument :: Lens' ModifyVPCEndpoint (Maybe Text)

-- | (Gateway endpoint) One or more route table IDs to disassociate from
--   the endpoint.
mveRemoveRouteTableIds :: Lens' ModifyVPCEndpoint [Text]

-- | (Gateway endpoint) Specify <tt>true</tt> to reset the policy document
--   to the default policy. The default policy allows full access to the
--   service.
mveResetPolicy :: Lens' ModifyVPCEndpoint (Maybe Bool)

-- | (Gateway endpoint) One or more route tables IDs to associate with the
--   endpoint.
mveAddRouteTableIds :: Lens' ModifyVPCEndpoint [Text]

-- | (Interface endpoint) Indicate whether a private hosted zone is
--   associated with the VPC.
mvePrivateDNSEnabled :: Lens' ModifyVPCEndpoint (Maybe Bool)

-- | (Interface endpoint) One or more subnet IDs in which to serve the
--   endpoint.
mveAddSubnetIds :: Lens' ModifyVPCEndpoint [Text]

-- | (Interface endpoint) One or more subnets IDs in which to remove the
--   endpoint.
mveRemoveSubnetIds :: Lens' ModifyVPCEndpoint [Text]

-- | (Interface endpoint) One or more security group IDs to associate with
--   the network interface.
mveAddSecurityGroupIds :: 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)

-- | (Interface endpoint) One or more security group IDs to disassociate
--   from the network interface.
mveRemoveSecurityGroupIds :: Lens' ModifyVPCEndpoint [Text]

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

-- | <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 Control.DeepSeq.NFData Network.AWS.EC2.ModifyVPCEndpoint.ModifyVPCEndpointResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ModifyVPCAttribute.ModifyVPCAttributeResponse
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


-- | 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). If you enable the IPv6
--   addressing feature for your subnet, your network interface or instance
--   only receives an IPv6 address if it's created using version
--   <tt>2016-11-15</tt> or later of the Amazon EC2 API.</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). If you
--   enable the IPv6 addressing feature for your subnet, your network
--   interface or instance only receives an IPv6 address if it's created
--   using version <tt>2016-11-15</tt> or later of the Amazon EC2 API.
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 Control.DeepSeq.NFData Network.AWS.EC2.ModifySubnetAttribute.ModifySubnetAttributeResponse
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


-- | 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 requests 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.
--   
--   If you are finished with your Spot Fleet for now, but will use it
--   again later, you can set the target capacity to 0.
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 Control.DeepSeq.NFData Network.AWS.EC2.ModifySpotFleetRequest.ModifySpotFleetRequestResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ModifySnapshotAttribute.ModifySnapshotAttributeResponse
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


-- | Modifies the Availability Zone, instance count, instance type, or
--   network platform (EC2-Classic or EC2-VPC) of your 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 Control.DeepSeq.NFData Network.AWS.EC2.ModifyReservedInstances.ModifyReservedInstancesResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ModifyNetworkInterfaceAttribute.ModifyNetworkInterfaceAttributeResponse
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


-- | Modifies a launch template. You can specify which version of the
--   launch template to set as the default version. When launching an
--   instance, the default version applies when a launch template version
--   is not specified.
module Network.AWS.EC2.ModifyLaunchTemplate

-- | Creates a value of <a>ModifyLaunchTemplate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mltLaunchTemplateName</a> - The name of the launch template.
--   You must specify either the launch template ID or launch template name
--   in the request.</li>
--   <li><a>mltClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request. For more
--   information, see <a>Ensuring Idempotency</a> .</li>
--   <li><a>mltLaunchTemplateId</a> - The ID of the launch template. You
--   must specify either the launch template ID or launch template name in
--   the request.</li>
--   <li><a>mltDefaultVersion</a> - The version number of the launch
--   template to set as the default version.</li>
--   <li><a>mltDryRun</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>
modifyLaunchTemplate :: ModifyLaunchTemplate

-- | <i>See:</i> <a>modifyLaunchTemplate</a> smart constructor.
data ModifyLaunchTemplate

-- | The name of the launch template. You must specify either the launch
--   template ID or launch template name in the request.
mltLaunchTemplateName :: Lens' ModifyLaunchTemplate (Maybe Text)

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request. For more information, see <a>Ensuring
--   Idempotency</a> .
mltClientToken :: Lens' ModifyLaunchTemplate (Maybe Text)

-- | The ID of the launch template. You must specify either the launch
--   template ID or launch template name in the request.
mltLaunchTemplateId :: Lens' ModifyLaunchTemplate (Maybe Text)

-- | The version number of the launch template to set as the default
--   version.
mltDefaultVersion :: Lens' ModifyLaunchTemplate (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> .
mltDryRun :: Lens' ModifyLaunchTemplate (Maybe Bool)

-- | Creates a value of <a>ModifyLaunchTemplateResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mltrsLaunchTemplate</a> - Information about the launch
--   template.</li>
--   <li><a>mltrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyLaunchTemplateResponse :: Int -> ModifyLaunchTemplateResponse

-- | <i>See:</i> <a>modifyLaunchTemplateResponse</a> smart constructor.
data ModifyLaunchTemplateResponse

-- | Information about the launch template.
mltrsLaunchTemplate :: Lens' ModifyLaunchTemplateResponse (Maybe LaunchTemplate)

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


-- | Modifies the placement attributes for a specified instance. You can do
--   the following:
--   
--   <ul>
--   <li>Modify the affinity between an instance and a <a>Dedicated
--   Host</a> . When affinity is set to <tt>host</tt> and the instance is
--   not associated with a specific Dedicated Host, the next time the
--   instance is launched, it is automatically associated with the host on
--   which it lands. If the instance is restarted or rebooted, this
--   relationship persists.</li>
--   <li>Change the Dedicated Host with which an instance is
--   associated.</li>
--   <li>Change the instance tenancy of an instance from <tt>host</tt> to
--   <tt>dedicated</tt> , or from <tt>dedicated</tt> to <tt>host</tt>
--   .</li>
--   <li>Move an instance to or from a <a>placement group</a> .</li>
--   </ul>
--   
--   At least one attribute for affinity, host ID, tenancy, or placement
--   group name must be specified in the request. Affinity and tenancy can
--   be modified in the same request.
--   
--   To modify the host ID, tenancy, or placement group for an instance,
--   the instance must be in the <tt>stopped</tt> state.
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 affinity setting for the instance.</li>
--   <li><a>mipHostId</a> - The ID of the Dedicated Host with which to
--   associate the instance.</li>
--   <li><a>mipTenancy</a> - The tenancy for the instance.</li>
--   <li><a>mipGroupName</a> - The name of the placement group in which to
--   place the instance. For spread placement groups, the instance must
--   have a tenancy of <tt>default</tt> . For cluster placement groups, the
--   instance must have a tenancy of <tt>default</tt> or <tt>dedicated</tt>
--   . To remove an instance from a placement group, specify an empty
--   string ("").</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 affinity setting for the instance.
mipAffinity :: Lens' ModifyInstancePlacement (Maybe Affinity)

-- | The ID of the Dedicated Host with which to associate the instance.
mipHostId :: Lens' ModifyInstancePlacement (Maybe Text)

-- | The tenancy for the instance.
mipTenancy :: Lens' ModifyInstancePlacement (Maybe HostTenancy)

-- | The name of the placement group in which to place the instance. For
--   spread placement groups, the instance must have a tenancy of
--   <tt>default</tt> . For cluster placement groups, the instance must
--   have a tenancy of <tt>default</tt> or <tt>dedicated</tt> . To remove
--   an instance from a placement group, specify an empty string ("").
mipGroupName :: Lens' ModifyInstancePlacement (Maybe Text)

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ModifyInstancePlacement.ModifyInstancePlacementResponse
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


-- | Modifies the credit option for CPU usage on a running or stopped T2
--   instance. The credit options are <tt>standard</tt> and
--   <tt>unlimited</tt> .
--   
--   For more information, see <a>T2 Instances</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> .
module Network.AWS.EC2.ModifyInstanceCreditSpecification

-- | Creates a value of <a>ModifyInstanceCreditSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>micsClientToken</a> - A unique, case-sensitive token that you
--   provide to ensure idempotency of your modification request. For more
--   information, see <a>Ensuring Idempotency</a> .</li>
--   <li><a>micsDryRun</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>micsInstanceCreditSpecifications</a> - Information about the
--   credit option for CPU usage.</li>
--   </ul>
modifyInstanceCreditSpecification :: ModifyInstanceCreditSpecification

-- | <i>See:</i> <a>modifyInstanceCreditSpecification</a> smart
--   constructor.
data ModifyInstanceCreditSpecification

-- | A unique, case-sensitive token that you provide to ensure idempotency
--   of your modification request. For more information, see <a>Ensuring
--   Idempotency</a> .
micsClientToken :: Lens' ModifyInstanceCreditSpecification (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> .
micsDryRun :: Lens' ModifyInstanceCreditSpecification (Maybe Bool)

-- | Information about the credit option for CPU usage.
micsInstanceCreditSpecifications :: Lens' ModifyInstanceCreditSpecification [InstanceCreditSpecificationRequest]

-- | Creates a value of <a>ModifyInstanceCreditSpecificationResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>micsrsUnsuccessfulInstanceCreditSpecifications</a> -
--   Information about the instances whose credit option for CPU usage was
--   not modified.</li>
--   <li><a>micsrsSuccessfulInstanceCreditSpecifications</a> - Information
--   about the instances whose credit option for CPU usage was successfully
--   modified.</li>
--   <li><a>micsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyInstanceCreditSpecificationResponse :: Int -> ModifyInstanceCreditSpecificationResponse

-- | <i>See:</i> <a>modifyInstanceCreditSpecificationResponse</a> smart
--   constructor.
data ModifyInstanceCreditSpecificationResponse

-- | Information about the instances whose credit option for CPU usage was
--   not modified.
micsrsUnsuccessfulInstanceCreditSpecifications :: Lens' ModifyInstanceCreditSpecificationResponse [UnsuccessfulInstanceCreditSpecificationItem]

-- | Information about the instances whose credit option for CPU usage was
--   successfully modified.
micsrsSuccessfulInstanceCreditSpecifications :: Lens' ModifyInstanceCreditSpecificationResponse [SuccessfulInstanceCreditSpecificationItem]

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


-- | Modifies the specified attribute of the specified instance. You can
--   specify only one attribute at a time.
--   
--   <b>Note: </b> Using this action to change the security groups
--   associated with an elastic network interface (ENI) attached to an
--   instance in a VPC can result in an error if the instance has more than
--   one ENI. To change the security groups associated with an ENI attached
--   to an instance that has multiple ENIs, we recommend that you use the
--   <tt>ModifyNetworkInterfaceAttribute</tt> action.
--   
--   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 that 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 parameter 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 Amazon 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
--   that 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 parameter 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 Amazon 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 Control.DeepSeq.NFData Network.AWS.EC2.ModifyInstanceAttribute.ModifyInstanceAttributeResponse
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


-- | Modifies the specified attribute of the specified AMI. You can specify
--   only one attribute at a time. You can use the <tt>Attribute</tt>
--   parameter to specify the attribute or one of the following parameters:
--   <tt>Description</tt> , <tt>LaunchPermission</tt> , or
--   <tt>ProductCode</tt> .
--   
--   AWS Marketplace product codes cannot be modified. Images with an AWS
--   Marketplace product code cannot be made public.
--   
--   To enable the SriovNetSupport enhanced networking attribute of an
--   image, enable SriovNetSupport on an instance and create an AMI from
--   the instance.
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. The
--   valid values are <tt>description</tt> , <tt>launchPermission</tt> ,
--   and <tt>productCodes</tt> .</li>
--   <li><a>miaUserIds</a> - One or more AWS account IDs. This parameter
--   can be used only when the <tt>Attribute</tt> parameter is
--   <tt>launchPermission</tt> .</li>
--   <li><a>miaUserGroups</a> - One or more user groups. This parameter can
--   be used only when the <tt>Attribute</tt> parameter is
--   <tt>launchPermission</tt> .</li>
--   <li><a>miaValue</a> - The value of the attribute being modified. This
--   parameter can be used only when the <tt>Attribute</tt> parameter is
--   <tt>description</tt> or <tt>productCodes</tt> .</li>
--   <li><a>miaLaunchPermission</a> - A new launch permission for the
--   AMI.</li>
--   <li><a>miaOperationType</a> - The operation type. This parameter can
--   be used only when the <tt>Attribute</tt> parameter is
--   <tt>launchPermission</tt> .</li>
--   <li><a>miaProductCodes</a> - One or more DevPay product codes. After
--   you add a product code to an AMI, it can't be removed.</li>
--   <li><a>miaDescription</a> - A new 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. The valid values are
--   <tt>description</tt> , <tt>launchPermission</tt> , and
--   <tt>productCodes</tt> .
miaAttribute :: Lens' ModifyImageAttribute (Maybe Text)

-- | One or more AWS account IDs. This parameter can be used only when the
--   <tt>Attribute</tt> parameter is <tt>launchPermission</tt> .
miaUserIds :: Lens' ModifyImageAttribute [Text]

-- | One or more user groups. This parameter can be used only when the
--   <tt>Attribute</tt> parameter is <tt>launchPermission</tt> .
miaUserGroups :: Lens' ModifyImageAttribute [Text]

-- | The value of the attribute being modified. This parameter can be used
--   only when the <tt>Attribute</tt> parameter is <tt>description</tt> or
--   <tt>productCodes</tt> .
miaValue :: Lens' ModifyImageAttribute (Maybe Text)

-- | A new launch permission for the AMI.
miaLaunchPermission :: Lens' ModifyImageAttribute (Maybe LaunchPermissionModifications)

-- | The operation type. This parameter can be used only when the
--   <tt>Attribute</tt> parameter is <tt>launchPermission</tt> .
miaOperationType :: Lens' ModifyImageAttribute (Maybe OperationType)

-- | One or more DevPay product codes. After you add a product code to an
--   AMI, it can't be removed.
miaProductCodes :: Lens' ModifyImageAttribute [Text]

-- | A new 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 Control.DeepSeq.NFData Network.AWS.EC2.ModifyImageAttribute.ModifyImageAttributeResponse
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


-- | 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.
--   
--   This request can only be used to modify longer ID settings for
--   resource types that are within the opt-in period. Resources currently
--   in their opt-in period include: <tt>bundle</tt> |
--   <tt>conversion-task</tt> | <tt>customer-gateway</tt> |
--   <tt>dhcp-options</tt> | <tt>elastic-ip-allocation</tt> |
--   <tt>elastic-ip-association</tt> | <tt>export-task</tt> |
--   <tt>flow-log</tt> | <tt>image</tt> | <tt>import-task</tt> |
--   <tt>internet-gateway</tt> | <tt>network-acl</tt> |
--   <tt>network-acl-association</tt> | <tt>network-interface</tt> |
--   <tt>network-interface-attachment</tt> | <tt>prefix-list</tt> |
--   <tt>route-table</tt> | <tt>route-table-association</tt> |
--   <tt>security-group</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>vpc</tt> |
--   <tt>vpc-cidr-block-association</tt> | <tt>vpc-endpoint</tt> |
--   <tt>vpc-peering-connection</tt> | <tt>vpn-connection</tt> |
--   <tt>vpn-gateway</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>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>
--   <li><a>miifResource</a> - The type of resource: <tt>bundle</tt> |
--   <tt>conversion-task</tt> | <tt>customer-gateway</tt> |
--   <tt>dhcp-options</tt> | <tt>elastic-ip-allocation</tt> |
--   <tt>elastic-ip-association</tt> | <tt>export-task</tt> |
--   <tt>flow-log</tt> | <tt>image</tt> | <tt>import-task</tt> |
--   <tt>internet-gateway</tt> | <tt>network-acl</tt> |
--   <tt>network-acl-association</tt> | <tt>network-interface</tt> |
--   <tt>network-interface-attachment</tt> | <tt>prefix-list</tt> |
--   <tt>route-table</tt> | <tt>route-table-association</tt> |
--   <tt>security-group</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>vpc</tt> |
--   <tt>vpc-cidr-block-association</tt> | <tt>vpc-endpoint</tt> |
--   <tt>vpc-peering-connection</tt> | <tt>vpn-connection</tt> |
--   <tt>vpn-gateway</tt> . Alternatively, use the <tt>all-current</tt>
--   option to include all resource types that are currently within their
--   opt-in period for longer IDs.</li>
--   <li><a>miifUseLongIds</a> - Indicates whether the resource should use
--   longer IDs (17-character IDs)</li>
--   </ul>
modifyIdentityIdFormat :: Text -> Text -> Bool -> ModifyIdentityIdFormat

-- | Contains the parameters of ModifyIdentityIdFormat.
--   
--   <i>See:</i> <a>modifyIdentityIdFormat</a> smart constructor.
data ModifyIdentityIdFormat

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

-- | The type of resource: <tt>bundle</tt> | <tt>conversion-task</tt> |
--   <tt>customer-gateway</tt> | <tt>dhcp-options</tt> |
--   <tt>elastic-ip-allocation</tt> | <tt>elastic-ip-association</tt> |
--   <tt>export-task</tt> | <tt>flow-log</tt> | <tt>image</tt> |
--   <tt>import-task</tt> | <tt>internet-gateway</tt> |
--   <tt>network-acl</tt> | <tt>network-acl-association</tt> |
--   <tt>network-interface</tt> | <tt>network-interface-attachment</tt> |
--   <tt>prefix-list</tt> | <tt>route-table</tt> |
--   <tt>route-table-association</tt> | <tt>security-group</tt> |
--   <tt>subnet</tt> | <tt>subnet-cidr-block-association</tt> |
--   <tt>vpc</tt> | <tt>vpc-cidr-block-association</tt> |
--   <tt>vpc-endpoint</tt> | <tt>vpc-peering-connection</tt> |
--   <tt>vpn-connection</tt> | <tt>vpn-gateway</tt> . Alternatively, use
--   the <tt>all-current</tt> option to include all resource types that are
--   currently within their opt-in period for longer IDs.
miifResource :: Lens' ModifyIdentityIdFormat Text

-- | Indicates whether the resource should use longer IDs (17-character
--   IDs)
miifUseLongIds :: Lens' ModifyIdentityIdFormat Bool

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ModifyIdentityIdFormat.ModifyIdentityIdFormatResponse
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


-- | 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.
--   
--   This request can only be used to modify longer ID settings for
--   resource types that are within the opt-in period. Resources currently
--   in their opt-in period include: <tt>bundle</tt> |
--   <tt>conversion-task</tt> | <tt>customer-gateway</tt> |
--   <tt>dhcp-options</tt> | <tt>elastic-ip-allocation</tt> |
--   <tt>elastic-ip-association</tt> | <tt>export-task</tt> |
--   <tt>flow-log</tt> | <tt>image</tt> | <tt>import-task</tt> |
--   <tt>internet-gateway</tt> | <tt>network-acl</tt> |
--   <tt>network-acl-association</tt> | <tt>network-interface</tt> |
--   <tt>network-interface-attachment</tt> | <tt>prefix-list</tt> |
--   <tt>route-table</tt> | <tt>route-table-association</tt> |
--   <tt>security-group</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>vpc</tt> |
--   <tt>vpc-cidr-block-association</tt> | <tt>vpc-endpoint</tt> |
--   <tt>vpc-peering-connection</tt> | <tt>vpn-connection</tt> |
--   <tt>vpn-gateway</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>bundle</tt> |
--   <tt>conversion-task</tt> | <tt>customer-gateway</tt> |
--   <tt>dhcp-options</tt> | <tt>elastic-ip-allocation</tt> |
--   <tt>elastic-ip-association</tt> | <tt>export-task</tt> |
--   <tt>flow-log</tt> | <tt>image</tt> | <tt>import-task</tt> |
--   <tt>internet-gateway</tt> | <tt>network-acl</tt> |
--   <tt>network-acl-association</tt> | <tt>network-interface</tt> |
--   <tt>network-interface-attachment</tt> | <tt>prefix-list</tt> |
--   <tt>route-table</tt> | <tt>route-table-association</tt> |
--   <tt>security-group</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>vpc</tt> |
--   <tt>vpc-cidr-block-association</tt> | <tt>vpc-endpoint</tt> |
--   <tt>vpc-peering-connection</tt> | <tt>vpn-connection</tt> |
--   <tt>vpn-gateway</tt> . Alternatively, use the <tt>all-current</tt>
--   option to include all resource types that are currently within their
--   opt-in period for longer IDs.</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>bundle</tt> | <tt>conversion-task</tt> |
--   <tt>customer-gateway</tt> | <tt>dhcp-options</tt> |
--   <tt>elastic-ip-allocation</tt> | <tt>elastic-ip-association</tt> |
--   <tt>export-task</tt> | <tt>flow-log</tt> | <tt>image</tt> |
--   <tt>import-task</tt> | <tt>internet-gateway</tt> |
--   <tt>network-acl</tt> | <tt>network-acl-association</tt> |
--   <tt>network-interface</tt> | <tt>network-interface-attachment</tt> |
--   <tt>prefix-list</tt> | <tt>route-table</tt> |
--   <tt>route-table-association</tt> | <tt>security-group</tt> |
--   <tt>subnet</tt> | <tt>subnet-cidr-block-association</tt> |
--   <tt>vpc</tt> | <tt>vpc-cidr-block-association</tt> |
--   <tt>vpc-endpoint</tt> | <tt>vpc-peering-connection</tt> |
--   <tt>vpn-connection</tt> | <tt>vpn-gateway</tt> . Alternatively, use
--   the <tt>all-current</tt> option to include all resource types that are
--   currently within their opt-in period for longer IDs.
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 Control.DeepSeq.NFData Network.AWS.EC2.ModifyIdFormat.ModifyIdFormatResponse
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


-- | 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>mhAutoPlacement</a> - Specify whether to enable or disable
--   auto-placement.</li>
--   <li><a>mhHostIds</a> - The host IDs of the Dedicated Hosts you want to
--   modify.</li>
--   </ul>
modifyHosts :: AutoPlacement -> ModifyHosts

-- | Contains the parameters for ModifyHosts.
--   
--   <i>See:</i> <a>modifyHosts</a> smart constructor.
data ModifyHosts

-- | Specify whether to enable or disable auto-placement.
mhAutoPlacement :: Lens' ModifyHosts AutoPlacement

-- | The host IDs of the Dedicated Hosts you want to modify.
mhHostIds :: Lens' ModifyHosts [Text]

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ModifyHosts.ModifyHostsResponse
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


-- | Modifies the specified attribute of the specified Amazon FPGA Image
--   (AFI).
module Network.AWS.EC2.ModifyFpgaImageAttribute

-- | Creates a value of <a>ModifyFpgaImageAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mfiaAttribute</a> - The name of the attribute.</li>
--   <li><a>mfiaUserIds</a> - One or more AWS account IDs. This parameter
--   is valid only when modifying the <tt>loadPermission</tt>
--   attribute.</li>
--   <li><a>mfiaUserGroups</a> - One or more user groups. This parameter is
--   valid only when modifying the <tt>loadPermission</tt> attribute.</li>
--   <li><a>mfiaLoadPermission</a> - The load permission for the AFI.</li>
--   <li><a>mfiaName</a> - A name for the AFI.</li>
--   <li><a>mfiaOperationType</a> - The operation type.</li>
--   <li><a>mfiaProductCodes</a> - One or more product codes. After you add
--   a product code to an AFI, it can't be removed. This parameter is valid
--   only when modifying the <tt>productCodes</tt> attribute.</li>
--   <li><a>mfiaDescription</a> - A description for the AFI.</li>
--   <li><a>mfiaDryRun</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>mfiaFpgaImageId</a> - The ID of the AFI.</li>
--   </ul>
modifyFpgaImageAttribute :: Text -> ModifyFpgaImageAttribute

-- | <i>See:</i> <a>modifyFpgaImageAttribute</a> smart constructor.
data ModifyFpgaImageAttribute

-- | The name of the attribute.
mfiaAttribute :: Lens' ModifyFpgaImageAttribute (Maybe FpgaImageAttributeName)

-- | One or more AWS account IDs. This parameter is valid only when
--   modifying the <tt>loadPermission</tt> attribute.
mfiaUserIds :: Lens' ModifyFpgaImageAttribute [Text]

-- | One or more user groups. This parameter is valid only when modifying
--   the <tt>loadPermission</tt> attribute.
mfiaUserGroups :: Lens' ModifyFpgaImageAttribute [Text]

-- | The load permission for the AFI.
mfiaLoadPermission :: Lens' ModifyFpgaImageAttribute (Maybe LoadPermissionModifications)

-- | A name for the AFI.
mfiaName :: Lens' ModifyFpgaImageAttribute (Maybe Text)

-- | The operation type.
mfiaOperationType :: Lens' ModifyFpgaImageAttribute (Maybe OperationType)

-- | One or more product codes. After you add a product code to an AFI, it
--   can't be removed. This parameter is valid only when modifying the
--   <tt>productCodes</tt> attribute.
mfiaProductCodes :: Lens' ModifyFpgaImageAttribute [Text]

-- | A description for the AFI.
mfiaDescription :: Lens' ModifyFpgaImageAttribute (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> .
mfiaDryRun :: Lens' ModifyFpgaImageAttribute (Maybe Bool)

-- | The ID of the AFI.
mfiaFpgaImageId :: Lens' ModifyFpgaImageAttribute Text

-- | Creates a value of <a>ModifyFpgaImageAttributeResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mfiarsFpgaImageAttribute</a> - Information about the
--   attribute.</li>
--   <li><a>mfiarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyFpgaImageAttributeResponse :: Int -> ModifyFpgaImageAttributeResponse

-- | <i>See:</i> <a>modifyFpgaImageAttributeResponse</a> smart constructor.
data ModifyFpgaImageAttributeResponse

-- | Information about the attribute.
mfiarsFpgaImageAttribute :: Lens' ModifyFpgaImageAttributeResponse (Maybe FpgaImageAttribute)

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


-- | Modifies the specified EC2 Fleet.
--   
--   While the EC2 Fleet is being modified, it is in the <tt>modifying</tt>
--   state.
module Network.AWS.EC2.ModifyFleet

-- | Creates a value of <a>ModifyFleet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mfExcessCapacityTerminationPolicy</a> - Indicates whether
--   running instances should be terminated if the total target capacity of
--   the EC2 Fleet is decreased below the current size of the EC2
--   Fleet.</li>
--   <li><a>mfDryRun</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>mfFleetId</a> - The ID of the EC2 Fleet.</li>
--   <li><a>mfTargetCapacitySpecification</a> - The size of the EC2
--   Fleet.</li>
--   </ul>
modifyFleet :: Text -> TargetCapacitySpecificationRequest -> ModifyFleet

-- | <i>See:</i> <a>modifyFleet</a> smart constructor.
data ModifyFleet

-- | Indicates whether running instances should be terminated if the total
--   target capacity of the EC2 Fleet is decreased below the current size
--   of the EC2 Fleet.
mfExcessCapacityTerminationPolicy :: Lens' ModifyFleet (Maybe FleetExcessCapacityTerminationPolicy)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
mfDryRun :: Lens' ModifyFleet (Maybe Bool)

-- | The ID of the EC2 Fleet.
mfFleetId :: Lens' ModifyFleet Text

-- | The size of the EC2 Fleet.
mfTargetCapacitySpecification :: Lens' ModifyFleet TargetCapacitySpecificationRequest

-- | Creates a value of <a>ModifyFleetResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mfrsReturn</a> - Is <tt>true</tt> if the request succeeds, and
--   an error otherwise.</li>
--   <li><a>mfrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyFleetResponse :: Int -> ModifyFleetResponse

-- | <i>See:</i> <a>modifyFleetResponse</a> smart constructor.
data ModifyFleetResponse

-- | Is <tt>true</tt> if the request succeeds, and an error otherwise.
mfrsReturn :: Lens' ModifyFleetResponse (Maybe Bool)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ImportVolume.ImportVolumeResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ImportSnapshot.ImportSnapshotResponse
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


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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ImportInstance.ImportInstanceResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.ImportImage.ImportImageResponse
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


-- | Returns a quote and exchange information for exchanging one or more
--   specified Convertible Reserved Instances for a new Convertible
--   Reserved Instance. If the exchange cannot be performed, the reason is
--   returned in the response. Use
--   <tt>AcceptReservedInstancesExchangeQuote</tt> to perform the exchange.
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 of the target
--   Convertible Reserved Instance 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 of the target Convertible Reserved Instance 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> - The cost associated
--   with the Reserved Instance.</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> - The cost associated
--   with the Reserved Instance.</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)

-- | The cost associated with the Reserved Instance.
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]

-- | The cost associated with the Reserved Instance.
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 Control.DeepSeq.NFData Network.AWS.EC2.GetReservedInstancesExchangeQuote.GetReservedInstancesExchangeQuoteResponse
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


-- | Retrieves the encrypted administrator password for a running Windows
--   instance.
--   
--   The Windows password is generated at boot by the <tt>EC2Config</tt>
--   service or <tt>EC2Launch</tt> scripts (Windows Server 2016 and later).
--   This usually only happens the first time an instance is launched. For
--   more information, see <a>EC2Config</a> and <a>EC2Launch</a> in the
--   Amazon Elastic Compute Cloud User Guide.
--   
--   For the <tt>EC2Config</tt> service, 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.
--   
--   When you launch an instance, password generation and encryption may
--   take a few minutes. If you try to retrieve the password before it's
--   available, the output returns an empty string. 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. Returns
--   an empty string if the password is not available.</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. Returns an empty string if the password
--   is not available.
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 Control.DeepSeq.NFData Network.AWS.EC2.GetPasswordData.GetPasswordDataResponse
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


-- | Retrieves the configuration data of the specified instance. You can
--   use this data to create a launch template.
module Network.AWS.EC2.GetLaunchTemplateData

-- | Creates a value of <a>GetLaunchTemplateData</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gltdDryRun</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>gltdInstanceId</a> - The ID of the instance.</li>
--   </ul>
getLaunchTemplateData :: Text -> GetLaunchTemplateData

-- | <i>See:</i> <a>getLaunchTemplateData</a> smart constructor.
data GetLaunchTemplateData

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
gltdDryRun :: Lens' GetLaunchTemplateData (Maybe Bool)

-- | The ID of the instance.
gltdInstanceId :: Lens' GetLaunchTemplateData Text

-- | Creates a value of <a>GetLaunchTemplateDataResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gltdrsLaunchTemplateData</a> - The instance data.</li>
--   <li><a>gltdrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getLaunchTemplateDataResponse :: Int -> GetLaunchTemplateDataResponse

-- | <i>See:</i> <a>getLaunchTemplateDataResponse</a> smart constructor.
data GetLaunchTemplateDataResponse

-- | The instance data.
gltdrsLaunchTemplateData :: Lens' GetLaunchTemplateDataResponse (Maybe ResponseLaunchTemplateData)

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


-- | 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>ghrppHostIdSet</a> - The ID<i>s of the Dedicated Host</i>s that
--   the reservation will be associated with.</li>
--   <li><a>ghrppOfferingId</a> - The offering ID of the reservation.</li>
--   </ul>
getHostReservationPurchasePreview :: Text -> GetHostReservationPurchasePreview

-- | <i>See:</i> <a>getHostReservationPurchasePreview</a> smart
--   constructor.
data GetHostReservationPurchasePreview

-- | The ID<i>s of the Dedicated Host</i>s that the reservation will be
--   associated with.
ghrppHostIdSet :: Lens' GetHostReservationPurchasePreview [Text]

-- | The offering ID of the reservation.
ghrppOfferingId :: 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 Control.DeepSeq.NFData Network.AWS.EC2.GetHostReservationPurchasePreview.GetHostReservationPurchasePreviewResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.GetConsoleScreenshot.GetConsoleScreenshotResponse
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


-- | Gets the console output for the specified instance. 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. For Windows instances, the instance console output
--   includes output from the EC2Config service.
--   
--   <a>GetConsoleOutput</a> returns up to 64 KB of console output shortly
--   after it's generated by the instance.
--   
--   By default, the console output returns buffered information that was
--   posted shortly after an instance transition state (start, stop,
--   reboot, or terminate). This information is available for at least one
--   hour after the most recent post.
--   
--   You can optionally retrieve the latest serial console output at any
--   time during the instance lifecycle. This option is only supported on
--   C5, M5, and <tt>i3.metal</tt> instances.
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>gcoLatest</a> - When enabled, retrieves the latest console
--   output for the instance. Default: disabled (<tt>false</tt> )</li>
--   <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

-- | When enabled, retrieves the latest console output for the instance.
--   Default: disabled (<tt>false</tt> )
gcoLatest :: Lens' GetConsoleOutput (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> .
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 you
--   are using a command line tool, the tool decodes the output for
--   you.</li>
--   <li><a>gcorsTimestamp</a> - The time at which 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 you are using a command line
--   tool, the tool decodes the output for you.
gcorsOutput :: Lens' GetConsoleOutputResponse (Maybe Text)

-- | The time at which 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 Control.DeepSeq.NFData Network.AWS.EC2.GetConsoleOutput.GetConsoleOutputResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.EnableVolumeIO.EnableVolumeIOResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.EnableVPCClassicLinkDNSSupport.EnableVPCClassicLinkDNSSupportResponse
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


-- | 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 <i>Amazon
--   Elastic Compute Cloud User Guide</i> .
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 Control.DeepSeq.NFData Network.AWS.EC2.EnableVPCClassicLink.EnableVPCClassicLinkResponse
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


-- | 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>evrpGatewayId</a> - The ID of the virtual private gateway.</li>
--   <li><a>evrpRouteTableId</a> - The ID of the route table.</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 virtual private gateway.
evrpGatewayId :: Lens' EnableVGWRoutePropagation Text

-- | The ID of the route table.
evrpRouteTableId :: 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 Control.DeepSeq.NFData Network.AWS.EC2.EnableVGWRoutePropagation.EnableVGWRoutePropagationResponse
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


-- | Disassociates a CIDR block from a VPC. To disassociate the CIDR block,
--   you must specify its association ID. You can get the association ID by
--   using <tt>DescribeVpcs</tt> . You must detach or delete all gateways
--   and resources that are associated with the CIDR block before you can
--   disassociate it.
--   
--   You cannot disassociate the CIDR block with which you originally
--   created the VPC (the primary CIDR block).
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>dvcbrsCidrBlockAssociation</a> - Information about the IPv4
--   CIDR block association.</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 IPv4 CIDR block association.
dvcbrsCidrBlockAssociation :: Lens' DisassociateVPCCidrBlockResponse (Maybe VPCCidrBlockAssociation)

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DisassociateVPCCidrBlock.DisassociateVPCCidrBlockResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DisassociateSubnetCidrBlock.DisassociateSubnetCidrBlockResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DisassociateRouteTable.DisassociateRouteTableResponse
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


-- | Disassociates an IAM instance profile from a running or stopped
--   instance.
--   
--   Use <tt>DescribeIamInstanceProfileAssociations</tt> to get the
--   association ID.
module Network.AWS.EC2.DisassociateIAMInstanceProfile

-- | Creates a value of <a>DisassociateIAMInstanceProfile</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diapAssociationId</a> - The ID of the IAM instance profile
--   association.</li>
--   </ul>
disassociateIAMInstanceProfile :: Text -> DisassociateIAMInstanceProfile

-- | <i>See:</i> <a>disassociateIAMInstanceProfile</a> smart constructor.
data DisassociateIAMInstanceProfile

-- | The ID of the IAM instance profile association.
diapAssociationId :: Lens' DisassociateIAMInstanceProfile Text

-- | Creates a value of <a>DisassociateIAMInstanceProfileResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diaprsIAMInstanceProfileAssociation</a> - Information about the
--   IAM instance profile association.</li>
--   <li><a>diaprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
disassociateIAMInstanceProfileResponse :: Int -> DisassociateIAMInstanceProfileResponse

-- | <i>See:</i> <a>disassociateIAMInstanceProfileResponse</a> smart
--   constructor.
data DisassociateIAMInstanceProfileResponse

-- | Information about the IAM instance profile association.
diaprsIAMInstanceProfileAssociation :: Lens' DisassociateIAMInstanceProfileResponse (Maybe IAMInstanceProfileAssociation)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DisassociateAddress.DisassociateAddressResponse
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


-- | 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
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
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 Control.DeepSeq.NFData Network.AWS.EC2.DisableVPCClassicLinkDNSSupport.DisableVPCClassicLinkDNSSupportResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DisableVPCClassicLink.DisableVPCClassicLinkResponse
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


-- | 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>dvrpGatewayId</a> - The ID of the virtual private gateway.</li>
--   <li><a>dvrpRouteTableId</a> - The ID of the route table.</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 virtual private gateway.
dvrpGatewayId :: Lens' DisableVGWRoutePropagation Text

-- | The ID of the route table.
dvrpRouteTableId :: 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 Control.DeepSeq.NFData Network.AWS.EC2.DisableVGWRoutePropagation.DisableVGWRoutePropagationResponse
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


-- | 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>dvpngVPCId</a> - The ID of the VPC.</li>
--   <li><a>dvpngVPNGatewayId</a> - The ID of the virtual private
--   gateway.</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 VPC.
dvpngVPCId :: Lens' DetachVPNGateway Text

-- | The ID of the virtual private gateway.
dvpngVPNGatewayId :: 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 Control.DeepSeq.NFData Network.AWS.EC2.DetachVPNGateway.DetachVPNGatewayResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DetachNetworkInterface.DetachNetworkInterfaceResponse
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


-- | 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 or public IPv4 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 Control.DeepSeq.NFData Network.AWS.EC2.DetachInternetGateway.DetachInternetGatewayResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DetachClassicLinkVPC.DetachClassicLinkVPCResponse
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


-- | Reports the current modification status of EBS volumes.
--   
--   Current-generation EBS volumes support modification of attributes
--   including type, size, and (for <tt>io1</tt> volumes) IOPS provisioning
--   while either attached to or detached from an instance. Following an
--   action from the API or the console to modify a volume, the status of
--   the modification may be <tt>modifying</tt> , <tt>optimizing</tt> ,
--   <tt>completed</tt> , or <tt>failed</tt> . If a volume has never been
--   modified, then certain elements of the returned
--   <tt>VolumeModification</tt> objects are null.
--   
--   You can also use CloudWatch Events to check the status of a
--   modification to an EBS volume. For information about CloudWatch
--   Events, see the <a>Amazon CloudWatch Events User Guide</a> . For more
--   information, see <a>Monitoring Volume Modifications"</a> .
module Network.AWS.EC2.DescribeVolumesModifications

-- | Creates a value of <a>DescribeVolumesModifications</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvmFilters</a> - One or more filters. Supported filters:
--   <tt>volume-id</tt> , <tt>modification-state</tt> ,
--   <tt>target-size</tt> , <tt>target-iops</tt> ,
--   <tt>target-volume-type</tt> , <tt>original-size</tt> ,
--   <tt>original-iops</tt> , <tt>original-volume-type</tt> ,
--   <tt>start-time</tt> .</li>
--   <li><a>dvmVolumeIds</a> - One or more volume IDs for which in-progress
--   modifications will be described.</li>
--   <li><a>dvmNextToken</a> - The <tt>nextToken</tt> value returned by a
--   previous paginated request.</li>
--   <li><a>dvmDryRun</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>dvmMaxResults</a> - The maximum number of results (up to a
--   limit of 500) to be returned in a paginated request.</li>
--   </ul>
describeVolumesModifications :: DescribeVolumesModifications

-- | <i>See:</i> <a>describeVolumesModifications</a> smart constructor.
data DescribeVolumesModifications

-- | One or more filters. Supported filters: <tt>volume-id</tt> ,
--   <tt>modification-state</tt> , <tt>target-size</tt> ,
--   <tt>target-iops</tt> , <tt>target-volume-type</tt> ,
--   <tt>original-size</tt> , <tt>original-iops</tt> ,
--   <tt>original-volume-type</tt> , <tt>start-time</tt> .
dvmFilters :: Lens' DescribeVolumesModifications [Filter]

-- | One or more volume IDs for which in-progress modifications will be
--   described.
dvmVolumeIds :: Lens' DescribeVolumesModifications [Text]

-- | The <tt>nextToken</tt> value returned by a previous paginated request.
dvmNextToken :: Lens' DescribeVolumesModifications (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> .
dvmDryRun :: Lens' DescribeVolumesModifications (Maybe Bool)

-- | The maximum number of results (up to a limit of 500) to be returned in
--   a paginated request.
dvmMaxResults :: Lens' DescribeVolumesModifications (Maybe Int)

-- | Creates a value of <a>DescribeVolumesModificationsResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvmrsVolumesModifications</a> - A list of returned
--   <a>VolumeModification</a> objects.</li>
--   <li><a>dvmrsNextToken</a> - Token for pagination, null if there are no
--   more results</li>
--   <li><a>dvmrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVolumesModificationsResponse :: Int -> DescribeVolumesModificationsResponse

-- | <i>See:</i> <a>describeVolumesModificationsResponse</a> smart
--   constructor.
data DescribeVolumesModificationsResponse

-- | A list of returned <a>VolumeModification</a> objects.
dvmrsVolumesModifications :: Lens' DescribeVolumesModificationsResponse [VolumeModification]

-- | Token for pagination, null if there are no more results
dvmrsNextToken :: Lens' DescribeVolumesModificationsResponse (Maybe Text)

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


-- | 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 specified in the block
--   device mapping (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>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. Specify the key of the tag in the filter name and the value
--   of the tag in the filter value. For example, for the tag Purpose=X,
--   specify <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for
--   the filter value. * <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 500; if <tt>MaxResults</tt> is
--   given a value larger than 500, only 500 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 specified in the block device mapping (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>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. Specify the key of the tag in the filter name and the value
--   of the tag in the filter value. For example, for the tag Purpose=X,
--   specify <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for
--   the filter value. * <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 500; if
--   <tt>MaxResults</tt> is given a value larger than 500, only 500 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.Types.AWSRequest Network.AWS.EC2.DescribeVolumes.DescribeVolumes
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeVolumes.DescribeVolumesResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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.Types.AWSRequest Network.AWS.EC2.DescribeVolumeStatus.DescribeVolumeStatus
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeVolumeStatus.DescribeVolumeStatusResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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 attribute of the volume. This parameter
--   is required.</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 attribute of the volume. This parameter is required.
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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeVolumeAttribute.DescribeVolumeAttributeResponse
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


-- | Describes one or more of your virtual private gateways.
--   
--   For more information about virtual private gateways, see <a>AWS
--   Managed VPN Connections</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>amazon-side-asn</tt> - The Autonomous System Number (ASN) for the
--   Amazon side of the gateway. * <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. Specify the key of the tag in the
--   filter name and the value of the tag in the filter value. For example,
--   for the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter
--   name and <tt>X</tt> for the filter value. * <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>amazon-side-asn</tt> - The Autonomous
--   System Number (ASN) for the Amazon side of the gateway. *
--   <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. Specify the key of the tag in the filter name and the value
--   of the tag in the filter value. For example, for the tag Purpose=X,
--   specify <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for
--   the filter value. * <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeVPNGateways.DescribeVPNGatewaysResponse
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


-- | Describes one or more of your VPN connections.
--   
--   For more information about VPN connections, see <a>AWS Managed VPN
--   Connections</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. Specify the key of the tag in the filter name and the value
--   of the tag in the filter value. For example, for the tag Purpose=X,
--   specify <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for
--   the filter value. * <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. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeVPNConnections.DescribeVPNConnectionsResponse
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


-- | 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
--   primary 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>cidr-block-association.cidr-block</tt>
--   - An IPv4 CIDR block associated with the VPC. *
--   <tt>cidr-block-association.association-id</tt> - The association ID
--   for an IPv4 CIDR block associated with the VPC. *
--   <tt>cidr-block-association.state</tt> - The state of an IPv4 CIDR
--   block associated with the VPC. * <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. Specify the key of the tag in the filter
--   name and the value of the tag in the filter value. For example, for
--   the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter name
--   and <tt>X</tt> for the filter value. * <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 primary 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>cidr-block-association.cidr-block</tt> - An IPv4 CIDR block
--   associated with the VPC. *
--   <tt>cidr-block-association.association-id</tt> - The association ID
--   for an IPv4 CIDR block associated with the VPC. *
--   <tt>cidr-block-association.state</tt> - The state of an IPv4 CIDR
--   block associated with the VPC. * <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. Specify the key of the tag in the filter
--   name and the value of the tag in the filter value. For example, for
--   the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter name
--   and <tt>X</tt> for the filter value. * <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeVPCs.DescribeVPCsResponse
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


-- | 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
--   accepter VPC. * <tt>accepter-vpc-info.owner-id</tt> - The AWS account
--   ID of the owner of the accepter VPC. *
--   <tt>accepter-vpc-info.vpc-id</tt> - The ID of the accepter 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>deleting</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. Specify the key of the tag in the
--   filter name and the value of the tag in the filter value. For example,
--   for the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter
--   name and <tt>X</tt> for the filter value. * <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 accepter VPC. *
--   <tt>accepter-vpc-info.owner-id</tt> - The AWS account ID of the owner
--   of the accepter VPC. * <tt>accepter-vpc-info.vpc-id</tt> - The ID of
--   the accepter 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>deleting</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. Specify the key of the tag in the filter name and the value
--   of the tag in the filter value. For example, for the tag Purpose=X,
--   specify <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for
--   the filter value. * <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeVPCPeeringConnections.DescribeVPCPeeringConnectionsResponse
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


-- | 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 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
--   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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeVPCEndpoints.DescribeVPCEndpointsResponse
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


-- | Describes available services to which you can create 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>dvesFilters</a> - One or more filters. * <tt>service-name</tt>
--   : The name of the service.</li>
--   <li><a>dvesServiceNames</a> - One or more service names.</li>
--   <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

-- | One or more filters. * <tt>service-name</tt> : The name of the
--   service.
dvesFilters :: Lens' DescribeVPCEndpointServices [Filter]

-- | One or more service names.
dvesServiceNames :: Lens' DescribeVPCEndpointServices [Text]

-- | 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>dvesrsServiceDetails</a> - Information about the service.</li>
--   <li><a>dvesrsServiceNames</a> - A list of supported 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

-- | Information about the service.
dvesrsServiceDetails :: Lens' DescribeVPCEndpointServicesResponse [ServiceDetail]

-- | A list of supported 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeVPCEndpointServices.DescribeVPCEndpointServicesResponse
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


-- | Describes the principals (service consumers) that are permitted to
--   discover your VPC endpoint service.
module Network.AWS.EC2.DescribeVPCEndpointServicePermissions

-- | Creates a value of <a>DescribeVPCEndpointServicePermissions</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvespFilters</a> - One or more filters. * <tt>principal</tt> -
--   The ARN of the principal. * <tt>principal-type</tt> - The principal
--   type (<tt>All</tt> | <tt>Service</tt> | <tt>OrganizationUnit</tt> |
--   <tt>Account</tt> | <tt>User</tt> | <tt>Role</tt> ).</li>
--   <li><a>dvespNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   <li><a>dvespDryRun</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>dvespMaxResults</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.</li>
--   <li><a>dvespServiceId</a> - The ID of the service.</li>
--   </ul>
describeVPCEndpointServicePermissions :: Text -> DescribeVPCEndpointServicePermissions

-- | <i>See:</i> <a>describeVPCEndpointServicePermissions</a> smart
--   constructor.
data DescribeVPCEndpointServicePermissions

-- | One or more filters. * <tt>principal</tt> - The ARN of the principal.
--   * <tt>principal-type</tt> - The principal type (<tt>All</tt> |
--   <tt>Service</tt> | <tt>OrganizationUnit</tt> | <tt>Account</tt> |
--   <tt>User</tt> | <tt>Role</tt> ).
dvespFilters :: Lens' DescribeVPCEndpointServicePermissions [Filter]

-- | The token to retrieve the next page of results.
dvespNextToken :: Lens' DescribeVPCEndpointServicePermissions (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> .
dvespDryRun :: Lens' DescribeVPCEndpointServicePermissions (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.
dvespMaxResults :: Lens' DescribeVPCEndpointServicePermissions (Maybe Int)

-- | The ID of the service.
dvespServiceId :: Lens' DescribeVPCEndpointServicePermissions Text

-- | Creates a value of
--   <a>DescribeVPCEndpointServicePermissionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvesprsNextToken</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>dvesprsAllowedPrincipals</a> - Information about one or more
--   allowed principals.</li>
--   <li><a>dvesprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVPCEndpointServicePermissionsResponse :: Int -> DescribeVPCEndpointServicePermissionsResponse

-- | <i>See:</i> <a>describeVPCEndpointServicePermissionsResponse</a> smart
--   constructor.
data DescribeVPCEndpointServicePermissionsResponse

-- | 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.
dvesprsNextToken :: Lens' DescribeVPCEndpointServicePermissionsResponse (Maybe Text)

-- | Information about one or more allowed principals.
dvesprsAllowedPrincipals :: Lens' DescribeVPCEndpointServicePermissionsResponse [AllowedPrincipal]

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


-- | Describes the VPC endpoint service configurations in your account
--   (your services).
module Network.AWS.EC2.DescribeVPCEndpointServiceConfigurations

-- | Creates a value of <a>DescribeVPCEndpointServiceConfigurations</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvescFilters</a> - One or more filters. * <tt>service-name</tt>
--   - The name of the service. * <tt>service-id</tt> - The ID of the
--   service. * <tt>service-state</tt> - The state of the service
--   (<tt>Pending</tt> | <tt>Available</tt> | <tt>Deleting</tt> |
--   <tt>Deleted</tt> | <tt>Failed</tt> ).</li>
--   <li><a>dvescServiceIds</a> - The IDs of one or more services.</li>
--   <li><a>dvescNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   <li><a>dvescDryRun</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>dvescMaxResults</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.</li>
--   </ul>
describeVPCEndpointServiceConfigurations :: DescribeVPCEndpointServiceConfigurations

-- | <i>See:</i> <a>describeVPCEndpointServiceConfigurations</a> smart
--   constructor.
data DescribeVPCEndpointServiceConfigurations

-- | One or more filters. * <tt>service-name</tt> - The name of the
--   service. * <tt>service-id</tt> - The ID of the service. *
--   <tt>service-state</tt> - The state of the service (<tt>Pending</tt> |
--   <tt>Available</tt> | <tt>Deleting</tt> | <tt>Deleted</tt> |
--   <tt>Failed</tt> ).
dvescFilters :: Lens' DescribeVPCEndpointServiceConfigurations [Filter]

-- | The IDs of one or more services.
dvescServiceIds :: Lens' DescribeVPCEndpointServiceConfigurations [Text]

-- | The token to retrieve the next page of results.
dvescNextToken :: Lens' DescribeVPCEndpointServiceConfigurations (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> .
dvescDryRun :: Lens' DescribeVPCEndpointServiceConfigurations (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.
dvescMaxResults :: Lens' DescribeVPCEndpointServiceConfigurations (Maybe Int)

-- | Creates a value of
--   <a>DescribeVPCEndpointServiceConfigurationsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvescrsNextToken</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>dvescrsServiceConfigurations</a> - Information about one or
--   more services.</li>
--   <li><a>dvescrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVPCEndpointServiceConfigurationsResponse :: Int -> DescribeVPCEndpointServiceConfigurationsResponse

-- | <i>See:</i> <a>describeVPCEndpointServiceConfigurationsResponse</a>
--   smart constructor.
data DescribeVPCEndpointServiceConfigurationsResponse

-- | 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.
dvescrsNextToken :: Lens' DescribeVPCEndpointServiceConfigurationsResponse (Maybe Text)

-- | Information about one or more services.
dvescrsServiceConfigurations :: Lens' DescribeVPCEndpointServiceConfigurationsResponse [ServiceConfiguration]

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


-- | Describes the VPC endpoint connections to your VPC endpoint services,
--   including any endpoints that are pending your acceptance.
module Network.AWS.EC2.DescribeVPCEndpointConnections

-- | Creates a value of <a>DescribeVPCEndpointConnections</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvecFilters</a> - One or more filters. * <tt>service-id</tt> -
--   The ID of the service. * <tt>vpc-endpoint-owner</tt> - The AWS account
--   number of the owner of the endpoint. * <tt>vpc-endpoint-state</tt> -
--   The state of the endpoint (<tt>pendingAcceptance</tt> |
--   <tt>pending</tt> | <tt>available</tt> | <tt>deleting</tt> |
--   <tt>deleted</tt> | <tt>rejected</tt> | <tt>failed</tt> ). *
--   <tt>vpc-endpoint-id</tt> - The ID of the endpoint.</li>
--   <li><a>dvecNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   <li><a>dvecDryRun</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>dvecMaxResults</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.</li>
--   </ul>
describeVPCEndpointConnections :: DescribeVPCEndpointConnections

-- | <i>See:</i> <a>describeVPCEndpointConnections</a> smart constructor.
data DescribeVPCEndpointConnections

-- | One or more filters. * <tt>service-id</tt> - The ID of the service. *
--   <tt>vpc-endpoint-owner</tt> - The AWS account number of the owner of
--   the endpoint. * <tt>vpc-endpoint-state</tt> - The state of the
--   endpoint (<tt>pendingAcceptance</tt> | <tt>pending</tt> |
--   <tt>available</tt> | <tt>deleting</tt> | <tt>deleted</tt> |
--   <tt>rejected</tt> | <tt>failed</tt> ). * <tt>vpc-endpoint-id</tt> -
--   The ID of the endpoint.
dvecFilters :: Lens' DescribeVPCEndpointConnections [Filter]

-- | The token to retrieve the next page of results.
dvecNextToken :: Lens' DescribeVPCEndpointConnections (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> .
dvecDryRun :: Lens' DescribeVPCEndpointConnections (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.
dvecMaxResults :: Lens' DescribeVPCEndpointConnections (Maybe Int)

-- | Creates a value of <a>DescribeVPCEndpointConnectionsResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvecrsVPCEndpointConnections</a> - Information about one or
--   more VPC endpoint connections.</li>
--   <li><a>dvecrsNextToken</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>dvecrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeVPCEndpointConnectionsResponse :: Int -> DescribeVPCEndpointConnectionsResponse

-- | <i>See:</i> <a>describeVPCEndpointConnectionsResponse</a> smart
--   constructor.
data DescribeVPCEndpointConnectionsResponse

-- | Information about one or more VPC endpoint connections.
dvecrsVPCEndpointConnections :: Lens' DescribeVPCEndpointConnectionsResponse [VPCEndpointConnection]

-- | 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.
dvecrsNextToken :: Lens' DescribeVPCEndpointConnectionsResponse (Maybe Text)

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


-- | Describes the connection notifications for VPC endpoints and VPC
--   endpoint services.
module Network.AWS.EC2.DescribeVPCEndpointConnectionNotifications

-- | Creates a value of <a>DescribeVPCEndpointConnectionNotifications</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcecnFilters</a> - One or more filters. *
--   <tt>connection-notification-arn</tt> - The ARN of SNS topic for the
--   notification. * <tt>connection-notification-id</tt> - The ID of the
--   notification. * <tt>connection-notification-state</tt> - The state of
--   the notification (<tt>Enabled</tt> | <tt>Disabled</tt> ). *
--   <tt>connection-notification-type</tt> - The type of notification
--   (<tt>Topic</tt> ). * <tt>service-id</tt> - The ID of the endpoint
--   service. * <tt>vpc-endpoint-id</tt> - The ID of the VPC endpoint.</li>
--   <li><a>dvpcecnNextToken</a> - The token to request the next page of
--   results.</li>
--   <li><a>dvpcecnConnectionNotificationId</a> - The ID of the
--   notification.</li>
--   <li><a>dvpcecnDryRun</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>dvpcecnMaxResults</a> - The maximum number of results to return
--   in a single call. To retrieve the remaining results, make another
--   request with the returned <tt>NextToken</tt> value.</li>
--   </ul>
describeVPCEndpointConnectionNotifications :: DescribeVPCEndpointConnectionNotifications

-- | <i>See:</i> <a>describeVPCEndpointConnectionNotifications</a> smart
--   constructor.
data DescribeVPCEndpointConnectionNotifications

-- | One or more filters. * <tt>connection-notification-arn</tt> - The ARN
--   of SNS topic for the notification. *
--   <tt>connection-notification-id</tt> - The ID of the notification. *
--   <tt>connection-notification-state</tt> - The state of the notification
--   (<tt>Enabled</tt> | <tt>Disabled</tt> ). *
--   <tt>connection-notification-type</tt> - The type of notification
--   (<tt>Topic</tt> ). * <tt>service-id</tt> - The ID of the endpoint
--   service. * <tt>vpc-endpoint-id</tt> - The ID of the VPC endpoint.
dvpcecnFilters :: Lens' DescribeVPCEndpointConnectionNotifications [Filter]

-- | The token to request the next page of results.
dvpcecnNextToken :: Lens' DescribeVPCEndpointConnectionNotifications (Maybe Text)

-- | The ID of the notification.
dvpcecnConnectionNotificationId :: Lens' DescribeVPCEndpointConnectionNotifications (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> .
dvpcecnDryRun :: Lens' DescribeVPCEndpointConnectionNotifications (Maybe Bool)

-- | The maximum number of results to return in a single call. To retrieve
--   the remaining results, make another request with the returned
--   <tt>NextToken</tt> value.
dvpcecnMaxResults :: Lens' DescribeVPCEndpointConnectionNotifications (Maybe Int)

-- | Creates a value of
--   <a>DescribeVPCEndpointConnectionNotificationsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcecnrsConnectionNotificationSet</a> - One or more
--   notifications.</li>
--   <li><a>dvpcecnrsNextToken</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>dvpcecnrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
describeVPCEndpointConnectionNotificationsResponse :: Int -> DescribeVPCEndpointConnectionNotificationsResponse

-- | <i>See:</i> <a>describeVPCEndpointConnectionNotificationsResponse</a>
--   smart constructor.
data DescribeVPCEndpointConnectionNotificationsResponse

-- | One or more notifications.
dvpcecnrsConnectionNotificationSet :: Lens' DescribeVPCEndpointConnectionNotificationsResponse [ConnectionNotification]

-- | 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.
dvpcecnrsNextToken :: Lens' DescribeVPCEndpointConnectionNotificationsResponse (Maybe Text)

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


-- | 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, see <a>ClassicLink</a> in
--   the <i>Amazon Elastic Compute Cloud User Guide</i> .
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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport.DescribeVPCClassicLinkDNSSupportResponse
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


-- | 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. Specify the key of the tag in the filter
--   name and the value of the tag in the filter value. For example, for
--   the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter name
--   and <tt>X</tt> for the filter value. * <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. Specify the key of the tag in the
--   filter name and the value of the tag in the filter value. For example,
--   for the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter
--   name and <tt>X</tt> for the filter value. * <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeVPCClassicLink.DescribeVPCClassicLinkResponse
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


-- | 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>dvpcaAttribute</a> - The VPC attribute.</li>
--   <li><a>dvpcaVPCId</a> - The ID of the VPC.</li>
--   </ul>
describeVPCAttribute :: VPCAttributeName -> Text -> 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 VPC attribute.
dvpcaAttribute :: Lens' DescribeVPCAttribute VPCAttributeName

-- | The ID of the VPC.
dvpcaVPCId :: Lens' DescribeVPCAttribute Text

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeVPCAttribute.DescribeVPCAttributeResponse
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


-- | 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>elastic-ip</tt> | <tt>fpga-image</tt> |
--   <tt>image</tt> | <tt>instance</tt> | <tt>internet-gateway</tt> |
--   <tt>launch-template</tt> | <tt>natgateway</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>vpc-peering-connection</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>elastic-ip</tt> | <tt>fpga-image</tt> | <tt>image</tt> |
--   <tt>instance</tt> | <tt>internet-gateway</tt> |
--   <tt>launch-template</tt> | <tt>natgateway</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>vpc-peering-connection</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.Types.AWSRequest Network.AWS.EC2.DescribeTags.DescribeTags
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeTags.DescribeTagsResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeSubnets.DescribeSubnetsResponse
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


-- | <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeStaleSecurityGroups.DescribeStaleSecurityGroupsResponse
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


-- | Describes the Spot price history. For more information, see <a>Spot
--   Instance Pricing History</a> in the <i>Amazon EC2 User Guide for Linux
--   Instances</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.</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 time stamp 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.
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
--   time stamp 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 null or an empty string 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
--   null or an empty string 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.Types.AWSRequest Network.AWS.EC2.DescribeSpotPriceHistory.DescribeSpotPriceHistory
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeSpotPriceHistory.DescribeSpotPriceHistoryResponse
instance Network.AWS.Pager.AWSPager 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


-- | Describes the Spot Instance requests that belong to your account. Spot
--   Instances are instances that Amazon EC2 launches when the Spot price
--   that you specify exceeds the current Spot price. For more information,
--   see <a>Spot Instance Requests</a> in the <i>Amazon EC2 User Guide for
--   Linux Instances</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 four 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 EBS volume is deleted on instance termination. *
--   <tt>launch.block-device-mapping.device-name</tt> - The device name for
--   the volume in the block device mapping (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ). *
--   <tt>launch.block-device-mapping.snapshot-id</tt> - The ID of the
--   snapshot for the EBS volume. *
--   <tt>launch.block-device-mapping.volume-size</tt> - The size of the EBS
--   volume, in GiB. * <tt>launch.block-device-mapping.volume-type</tt> -
--   The type of 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 ID of the security group
--   for the instance. * <tt>launch.group-name</tt> - The name of 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
--   detailed monitoring is enabled for the Spot Instance. *
--   <tt>launch.ramdisk-id</tt> - The RAM disk ID. *
--   <tt>launched-availability-zone</tt> - The Availability Zone in which
--   the request is launched. *
--   <tt>network-interface.addresses.primary</tt> - Indicates whether the
--   IP address is the primary private IP address. *
--   <tt>network-interface.delete-on-termination</tt> - Indicates whether
--   the network interface is deleted when the instance is terminated. *
--   <tt>network-interface.description</tt> - A description 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.group-id</tt> - The ID of the security group
--   associated with the network interface. *
--   <tt>network-interface.network-interface-id</tt> - The ID of the
--   network interface. * <tt>network-interface.private-ip-address</tt> -
--   The primary private IP address of the network interface. *
--   <tt>network-interface.subnet-id</tt> - The ID of the subnet for the
--   instance. * <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 request
--   status information can help you track your Amazon EC2 Spot Instance
--   requests. For more information, see <a>Spot Request Status</a> in the
--   <i>Amazon EC2 User Guide for Linux Instances</i> . *
--   <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. Specify the key of the tag in the
--   filter name and the value of the tag in the filter value. For example,
--   for the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter
--   name and <tt>X</tt> for the filter value. * <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>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 EBS volume is deleted on instance termination. *
--   <tt>launch.block-device-mapping.device-name</tt> - The device name for
--   the volume in the block device mapping (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ). *
--   <tt>launch.block-device-mapping.snapshot-id</tt> - The ID of the
--   snapshot for the EBS volume. *
--   <tt>launch.block-device-mapping.volume-size</tt> - The size of the EBS
--   volume, in GiB. * <tt>launch.block-device-mapping.volume-type</tt> -
--   The type of 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 ID of the security group
--   for the instance. * <tt>launch.group-name</tt> - The name of 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
--   detailed monitoring is enabled for the Spot Instance. *
--   <tt>launch.ramdisk-id</tt> - The RAM disk ID. *
--   <tt>launched-availability-zone</tt> - The Availability Zone in which
--   the request is launched. *
--   <tt>network-interface.addresses.primary</tt> - Indicates whether the
--   IP address is the primary private IP address. *
--   <tt>network-interface.delete-on-termination</tt> - Indicates whether
--   the network interface is deleted when the instance is terminated. *
--   <tt>network-interface.description</tt> - A description 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.group-id</tt> - The ID of the security group
--   associated with the network interface. *
--   <tt>network-interface.network-interface-id</tt> - The ID of the
--   network interface. * <tt>network-interface.private-ip-address</tt> -
--   The primary private IP address of the network interface. *
--   <tt>network-interface.subnet-id</tt> - The ID of the subnet for the
--   instance. * <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 request
--   status information can help you track your Amazon EC2 Spot Instance
--   requests. For more information, see <a>Spot Request Status</a> in the
--   <i>Amazon EC2 User Guide for Linux Instances</i> . *
--   <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. Specify the key of the tag in the
--   filter name and the value of the tag in the filter value. For example,
--   for the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter
--   name and <tt>X</tt> for the filter value. * <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>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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeSpotInstanceRequests.DescribeSpotInstanceRequestsResponse
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


-- | 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.Types.AWSRequest Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequests
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeSpotFleetRequests.DescribeSpotFleetRequestsResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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>dsfrhrsHistoryRecords</a> - Information about the events in the
--   history of the Spot Fleet request.</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>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>
--   </ul>
describeSpotFleetRequestHistoryResponse :: Int -> UTCTime -> Text -> 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

-- | Information about the events in the history of the Spot Fleet request.
dsfrhrsHistoryRecords :: Lens' DescribeSpotFleetRequestHistoryResponse [HistoryRecord]

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

-- | 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
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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeSpotFleetRequestHistory.DescribeSpotFleetRequestHistoryResponse
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


-- | Describes the running instances for the specified Spot Fleet.
--   
--   This operation returns paginated results.
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>dsfirsActiveInstances</a> - The running instances. This list is
--   refreshed periodically and might be out of date.</li>
--   <li><a>dsfirsSpotFleetRequestId</a> - The ID of the Spot Fleet
--   request.</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 running instances. This list is refreshed periodically and might
--   be out of date.
dsfirsActiveInstances :: Lens' DescribeSpotFleetInstancesResponse [ActiveInstance]

-- | The ID of the Spot Fleet request.
dsfirsSpotFleetRequestId :: Lens' DescribeSpotFleetInstancesResponse Text
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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeSpotFleetInstances.DescribeSpotFleetInstancesResponse
instance Network.AWS.Pager.AWSPager 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


-- | Describes the data feed for Spot Instances. For more information, see
--   <a>Spot Instance Data Feed</a> in the <i>Amazon EC2 User Guide for
--   Linux Instances</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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeSpotDatafeedSubscription.DescribeSpotDatafeedSubscriptionResponse
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


-- | 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 console.
--   * <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. Specify the key of the tag in the
--   filter name and the value of the tag in the filter value. For example,
--   for the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter
--   name and <tt>X</tt> for the filter value. * <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 console. * <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. Specify the key of the tag in the filter name and the value
--   of the tag in the filter value. For example, for the tag Purpose=X,
--   specify <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for
--   the filter value. * <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.Types.AWSRequest Network.AWS.EC2.DescribeSnapshots.DescribeSnapshots
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeSnapshots.DescribeSnapshotsResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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>dsaAttribute</a> - The snapshot attribute you would like to
--   view.</li>
--   <li><a>dsaSnapshotId</a> - The ID of the EBS snapshot.</li>
--   </ul>
describeSnapshotAttribute :: SnapshotAttributeName -> Text -> 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 snapshot attribute you would like to view.
dsaAttribute :: Lens' DescribeSnapshotAttribute SnapshotAttributeName

-- | The ID of the EBS snapshot.
dsaSnapshotId :: Lens' DescribeSnapshotAttribute Text

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeSnapshotAttribute.DescribeSnapshotAttributeResponse
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


-- | 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> .
--   
--   This operation returns paginated results.
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.cidr</tt> - An IPv4 CIDR block for
--   an outbound security group rule. *
--   <tt>egress.ip-permission.from-port</tt> - For an outbound rule, the
--   start of port range for the TCP and UDP protocols, or an ICMP type
--   number. * <tt>egress.ip-permission.group-id</tt> - The ID of a
--   security group that has been referenced in an outbound security group
--   rule. * <tt>egress.ip-permission.group-name</tt> - The name of a
--   security group that has been referenced in an outbound security group
--   rule. * <tt>egress.ip-permission.ipv6-cidr</tt> - An IPv6 CIDR block
--   for an outbound security group rule. *
--   <tt>egress.ip-permission.prefix-list-id</tt> - The ID (prefix) of the
--   AWS service to which a security group rule allows outbound access. *
--   <tt>egress.ip-permission.protocol</tt> - The IP protocol for an
--   outbound security group rule (<tt>tcp</tt> | <tt>udp</tt> |
--   <tt>icmp</tt> or a protocol number). *
--   <tt>egress.ip-permission.to-port</tt> - For an outbound rule, the end
--   of port range for the TCP and UDP protocols, or an ICMP code. *
--   <tt>egress.ip-permission.user-id</tt> - The ID of an AWS account that
--   has been referenced in an outbound security group rule. *
--   <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 block for an inbound
--   security group rule. * <tt>ip-permission.from-port</tt> - For an
--   inbound rule, 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 referenced in an inbound security group
--   rule. * <tt>ip-permission.group-name</tt> - The name of a security
--   group that has been referenced in an inbound security group rule. *
--   <tt>ip-permission.ipv6-cidr</tt> - An IPv6 CIDR block for an inbound
--   security group rule. * <tt>ip-permission.prefix-list-id</tt> - The ID
--   (prefix) of the AWS service from which a security group rule allows
--   inbound access. * <tt>ip-permission.protocol</tt> - The IP protocol
--   for an inbound security group rule (<tt>tcp</tt> | <tt>udp</tt> |
--   <tt>icmp</tt> or a protocol number). * <tt>ip-permission.to-port</tt>
--   - For an inbound rule, 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 referenced in an inbound security
--   group rule. * <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>dsgsNextToken</a> - The token to request the next page of
--   results.</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>
--   <li><a>dsgsMaxResults</a> - The maximum number of results to return in
--   a single call. To retrieve the remaining results, make another request
--   with the returned <tt>NextToken</tt> value. This value can be between
--   5 and 1000. If this parameter is not specified, then all results are
--   returned.</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.cidr</tt> - An IPv4 CIDR block for an
--   outbound security group rule. *
--   <tt>egress.ip-permission.from-port</tt> - For an outbound rule, the
--   start of port range for the TCP and UDP protocols, or an ICMP type
--   number. * <tt>egress.ip-permission.group-id</tt> - The ID of a
--   security group that has been referenced in an outbound security group
--   rule. * <tt>egress.ip-permission.group-name</tt> - The name of a
--   security group that has been referenced in an outbound security group
--   rule. * <tt>egress.ip-permission.ipv6-cidr</tt> - An IPv6 CIDR block
--   for an outbound security group rule. *
--   <tt>egress.ip-permission.prefix-list-id</tt> - The ID (prefix) of the
--   AWS service to which a security group rule allows outbound access. *
--   <tt>egress.ip-permission.protocol</tt> - The IP protocol for an
--   outbound security group rule (<tt>tcp</tt> | <tt>udp</tt> |
--   <tt>icmp</tt> or a protocol number). *
--   <tt>egress.ip-permission.to-port</tt> - For an outbound rule, the end
--   of port range for the TCP and UDP protocols, or an ICMP code. *
--   <tt>egress.ip-permission.user-id</tt> - The ID of an AWS account that
--   has been referenced in an outbound security group rule. *
--   <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 block for an inbound
--   security group rule. * <tt>ip-permission.from-port</tt> - For an
--   inbound rule, 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 referenced in an inbound security group
--   rule. * <tt>ip-permission.group-name</tt> - The name of a security
--   group that has been referenced in an inbound security group rule. *
--   <tt>ip-permission.ipv6-cidr</tt> - An IPv6 CIDR block for an inbound
--   security group rule. * <tt>ip-permission.prefix-list-id</tt> - The ID
--   (prefix) of the AWS service from which a security group rule allows
--   inbound access. * <tt>ip-permission.protocol</tt> - The IP protocol
--   for an inbound security group rule (<tt>tcp</tt> | <tt>udp</tt> |
--   <tt>icmp</tt> or a protocol number). * <tt>ip-permission.to-port</tt>
--   - For an inbound rule, 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 referenced in an inbound security
--   group rule. * <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]

-- | The token to request the next page of results.
dsgsNextToken :: Lens' DescribeSecurityGroups (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> .
dsgsDryRun :: Lens' DescribeSecurityGroups (Maybe Bool)

-- | The maximum number of results to return in a single call. To retrieve
--   the remaining results, make another request with the returned
--   <tt>NextToken</tt> value. This value can be between 5 and 1000. If
--   this parameter is not specified, then all results are returned.
dsgsMaxResults :: Lens' DescribeSecurityGroups (Maybe Int)

-- | 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>dsgrsNextToken</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>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]

-- | 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.
dsgrsNextToken :: Lens' DescribeSecurityGroupsResponse (Maybe Text)

-- | <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeSecurityGroups.DescribeSecurityGroupsResponse
instance Network.AWS.Pager.AWSPager 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


-- | <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeSecurityGroupReferences.DescribeSecurityGroupReferencesResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeScheduledInstances.DescribeScheduledInstancesResponse
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


-- | 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>dsiaFirstSlotStartTimeRange</a> - The time period for the first
--   schedule to start.</li>
--   <li><a>dsiaRecurrence</a> - The schedule recurrence.</li>
--   </ul>
describeScheduledInstanceAvailability :: SlotDateTimeRangeRequest -> ScheduledInstanceRecurrenceRequest -> 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 time period for the first schedule to start.
dsiaFirstSlotStartTimeRange :: Lens' DescribeScheduledInstanceAvailability SlotDateTimeRangeRequest

-- | The schedule recurrence.
dsiaRecurrence :: Lens' DescribeScheduledInstanceAvailability ScheduledInstanceRecurrenceRequest

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeScheduledInstanceAvailability.DescribeScheduledInstanceAvailabilityResponse
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


-- | 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> ). Route tables that do not have
--   an association ID are not returned in the response. *
--   <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. Specify the key of the tag in the
--   filter name and the value of the tag in the filter value. For example,
--   for the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter
--   name and <tt>X</tt> for the filter value. * <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> ). Route tables that do not have
--   an association ID are not returned in the response. *
--   <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. Specify the key of the tag in the
--   filter name and the value of the tag in the filter value. For example,
--   for the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter
--   name and <tt>X</tt> for the filter value. * <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeRouteTables.DescribeRouteTablesResponse
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


-- | 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). <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>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). <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>
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.Types.AWSRequest Network.AWS.EC2.DescribeReservedInstancesOfferings.DescribeReservedInstancesOfferings
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeReservedInstancesOfferings.DescribeReservedInstancesOfferingsResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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.Types.AWSRequest Network.AWS.EC2.DescribeReservedInstancesModifications.DescribeReservedInstancesModifications
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeReservedInstancesModifications.DescribeReservedInstancesModificationsResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeReservedInstancesListings.DescribeReservedInstancesListingsResponse
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


-- | 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. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeReservedInstances.DescribeReservedInstancesResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeRegions.DescribeRegionsResponse
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


-- | Describes the ID format settings for the root user and all IAM roles
--   and IAM users that have explicitly specified a longer ID (17-character
--   ID) preference.
--   
--   By default, all IAM roles and IAM users default to the same ID
--   settings as the root user, unless they explicitly override the
--   settings. This request is useful for identifying those IAM users and
--   IAM roles that have overridden the default ID settings.
--   
--   The following resource types support longer IDs: <tt>bundle</tt> |
--   <tt>conversion-task</tt> | <tt>customer-gateway</tt> |
--   <tt>dhcp-options</tt> | <tt>elastic-ip-allocation</tt> |
--   <tt>elastic-ip-association</tt> | <tt>export-task</tt> |
--   <tt>flow-log</tt> | <tt>image</tt> | <tt>import-task</tt> |
--   <tt>instance</tt> | <tt>internet-gateway</tt> | <tt>network-acl</tt> |
--   <tt>network-acl-association</tt> | <tt>network-interface</tt> |
--   <tt>network-interface-attachment</tt> | <tt>prefix-list</tt> |
--   <tt>reservation</tt> | <tt>route-table</tt> |
--   <tt>route-table-association</tt> | <tt>security-group</tt> |
--   <tt>snapshot</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>volume</tt> |
--   <tt>vpc</tt> | <tt>vpc-cidr-block-association</tt> |
--   <tt>vpc-endpoint</tt> | <tt>vpc-peering-connection</tt> |
--   <tt>vpn-connection</tt> | <tt>vpn-gateway</tt> .
module Network.AWS.EC2.DescribePrincipalIdFormat

-- | Creates a value of <a>DescribePrincipalIdFormat</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpifResources</a> - The type of resource: <tt>bundle</tt> |
--   <tt>conversion-task</tt> | <tt>customer-gateway</tt> |
--   <tt>dhcp-options</tt> | <tt>elastic-ip-allocation</tt> |
--   <tt>elastic-ip-association</tt> | <tt>export-task</tt> |
--   <tt>flow-log</tt> | <tt>image</tt> | <tt>import-task</tt> |
--   <tt>instance</tt> | <tt>internet-gateway</tt> | <tt>network-acl</tt> |
--   <tt>network-acl-association</tt> | <tt>network-interface</tt> |
--   <tt>network-interface-attachment</tt> | <tt>prefix-list</tt> |
--   <tt>reservation</tt> | <tt>route-table</tt> |
--   <tt>route-table-association</tt> | <tt>security-group</tt> |
--   <tt>snapshot</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>volume</tt> |
--   <tt>vpc</tt> | <tt>vpc-cidr-block-association</tt> |
--   <tt>vpc-endpoint</tt> | <tt>vpc-peering-connection</tt> |
--   <tt>vpn-connection</tt> | <tt>vpn-gateway</tt></li>
--   <li><a>dpifNextToken</a> - The token to request the next page of
--   results.</li>
--   <li><a>dpifDryRun</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>dpifMaxResults</a> - The maximum number of results to return in
--   a single call. To retrieve the remaining results, make another call
--   with the returned NextToken value.</li>
--   </ul>
describePrincipalIdFormat :: DescribePrincipalIdFormat

-- | <i>See:</i> <a>describePrincipalIdFormat</a> smart constructor.
data DescribePrincipalIdFormat

-- | The type of resource: <tt>bundle</tt> | <tt>conversion-task</tt> |
--   <tt>customer-gateway</tt> | <tt>dhcp-options</tt> |
--   <tt>elastic-ip-allocation</tt> | <tt>elastic-ip-association</tt> |
--   <tt>export-task</tt> | <tt>flow-log</tt> | <tt>image</tt> |
--   <tt>import-task</tt> | <tt>instance</tt> | <tt>internet-gateway</tt> |
--   <tt>network-acl</tt> | <tt>network-acl-association</tt> |
--   <tt>network-interface</tt> | <tt>network-interface-attachment</tt> |
--   <tt>prefix-list</tt> | <tt>reservation</tt> | <tt>route-table</tt> |
--   <tt>route-table-association</tt> | <tt>security-group</tt> |
--   <tt>snapshot</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>volume</tt> |
--   <tt>vpc</tt> | <tt>vpc-cidr-block-association</tt> |
--   <tt>vpc-endpoint</tt> | <tt>vpc-peering-connection</tt> |
--   <tt>vpn-connection</tt> | <tt>vpn-gateway</tt>
dpifResources :: Lens' DescribePrincipalIdFormat [Text]

-- | The token to request the next page of results.
dpifNextToken :: Lens' DescribePrincipalIdFormat (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> .
dpifDryRun :: Lens' DescribePrincipalIdFormat (Maybe Bool)

-- | The maximum number of results to return in a single call. To retrieve
--   the remaining results, make another call with the returned NextToken
--   value.
dpifMaxResults :: Lens' DescribePrincipalIdFormat (Maybe Int)

-- | Creates a value of <a>DescribePrincipalIdFormatResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpifrsPrincipals</a> - Information about the ID format settings
--   for the ARN.</li>
--   <li><a>dpifrsNextToken</a> - The token to use to retrieve the next
--   page of results. This value is null when there are no more results to
--   return.</li>
--   <li><a>dpifrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describePrincipalIdFormatResponse :: Int -> DescribePrincipalIdFormatResponse

-- | <i>See:</i> <a>describePrincipalIdFormatResponse</a> smart
--   constructor.
data DescribePrincipalIdFormatResponse

-- | Information about the ID format settings for the ARN.
dpifrsPrincipals :: Lens' DescribePrincipalIdFormatResponse [PrincipalIdFormat]

-- | The token to use to retrieve the next page of results. This value is
--   null when there are no more results to return.
dpifrsNextToken :: Lens' DescribePrincipalIdFormatResponse (Maybe Text)

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


-- | 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 gateway 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribePrefixLists.DescribePrefixListsResponse
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


-- | Describes one or more of your placement groups. For more information,
--   see <a>Placement Groups</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> | <tt>spread</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> | <tt>spread</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 Control.DeepSeq.NFData Network.AWS.EC2.DescribePlacementGroups.DescribePlacementGroupsResponse
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


-- | 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. Specify the key of the tag in the filter name and the value
--   of the tag in the filter value. For example, for the tag Purpose=X,
--   specify <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for
--   the filter value. * <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. Specify the key of the tag in the filter name and the value
--   of the tag in the filter value. For example, for the tag Purpose=X,
--   specify <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for
--   the filter value. * <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeNetworkInterfaces.DescribeNetworkInterfacesResponse
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


-- | Describes the permissions for your network interfaces.
module Network.AWS.EC2.DescribeNetworkInterfacePermissions

-- | Creates a value of <a>DescribeNetworkInterfacePermissions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnipFilters</a> - One or more filters. *
--   <tt>network-interface-permission.network-interface-permission-id</tt>
--   - The ID of the permission. *
--   <tt>network-interface-permission.network-interface-id</tt> - The ID of
--   the network interface. *
--   <tt>network-interface-permission.aws-account-id</tt> - The AWS account
--   ID. * <tt>network-interface-permission.aws-service</tt> - The AWS
--   service. * <tt>network-interface-permission.permission</tt> - The type
--   of permission (<tt>INSTANCE-ATTACH</tt> | <tt>EIP-ASSOCIATE</tt>
--   ).</li>
--   <li><a>dnipNextToken</a> - The token to request the next page of
--   results.</li>
--   <li><a>dnipNetworkInterfacePermissionIds</a> - One or more network
--   interface permission IDs.</li>
--   <li><a>dnipMaxResults</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. If this parameter is not
--   specified, up to 50 results are returned by default.</li>
--   </ul>
describeNetworkInterfacePermissions :: DescribeNetworkInterfacePermissions

-- | Contains the parameters for DescribeNetworkInterfacePermissions.
--   
--   <i>See:</i> <a>describeNetworkInterfacePermissions</a> smart
--   constructor.
data DescribeNetworkInterfacePermissions

-- | One or more filters. *
--   <tt>network-interface-permission.network-interface-permission-id</tt>
--   - The ID of the permission. *
--   <tt>network-interface-permission.network-interface-id</tt> - The ID of
--   the network interface. *
--   <tt>network-interface-permission.aws-account-id</tt> - The AWS account
--   ID. * <tt>network-interface-permission.aws-service</tt> - The AWS
--   service. * <tt>network-interface-permission.permission</tt> - The type
--   of permission (<tt>INSTANCE-ATTACH</tt> | <tt>EIP-ASSOCIATE</tt> ).
dnipFilters :: Lens' DescribeNetworkInterfacePermissions [Filter]

-- | The token to request the next page of results.
dnipNextToken :: Lens' DescribeNetworkInterfacePermissions (Maybe Text)

-- | One or more network interface permission IDs.
dnipNetworkInterfacePermissionIds :: Lens' DescribeNetworkInterfacePermissions [Text]

-- | 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. If this parameter is not specified, up to 50
--   results are returned by default.
dnipMaxResults :: Lens' DescribeNetworkInterfacePermissions (Maybe Int)

-- | Creates a value of <a>DescribeNetworkInterfacePermissionsResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnipsrsNetworkInterfacePermissions</a> - The network interface
--   permissions.</li>
--   <li><a>dnipsrsNextToken</a> - The token to use to retrieve the next
--   page of results.</li>
--   <li><a>dnipsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeNetworkInterfacePermissionsResponse :: Int -> DescribeNetworkInterfacePermissionsResponse

-- | Contains the output for DescribeNetworkInterfacePermissions.
--   
--   <i>See:</i> <a>describeNetworkInterfacePermissionsResponse</a> smart
--   constructor.
data DescribeNetworkInterfacePermissionsResponse

-- | The network interface permissions.
dnipsrsNetworkInterfacePermissions :: Lens' DescribeNetworkInterfacePermissionsResponse [NetworkInterfacePermission]

-- | The token to use to retrieve the next page of results.
dnipsrsNextToken :: Lens' DescribeNetworkInterfacePermissionsResponse (Maybe Text)

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


-- | 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.
--   This parameter is required.</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. This parameter is required.
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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeNetworkInterfaceAttribute.DescribeNetworkInterfaceAttributeResponse
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


-- | 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. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeNetworkACLs.DescribeNetworkACLsResponse
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


-- | Describes one or more of the your NAT gateways.
--   
--   This operation returns paginated results.
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>tag</tt>
--   :<i>key</i> =<i>value</i> - The key<i>value combination of a tag
--   assigned to the resource. Specify the key of the tag in the filter
--   name and the value of the tag in the filter value. For example, for
--   the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter name
--   and <tt>X</tt> for the filter value. * <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 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>tag</tt>
--   :<i>key</i> =<i>value</i> - The key<i>value combination of a tag
--   assigned to the resource. Specify the key of the tag in the filter
--   name and the value of the tag in the filter value. For example, for
--   the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter name
--   and <tt>X</tt> for the filter value. * <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 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeNatGateways.DescribeNatGatewaysResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeMovingAddresses.DescribeMovingAddressesResponse
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


-- | Describes one or more launch templates.
module Network.AWS.EC2.DescribeLaunchTemplates

-- | Creates a value of <a>DescribeLaunchTemplates</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dltsFilters</a> - One or more filters. * <tt>create-time</tt> -
--   The time the launch template was created. *
--   <tt>launch-template-name</tt> - The name of the launch template. *
--   <tt>tag</tt> :<i>key</i> =<i>value</i> - The key<i>value combination
--   of a tag assigned to the resource. Specify the key of the tag in the
--   filter name and the value of the tag in the filter value. For example,
--   for the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter
--   name and <tt>X</tt> for the filter value. * <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 the tag's key). If you want to
--   list only resources where Purpose is X, see the <tt>tag</tt>
--   :</i>key<i> =</i>value/ filter.</li>
--   <li><a>dltsNextToken</a> - The token to request the next page of
--   results.</li>
--   <li><a>dltsLaunchTemplateIds</a> - One or more launch template
--   IDs.</li>
--   <li><a>dltsDryRun</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>dltsMaxResults</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.</li>
--   <li><a>dltsLaunchTemplateNames</a> - One or more launch template
--   names.</li>
--   </ul>
describeLaunchTemplates :: DescribeLaunchTemplates

-- | <i>See:</i> <a>describeLaunchTemplates</a> smart constructor.
data DescribeLaunchTemplates

-- | One or more filters. * <tt>create-time</tt> - The time the launch
--   template was created. * <tt>launch-template-name</tt> - The name of
--   the launch template. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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 the tag's key). If you want to list only resources
--   where Purpose is X, see the <tt>tag</tt> :</i>key<i> =</i>value/
--   filter.
dltsFilters :: Lens' DescribeLaunchTemplates [Filter]

-- | The token to request the next page of results.
dltsNextToken :: Lens' DescribeLaunchTemplates (Maybe Text)

-- | One or more launch template IDs.
dltsLaunchTemplateIds :: Lens' DescribeLaunchTemplates [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> .
dltsDryRun :: Lens' DescribeLaunchTemplates (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.
dltsMaxResults :: Lens' DescribeLaunchTemplates (Maybe Int)

-- | One or more launch template names.
dltsLaunchTemplateNames :: Lens' DescribeLaunchTemplates [Text]

-- | Creates a value of <a>DescribeLaunchTemplatesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dltsrsLaunchTemplates</a> - Information about the launch
--   templates.</li>
--   <li><a>dltsrsNextToken</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>dltsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeLaunchTemplatesResponse :: Int -> DescribeLaunchTemplatesResponse

-- | <i>See:</i> <a>describeLaunchTemplatesResponse</a> smart constructor.
data DescribeLaunchTemplatesResponse

-- | Information about the launch templates.
dltsrsLaunchTemplates :: Lens' DescribeLaunchTemplatesResponse [LaunchTemplate]

-- | 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.
dltsrsNextToken :: Lens' DescribeLaunchTemplatesResponse (Maybe Text)

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


-- | Describes one or more versions of a specified launch template. You can
--   describe all versions, individual versions, or a range of versions.
module Network.AWS.EC2.DescribeLaunchTemplateVersions

-- | Creates a value of <a>DescribeLaunchTemplateVersions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dltvsLaunchTemplateName</a> - The name of the launch template.
--   You must specify either the launch template ID or launch template name
--   in the request.</li>
--   <li><a>dltvsLaunchTemplateId</a> - The ID of the launch template. You
--   must specify either the launch template ID or launch template name in
--   the request.</li>
--   <li><a>dltvsMinVersion</a> - The version number after which to
--   describe launch template versions.</li>
--   <li><a>dltvsFilters</a> - One or more filters. * <tt>create-time</tt>
--   - The time the launch template version was created. *
--   <tt>ebs-optimized</tt> - A boolean that indicates whether the instance
--   is optimized for Amazon EBS I/O. * <tt>iam-instance-profile</tt> - The
--   ARN of the IAM instance profile. * <tt>image-id</tt> - The ID of the
--   AMI. * <tt>instance-type</tt> - The instance type. *
--   <tt>is-default-version</tt> - A boolean that indicates whether the
--   launch template version is the default version. * <tt>kernel-id</tt> -
--   The kernel ID. * <tt>ram-disk-id</tt> - The RAM disk ID.</li>
--   <li><a>dltvsMaxVersion</a> - The version number up to which to
--   describe launch template versions.</li>
--   <li><a>dltvsVersions</a> - One or more versions of the launch
--   template.</li>
--   <li><a>dltvsNextToken</a> - The token to request the next page of
--   results.</li>
--   <li><a>dltvsDryRun</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>dltvsMaxResults</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.</li>
--   </ul>
describeLaunchTemplateVersions :: DescribeLaunchTemplateVersions

-- | <i>See:</i> <a>describeLaunchTemplateVersions</a> smart constructor.
data DescribeLaunchTemplateVersions

-- | The name of the launch template. You must specify either the launch
--   template ID or launch template name in the request.
dltvsLaunchTemplateName :: Lens' DescribeLaunchTemplateVersions (Maybe Text)

-- | The ID of the launch template. You must specify either the launch
--   template ID or launch template name in the request.
dltvsLaunchTemplateId :: Lens' DescribeLaunchTemplateVersions (Maybe Text)

-- | The version number after which to describe launch template versions.
dltvsMinVersion :: Lens' DescribeLaunchTemplateVersions (Maybe Text)

-- | One or more filters. * <tt>create-time</tt> - The time the launch
--   template version was created. * <tt>ebs-optimized</tt> - A boolean
--   that indicates whether the instance is optimized for Amazon EBS I/O. *
--   <tt>iam-instance-profile</tt> - The ARN of the IAM instance profile. *
--   <tt>image-id</tt> - The ID of the AMI. * <tt>instance-type</tt> - The
--   instance type. * <tt>is-default-version</tt> - A boolean that
--   indicates whether the launch template version is the default version.
--   * <tt>kernel-id</tt> - The kernel ID. * <tt>ram-disk-id</tt> - The RAM
--   disk ID.
dltvsFilters :: Lens' DescribeLaunchTemplateVersions [Filter]

-- | The version number up to which to describe launch template versions.
dltvsMaxVersion :: Lens' DescribeLaunchTemplateVersions (Maybe Text)

-- | One or more versions of the launch template.
dltvsVersions :: Lens' DescribeLaunchTemplateVersions [Text]

-- | The token to request the next page of results.
dltvsNextToken :: Lens' DescribeLaunchTemplateVersions (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> .
dltvsDryRun :: Lens' DescribeLaunchTemplateVersions (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.
dltvsMaxResults :: Lens' DescribeLaunchTemplateVersions (Maybe Int)

-- | Creates a value of <a>DescribeLaunchTemplateVersionsResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dltvrsNextToken</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>dltvrsLaunchTemplateVersions</a> - Information about the launch
--   template versions.</li>
--   <li><a>dltvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeLaunchTemplateVersionsResponse :: Int -> DescribeLaunchTemplateVersionsResponse

-- | <i>See:</i> <a>describeLaunchTemplateVersionsResponse</a> smart
--   constructor.
data DescribeLaunchTemplateVersionsResponse

-- | 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.
dltvrsNextToken :: Lens' DescribeLaunchTemplateVersionsResponse (Maybe Text)

-- | Information about the launch template versions.
dltvrsLaunchTemplateVersions :: Lens' DescribeLaunchTemplateVersionsResponse [LaunchTemplateVersion]

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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeKeyPairs.DescribeKeyPairsResponse
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


-- | 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. Specify the key of the tag in the
--   filter name and the value of the tag in the filter value. For example,
--   for the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter
--   name and <tt>X</tt> for the filter value. * <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. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeInternetGateways.DescribeInternetGatewaysResponse
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


-- | 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>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 specified
--   in the block device mapping (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.association.public-ip</tt> - The
--   address of the Elastic IP address (IPv4) bound to the network
--   interface. * <tt>network-interface.association.ip-owner-id</tt> - The
--   owner of the Elastic IP address (IPv4) associated with the network
--   interface. * <tt>network-interface.association.allocation-id</tt> -
--   The allocation ID returned when you allocated the Elastic IP address
--   (IPv4) for your network interface. *
--   <tt>network-interface.association.association-id</tt> - The
--   association ID returned when the network interface was associated with
--   an IPv4 address. * <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 that checking is enabled, and <tt>false</tt> means
--   that 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 get one
--   reservation ID. If you launch ten instances using the same launch
--   request, you also get one reservation ID. * <tt>root-device-name</tt>
--   - The device name of the root device volume (for example,
--   @</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>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 that 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. Specify the key of the
--   tag in the filter name and the value of the tag in the filter value.
--   For example, for the tag Purpose=X, specify <tt>tag:Purpose</tt> for
--   the filter name and <tt>X</tt> for the filter value. *
--   <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 the tag's key). 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>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 specified
--   in the block device mapping (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.association.public-ip</tt> - The
--   address of the Elastic IP address (IPv4) bound to the network
--   interface. * <tt>network-interface.association.ip-owner-id</tt> - The
--   owner of the Elastic IP address (IPv4) associated with the network
--   interface. * <tt>network-interface.association.allocation-id</tt> -
--   The allocation ID returned when you allocated the Elastic IP address
--   (IPv4) for your network interface. *
--   <tt>network-interface.association.association-id</tt> - The
--   association ID returned when the network interface was associated with
--   an IPv4 address. * <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 that checking is enabled, and <tt>false</tt> means
--   that 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 get one
--   reservation ID. If you launch ten instances using the same launch
--   request, you also get one reservation ID. * <tt>root-device-name</tt>
--   - The device name of the root device volume (for example,
--   @</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>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 that 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. Specify the key of the
--   tag in the filter name and the value of the tag in the filter value.
--   For example, for the tag Purpose=X, specify <tt>tag:Purpose</tt> for
--   the filter name and <tt>X</tt> for the filter value. *
--   <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 the tag's key). 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.Types.AWSRequest Network.AWS.EC2.DescribeInstances.DescribeInstances
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeInstances.DescribeInstancesResponse
instance Network.AWS.Pager.AWSPager 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


-- | Describes the status of one or more instances. By default, only
--   running instances are described, unless you specifically indicate to
--   return the status of all instances.
--   
--   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.Types.AWSRequest Network.AWS.EC2.DescribeInstanceStatus.DescribeInstanceStatus
instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeInstanceStatus.DescribeInstanceStatusResponse
instance Network.AWS.Pager.AWSPager 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


-- | Describes the credit option for CPU usage of one or more of your T2
--   instances. The credit options are <tt>standard</tt> and
--   <tt>unlimited</tt> .
--   
--   If you do not specify an instance ID, Amazon EC2 returns only the T2
--   instances with the <tt>unlimited</tt> credit option. If you specify
--   one or more instance IDs, Amazon EC2 returns the credit option
--   (<tt>standard</tt> or <tt>unlimited</tt> ) of those instances. If you
--   specify an instance ID that is not valid, such as an instance that is
--   not a T2 instance, an error is returned.
--   
--   Recently terminated instances might appear in the returned results.
--   This interval is usually less than one hour.
--   
--   If an Availability Zone is experiencing a service disruption and you
--   specify instance IDs in the affected zone, or do not specify any
--   instance IDs at all, the call fails. If you specify only instance IDs
--   in an unaffected zone, the call works normally.
--   
--   For more information, see <a>T2 Instances</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> .
module Network.AWS.EC2.DescribeInstanceCreditSpecifications

-- | Creates a value of <a>DescribeInstanceCreditSpecifications</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dicsFilters</a> - One or more filters. * <tt>instance-id</tt> -
--   The ID of the instance.</li>
--   <li><a>dicsNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   <li><a>dicsInstanceIds</a> - One or more instance IDs. Default:
--   Describes all your instances. Constraints: Maximum 1000 explicitly
--   specified instance IDs.</li>
--   <li><a>dicsDryRun</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>dicsMaxResults</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>
describeInstanceCreditSpecifications :: DescribeInstanceCreditSpecifications

-- | <i>See:</i> <a>describeInstanceCreditSpecifications</a> smart
--   constructor.
data DescribeInstanceCreditSpecifications

-- | One or more filters. * <tt>instance-id</tt> - The ID of the instance.
dicsFilters :: Lens' DescribeInstanceCreditSpecifications [Filter]

-- | The token to retrieve the next page of results.
dicsNextToken :: Lens' DescribeInstanceCreditSpecifications (Maybe Text)

-- | One or more instance IDs. Default: Describes all your instances.
--   Constraints: Maximum 1000 explicitly specified instance IDs.
dicsInstanceIds :: Lens' DescribeInstanceCreditSpecifications [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> .
dicsDryRun :: Lens' DescribeInstanceCreditSpecifications (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.
dicsMaxResults :: Lens' DescribeInstanceCreditSpecifications (Maybe Int)

-- | Creates a value of <a>DescribeInstanceCreditSpecificationsResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dicsrsNextToken</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>dicsrsInstanceCreditSpecifications</a> - Information about the
--   credit option for CPU usage of an instance.</li>
--   <li><a>dicsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeInstanceCreditSpecificationsResponse :: Int -> DescribeInstanceCreditSpecificationsResponse

-- | <i>See:</i> <a>describeInstanceCreditSpecificationsResponse</a> smart
--   constructor.
data DescribeInstanceCreditSpecificationsResponse

-- | 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.
dicsrsNextToken :: Lens' DescribeInstanceCreditSpecificationsResponse (Maybe Text)

-- | Information about the credit option for CPU usage of an instance.
dicsrsInstanceCreditSpecifications :: Lens' DescribeInstanceCreditSpecificationsResponse [InstanceCreditSpecification]

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


-- | 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>diaAttribute</a> - The instance attribute. Note: The
--   <tt>enaSupport</tt> attribute is not supported at this time.</li>
--   <li><a>diaInstanceId</a> - The ID of the instance.</li>
--   </ul>
describeInstanceAttribute :: InstanceAttributeName -> Text -> 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 instance attribute. Note: The <tt>enaSupport</tt> attribute is not
--   supported at this time.
diaAttribute :: Lens' DescribeInstanceAttribute InstanceAttributeName

-- | The ID of the instance.
diaInstanceId :: Lens' DescribeInstanceAttribute Text

-- | 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>desrsInstanceId</a> - The ID of the instance.</li>
--   <li><a>desrsGroups</a> - The security groups associated with the
--   instance.</li>
--   <li><a>desrsEnaSupport</a> - Indicates whether enhanced networking
--   with ENA is enabled.</li>
--   <li><a>desrsSourceDestCheck</a> - Indicates whether source/destination
--   checking is enabled. A value of <tt>true</tt> means that checking is
--   enabled, and <tt>false</tt> means that checking is disabled. This
--   value must be <tt>false</tt> for a NAT instance to perform NAT.</li>
--   <li><a>desrsDisableAPITermination</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>desrsRAMDiskId</a> - The RAM disk ID.</li>
--   <li><a>desrsKernelId</a> - The kernel ID.</li>
--   <li><a>desrsRootDeviceName</a> - The device name of the root device
--   volume (for example, <tt><i>dev</i>sda1</tt> ).</li>
--   <li><a>desrsInstanceType</a> - The instance type.</li>
--   <li><a>desrsSRIOVNetSupport</a> - Indicates whether enhanced
--   networking with the Intel 82599 Virtual Function interface is
--   enabled.</li>
--   <li><a>desrsEBSOptimized</a> - Indicates whether the instance is
--   optimized for Amazon EBS I/O.</li>
--   <li><a>desrsUserData</a> - The user data.</li>
--   <li><a>desrsInstanceInitiatedShutdownBehavior</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>desrsProductCodes</a> - A list of product codes.</li>
--   <li><a>desrsBlockDeviceMappings</a> - The block device mapping of the
--   instance.</li>
--   <li><a>desrsResponseStatus</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.
desrsInstanceId :: Lens' DescribeInstanceAttributeResponse (Maybe Text)

-- | The security groups associated with the instance.
desrsGroups :: Lens' DescribeInstanceAttributeResponse [GroupIdentifier]

-- | Indicates whether enhanced networking with ENA is enabled.
desrsEnaSupport :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)

-- | Indicates whether source/destination checking is enabled. A value of
--   <tt>true</tt> means that checking is enabled, and <tt>false</tt> means
--   that checking is disabled. This value must be <tt>false</tt> for a NAT
--   instance to perform NAT.
desrsSourceDestCheck :: 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.
desrsDisableAPITermination :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)

-- | The RAM disk ID.
desrsRAMDiskId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)

-- | The kernel ID.
desrsKernelId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)

-- | The device name of the root device volume (for example,
--   <tt><i>dev</i>sda1</tt> ).
desrsRootDeviceName :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)

-- | The instance type.
desrsInstanceType :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)

-- | Indicates whether enhanced networking with the Intel 82599 Virtual
--   Function interface is enabled.
desrsSRIOVNetSupport :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)

-- | Indicates whether the instance is optimized for Amazon EBS I/O.
desrsEBSOptimized :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)

-- | The user data.
desrsUserData :: 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).
desrsInstanceInitiatedShutdownBehavior :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)

-- | A list of product codes.
desrsProductCodes :: Lens' DescribeInstanceAttributeResponse [ProductCode]

-- | The block device mapping of the instance.
desrsBlockDeviceMappings :: Lens' DescribeInstanceAttributeResponse [InstanceBlockDeviceMapping]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
desrsResponseStatus :: 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeInstanceAttribute.DescribeInstanceAttributeResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeImportSnapshotTasks.DescribeImportSnapshotTasksResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeImportImageTasks.DescribeImportImageTasksResponse
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


-- | 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 specified in the block device mapping (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</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 device 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>sriov-net-support</tt> - A value of
--   <tt>simple</tt> indicates that enhanced networking with the Intel
--   82599 VF interface is enabled. * <tt>tag</tt> :<i>key</i>
--   =<i>value</i> - The key<i>value combination of a tag assigned to the
--   resource. Specify the key of the tag in the filter name and the value
--   of the tag in the filter value. For example, for the tag Purpose=X,
--   specify <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for
--   the filter value. * <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 specified in the block device mapping (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</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 device 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>sriov-net-support</tt> - A value of
--   <tt>simple</tt> indicates that enhanced networking with the Intel
--   82599 VF interface is enabled. * <tt>tag</tt> :<i>key</i>
--   =<i>value</i> - The key<i>value combination of a tag assigned to the
--   resource. Specify the key of the tag in the filter name and the value
--   of the tag in the filter value. For example, for the tag Purpose=X,
--   specify <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for
--   the filter value. * <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>diirsImages</a> - Information about one or more images.</li>
--   <li><a>diirsResponseStatus</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.
diirsImages :: Lens' DescribeImagesResponse [Image]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
diirsResponseStatus :: 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeImages.DescribeImagesResponse
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


-- | 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>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>
--   <li><a>diaiImageId</a> - The ID of the AMI.</li>
--   </ul>
describeImageAttribute :: ImageAttributeName -> Text -> 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 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

-- | The ID of the AMI.
diaiImageId :: Lens' DescribeImageAttribute Text

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeImageAttribute.DescribeImageAttributeResponse
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


-- | 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>bundle</tt> |
--   <tt>conversion-task</tt> | <tt>customer-gateway</tt> |
--   <tt>dhcp-options</tt> | <tt>elastic-ip-allocation</tt> |
--   <tt>elastic-ip-association</tt> | <tt>export-task</tt> |
--   <tt>flow-log</tt> | <tt>image</tt> | <tt>import-task</tt> |
--   <tt>instance</tt> | <tt>internet-gateway</tt> | <tt>network-acl</tt> |
--   <tt>network-acl-association</tt> | <tt>network-interface</tt> |
--   <tt>network-interface-attachment</tt> | <tt>prefix-list</tt> |
--   <tt>reservation</tt> | <tt>route-table</tt> |
--   <tt>route-table-association</tt> | <tt>security-group</tt> |
--   <tt>snapshot</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>volume</tt> |
--   <tt>vpc</tt> | <tt>vpc-cidr-block-association</tt> |
--   <tt>vpc-endpoint</tt> | <tt>vpc-peering-connection</tt> |
--   <tt>vpn-connection</tt> | <tt>vpn-gateway</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>bundle</tt> |
--   <tt>conversion-task</tt> | <tt>customer-gateway</tt> |
--   <tt>dhcp-options</tt> | <tt>elastic-ip-allocation</tt> |
--   <tt>elastic-ip-association</tt> | <tt>export-task</tt> |
--   <tt>flow-log</tt> | <tt>image</tt> | <tt>import-task</tt> |
--   <tt>instance</tt> | <tt>internet-gateway</tt> | <tt>network-acl</tt> |
--   <tt>network-acl-association</tt> | <tt>network-interface</tt> |
--   <tt>network-interface-attachment</tt> | <tt>prefix-list</tt> |
--   <tt>reservation</tt> | <tt>route-table</tt> |
--   <tt>route-table-association</tt> | <tt>security-group</tt> |
--   <tt>snapshot</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>volume</tt> |
--   <tt>vpc</tt> | <tt>vpc-cidr-block-association</tt> |
--   <tt>vpc-endpoint</tt> | <tt>vpc-peering-connection</tt> |
--   <tt>vpn-connection</tt> | <tt>vpn-gateway</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>bundle</tt> | <tt>conversion-task</tt> |
--   <tt>customer-gateway</tt> | <tt>dhcp-options</tt> |
--   <tt>elastic-ip-allocation</tt> | <tt>elastic-ip-association</tt> |
--   <tt>export-task</tt> | <tt>flow-log</tt> | <tt>image</tt> |
--   <tt>import-task</tt> | <tt>instance</tt> | <tt>internet-gateway</tt> |
--   <tt>network-acl</tt> | <tt>network-acl-association</tt> |
--   <tt>network-interface</tt> | <tt>network-interface-attachment</tt> |
--   <tt>prefix-list</tt> | <tt>reservation</tt> | <tt>route-table</tt> |
--   <tt>route-table-association</tt> | <tt>security-group</tt> |
--   <tt>snapshot</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>volume</tt> |
--   <tt>vpc</tt> | <tt>vpc-cidr-block-association</tt> |
--   <tt>vpc-endpoint</tt> | <tt>vpc-peering-connection</tt> |
--   <tt>vpn-connection</tt> | <tt>vpn-gateway</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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeIdentityIdFormat.DescribeIdentityIdFormatResponse
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


-- | 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>bundle</tt> |
--   <tt>conversion-task</tt> | <tt>customer-gateway</tt> |
--   <tt>dhcp-options</tt> | <tt>elastic-ip-allocation</tt> |
--   <tt>elastic-ip-association</tt> | <tt>export-task</tt> |
--   <tt>flow-log</tt> | <tt>image</tt> | <tt>import-task</tt> |
--   <tt>instance</tt> | <tt>internet-gateway</tt> | <tt>network-acl</tt> |
--   <tt>network-acl-association</tt> | <tt>network-interface</tt> |
--   <tt>network-interface-attachment</tt> | <tt>prefix-list</tt> |
--   <tt>reservation</tt> | <tt>route-table</tt> |
--   <tt>route-table-association</tt> | <tt>security-group</tt> |
--   <tt>snapshot</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>volume</tt> |
--   <tt>vpc</tt> | <tt>vpc-cidr-block-association</tt> |
--   <tt>vpc-endpoint</tt> | <tt>vpc-peering-connection</tt> |
--   <tt>vpn-connection</tt> | <tt>vpn-gateway</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>bundle</tt> |
--   <tt>conversion-task</tt> | <tt>customer-gateway</tt> |
--   <tt>dhcp-options</tt> | <tt>elastic-ip-allocation</tt> |
--   <tt>elastic-ip-association</tt> | <tt>export-task</tt> |
--   <tt>flow-log</tt> | <tt>image</tt> | <tt>import-task</tt> |
--   <tt>instance</tt> | <tt>internet-gateway</tt> | <tt>network-acl</tt> |
--   <tt>network-acl-association</tt> | <tt>network-interface</tt> |
--   <tt>network-interface-attachment</tt> | <tt>prefix-list</tt> |
--   <tt>reservation</tt> | <tt>route-table</tt> |
--   <tt>route-table-association</tt> | <tt>security-group</tt> |
--   <tt>snapshot</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>volume</tt> |
--   <tt>vpc</tt> | <tt>vpc-cidr-block-association</tt> |
--   <tt>vpc-endpoint</tt> | <tt>vpc-peering-connection</tt> |
--   <tt>vpn-connection</tt> | <tt>vpn-gateway</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>bundle</tt> | <tt>conversion-task</tt> |
--   <tt>customer-gateway</tt> | <tt>dhcp-options</tt> |
--   <tt>elastic-ip-allocation</tt> | <tt>elastic-ip-association</tt> |
--   <tt>export-task</tt> | <tt>flow-log</tt> | <tt>image</tt> |
--   <tt>import-task</tt> | <tt>instance</tt> | <tt>internet-gateway</tt> |
--   <tt>network-acl</tt> | <tt>network-acl-association</tt> |
--   <tt>network-interface</tt> | <tt>network-interface-attachment</tt> |
--   <tt>prefix-list</tt> | <tt>reservation</tt> | <tt>route-table</tt> |
--   <tt>route-table-association</tt> | <tt>security-group</tt> |
--   <tt>snapshot</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>volume</tt> |
--   <tt>vpc</tt> | <tt>vpc-cidr-block-association</tt> |
--   <tt>vpc-endpoint</tt> | <tt>vpc-peering-connection</tt> |
--   <tt>vpn-connection</tt> | <tt>vpn-gateway</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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeIdFormat.DescribeIdFormatResponse
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


-- | Describes your IAM instance profile associations.
--   
--   This operation returns paginated results.
module Network.AWS.EC2.DescribeIAMInstanceProfileAssociations

-- | Creates a value of <a>DescribeIAMInstanceProfileAssociations</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diapaFilters</a> - One or more filters. * <tt>instance-id</tt>
--   - The ID of the instance. * <tt>state</tt> - The state of the
--   association (<tt>associating</tt> | <tt>associated</tt> |
--   <tt>disassociating</tt> | <tt>disassociated</tt> ).</li>
--   <li><a>diapaNextToken</a> - The token to request the next page of
--   results.</li>
--   <li><a>diapaAssociationIds</a> - One or more IAM instance profile
--   associations.</li>
--   <li><a>diapaMaxResults</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>
describeIAMInstanceProfileAssociations :: DescribeIAMInstanceProfileAssociations

-- | <i>See:</i> <a>describeIAMInstanceProfileAssociations</a> smart
--   constructor.
data DescribeIAMInstanceProfileAssociations

-- | One or more filters. * <tt>instance-id</tt> - The ID of the instance.
--   * <tt>state</tt> - The state of the association (<tt>associating</tt>
--   | <tt>associated</tt> | <tt>disassociating</tt> |
--   <tt>disassociated</tt> ).
diapaFilters :: Lens' DescribeIAMInstanceProfileAssociations [Filter]

-- | The token to request the next page of results.
diapaNextToken :: Lens' DescribeIAMInstanceProfileAssociations (Maybe Text)

-- | One or more IAM instance profile associations.
diapaAssociationIds :: Lens' DescribeIAMInstanceProfileAssociations [Text]

-- | 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.
diapaMaxResults :: Lens' DescribeIAMInstanceProfileAssociations (Maybe Natural)

-- | Creates a value of
--   <a>DescribeIAMInstanceProfileAssociationsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diaparsIAMInstanceProfileAssociations</a> - Information about
--   one or more IAM instance profile associations.</li>
--   <li><a>diaparsNextToken</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>diaparsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeIAMInstanceProfileAssociationsResponse :: Int -> DescribeIAMInstanceProfileAssociationsResponse

-- | <i>See:</i> <a>describeIAMInstanceProfileAssociationsResponse</a>
--   smart constructor.
data DescribeIAMInstanceProfileAssociationsResponse

-- | Information about one or more IAM instance profile associations.
diaparsIAMInstanceProfileAssociations :: Lens' DescribeIAMInstanceProfileAssociationsResponse [IAMInstanceProfileAssociation]

-- | 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.
diaparsNextToken :: Lens' DescribeIAMInstanceProfileAssociationsResponse (Maybe Text)

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


-- | 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>auto-placement</tt> -
--   Whether auto-placement is enabled or disabled (<tt>on</tt> |
--   <tt>off</tt> ). * <tt>availability-zone</tt> - The Availability Zone
--   of the host. * <tt>client-token</tt> - The idempotency token you
--   provided when you allocated the host. * <tt>host-reservation-id</tt> -
--   The ID of the reservation assigned to this host. *
--   <tt>instance-type</tt> - The instance type size that the Dedicated
--   Host is configured to support. * <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> ).</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>auto-placement</tt> - Whether
--   auto-placement is enabled or disabled (<tt>on</tt> | <tt>off</tt> ). *
--   <tt>availability-zone</tt> - The Availability Zone of the host. *
--   <tt>client-token</tt> - The idempotency token you provided when you
--   allocated the host. * <tt>host-reservation-id</tt> - The ID of the
--   reservation assigned to this host. * <tt>instance-type</tt> - The
--   instance type size that the Dedicated Host is configured to support. *
--   <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> ).
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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeHosts.DescribeHostsResponse
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


-- | 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>NoUpfront</tt> | <tt>PartialUpfront</tt> |
--   <tt>AllUpfront</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>NoUpfront</tt> | <tt>PartialUpfront</tt> | <tt>AllUpfront</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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeHostReservations.DescribeHostReservationsResponse
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


-- | 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>NoUpfront</tt> | <tt>PartialUpfront</tt> | <tt>AllUpfront</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>NoUpfront</tt> | <tt>PartialUpfront</tt> |
--   <tt>AllUpfront</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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeHostReservationOfferings.DescribeHostReservationOfferingsResponse
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


-- | Describes one or more available Amazon FPGA Images (AFIs). These
--   include public AFIs, private AFIs that you own, and AFIs owned by
--   other AWS accounts for which you have load permissions.
module Network.AWS.EC2.DescribeFpgaImages

-- | Creates a value of <a>DescribeFpgaImages</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfifOwners</a> - Filters the AFI by 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> ).</li>
--   <li><a>dfifFilters</a> - One or more filters. * <tt>create-time</tt> -
--   The creation time of the AFI. * <tt>fpga-image-id</tt> - The FPGA
--   image identifier (AFI ID). * <tt>fpga-image-global-id</tt> - The
--   global FPGA image identifier (AGFI ID). * <tt>name</tt> - The name of
--   the AFI. * <tt>owner-id</tt> - The AWS account ID of the AFI owner. *
--   <tt>product-code</tt> - The product code. * <tt>shell-version</tt> -
--   The version of the AWS Shell that was used to create the bitstream. *
--   <tt>state</tt> - The state of the AFI (<tt>pending</tt> |
--   <tt>failed</tt> | <tt>available</tt> | <tt>unavailable</tt> ). *
--   <tt>tag</tt> :<i>key</i> =<i>value</i> - The key<i>value combination
--   of a tag assigned to the resource. Specify the key of the tag in the
--   filter name and the value of the tag in the filter value. For example,
--   for the tag Purpose=X, specify <tt>tag:Purpose</tt> for the filter
--   name and <tt>X</tt> for the filter value. * <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>update-time</tt> - The time of the most
--   recent update.</li>
--   <li><a>dfifNextToken</a> - The token to retrieve the next page of
--   results.</li>
--   <li><a>dfifDryRun</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>dfifMaxResults</a> - The maximum number of results to return in
--   a single call.</li>
--   <li><a>dfifFpgaImageIds</a> - One or more AFI IDs.</li>
--   </ul>
describeFpgaImages :: DescribeFpgaImages

-- | <i>See:</i> <a>describeFpgaImages</a> smart constructor.
data DescribeFpgaImages

-- | Filters the AFI by 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> ).
dfifOwners :: Lens' DescribeFpgaImages [Text]

-- | One or more filters. * <tt>create-time</tt> - The creation time of the
--   AFI. * <tt>fpga-image-id</tt> - The FPGA image identifier (AFI ID). *
--   <tt>fpga-image-global-id</tt> - The global FPGA image identifier (AGFI
--   ID). * <tt>name</tt> - The name of the AFI. * <tt>owner-id</tt> - The
--   AWS account ID of the AFI owner. * <tt>product-code</tt> - The product
--   code. * <tt>shell-version</tt> - The version of the AWS Shell that was
--   used to create the bitstream. * <tt>state</tt> - The state of the AFI
--   (<tt>pending</tt> | <tt>failed</tt> | <tt>available</tt> |
--   <tt>unavailable</tt> ). * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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>update-time</tt> - The time of the most recent update.
dfifFilters :: Lens' DescribeFpgaImages [Filter]

-- | The token to retrieve the next page of results.
dfifNextToken :: Lens' DescribeFpgaImages (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> .
dfifDryRun :: Lens' DescribeFpgaImages (Maybe Bool)

-- | The maximum number of results to return in a single call.
dfifMaxResults :: Lens' DescribeFpgaImages (Maybe Natural)

-- | One or more AFI IDs.
dfifFpgaImageIds :: Lens' DescribeFpgaImages [Text]

-- | Creates a value of <a>DescribeFpgaImagesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfirsFpgaImages</a> - Information about one or more FPGA
--   images.</li>
--   <li><a>dfirsNextToken</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>dfirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeFpgaImagesResponse :: Int -> DescribeFpgaImagesResponse

-- | <i>See:</i> <a>describeFpgaImagesResponse</a> smart constructor.
data DescribeFpgaImagesResponse

-- | Information about one or more FPGA images.
dfirsFpgaImages :: Lens' DescribeFpgaImagesResponse [FpgaImage]

-- | 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.
dfirsNextToken :: Lens' DescribeFpgaImagesResponse (Maybe Text)

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


-- | Describes the specified attribute of the specified Amazon FPGA Image
--   (AFI).
module Network.AWS.EC2.DescribeFpgaImageAttribute

-- | Creates a value of <a>DescribeFpgaImageAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfiaDryRun</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>dfiaFpgaImageId</a> - The ID of the AFI.</li>
--   <li><a>dfiaAttribute</a> - The AFI attribute.</li>
--   </ul>
describeFpgaImageAttribute :: Text -> FpgaImageAttributeName -> DescribeFpgaImageAttribute

-- | <i>See:</i> <a>describeFpgaImageAttribute</a> smart constructor.
data DescribeFpgaImageAttribute

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dfiaDryRun :: Lens' DescribeFpgaImageAttribute (Maybe Bool)

-- | The ID of the AFI.
dfiaFpgaImageId :: Lens' DescribeFpgaImageAttribute Text

-- | The AFI attribute.
dfiaAttribute :: Lens' DescribeFpgaImageAttribute FpgaImageAttributeName

-- | Creates a value of <a>DescribeFpgaImageAttributeResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfiarsFpgaImageAttribute</a> - Information about the
--   attribute.</li>
--   <li><a>dfiarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeFpgaImageAttributeResponse :: Int -> DescribeFpgaImageAttributeResponse

-- | <i>See:</i> <a>describeFpgaImageAttributeResponse</a> smart
--   constructor.
data DescribeFpgaImageAttributeResponse

-- | Information about the attribute.
dfiarsFpgaImageAttribute :: Lens' DescribeFpgaImageAttributeResponse (Maybe FpgaImageAttribute)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeFlowLogs.DescribeFlowLogsResponse
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


-- | Describes the specified EC2 Fleet.
module Network.AWS.EC2.DescribeFleets

-- | Creates a value of <a>DescribeFleets</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfsFilters</a> - One or more filters.</li>
--   <li><a>dfsNextToken</a> - The token for the next set of results.</li>
--   <li><a>dfsFleetIds</a> - The ID of the EC2 Fleets.</li>
--   <li><a>dfsDryRun</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>dfsMaxResults</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>
describeFleets :: DescribeFleets

-- | <i>See:</i> <a>describeFleets</a> smart constructor.
data DescribeFleets

-- | One or more filters.
dfsFilters :: Lens' DescribeFleets [Filter]

-- | The token for the next set of results.
dfsNextToken :: Lens' DescribeFleets (Maybe Text)

-- | The ID of the EC2 Fleets.
dfsFleetIds :: Lens' DescribeFleets [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> .
dfsDryRun :: Lens' DescribeFleets (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.
dfsMaxResults :: Lens' DescribeFleets (Maybe Int)

-- | Creates a value of <a>DescribeFleetsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfsrsNextToken</a> - The token for the next set of
--   results.</li>
--   <li><a>dfsrsFleets</a> - The EC2 Fleets.</li>
--   <li><a>dfsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeFleetsResponse :: Int -> DescribeFleetsResponse

-- | <i>See:</i> <a>describeFleetsResponse</a> smart constructor.
data DescribeFleetsResponse

-- | The token for the next set of results.
dfsrsNextToken :: Lens' DescribeFleetsResponse (Maybe Text)

-- | The EC2 Fleets.
dfsrsFleets :: Lens' DescribeFleetsResponse [FleetData]

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


-- | Describes the running instances for the specified EC2 Fleet.
module Network.AWS.EC2.DescribeFleetInstances

-- | Creates a value of <a>DescribeFleetInstances</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfisFilters</a> - One or more filters.</li>
--   <li><a>dfisNextToken</a> - The token for the next set of results.</li>
--   <li><a>dfisDryRun</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>dfisMaxResults</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>dfisFleetId</a> - The ID of the EC2 Fleet.</li>
--   </ul>
describeFleetInstances :: Text -> DescribeFleetInstances

-- | <i>See:</i> <a>describeFleetInstances</a> smart constructor.
data DescribeFleetInstances

-- | One or more filters.
dfisFilters :: Lens' DescribeFleetInstances [Filter]

-- | The token for the next set of results.
dfisNextToken :: Lens' DescribeFleetInstances (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> .
dfisDryRun :: Lens' DescribeFleetInstances (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.
dfisMaxResults :: Lens' DescribeFleetInstances (Maybe Int)

-- | The ID of the EC2 Fleet.
dfisFleetId :: Lens' DescribeFleetInstances Text

-- | Creates a value of <a>DescribeFleetInstancesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsNextToken</a> - The token for the next set of results.</li>
--   <li><a>drsFleetId</a> - The ID of the EC2 Fleet.</li>
--   <li><a>drsActiveInstances</a> - The running instances. This list is
--   refreshed periodically and might be out of date.</li>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeFleetInstancesResponse :: Int -> DescribeFleetInstancesResponse

-- | <i>See:</i> <a>describeFleetInstancesResponse</a> smart constructor.
data DescribeFleetInstancesResponse

-- | The token for the next set of results.
drsNextToken :: Lens' DescribeFleetInstancesResponse (Maybe Text)

-- | The ID of the EC2 Fleet.
drsFleetId :: Lens' DescribeFleetInstancesResponse (Maybe Text)

-- | The running instances. This list is refreshed periodically and might
--   be out of date.
drsActiveInstances :: Lens' DescribeFleetInstancesResponse [ActiveInstance]

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


-- | Describes the events for the specified EC2 Fleet during the specified
--   time.
module Network.AWS.EC2.DescribeFleetHistory

-- | Creates a value of <a>DescribeFleetHistory</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfhNextToken</a> - The token for the next set of results.</li>
--   <li><a>dfhEventType</a> - The type of events to describe. By default,
--   all events are described.</li>
--   <li><a>dfhDryRun</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>dfhMaxResults</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>dfhFleetId</a> - The ID of the EC2 Fleet.</li>
--   <li><a>dfhStartTime</a> - The start 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>
describeFleetHistory :: Text -> UTCTime -> DescribeFleetHistory

-- | <i>See:</i> <a>describeFleetHistory</a> smart constructor.
data DescribeFleetHistory

-- | The token for the next set of results.
dfhNextToken :: Lens' DescribeFleetHistory (Maybe Text)

-- | The type of events to describe. By default, all events are described.
dfhEventType :: Lens' DescribeFleetHistory (Maybe FleetEventType)

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dfhDryRun :: Lens' DescribeFleetHistory (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.
dfhMaxResults :: Lens' DescribeFleetHistory (Maybe Int)

-- | The ID of the EC2 Fleet.
dfhFleetId :: Lens' DescribeFleetHistory Text

-- | The start 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).
dfhStartTime :: Lens' DescribeFleetHistory UTCTime

-- | Creates a value of <a>DescribeFleetHistoryResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfhrsStartTime</a> - The start 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>dfhrsLastEvaluatedTime</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>dfhrsNextToken</a> - The token for the next set of
--   results.</li>
--   <li><a>dfhrsHistoryRecords</a> - Information about the events in the
--   history of the EC2 Fleet.</li>
--   <li><a>dfhrsFleetId</a> - The ID of the EC Fleet.</li>
--   <li><a>dfhrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeFleetHistoryResponse :: Int -> DescribeFleetHistoryResponse

-- | <i>See:</i> <a>describeFleetHistoryResponse</a> smart constructor.
data DescribeFleetHistoryResponse

-- | The start 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).
dfhrsStartTime :: Lens' DescribeFleetHistoryResponse (Maybe 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.
dfhrsLastEvaluatedTime :: Lens' DescribeFleetHistoryResponse (Maybe UTCTime)

-- | The token for the next set of results.
dfhrsNextToken :: Lens' DescribeFleetHistoryResponse (Maybe Text)

-- | Information about the events in the history of the EC2 Fleet.
dfhrsHistoryRecords :: Lens' DescribeFleetHistoryResponse [HistoryRecordEntry]

-- | The ID of the EC Fleet.
dfhrsFleetId :: Lens' DescribeFleetHistoryResponse (Maybe Text)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeExportTasks.DescribeExportTasksResponse
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


-- | Describes the Elastic GPUs associated with your instances. For more
--   information about Elastic GPUs, see <a>Amazon EC2 Elastic GPUs</a> .
module Network.AWS.EC2.DescribeElasticGpus

-- | Creates a value of <a>DescribeElasticGpus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>degFilters</a> - One or more filters. *
--   <tt>availability-zone</tt> - The Availability Zone in which the
--   Elastic GPU resides. * <tt>elastic-gpu-health</tt> - The status of the
--   Elastic GPU (<tt>OK</tt> | <tt>IMPAIRED</tt> ). *
--   <tt>elastic-gpu-state</tt> - The state of the Elastic GPU
--   (<tt>ATTACHED</tt> ). * <tt>elastic-gpu-type</tt> - The type of
--   Elastic GPU; for example, <tt>eg1.medium</tt> . * <tt>instance-id</tt>
--   - The ID of the instance to which the Elastic GPU is associated.</li>
--   <li><a>degNextToken</a> - The token to request the next page of
--   results.</li>
--   <li><a>degDryRun</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>degMaxResults</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.</li>
--   <li><a>degElasticGpuIds</a> - One or more Elastic GPU IDs.</li>
--   </ul>
describeElasticGpus :: DescribeElasticGpus

-- | <i>See:</i> <a>describeElasticGpus</a> smart constructor.
data DescribeElasticGpus

-- | One or more filters. * <tt>availability-zone</tt> - The Availability
--   Zone in which the Elastic GPU resides. * <tt>elastic-gpu-health</tt> -
--   The status of the Elastic GPU (<tt>OK</tt> | <tt>IMPAIRED</tt> ). *
--   <tt>elastic-gpu-state</tt> - The state of the Elastic GPU
--   (<tt>ATTACHED</tt> ). * <tt>elastic-gpu-type</tt> - The type of
--   Elastic GPU; for example, <tt>eg1.medium</tt> . * <tt>instance-id</tt>
--   - The ID of the instance to which the Elastic GPU is associated.
degFilters :: Lens' DescribeElasticGpus [Filter]

-- | The token to request the next page of results.
degNextToken :: Lens' DescribeElasticGpus (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> .
degDryRun :: Lens' DescribeElasticGpus (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.
degMaxResults :: Lens' DescribeElasticGpus (Maybe Int)

-- | One or more Elastic GPU IDs.
degElasticGpuIds :: Lens' DescribeElasticGpus [Text]

-- | Creates a value of <a>DescribeElasticGpusResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>degrsElasticGpuSet</a> - Information about the Elastic
--   GPUs.</li>
--   <li><a>degrsNextToken</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>degrsMaxResults</a> - The total number of items to return. If
--   the total number of items available is more than the value specified
--   in max-items then a Next-Token will be provided in the output that you
--   can use to resume pagination.</li>
--   <li><a>degrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeElasticGpusResponse :: Int -> DescribeElasticGpusResponse

-- | <i>See:</i> <a>describeElasticGpusResponse</a> smart constructor.
data DescribeElasticGpusResponse

-- | Information about the Elastic GPUs.
degrsElasticGpuSet :: Lens' DescribeElasticGpusResponse [ElasticGpus]

-- | 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.
degrsNextToken :: Lens' DescribeElasticGpusResponse (Maybe Text)

-- | The total number of items to return. If the total number of items
--   available is more than the value specified in max-items then a
--   Next-Token will be provided in the output that you can use to resume
--   pagination.
degrsMaxResults :: Lens' DescribeElasticGpusResponse (Maybe Int)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeEgressOnlyInternetGateways.DescribeEgressOnlyInternetGatewaysResponse
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


-- | 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. Specify the key of the
--   tag in the filter name and the value of the tag in the filter value.
--   For example, for the tag Purpose=X, specify <tt>tag:Purpose</tt> for
--   the filter name and <tt>X</tt> for the filter value. *
--   <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. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeDHCPOptions.DescribeDHCPOptionsResponse
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


-- | Describes one or more of your VPN customer gateways.
--   
--   For more information about VPN customer gateways, see <a>AWS Managed
--   VPN Connections</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. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeCustomerGateways.DescribeCustomerGatewaysResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeConversionTasks.DescribeConversionTasksResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeClassicLinkInstances.DescribeClassicLinkInstancesResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeBundleTasks.DescribeBundleTasksResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeAvailabilityZones.DescribeAvailabilityZonesResponse
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


-- | Describes the longer ID format settings for all resource types in a
--   specific region. This request is useful for performing a quick audit
--   to determine whether a specific region is fully opted in for longer
--   IDs (17-character IDs).
--   
--   This request only returns information about resource types that
--   support longer IDs.
--   
--   The following resource types support longer IDs: <tt>bundle</tt> |
--   <tt>conversion-task</tt> | <tt>customer-gateway</tt> |
--   <tt>dhcp-options</tt> | <tt>elastic-ip-allocation</tt> |
--   <tt>elastic-ip-association</tt> | <tt>export-task</tt> |
--   <tt>flow-log</tt> | <tt>image</tt> | <tt>import-task</tt> |
--   <tt>instance</tt> | <tt>internet-gateway</tt> | <tt>network-acl</tt> |
--   <tt>network-acl-association</tt> | <tt>network-interface</tt> |
--   <tt>network-interface-attachment</tt> | <tt>prefix-list</tt> |
--   <tt>reservation</tt> | <tt>route-table</tt> |
--   <tt>route-table-association</tt> | <tt>security-group</tt> |
--   <tt>snapshot</tt> | <tt>subnet</tt> |
--   <tt>subnet-cidr-block-association</tt> | <tt>volume</tt> |
--   <tt>vpc</tt> | <tt>vpc-cidr-block-association</tt> |
--   <tt>vpc-endpoint</tt> | <tt>vpc-peering-connection</tt> |
--   <tt>vpn-connection</tt> | <tt>vpn-gateway</tt> .
module Network.AWS.EC2.DescribeAggregateIdFormat

-- | Creates a value of <a>DescribeAggregateIdFormat</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daifDryRun</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>
describeAggregateIdFormat :: DescribeAggregateIdFormat

-- | <i>See:</i> <a>describeAggregateIdFormat</a> smart constructor.
data DescribeAggregateIdFormat

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
daifDryRun :: Lens' DescribeAggregateIdFormat (Maybe Bool)

-- | Creates a value of <a>DescribeAggregateIdFormatResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daifrsUseLongIdsAggregated</a> - Indicates whether all resource
--   types in the region are configured to use longer IDs. This value is
--   only <tt>true</tt> if all users are configured to use longer IDs for
--   all resources types in the region.</li>
--   <li><a>daifrsStatuses</a> - Information about each resource's ID
--   format.</li>
--   <li><a>daifrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAggregateIdFormatResponse :: Int -> DescribeAggregateIdFormatResponse

-- | <i>See:</i> <a>describeAggregateIdFormatResponse</a> smart
--   constructor.
data DescribeAggregateIdFormatResponse

-- | Indicates whether all resource types in the region are configured to
--   use longer IDs. This value is only <tt>true</tt> if all users are
--   configured to use longer IDs for all resources types in the region.
daifrsUseLongIdsAggregated :: Lens' DescribeAggregateIdFormatResponse (Maybe Bool)

-- | Information about each resource's ID format.
daifrsStatuses :: Lens' DescribeAggregateIdFormatResponse [IdFormat]

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


-- | 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. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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 the tag's key). If you want to list only resources
--   where Purpose is X, see the <tt>tag</tt> :</i>key<i> =</i>value/
--   filter.</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. * <tt>tag</tt> :<i>key</i> =<i>value</i> - The
--   key<i>value combination of a tag assigned to the resource. Specify the
--   key of the tag in the filter name and the value of the tag in the
--   filter value. For example, for the tag Purpose=X, specify
--   <tt>tag:Purpose</tt> for the filter name and <tt>X</tt> for the filter
--   value. * <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 the tag's key). If you want to list only resources
--   where Purpose is X, see the <tt>tag</tt> :</i>key<i> =</i>value/
--   filter.
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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeAddresses.DescribeAddressesResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DescribeAccountAttributes.DescribeAccountAttributesResponse
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


-- | Deregisters the specified AMI. After you deregister an AMI, it can't
--   be used to launch new instances; however, it doesn't affect any
--   instances that you've already launched from the AMI. You'll continue
--   to incur usage costs for those instances until you terminate them.
--   
--   When you deregister an Amazon EBS-backed AMI, it doesn't affect the
--   snapshot that was created for the root volume of the instance during
--   the AMI creation process. When you deregister an instance store-backed
--   AMI, it doesn't affect the files that you uploaded to Amazon S3 when
--   you created 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 Control.DeepSeq.NFData Network.AWS.EC2.DeregisterImage.DeregisterImageResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteVolume.DeleteVolumeResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPNGateway.DeleteVPNGatewayResponse
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


-- | 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>dvcrDestinationCidrBlock</a> - The CIDR block associated with
--   the local subnet of the customer network.</li>
--   <li><a>dvcrVPNConnectionId</a> - The ID of the VPN connection.</li>
--   </ul>
deleteVPNConnectionRoute :: Text -> Text -> DeleteVPNConnectionRoute

-- | Contains the parameters for DeleteVpnConnectionRoute.
--   
--   <i>See:</i> <a>deleteVPNConnectionRoute</a> smart constructor.
data DeleteVPNConnectionRoute

-- | The CIDR block associated with the local subnet of the customer
--   network.
dvcrDestinationCidrBlock :: Lens' DeleteVPNConnectionRoute Text

-- | The ID of the VPN connection.
dvcrVPNConnectionId :: 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPNConnectionRoute.DeleteVPNConnectionRouteResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPNConnection.DeleteVPNConnectionResponse
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


-- | Deletes a VPC peering connection. Either the owner of the requester
--   VPC or the owner of the accepter 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. You cannot delete a VPC peering
--   connection that's in the <tt>failed</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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPCPeeringConnection.DeleteVPCPeeringConnectionResponse
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


-- | Deletes one or more specified VPC endpoints. Deleting a gateway
--   endpoint also deletes the endpoint routes in the route tables that
--   were associated with the endpoint. Deleting an interface endpoint
--   deletes the endpoint network interfaces.
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 VPC 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 VPC 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 VPC 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 VPC 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPCEndpoints.DeleteVPCEndpointsResponse
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


-- | Deletes one or more VPC endpoint service configurations in your
--   account. Before you delete the endpoint service configuration, you
--   must reject any <tt>Available</tt> or <tt>PendingAcceptance</tt>
--   interface endpoint connections that are attached to the service.
module Network.AWS.EC2.DeleteVPCEndpointServiceConfigurations

-- | Creates a value of <a>DeleteVPCEndpointServiceConfigurations</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcescDryRun</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>dvpcescServiceIds</a> - The IDs of one or more services.</li>
--   </ul>
deleteVPCEndpointServiceConfigurations :: DeleteVPCEndpointServiceConfigurations

-- | <i>See:</i> <a>deleteVPCEndpointServiceConfigurations</a> smart
--   constructor.
data DeleteVPCEndpointServiceConfigurations

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvpcescDryRun :: Lens' DeleteVPCEndpointServiceConfigurations (Maybe Bool)

-- | The IDs of one or more services.
dvpcescServiceIds :: Lens' DeleteVPCEndpointServiceConfigurations [Text]

-- | Creates a value of
--   <a>DeleteVPCEndpointServiceConfigurationsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcescrsUnsuccessful</a> - Information about the service
--   configurations that were not deleted, if applicable.</li>
--   <li><a>dvpcescrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
deleteVPCEndpointServiceConfigurationsResponse :: Int -> DeleteVPCEndpointServiceConfigurationsResponse

-- | <i>See:</i> <a>deleteVPCEndpointServiceConfigurationsResponse</a>
--   smart constructor.
data DeleteVPCEndpointServiceConfigurationsResponse

-- | Information about the service configurations that were not deleted, if
--   applicable.
dvpcescrsUnsuccessful :: Lens' DeleteVPCEndpointServiceConfigurationsResponse [UnsuccessfulItem]

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


-- | Deletes one or more VPC endpoint connection notifications.
module Network.AWS.EC2.DeleteVPCEndpointConnectionNotifications

-- | Creates a value of <a>DeleteVPCEndpointConnectionNotifications</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvecnDryRun</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>dvecnConnectionNotificationIds</a> - One or more notification
--   IDs.</li>
--   </ul>
deleteVPCEndpointConnectionNotifications :: DeleteVPCEndpointConnectionNotifications

-- | <i>See:</i> <a>deleteVPCEndpointConnectionNotifications</a> smart
--   constructor.
data DeleteVPCEndpointConnectionNotifications

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dvecnDryRun :: Lens' DeleteVPCEndpointConnectionNotifications (Maybe Bool)

-- | One or more notification IDs.
dvecnConnectionNotificationIds :: Lens' DeleteVPCEndpointConnectionNotifications [Text]

-- | Creates a value of
--   <a>DeleteVPCEndpointConnectionNotificationsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvecnrsUnsuccessful</a> - Information about the notifications
--   that could not be deleted successfully.</li>
--   <li><a>dvecnrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteVPCEndpointConnectionNotificationsResponse :: Int -> DeleteVPCEndpointConnectionNotificationsResponse

-- | <i>See:</i> <a>deleteVPCEndpointConnectionNotificationsResponse</a>
--   smart constructor.
data DeleteVPCEndpointConnectionNotificationsResponse

-- | Information about the notifications that could not be deleted
--   successfully.
dvecnrsUnsuccessful :: Lens' DeleteVPCEndpointConnectionNotificationsResponse [UnsuccessfulItem]

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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteVPC.DeleteVPCResponse
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


-- | Deletes the specified set of tags from the specified set of resources.
--   
--   To list the current tags, use <tt>DescribeTags</tt> . 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. Specify a tag key and
--   an optional tag value to delete specific tags. If you specify a tag
--   key without a tag value, we delete any tag with this key regardless of
--   its value. If you specify a tag key with an empty string as the tag
--   value, we delete the tag only if its value is an empty string. If you
--   omit this parameter, we delete all user-defined tags for the specified
--   resources. We do not delete AWS-generated tags (tags that have the
--   <tt>aws:</tt> prefix).</li>
--   <li><a>dtsResources</a> - The IDs of one or more resources.</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. Specify a tag key and an optional tag
--   value to delete specific tags. If you specify a tag key without a tag
--   value, we delete any tag with this key regardless of its value. If you
--   specify a tag key with an empty string as the tag value, we delete the
--   tag only if its value is an empty string. If you omit this parameter,
--   we delete all user-defined tags for the specified resources. We do not
--   delete AWS-generated tags (tags that have the <tt>aws:</tt> prefix).
dtsTags :: Lens' DeleteTags [Tag]

-- | The IDs of one or more resources.
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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteTags.DeleteTagsResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteSubnet.DeleteSubnetResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteSpotDatafeedSubscription.DeleteSpotDatafeedSubscriptionResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteSnapshot.DeleteSnapshotResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteSecurityGroup.DeleteSecurityGroupResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteRouteTable.DeleteRouteTableResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteRoute.DeleteRouteResponse
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


-- | Deletes the specified placement group. You must terminate all
--   instances in the placement group before you can delete the placement
--   group. For more information, see <a>Placement Groups</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 Control.DeepSeq.NFData Network.AWS.EC2.DeletePlacementGroup.DeletePlacementGroupResponse
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


-- | Deletes a permission for a network interface. By default, you cannot
--   delete the permission if the account for which you're removing the
--   permission has attached the network interface to an instance. However,
--   you can force delete the permission, regardless of any attachment.
module Network.AWS.EC2.DeleteNetworkInterfacePermission

-- | Creates a value of <a>DeleteNetworkInterfacePermission</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnipForce</a> - Specify <tt>true</tt> to remove the permission
--   even if the network interface is attached to an instance.</li>
--   <li><a>dnipDryRun</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>dnipNetworkInterfacePermissionId</a> - The ID of the network
--   interface permission.</li>
--   </ul>
deleteNetworkInterfacePermission :: Text -> DeleteNetworkInterfacePermission

-- | Contains the parameters for DeleteNetworkInterfacePermission.
--   
--   <i>See:</i> <a>deleteNetworkInterfacePermission</a> smart constructor.
data DeleteNetworkInterfacePermission

-- | Specify <tt>true</tt> to remove the permission even if the network
--   interface is attached to an instance.
dnipForce :: Lens' DeleteNetworkInterfacePermission (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> .
dnipDryRun :: Lens' DeleteNetworkInterfacePermission (Maybe Bool)

-- | The ID of the network interface permission.
dnipNetworkInterfacePermissionId :: Lens' DeleteNetworkInterfacePermission Text

-- | Creates a value of <a>DeleteNetworkInterfacePermissionResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dniprsReturn</a> - Returns <tt>true</tt> if the request
--   succeeds, otherwise returns an error.</li>
--   <li><a>dniprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteNetworkInterfacePermissionResponse :: Int -> DeleteNetworkInterfacePermissionResponse

-- | Contains the output for DeleteNetworkInterfacePermission.
--   
--   <i>See:</i> <a>deleteNetworkInterfacePermissionResponse</a> smart
--   constructor.
data DeleteNetworkInterfacePermissionResponse

-- | Returns <tt>true</tt> if the request succeeds, otherwise returns an
--   error.
dniprsReturn :: Lens' DeleteNetworkInterfacePermissionResponse (Maybe Bool)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteNetworkInterface.DeleteNetworkInterfaceResponse
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


-- | 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>dnaeEgress</a> - Indicates whether the rule is an egress
--   rule.</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>
--   </ul>
deleteNetworkACLEntry :: Bool -> Text -> Int -> 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)

-- | Indicates whether the rule is an egress rule.
dnaeEgress :: Lens' DeleteNetworkACLEntry Bool

-- | The ID of the network ACL.
dnaeNetworkACLId :: Lens' DeleteNetworkACLEntry Text

-- | The rule number of the entry to delete.
dnaeRuleNumber :: Lens' DeleteNetworkACLEntry Int

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteNetworkACLEntry.DeleteNetworkACLEntryResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteNetworkACL.DeleteNetworkACLResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteNatGateway.DeleteNatGatewayResponse
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


-- | Deletes one or more versions of a launch template. You cannot delete
--   the default version of a launch template; you must first assign a
--   different version as the default. If the default version is the only
--   version for the launch template, you must delete the entire launch
--   template using <tt>DeleteLaunchTemplate</tt> .
module Network.AWS.EC2.DeleteLaunchTemplateVersions

-- | Creates a value of <a>DeleteLaunchTemplateVersions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dltvLaunchTemplateName</a> - The name of the launch template.
--   You must specify either the launch template ID or launch template name
--   in the request.</li>
--   <li><a>dltvLaunchTemplateId</a> - The ID of the launch template. You
--   must specify either the launch template ID or launch template name in
--   the request.</li>
--   <li><a>dltvDryRun</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>dltvVersions</a> - The version numbers of one or more launch
--   template versions to delete.</li>
--   </ul>
deleteLaunchTemplateVersions :: DeleteLaunchTemplateVersions

-- | <i>See:</i> <a>deleteLaunchTemplateVersions</a> smart constructor.
data DeleteLaunchTemplateVersions

-- | The name of the launch template. You must specify either the launch
--   template ID or launch template name in the request.
dltvLaunchTemplateName :: Lens' DeleteLaunchTemplateVersions (Maybe Text)

-- | The ID of the launch template. You must specify either the launch
--   template ID or launch template name in the request.
dltvLaunchTemplateId :: Lens' DeleteLaunchTemplateVersions (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> .
dltvDryRun :: Lens' DeleteLaunchTemplateVersions (Maybe Bool)

-- | The version numbers of one or more launch template versions to delete.
dltvVersions :: Lens' DeleteLaunchTemplateVersions [Text]

-- | Creates a value of <a>DeleteLaunchTemplateVersionsResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dltvsrsSuccessfullyDeletedLaunchTemplateVersions</a> -
--   Information about the launch template versions that were successfully
--   deleted.</li>
--   <li><a>dltvsrsUnsuccessfullyDeletedLaunchTemplateVersions</a> -
--   Information about the launch template versions that could not be
--   deleted.</li>
--   <li><a>dltvsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteLaunchTemplateVersionsResponse :: Int -> DeleteLaunchTemplateVersionsResponse

-- | <i>See:</i> <a>deleteLaunchTemplateVersionsResponse</a> smart
--   constructor.
data DeleteLaunchTemplateVersionsResponse

-- | Information about the launch template versions that were successfully
--   deleted.
dltvsrsSuccessfullyDeletedLaunchTemplateVersions :: Lens' DeleteLaunchTemplateVersionsResponse [DeleteLaunchTemplateVersionsResponseSuccessItem]

-- | Information about the launch template versions that could not be
--   deleted.
dltvsrsUnsuccessfullyDeletedLaunchTemplateVersions :: Lens' DeleteLaunchTemplateVersionsResponse [DeleteLaunchTemplateVersionsResponseErrorItem]

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


-- | Deletes a launch template. Deleting a launch template deletes all of
--   its versions.
module Network.AWS.EC2.DeleteLaunchTemplate

-- | Creates a value of <a>DeleteLaunchTemplate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dltLaunchTemplateName</a> - The name of the launch template.
--   You must specify either the launch template ID or launch template name
--   in the request.</li>
--   <li><a>dltLaunchTemplateId</a> - The ID of the launch template. You
--   must specify either the launch template ID or launch template name in
--   the request.</li>
--   <li><a>dltDryRun</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>
deleteLaunchTemplate :: DeleteLaunchTemplate

-- | <i>See:</i> <a>deleteLaunchTemplate</a> smart constructor.
data DeleteLaunchTemplate

-- | The name of the launch template. You must specify either the launch
--   template ID or launch template name in the request.
dltLaunchTemplateName :: Lens' DeleteLaunchTemplate (Maybe Text)

-- | The ID of the launch template. You must specify either the launch
--   template ID or launch template name in the request.
dltLaunchTemplateId :: Lens' DeleteLaunchTemplate (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> .
dltDryRun :: Lens' DeleteLaunchTemplate (Maybe Bool)

-- | Creates a value of <a>DeleteLaunchTemplateResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dltrsLaunchTemplate</a> - Information about the launch
--   template.</li>
--   <li><a>dltrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteLaunchTemplateResponse :: Int -> DeleteLaunchTemplateResponse

-- | <i>See:</i> <a>deleteLaunchTemplateResponse</a> smart constructor.
data DeleteLaunchTemplateResponse

-- | Information about the launch template.
dltrsLaunchTemplate :: Lens' DeleteLaunchTemplateResponse (Maybe LaunchTemplate)

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


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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteInternetGateway.DeleteInternetGatewayResponse
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


-- | Deletes the specified Amazon FPGA Image (AFI).
module Network.AWS.EC2.DeleteFpgaImage

-- | Creates a value of <a>DeleteFpgaImage</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfiDryRun</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>dfiFpgaImageId</a> - The ID of the AFI.</li>
--   </ul>
deleteFpgaImage :: Text -> DeleteFpgaImage

-- | <i>See:</i> <a>deleteFpgaImage</a> smart constructor.
data DeleteFpgaImage

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dfiDryRun :: Lens' DeleteFpgaImage (Maybe Bool)

-- | The ID of the AFI.
dfiFpgaImageId :: Lens' DeleteFpgaImage Text

-- | Creates a value of <a>DeleteFpgaImageResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>delrsReturn</a> - Is <tt>true</tt> if the request succeeds, and
--   an error otherwise.</li>
--   <li><a>delrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteFpgaImageResponse :: Int -> DeleteFpgaImageResponse

-- | <i>See:</i> <a>deleteFpgaImageResponse</a> smart constructor.
data DeleteFpgaImageResponse

-- | Is <tt>true</tt> if the request succeeds, and an error otherwise.
delrsReturn :: Lens' DeleteFpgaImageResponse (Maybe Bool)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteFlowLogs.DeleteFlowLogsResponse
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


-- | Deletes the specified EC2 Fleet.
--   
--   After you delete an EC2 Fleet, the EC2 Fleet launches no new
--   instances. You must specify whether the EC2 Fleet should also
--   terminate its instances. If you terminate the instances, the EC2 Fleet
--   enters the <tt>deleted_terminating</tt> state. Otherwise, the EC2
--   Fleet enters the <tt>deleted_running</tt> state, and the instances
--   continue to run until they are interrupted or you terminate them
--   manually.
module Network.AWS.EC2.DeleteFleets

-- | Creates a value of <a>DeleteFleets</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfDryRun</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>dfFleetIds</a> - The IDs of the EC2 Fleets.</li>
--   <li><a>dfTerminateInstances</a> - Indicates whether to terminate
--   instances for an EC2 Fleet if it is deleted successfully.</li>
--   </ul>
deleteFleets :: Bool -> DeleteFleets

-- | <i>See:</i> <a>deleteFleets</a> smart constructor.
data DeleteFleets

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
dfDryRun :: Lens' DeleteFleets (Maybe Bool)

-- | The IDs of the EC2 Fleets.
dfFleetIds :: Lens' DeleteFleets [Text]

-- | Indicates whether to terminate instances for an EC2 Fleet if it is
--   deleted successfully.
dfTerminateInstances :: Lens' DeleteFleets Bool

-- | Creates a value of <a>DeleteFleetsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfrsSuccessfulFleetDeletions</a> - Information about the EC2
--   Fleets that are successfully deleted.</li>
--   <li><a>dfrsUnsuccessfulFleetDeletions</a> - Information about the EC2
--   Fleets that are not successfully deleted.</li>
--   <li><a>dfrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteFleetsResponse :: Int -> DeleteFleetsResponse

-- | <i>See:</i> <a>deleteFleetsResponse</a> smart constructor.
data DeleteFleetsResponse

-- | Information about the EC2 Fleets that are successfully deleted.
dfrsSuccessfulFleetDeletions :: Lens' DeleteFleetsResponse [DeleteFleetSuccessItem]

-- | Information about the EC2 Fleets that are not successfully deleted.
dfrsUnsuccessfulFleetDeletions :: Lens' DeleteFleetsResponse [DeleteFleetErrorItem]

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


-- | 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>deoigersReturnCode</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, it returns an error.</li>
--   <li><a>deoigersResponseStatus</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.
deoigersReturnCode :: Lens' DeleteEgressOnlyInternetGatewayResponse (Maybe Bool)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
deoigersResponseStatus :: 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteEgressOnlyInternetGateway.DeleteEgressOnlyInternetGatewayResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteDHCPOptions.DeleteDHCPOptionsResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.DeleteCustomerGateway.DeleteCustomerGatewayResponse
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


-- | 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> .
--   
--   You can tag your volumes during creation. For more information, see
--   <a>Tagging Your Amazon EC2 Resources</a> .
--   
--   For more information, see <a>Creating 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>cvvSize</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>cvvIOPS</a> - The number of I<i>O operations per second (IOPS)
--   to provision for the volume, with a maximum ratio of 50 IOPS</i>GiB.
--   Range is 100 to 32000 IOPS for volumes in most regions. For
--   exceptions, see <a>Amazon EBS Volume Types</a> . This parameter is
--   valid only for Provisioned IOPS SSD (io1) volumes.</li>
--   <li><a>cvvEncrypted</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>cvvTagSpecifications</a> - The tags to apply to the volume
--   during creation.</li>
--   <li><a>cvvKMSKeyId</a> - An identifier for 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. If a <tt>KmsKeyId</tt> is specified, the
--   <tt>Encrypted</tt> flag must also be set. The CMK identifier may be
--   provided in any of the following formats: * Key ID * Key alias * ARN
--   using key ID. The ID 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> . * ARN using key
--   alias. The alias 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>alias</tt> namespace, and then the CMK alias. For
--   example, arn:aws:kms:<i>us-east-1</i> :<i>012345678910</i>
--   :alias/<i>ExampleAlias</i> . AWS parses <tt>KmsKeyId</tt>
--   asynchronously, meaning that the action you call may appear to
--   complete even though you provided an invalid identifier. The action
--   will eventually fail.</li>
--   <li><a>cvvVolumeType</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. Defaults: If no volume type
--   is specified, the default is <tt>standard</tt> in us-east-1,
--   eu-west-1, eu-central-1, us-west-2, us-west-1, sa-east-1,
--   ap-northeast-1, ap-northeast-2, ap-southeast-1, ap-southeast-2,
--   ap-south-1, us-gov-west-1, and cn-north-1. In all other regions, EBS
--   defaults to <tt>gp2</tt> .</li>
--   <li><a>cvvDryRun</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>cvvSnapshotId</a> - The snapshot from which to create the
--   volume.</li>
--   <li><a>cvvAvailabilityZone</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.
cvvSize :: Lens' CreateVolume (Maybe Int)

-- | The number of I<i>O operations per second (IOPS) to provision for the
--   volume, with a maximum ratio of 50 IOPS</i>GiB. Range is 100 to 32000
--   IOPS for volumes in most regions. For exceptions, see <a>Amazon EBS
--   Volume Types</a> . This parameter is valid only for Provisioned IOPS
--   SSD (io1) volumes.
cvvIOPS :: 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> .
cvvEncrypted :: Lens' CreateVolume (Maybe Bool)

-- | The tags to apply to the volume during creation.
cvvTagSpecifications :: Lens' CreateVolume [TagSpecification]

-- | An identifier for 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. If a
--   <tt>KmsKeyId</tt> is specified, the <tt>Encrypted</tt> flag must also
--   be set. The CMK identifier may be provided in any of the following
--   formats: * Key ID * Key alias * ARN using key ID. The ID 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>
--   . * ARN using key alias. The alias 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>alias</tt> namespace, and
--   then the CMK alias. For example, arn:aws:kms:<i>us-east-1</i>
--   :<i>012345678910</i> :alias/<i>ExampleAlias</i> . AWS parses
--   <tt>KmsKeyId</tt> asynchronously, meaning that the action you call may
--   appear to complete even though you provided an invalid identifier. The
--   action will eventually fail.
cvvKMSKeyId :: 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. Defaults: If no volume type is specified, the
--   default is <tt>standard</tt> in us-east-1, eu-west-1, eu-central-1,
--   us-west-2, us-west-1, sa-east-1, ap-northeast-1, ap-northeast-2,
--   ap-southeast-1, ap-southeast-2, ap-south-1, us-gov-west-1, and
--   cn-north-1. In all other regions, EBS defaults to <tt>gp2</tt> .
cvvVolumeType :: 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> .
cvvDryRun :: Lens' CreateVolume (Maybe Bool)

-- | The snapshot from which to create the volume.
cvvSnapshotId :: 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.
cvvAvailabilityZone :: 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-32000 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-32000 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>AWS
--   Managed VPN Connections</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>cvgAmazonSideASN</a> - A private Autonomous System Number (ASN)
--   for the Amazon side of a BGP session. If you're using a 16-bit ASN, it
--   must be in the 64512 to 65534 range. If you're using a 32-bit ASN, it
--   must be in the 4200000000 to 4294967294 range. Default: 64512</li>
--   <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

-- | A private Autonomous System Number (ASN) for the Amazon side of a BGP
--   session. If you're using a 16-bit ASN, it must be in the 64512 to
--   65534 range. If you're using a 32-bit ASN, it must be in the
--   4200000000 to 4294967294 range. Default: 64512
cvgAmazonSideASN :: Lens' CreateVPNGateway (Maybe Integer)

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateVPNGateway.CreateVPNGatewayResponse
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


-- | 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>AWS Managed VPN
--   Connections</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>cvcrDestinationCidrBlock</a> - The CIDR block associated with
--   the local subnet of the customer network.</li>
--   <li><a>cvcrVPNConnectionId</a> - The ID of the VPN connection.</li>
--   </ul>
createVPNConnectionRoute :: Text -> Text -> CreateVPNConnectionRoute

-- | Contains the parameters for CreateVpnConnectionRoute.
--   
--   <i>See:</i> <a>createVPNConnectionRoute</a> smart constructor.
data CreateVPNConnectionRoute

-- | The CIDR block associated with the local subnet of the customer
--   network.
cvcrDestinationCidrBlock :: Lens' CreateVPNConnectionRoute Text

-- | The ID of the VPN connection.
cvcrVPNConnectionId :: 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateVPNConnectionRoute.CreateVPNConnectionRouteResponse
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


-- | 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, see <a>AWS Managed VPN Connections</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> - The options for the VPN connection.</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>cvcCustomerGatewayId</a> - The ID of the customer gateway.</li>
--   <li><a>cvcType</a> - The type of VPN connection (<tt>ipsec.1</tt>
--   ).</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

-- | The options for the VPN connection.
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 ID of the customer gateway.
cvcCustomerGatewayId :: Lens' CreateVPNConnection Text

-- | The type of VPN connection (<tt>ipsec.1</tt> ).
cvcType :: 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateVPNConnection.CreateVPNConnectionResponse
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


-- | Requests a VPC peering connection between two VPCs: a requester VPC
--   that you own and an accepter VPC with which to create the connection.
--   The accepter VPC can belong to another AWS account and can be in a
--   different region to the requester VPC. The requester VPC and accepter
--   VPC cannot have overlapping CIDR blocks.
--   
--   The owner of the accepter 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.
--   
--   If you create a VPC peering connection request between VPCs with
--   overlapping CIDR blocks, the VPC peering connection has 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. You must specify this parameter
--   in the request.</li>
--   <li><a>cvpcVPCId</a> - The ID of the requester VPC. You must specify
--   this parameter in the request.</li>
--   <li><a>cvpcPeerOwnerId</a> - The AWS account ID of the owner of the
--   accepter VPC. Default: Your AWS account ID</li>
--   <li><a>cvpcPeerRegion</a> - The region code for the accepter VPC, if
--   the accepter VPC is located in a region other than the region in which
--   you make the request. Default: The region in which you make the
--   request.</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. You must specify this parameter in the request.
cvpcPeerVPCId :: Lens' CreateVPCPeeringConnection (Maybe Text)

-- | The ID of the requester VPC. You must specify this parameter in the
--   request.
cvpcVPCId :: Lens' CreateVPCPeeringConnection (Maybe Text)

-- | The AWS account ID of the owner of the accepter VPC. Default: Your AWS
--   account ID
cvpcPeerOwnerId :: Lens' CreateVPCPeeringConnection (Maybe Text)

-- | The region code for the accepter VPC, if the accepter VPC is located
--   in a region other than the region in which you make the request.
--   Default: The region in which you make the request.
cvpcPeerRegion :: 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateVPCPeeringConnection.CreateVPCPeeringConnectionResponse
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


-- | Creates a VPC endpoint service configuration to which service
--   consumers (AWS accounts, IAM users, and IAM roles) can connect.
--   Service consumers can create an interface VPC endpoint to connect to
--   your service.
--   
--   To create an endpoint service configuration, you must first create a
--   Network Load Balancer for your service. For more information, see
--   <a>VPC Endpoint Services</a> in the <i>Amazon Virtual Private Cloud
--   User Guide</i> .
module Network.AWS.EC2.CreateVPCEndpointServiceConfiguration

-- | Creates a value of <a>CreateVPCEndpointServiceConfiguration</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvescClientToken</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>cvescAcceptanceRequired</a> - Indicate whether requests from
--   service consumers to create an endpoint to your service must be
--   accepted. To accept a request, use
--   <tt>AcceptVpcEndpointConnections</tt> .</li>
--   <li><a>cvescDryRun</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>cvescNetworkLoadBalancerARNs</a> - The Amazon Resource Names
--   (ARNs) of one or more Network Load Balancers for your service.</li>
--   </ul>
createVPCEndpointServiceConfiguration :: CreateVPCEndpointServiceConfiguration

-- | <i>See:</i> <a>createVPCEndpointServiceConfiguration</a> smart
--   constructor.
data CreateVPCEndpointServiceConfiguration

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request. For more information, see <a>How to Ensure
--   Idempotency</a> .
cvescClientToken :: Lens' CreateVPCEndpointServiceConfiguration (Maybe Text)

-- | Indicate whether requests from service consumers to create an endpoint
--   to your service must be accepted. To accept a request, use
--   <tt>AcceptVpcEndpointConnections</tt> .
cvescAcceptanceRequired :: Lens' CreateVPCEndpointServiceConfiguration (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> .
cvescDryRun :: Lens' CreateVPCEndpointServiceConfiguration (Maybe Bool)

-- | The Amazon Resource Names (ARNs) of one or more Network Load Balancers
--   for your service.
cvescNetworkLoadBalancerARNs :: Lens' CreateVPCEndpointServiceConfiguration [Text]

-- | Creates a value of
--   <a>CreateVPCEndpointServiceConfigurationResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvescrsClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request.</li>
--   <li><a>cvescrsServiceConfiguration</a> - Information about the service
--   configuration.</li>
--   <li><a>cvescrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createVPCEndpointServiceConfigurationResponse :: Int -> CreateVPCEndpointServiceConfigurationResponse

-- | <i>See:</i> <a>createVPCEndpointServiceConfigurationResponse</a> smart
--   constructor.
data CreateVPCEndpointServiceConfigurationResponse

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request.
cvescrsClientToken :: Lens' CreateVPCEndpointServiceConfigurationResponse (Maybe Text)

-- | Information about the service configuration.
cvescrsServiceConfiguration :: Lens' CreateVPCEndpointServiceConfigurationResponse (Maybe ServiceConfiguration)

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


-- | Creates a connection notification for a specified VPC endpoint or VPC
--   endpoint service. A connection notification notifies you of specific
--   endpoint events. You must create an SNS topic to receive
--   notifications. For more information, see <a>Create a Topic</a> in the
--   <i>Amazon Simple Notification Service Developer Guide</i> .
--   
--   You can create a connection notification for interface endpoints only.
module Network.AWS.EC2.CreateVPCEndpointConnectionNotification

-- | Creates a value of <a>CreateVPCEndpointConnectionNotification</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvecnClientToken</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>cvecnServiceId</a> - The ID of the endpoint service.</li>
--   <li><a>cvecnVPCEndpointId</a> - The ID of the endpoint.</li>
--   <li><a>cvecnDryRun</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>cvecnConnectionNotificationARN</a> - The ARN of the SNS topic
--   for the notifications.</li>
--   <li><a>cvecnConnectionEvents</a> - One or more endpoint events for
--   which to receive notifications. Valid values are <tt>Accept</tt> ,
--   <tt>Connect</tt> , <tt>Delete</tt> , and <tt>Reject</tt> .</li>
--   </ul>
createVPCEndpointConnectionNotification :: Text -> CreateVPCEndpointConnectionNotification

-- | <i>See:</i> <a>createVPCEndpointConnectionNotification</a> smart
--   constructor.
data CreateVPCEndpointConnectionNotification

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request. For more information, see <a>How to Ensure
--   Idempotency</a> .
cvecnClientToken :: Lens' CreateVPCEndpointConnectionNotification (Maybe Text)

-- | The ID of the endpoint service.
cvecnServiceId :: Lens' CreateVPCEndpointConnectionNotification (Maybe Text)

-- | The ID of the endpoint.
cvecnVPCEndpointId :: Lens' CreateVPCEndpointConnectionNotification (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> .
cvecnDryRun :: Lens' CreateVPCEndpointConnectionNotification (Maybe Bool)

-- | The ARN of the SNS topic for the notifications.
cvecnConnectionNotificationARN :: Lens' CreateVPCEndpointConnectionNotification Text

-- | One or more endpoint events for which to receive notifications. Valid
--   values are <tt>Accept</tt> , <tt>Connect</tt> , <tt>Delete</tt> , and
--   <tt>Reject</tt> .
cvecnConnectionEvents :: Lens' CreateVPCEndpointConnectionNotification [Text]

-- | Creates a value of
--   <a>CreateVPCEndpointConnectionNotificationResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvecnrsClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request.</li>
--   <li><a>cvecnrsConnectionNotification</a> - Information about the
--   notification.</li>
--   <li><a>cvecnrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createVPCEndpointConnectionNotificationResponse :: Int -> CreateVPCEndpointConnectionNotificationResponse

-- | <i>See:</i> <a>createVPCEndpointConnectionNotificationResponse</a>
--   smart constructor.
data CreateVPCEndpointConnectionNotificationResponse

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request.
cvecnrsClientToken :: Lens' CreateVPCEndpointConnectionNotificationResponse (Maybe Text)

-- | Information about the notification.
cvecnrsConnectionNotification :: Lens' CreateVPCEndpointConnectionNotificationResponse (Maybe ConnectionNotification)

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


-- | Creates a VPC endpoint for a specified service. An endpoint enables
--   you to create a private connection between your VPC and the service.
--   The service may be provided by AWS, an AWS Marketplace partner, or
--   another AWS account. For more information, see <a>VPC Endpoints</a> in
--   the <i>Amazon Virtual Private Cloud User Guide</i> .
--   
--   A <tt>gateway</tt> endpoint serves as a target for a route in your
--   route table for traffic destined for the AWS service. 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.
--   
--   An <tt>interface</tt> endpoint is a network interface in your subnet
--   that serves as an endpoint for communicating with the specified
--   service. You can specify the subnets in which to create an endpoint,
--   and the security groups to associate with the endpoint network
--   interface.
--   
--   Use <tt>DescribeVpcEndpointServices</tt> to get a list of supported
--   services.
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> - (Gateway endpoint) 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>cveSecurityGroupIds</a> - (Interface endpoint) The ID of one or
--   more security groups to associate with the endpoint network
--   interface.</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>cveSubnetIds</a> - (Interface endpoint) The ID of one or more
--   subnets in which to create an endpoint network interface.</li>
--   <li><a>cveVPCEndpointType</a> - The type of endpoint. Default:
--   Gateway</li>
--   <li><a>cvePrivateDNSEnabled</a> - (Interface endpoint) Indicate
--   whether to associate a private hosted zone with the specified VPC. The
--   private hosted zone contains a record set for the default public DNS
--   name for the service for the region (for example,
--   <tt>kinesis.us-east-1.amazonaws.com</tt> ) which resolves to the
--   private IP addresses of the endpoint network interfaces in the VPC.
--   This enables you to make requests to the default public DNS name for
--   the service instead of the public DNS names that are automatically
--   generated by the VPC endpoint service. To use a private hosted zone,
--   you must set the following VPC attributes to <tt>true</tt> :
--   <tt>enableDnsHostnames</tt> and <tt>enableDnsSupport</tt> . Use
--   <tt>ModifyVpcAttribute</tt> to set the VPC attributes. Default:
--   <tt>true</tt></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> - (Gateway endpoint) 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 service name. To get a list of
--   available services, use the <tt>DescribeVpcEndpointServices</tt>
--   request, or get the name from the service provider.</li>
--   </ul>
createVPCEndpoint :: Text -> Text -> CreateVPCEndpoint

-- | Contains the parameters for CreateVpcEndpoint.
--   
--   <i>See:</i> <a>createVPCEndpoint</a> smart constructor.
data CreateVPCEndpoint

-- | (Gateway endpoint) 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)

-- | (Interface endpoint) The ID of one or more security groups to
--   associate with the endpoint network interface.
cveSecurityGroupIds :: Lens' CreateVPCEndpoint [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)

-- | (Interface endpoint) The ID of one or more subnets in which to create
--   an endpoint network interface.
cveSubnetIds :: Lens' CreateVPCEndpoint [Text]

-- | The type of endpoint. Default: Gateway
cveVPCEndpointType :: Lens' CreateVPCEndpoint (Maybe VPCEndpointType)

-- | (Interface endpoint) Indicate whether to associate a private hosted
--   zone with the specified VPC. The private hosted zone contains a record
--   set for the default public DNS name for the service for the region
--   (for example, <tt>kinesis.us-east-1.amazonaws.com</tt> ) which
--   resolves to the private IP addresses of the endpoint network
--   interfaces in the VPC. This enables you to make requests to the
--   default public DNS name for the service instead of the public DNS
--   names that are automatically generated by the VPC endpoint service. To
--   use a private hosted zone, you must set the following VPC attributes
--   to <tt>true</tt> : <tt>enableDnsHostnames</tt> and
--   <tt>enableDnsSupport</tt> . Use <tt>ModifyVpcAttribute</tt> to set the
--   VPC attributes. Default: <tt>true</tt>
cvePrivateDNSEnabled :: Lens' CreateVPCEndpoint (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> .
cveDryRun :: Lens' CreateVPCEndpoint (Maybe Bool)

-- | (Gateway endpoint) 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 service name. To get a list of available services, use the
--   <tt>DescribeVpcEndpointServices</tt> request, or get the name from the
--   service provider.
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 Control.DeepSeq.NFData Network.AWS.EC2.CreateVPCEndpoint.CreateVPCEndpointResponse
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


-- | 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
--   Elastic Compute 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateVPC.CreateVPCResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateTags.CreateTagsResponse
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


-- | Creates a subnet in an existing VPC.
--   
--   When you create each subnet, you provide the VPC ID and the IPv4 CIDR
--   block you want for the subnet. After you create a subnet, you can't
--   change its CIDR block. The size of the subnet's IPv4 CIDR block can be
--   the same as a VPC's IPv4 CIDR block, or a subset of a 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 IPv4
--   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>cssCidrBlock</a> - The IPv4 network range for the subnet, in
--   CIDR notation. For example, <tt>10.0.0.0/24</tt> .</li>
--   <li><a>cssVPCId</a> - The ID of the VPC.</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 IPv4 network range for the subnet, in CIDR notation. For example,
--   <tt>10.0.0.0/24</tt> .
cssCidrBlock :: Lens' CreateSubnet Text

-- | The ID of the VPC.
cssVPCId :: 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>crersSubnet</a> - Information about the subnet.</li>
--   <li><a>crersResponseStatus</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.
crersSubnet :: Lens' CreateSubnetResponse (Maybe Subnet)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
crersResponseStatus :: 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateSubnet.CreateSubnetResponse
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


-- | 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
--   EC2 User Guide for Linux Instances</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 Control.DeepSeq.NFData Network.AWS.EC2.CreateSpotDatafeedSubscription.CreateSpotDatafeedSubscriptionResponse
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


-- | 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.
--   
--   You can tag your snapshots during creation. For more information, see
--   <a>Tagging Your Amazon EC2 Resources</a> .
--   
--   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>ccTagSpecifications</a> - The tags to apply to the snapshot
--   during creation.</li>
--   <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

-- | The tags to apply to the snapshot during creation.
ccTagSpecifications :: Lens' CreateSnapshot [TagSpecification]

-- | 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>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>
--   <li><a>csgGroupName</a> - The name of the security group. Constraints:
--   Up to 255 characters in length. Cannot start with <tt>sg-</tt> .
--   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)

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

-- | The name of the security group. Constraints: Up to 255 characters in
--   length. Cannot start with <tt>sg-</tt> . Constraints for EC2-Classic:
--   ASCII characters Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and
--   ._-:/()#,@[]+=&amp;;{}!$*
csgGroupName :: 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateSecurityGroup.CreateSecurityGroupResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateRouteTable.CreateRouteTableResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateRoute.CreateRouteResponse
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


-- | 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>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>
--   <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>crilReservedInstancesId</a> - The ID of the active Standard
--   Reserved Instance.</li>
--   </ul>
createReservedInstancesListing :: Text -> Int -> Text -> CreateReservedInstancesListing

-- | Contains the parameters for CreateReservedInstancesListing.
--   
--   <i>See:</i> <a>createReservedInstancesListing</a> smart constructor.
data CreateReservedInstancesListing

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

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

-- | The ID of the active Standard Reserved Instance.
crilReservedInstancesId :: 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>crilrrsReservedInstancesListings</a> - Information about the
--   Standard Reserved Instance listing.</li>
--   <li><a>crilrrsResponseStatus</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.
crilrrsReservedInstancesListings :: Lens' CreateReservedInstancesListingResponse [ReservedInstancesListing]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
crilrrsResponseStatus :: 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateReservedInstancesListing.CreateReservedInstancesListingResponse
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


-- | Creates a placement group in which to launch instances. The strategy
--   of the placement group determines how the instances are organized
--   within the group.
--   
--   A <tt>cluster</tt> placement group is a logical grouping of instances
--   within a single Availability Zone that benefit from low network
--   latency, high network throughput. A <tt>spread</tt> placement group
--   places instances on distinct hardware.
--   
--   For more information, see <a>Placement Groups</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. Must be
--   unique within the scope of your account for the region. 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. Must be unique within the scope of
--   your account for the region. 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 Control.DeepSeq.NFData Network.AWS.EC2.CreatePlacementGroup.CreatePlacementGroupResponse
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


-- | Grants an AWS authorized partner account permission to attach the
--   specified network interface to an instance in their account.
--   
--   You can grant permission to a single AWS account only, and only one
--   account at a time.
module Network.AWS.EC2.CreateNetworkInterfacePermission

-- | Creates a value of <a>CreateNetworkInterfacePermission</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cnipAWSAccountId</a> - The AWS account ID.</li>
--   <li><a>cnipAWSService</a> - The AWS service. Currently not
--   supported.</li>
--   <li><a>cnipDryRun</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>cnipNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>cnipPermission</a> - The type of permission to grant.</li>
--   </ul>
createNetworkInterfacePermission :: Text -> InterfacePermissionType -> CreateNetworkInterfacePermission

-- | Contains the parameters for CreateNetworkInterfacePermission.
--   
--   <i>See:</i> <a>createNetworkInterfacePermission</a> smart constructor.
data CreateNetworkInterfacePermission

-- | The AWS account ID.
cnipAWSAccountId :: Lens' CreateNetworkInterfacePermission (Maybe Text)

-- | The AWS service. Currently not supported.
cnipAWSService :: Lens' CreateNetworkInterfacePermission (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> .
cnipDryRun :: Lens' CreateNetworkInterfacePermission (Maybe Bool)

-- | The ID of the network interface.
cnipNetworkInterfaceId :: Lens' CreateNetworkInterfacePermission Text

-- | The type of permission to grant.
cnipPermission :: Lens' CreateNetworkInterfacePermission InterfacePermissionType

-- | Creates a value of <a>CreateNetworkInterfacePermissionResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cniprsInterfacePermission</a> - Information about the
--   permission for the network interface.</li>
--   <li><a>cniprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createNetworkInterfacePermissionResponse :: Int -> CreateNetworkInterfacePermissionResponse

-- | Contains the output of CreateNetworkInterfacePermission.
--   
--   <i>See:</i> <a>createNetworkInterfacePermissionResponse</a> smart
--   constructor.
data CreateNetworkInterfacePermissionResponse

-- | Information about the permission for the network interface.
cniprsInterfacePermission :: Lens' CreateNetworkInterfacePermissionResponse (Maybe NetworkInterfacePermission)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateNetworkInterface.CreateNetworkInterfaceResponse
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


-- | 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>cnaeEgress</a> - Indicates whether this is an egress rule (rule
--   is applied to traffic leaving the subnet).</li>
--   <li><a>cnaeNetworkACLId</a> - The ID of the network ACL.</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>6</tt> (tcp),
--   <tt>17</tt> (udp), or <tt>1</tt> (icmp), 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>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>
--   </ul>
createNetworkACLEntry :: Bool -> Text -> Text -> RuleAction -> Int -> 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)

-- | Indicates whether this is an egress rule (rule is applied to traffic
--   leaving the subnet).
cnaeEgress :: Lens' CreateNetworkACLEntry Bool

-- | The ID of the network ACL.
cnaeNetworkACLId :: Lens' CreateNetworkACLEntry Text

-- | 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>6</tt> (tcp), <tt>17</tt> (udp), or <tt>1</tt>
--   (icmp), 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

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

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateNetworkACLEntry.CreateNetworkACLEntryResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateNetworkACL.CreateNetworkACLResponse
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


-- | Creates a NAT gateway in the specified public subnet. This action
--   creates a network interface in the specified subnet with a private IP
--   address from the IP address range of the subnet. Internet-bound
--   traffic from a private subnet can be routed to the NAT gateway,
--   therefore enabling instances in the private subnet to connect to the
--   internet. 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>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>
--   <li><a>cngSubnetId</a> - The subnet in which to create the NAT
--   gateway.</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 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

-- | The subnet in which to create the NAT gateway.
cngSubnetId :: 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateNatGateway.CreateNatGatewayResponse
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


-- | Creates a new version for a launch template. You can specify an
--   existing version of launch template from which to base the new
--   version.
--   
--   Launch template versions are numbered in the order in which they are
--   created. You cannot specify, change, or replace the numbering of
--   launch template versions.
module Network.AWS.EC2.CreateLaunchTemplateVersion

-- | Creates a value of <a>CreateLaunchTemplateVersion</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cltvLaunchTemplateName</a> - The name of the launch template.
--   You must specify either the launch template ID or launch template name
--   in the request.</li>
--   <li><a>cltvClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request. For more
--   information, see <a>Ensuring Idempotency</a> .</li>
--   <li><a>cltvLaunchTemplateId</a> - The ID of the launch template. You
--   must specify either the launch template ID or launch template name in
--   the request.</li>
--   <li><a>cltvVersionDescription</a> - A description for the version of
--   the launch template.</li>
--   <li><a>cltvSourceVersion</a> - The version number of the launch
--   template version on which to base the new version. The new version
--   inherits the same launch parameters as the source version, except for
--   parameters that you specify in LaunchTemplateData.</li>
--   <li><a>cltvDryRun</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>cltvLaunchTemplateData</a> - The information for the launch
--   template.</li>
--   </ul>
createLaunchTemplateVersion :: RequestLaunchTemplateData -> CreateLaunchTemplateVersion

-- | <i>See:</i> <a>createLaunchTemplateVersion</a> smart constructor.
data CreateLaunchTemplateVersion

-- | The name of the launch template. You must specify either the launch
--   template ID or launch template name in the request.
cltvLaunchTemplateName :: Lens' CreateLaunchTemplateVersion (Maybe Text)

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request. For more information, see <a>Ensuring
--   Idempotency</a> .
cltvClientToken :: Lens' CreateLaunchTemplateVersion (Maybe Text)

-- | The ID of the launch template. You must specify either the launch
--   template ID or launch template name in the request.
cltvLaunchTemplateId :: Lens' CreateLaunchTemplateVersion (Maybe Text)

-- | A description for the version of the launch template.
cltvVersionDescription :: Lens' CreateLaunchTemplateVersion (Maybe Text)

-- | The version number of the launch template version on which to base the
--   new version. The new version inherits the same launch parameters as
--   the source version, except for parameters that you specify in
--   LaunchTemplateData.
cltvSourceVersion :: Lens' CreateLaunchTemplateVersion (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> .
cltvDryRun :: Lens' CreateLaunchTemplateVersion (Maybe Bool)

-- | The information for the launch template.
cltvLaunchTemplateData :: Lens' CreateLaunchTemplateVersion RequestLaunchTemplateData

-- | Creates a value of <a>CreateLaunchTemplateVersionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cltvrsLaunchTemplateVersion</a> - Information about the launch
--   template version.</li>
--   <li><a>cltvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createLaunchTemplateVersionResponse :: Int -> CreateLaunchTemplateVersionResponse

-- | <i>See:</i> <a>createLaunchTemplateVersionResponse</a> smart
--   constructor.
data CreateLaunchTemplateVersionResponse

-- | Information about the launch template version.
cltvrsLaunchTemplateVersion :: Lens' CreateLaunchTemplateVersionResponse (Maybe LaunchTemplateVersion)

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


-- | Creates a launch template. A launch template contains the parameters
--   to launch an instance. When you launch an instance using
--   <tt>RunInstances</tt> , you can specify a launch template instead of
--   providing the launch parameters in the request.
module Network.AWS.EC2.CreateLaunchTemplate

-- | Creates a value of <a>CreateLaunchTemplate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cltClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request. For more
--   information, see <a>Ensuring Idempotency</a> .</li>
--   <li><a>cltVersionDescription</a> - A description for the first version
--   of the launch template.</li>
--   <li><a>cltDryRun</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>cltLaunchTemplateName</a> - A name for the launch
--   template.</li>
--   <li><a>cltLaunchTemplateData</a> - The information for the launch
--   template.</li>
--   </ul>
createLaunchTemplate :: Text -> RequestLaunchTemplateData -> CreateLaunchTemplate

-- | <i>See:</i> <a>createLaunchTemplate</a> smart constructor.
data CreateLaunchTemplate

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request. For more information, see <a>Ensuring
--   Idempotency</a> .
cltClientToken :: Lens' CreateLaunchTemplate (Maybe Text)

-- | A description for the first version of the launch template.
cltVersionDescription :: Lens' CreateLaunchTemplate (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> .
cltDryRun :: Lens' CreateLaunchTemplate (Maybe Bool)

-- | A name for the launch template.
cltLaunchTemplateName :: Lens' CreateLaunchTemplate Text

-- | The information for the launch template.
cltLaunchTemplateData :: Lens' CreateLaunchTemplate RequestLaunchTemplateData

-- | Creates a value of <a>CreateLaunchTemplateResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cltrsLaunchTemplate</a> - Information about the launch
--   template.</li>
--   <li><a>cltrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createLaunchTemplateResponse :: Int -> CreateLaunchTemplateResponse

-- | <i>See:</i> <a>createLaunchTemplateResponse</a> smart constructor.
data CreateLaunchTemplateResponse

-- | Information about the launch template.
cltrsLaunchTemplate :: Lens' CreateLaunchTemplateResponse (Maybe LaunchTemplate)

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


-- | 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#1 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. If you prefer, you can create your own key pair using a
--   third-party tool and upload it to any region using
--   <tt>ImportKeyPair</tt> .
--   
--   For more information, 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateKeyPair.CreateKeyPairResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateInternetGateway.CreateInternetGatewayResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateInstanceExportTask.CreateInstanceExportTaskResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateImage.CreateImageResponse
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


-- | Creates an Amazon FPGA Image (AFI) from the specified design
--   checkpoint (DCP).
--   
--   The create operation is asynchronous. To verify that the AFI is ready
--   for use, check the output logs.
--   
--   An AFI contains the FPGA bitstream that is ready to download to an
--   FPGA. You can securely deploy an AFI on one or more FPGA-accelerated
--   instances. For more information, see the <a>AWS FPGA Hardware
--   Development Kit</a> .
module Network.AWS.EC2.CreateFpgaImage

-- | Creates a value of <a>CreateFpgaImage</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>creClientToken</a> - Unique, case-sensitive identifier that you
--   provide to ensure the idempotency of the request. For more
--   information, see <a>Ensuring Idempotency</a> .</li>
--   <li><a>creLogsStorageLocation</a> - The location in Amazon S3 for the
--   output logs.</li>
--   <li><a>creName</a> - A name for the AFI.</li>
--   <li><a>creDescription</a> - A description for the AFI.</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>creInputStorageLocation</a> - The location of the encrypted
--   design checkpoint in Amazon S3. The input must be a tarball.</li>
--   </ul>
createFpgaImage :: StorageLocation -> CreateFpgaImage

-- | <i>See:</i> <a>createFpgaImage</a> smart constructor.
data CreateFpgaImage

-- | Unique, case-sensitive identifier that you provide to ensure the
--   idempotency of the request. For more information, see <a>Ensuring
--   Idempotency</a> .
creClientToken :: Lens' CreateFpgaImage (Maybe Text)

-- | The location in Amazon S3 for the output logs.
creLogsStorageLocation :: Lens' CreateFpgaImage (Maybe StorageLocation)

-- | A name for the AFI.
creName :: Lens' CreateFpgaImage (Maybe Text)

-- | A description for the AFI.
creDescription :: Lens' CreateFpgaImage (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> .
creDryRun :: Lens' CreateFpgaImage (Maybe Bool)

-- | The location of the encrypted design checkpoint in Amazon S3. The
--   input must be a tarball.
creInputStorageLocation :: Lens' CreateFpgaImage StorageLocation

-- | Creates a value of <a>CreateFpgaImageResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfirsFpgaImageId</a> - The FPGA image identifier (AFI ID).</li>
--   <li><a>cfirsFpgaImageGlobalId</a> - The global FPGA image identifier
--   (AGFI ID).</li>
--   <li><a>cfirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createFpgaImageResponse :: Int -> CreateFpgaImageResponse

-- | <i>See:</i> <a>createFpgaImageResponse</a> smart constructor.
data CreateFpgaImageResponse

-- | The FPGA image identifier (AFI ID).
cfirsFpgaImageId :: Lens' CreateFpgaImageResponse (Maybe Text)

-- | The global FPGA image identifier (AGFI ID).
cfirsFpgaImageGlobalId :: Lens' CreateFpgaImageResponse (Maybe Text)

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


-- | 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.
--   
--   For more information, see <a>VPC Flow Logs</a> in the <i>Amazon
--   Virtual Private Cloud User Guide</i> .
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>cflDeliverLogsPermissionARN</a> - The ARN for the IAM role
--   that's used to post flow logs to a CloudWatch Logs log group.</li>
--   <li><a>cflLogGroupName</a> - The name of the CloudWatch log
--   group.</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>
--   </ul>
createFlowLogs :: Text -> Text -> FlowLogsResourceType -> TrafficType -> 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)

-- | The ARN for the IAM role that's used to post flow logs to a CloudWatch
--   Logs log group.
cflDeliverLogsPermissionARN :: Lens' CreateFlowLogs Text

-- | The name of the CloudWatch log group.
cflLogGroupName :: Lens' CreateFlowLogs 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

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateFlowLogs.CreateFlowLogsResponse
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


-- | Launches an EC2 Fleet.
--   
--   You can create a single EC2 Fleet that includes multiple launch
--   specifications that vary by instance type, AMI, Availability Zone, or
--   subnet.
--   
--   For more information, see <a>Launching an EC2 Fleet</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
module Network.AWS.EC2.CreateFleet

-- | Creates a value of <a>CreateFleet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request. For more
--   information, see <a>Ensuring Idempotency</a> .</li>
--   <li><a>cfSpotOptions</a> - Includes <tt>SpotAllocationStrategy</tt>
--   and <tt>SpotInstanceInterruptionBehavior</tt> inside this
--   structure.</li>
--   <li><a>cfExcessCapacityTerminationPolicy</a> - Indicates whether
--   running instances should be terminated if the total target capacity of
--   the EC2 Fleet is decreased below the current size of the EC2
--   Fleet.</li>
--   <li><a>cfTagSpecifications</a> - The tags for an EC2 Fleet
--   resource.</li>
--   <li><a>cfValidUntil</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 EC2 Fleet requests are
--   placed or able to fulfill the request. The default end date is 7 days
--   from the current date.</li>
--   <li><a>cfTerminateInstancesWithExpiration</a> - Indicates whether
--   running instances should be terminated when the EC2 Fleet
--   expires.</li>
--   <li><a>cfType</a> - The type of request. Indicates whether the EC2
--   Fleet only <tt>requests</tt> the target capacity, or also attempts to
--   <tt>maintain</tt> it. If you request a certain target capacity, EC2
--   Fleet only places the required requests. It does not attempt to
--   replenish instances if capacity is diminished, and does not submit
--   requests in alternative capacity pools if capacity is unavailable. To
--   maintain a certain target capacity, EC2 Fleet places the required
--   requests to meet this target capacity. It also automatically
--   replenishes any interrupted Spot Instances. Default: <tt>maintain</tt>
--   .</li>
--   <li><a>cfValidFrom</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>cfReplaceUnhealthyInstances</a> - Indicates whether EC2 Fleet
--   should replace unhealthy instances.</li>
--   <li><a>cfDryRun</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>cfLaunchTemplateConfigs</a> - The configuration for the EC2
--   Fleet.</li>
--   <li><a>cfTargetCapacitySpecification</a> - The
--   <tt>TotalTargetCapacity</tt> , <tt>OnDemandTargetCapacity</tt> ,
--   <tt>SpotTargetCapacity</tt> , and <tt>DefaultCapacityType</tt>
--   structure.</li>
--   </ul>
createFleet :: TargetCapacitySpecificationRequest -> CreateFleet

-- | <i>See:</i> <a>createFleet</a> smart constructor.
data CreateFleet

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request. For more information, see <a>Ensuring
--   Idempotency</a> .
cfClientToken :: Lens' CreateFleet (Maybe Text)

-- | Includes <tt>SpotAllocationStrategy</tt> and
--   <tt>SpotInstanceInterruptionBehavior</tt> inside this structure.
cfSpotOptions :: Lens' CreateFleet (Maybe SpotOptionsRequest)

-- | Indicates whether running instances should be terminated if the total
--   target capacity of the EC2 Fleet is decreased below the current size
--   of the EC2 Fleet.
cfExcessCapacityTerminationPolicy :: Lens' CreateFleet (Maybe FleetExcessCapacityTerminationPolicy)

-- | The tags for an EC2 Fleet resource.
cfTagSpecifications :: Lens' CreateFleet [TagSpecification]

-- | 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 EC2 Fleet requests are placed or able to fulfill
--   the request. The default end date is 7 days from the current date.
cfValidUntil :: Lens' CreateFleet (Maybe UTCTime)

-- | Indicates whether running instances should be terminated when the EC2
--   Fleet expires.
cfTerminateInstancesWithExpiration :: Lens' CreateFleet (Maybe Bool)

-- | The type of request. Indicates whether the EC2 Fleet only
--   <tt>requests</tt> the target capacity, or also attempts to
--   <tt>maintain</tt> it. If you request a certain target capacity, EC2
--   Fleet only places the required requests. It does not attempt to
--   replenish instances if capacity is diminished, and does not submit
--   requests in alternative capacity pools if capacity is unavailable. To
--   maintain a certain target capacity, EC2 Fleet places the required
--   requests to meet this target capacity. It also automatically
--   replenishes any interrupted Spot Instances. Default: <tt>maintain</tt>
--   .
cfType :: Lens' CreateFleet (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.
cfValidFrom :: Lens' CreateFleet (Maybe UTCTime)

-- | Indicates whether EC2 Fleet should replace unhealthy instances.
cfReplaceUnhealthyInstances :: Lens' CreateFleet (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> .
cfDryRun :: Lens' CreateFleet (Maybe Bool)

-- | The configuration for the EC2 Fleet.
cfLaunchTemplateConfigs :: Lens' CreateFleet [FleetLaunchTemplateConfigRequest]

-- | The <tt>TotalTargetCapacity</tt> , <tt>OnDemandTargetCapacity</tt> ,
--   <tt>SpotTargetCapacity</tt> , and <tt>DefaultCapacityType</tt>
--   structure.
cfTargetCapacitySpecification :: Lens' CreateFleet TargetCapacitySpecificationRequest

-- | Creates a value of <a>CreateFleetResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfrsFleetId</a> - The ID of the EC2 Fleet.</li>
--   <li><a>cfrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createFleetResponse :: Int -> CreateFleetResponse

-- | <i>See:</i> <a>createFleetResponse</a> smart constructor.
data CreateFleetResponse

-- | The ID of the EC2 Fleet.
cfrsFleetId :: Lens' CreateFleetResponse (Maybe Text)

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


-- | <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 Control.DeepSeq.NFData Network.AWS.EC2.CreateEgressOnlyInternetGateway.CreateEgressOnlyInternetGatewayResponse
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


-- | Creates a default VPC with a size <tt>/16</tt> IPv4 CIDR block and a
--   default subnet in each Availability Zone. For more information about
--   the components of a default VPC, see <a>Default VPC and Default
--   Subnets</a> in the <i>Amazon Virtual Private Cloud User Guide</i> .
--   You cannot specify the components of the default VPC yourself.
--   
--   You can create a default VPC if you deleted your previous default VPC.
--   You cannot have more than one default VPC per region.
--   
--   If your account supports EC2-Classic, you cannot use this action to
--   create a default VPC in a region that supports EC2-Classic. If you
--   want a default VPC in a region that supports EC2-Classic, see "I
--   really want a default VPC for my existing EC2 account. Is that
--   possible?" in the <a>Default VPCs FAQ</a> .
module Network.AWS.EC2.CreateDefaultVPC

-- | Creates a value of <a>CreateDefaultVPC</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdvDryRun</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>
createDefaultVPC :: CreateDefaultVPC

-- | Contains the parameters for CreateDefaultVpc.
--   
--   <i>See:</i> <a>createDefaultVPC</a> smart constructor.
data CreateDefaultVPC

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cdvDryRun :: Lens' CreateDefaultVPC (Maybe Bool)

-- | Creates a value of <a>CreateDefaultVPCResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdvrsVPC</a> - Information about the VPC.</li>
--   <li><a>cdvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createDefaultVPCResponse :: Int -> CreateDefaultVPCResponse

-- | Contains the output of CreateDefaultVpc.
--   
--   <i>See:</i> <a>createDefaultVPCResponse</a> smart constructor.
data CreateDefaultVPCResponse

-- | Information about the VPC.
cdvrsVPC :: Lens' CreateDefaultVPCResponse (Maybe VPC)

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


-- | Creates a default subnet with a size <tt>/20</tt> IPv4 CIDR block in
--   the specified Availability Zone in your default VPC. You can have only
--   one default subnet per Availability Zone. For more information, see
--   <a>Creating a Default Subnet</a> in the <i>Amazon Virtual Private
--   Cloud User Guide</i> .
module Network.AWS.EC2.CreateDefaultSubnet

-- | Creates a value of <a>CreateDefaultSubnet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdsDryRun</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>cdsAvailabilityZone</a> - The Availability Zone in which to
--   create the default subnet.</li>
--   </ul>
createDefaultSubnet :: Text -> CreateDefaultSubnet

-- | <i>See:</i> <a>createDefaultSubnet</a> smart constructor.
data CreateDefaultSubnet

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
cdsDryRun :: Lens' CreateDefaultSubnet (Maybe Bool)

-- | The Availability Zone in which to create the default subnet.
cdsAvailabilityZone :: Lens' CreateDefaultSubnet Text

-- | Creates a value of <a>CreateDefaultSubnetResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdsrsSubnet</a> - Information about the subnet.</li>
--   <li><a>cdsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createDefaultSubnetResponse :: Int -> CreateDefaultSubnetResponse

-- | <i>See:</i> <a>createDefaultSubnetResponse</a> smart constructor.
data CreateDefaultSubnetResponse

-- | Information about the subnet.
cdsrsSubnet :: Lens' CreateDefaultSubnetResponse (Maybe Subnet)

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


-- | 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
--   <tt>us-east-1</tt> , specify <tt>ec2.internal</tt> . If you're using
--   AmazonProvidedDNS in another region, specify
--   <tt>region.compute.internal</tt> (for example,
--   <tt>ap-northeast-1.compute.internal</tt> ). Otherwise, specify a
--   domain name (for example, <tt>MyCompany.com</tt> ). 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateDHCPOptions.CreateDHCPOptionsResponse
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


-- | 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>AWS Managed
--   VPN Connections</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>ccgBGPASN</a> - For devices that support BGP, the customer
--   gateway's BGP ASN. Default: 65000</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>ccgType</a> - The type of VPN connection that this customer
--   gateway supports (<tt>ipsec.1</tt> ).</li>
--   </ul>
createCustomerGateway :: Int -> Text -> GatewayType -> 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)

-- | For devices that support BGP, the customer gateway's BGP ASN. Default:
--   65000
ccgBGPASN :: Lens' CreateCustomerGateway Int

-- | The Internet-routable IP address for the customer gateway's outside
--   interface. The address must be static.
ccgPublicIP :: Lens' CreateCustomerGateway Text

-- | The type of VPN connection that this customer gateway supports
--   (<tt>ipsec.1</tt> ).
ccgType :: Lens' CreateCustomerGateway GatewayType

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CreateCustomerGateway.CreateCustomerGatewayResponse
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


-- | 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> - When you copy an encrypted source snapshot
--   using the Amazon EC2 Query API, you must supply a pre-signed URL. This
--   parameter is optional for unencrypted snapshots. For more information,
--   see <a>Query Requests</a> . 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> - An identifier for 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. If a <tt>KmsKeyId</tt> is specified, the
--   <tt>Encrypted</tt> flag must also be set. The CMK identifier may be
--   provided in any of the following formats: * Key ID * Key alias * ARN
--   using key ID. The ID 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> . * ARN using key
--   alias. The alias 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>alias</tt> namespace, and then the CMK alias. For
--   example, arn:aws:kms:<i>us-east-1</i> :<i>012345678910</i>
--   :alias/<i>ExampleAlias</i> . AWS parses <tt>KmsKeyId</tt>
--   asynchronously, meaning that the action you call may appear to
--   complete even though you provided an invalid identifier. The action
--   will eventually fail.</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

-- | When you copy an encrypted source snapshot using the Amazon EC2 Query
--   API, you must supply a pre-signed URL. This parameter is optional for
--   unencrypted snapshots. For more information, see <a>Query Requests</a>
--   . 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)

-- | An identifier for 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. If a
--   <tt>KmsKeyId</tt> is specified, the <tt>Encrypted</tt> flag must also
--   be set. The CMK identifier may be provided in any of the following
--   formats: * Key ID * Key alias * ARN using key ID. The ID 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>
--   . * ARN using key alias. The alias 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>alias</tt> namespace, and
--   then the CMK alias. For example, arn:aws:kms:<i>us-east-1</i>
--   :<i>012345678910</i> :alias/<i>ExampleAlias</i> . AWS parses
--   <tt>KmsKeyId</tt> asynchronously, meaning that the action you call may
--   appear to complete even though you provided an invalid identifier. The
--   action will eventually fail.
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 Control.DeepSeq.NFData Network.AWS.EC2.CopySnapshot.CopySnapshotResponse
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


-- | 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 about the prerequisites and limits when copying
--   an AMI, see <a>Copying an AMI</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> - An identifier for 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. If a <tt>KmsKeyId</tt> is specified, the
--   <tt>Encrypted</tt> flag must also be set. The CMK identifier may be
--   provided in any of the following formats: * Key ID * Key alias, in the
--   form <tt>alias/<i>ExampleAlias</i> </tt> * ARN using key ID. The ID
--   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> . * ARN using key
--   alias. The alias 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>alias</tt> namespace, and then the CMK alias. For
--   example, arn:aws:kms:<i>us-east-1</i> :<i>012345678910</i>
--   :alias/<i>ExampleAlias</i> . AWS parses <tt>KmsKeyId</tt>
--   asynchronously, meaning that the action you call may appear to
--   complete even though you provided an invalid identifier. This action
--   will eventually report failure. The specified CMK must exist in the
--   region that the snapshot is being copied to.</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>ciName</a> - The name of the new AMI in the destination
--   region.</li>
--   <li><a>ciSourceImageId</a> - The ID of the AMI to copy.</li>
--   <li><a>ciSourceRegion</a> - The name of the region that contains the
--   AMI to copy.</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)

-- | An identifier for 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. If a
--   <tt>KmsKeyId</tt> is specified, the <tt>Encrypted</tt> flag must also
--   be set. The CMK identifier may be provided in any of the following
--   formats: * Key ID * Key alias, in the form
--   <tt>alias/<i>ExampleAlias</i> </tt> * ARN using key ID. The ID 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> . * ARN using key
--   alias. The alias 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>alias</tt> namespace, and then the CMK alias. For
--   example, arn:aws:kms:<i>us-east-1</i> :<i>012345678910</i>
--   :alias/<i>ExampleAlias</i> . AWS parses <tt>KmsKeyId</tt>
--   asynchronously, meaning that the action you call may appear to
--   complete even though you provided an invalid identifier. This action
--   will eventually report failure. The specified CMK must exist in the
--   region that the snapshot is being copied to.
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 new AMI in the destination region.
ciName :: Lens' CopyImage Text

-- | The ID of the AMI to copy.
ciSourceImageId :: Lens' CopyImage Text

-- | The name of the region that contains the AMI to copy.
ciSourceRegion :: 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 Control.DeepSeq.NFData Network.AWS.EC2.CopyImage.CopyImageResponse
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


-- | Copies the specified Amazon FPGA Image (AFI) to the current region.
module Network.AWS.EC2.CopyFpgaImage

-- | Creates a value of <a>CopyFpgaImage</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfiClientToken</a> - Unique, case-sensitive identifier that you
--   provide to ensure the idempotency of the request. For more
--   information, see <a>Ensuring Idempotency</a> .</li>
--   <li><a>cfiName</a> - The name for the new AFI. The default is the name
--   of the source AFI.</li>
--   <li><a>cfiDescription</a> - The description for the new AFI.</li>
--   <li><a>cfiDryRun</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>cfiSourceFpgaImageId</a> - The ID of the source AFI.</li>
--   <li><a>cfiSourceRegion</a> - The region that contains the source
--   AFI.</li>
--   </ul>
copyFpgaImage :: Text -> Text -> CopyFpgaImage

-- | <i>See:</i> <a>copyFpgaImage</a> smart constructor.
data CopyFpgaImage

-- | Unique, case-sensitive identifier that you provide to ensure the
--   idempotency of the request. For more information, see <a>Ensuring
--   Idempotency</a> .
cfiClientToken :: Lens' CopyFpgaImage (Maybe Text)

-- | The name for the new AFI. The default is the name of the source AFI.
cfiName :: Lens' CopyFpgaImage (Maybe Text)

-- | The description for the new AFI.
cfiDescription :: Lens' CopyFpgaImage (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> .
cfiDryRun :: Lens' CopyFpgaImage (Maybe Bool)

-- | The ID of the source AFI.
cfiSourceFpgaImageId :: Lens' CopyFpgaImage Text

-- | The region that contains the source AFI.
cfiSourceRegion :: Lens' CopyFpgaImage Text

-- | Creates a value of <a>CopyFpgaImageResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crsFpgaImageId</a> - The ID of the new AFI.</li>
--   <li><a>crsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
copyFpgaImageResponse :: Int -> CopyFpgaImageResponse

-- | <i>See:</i> <a>copyFpgaImageResponse</a> smart constructor.
data CopyFpgaImageResponse

-- | The ID of the new AFI.
crsFpgaImageId :: Lens' CopyFpgaImageResponse (Maybe Text)

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


-- | 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 must 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>cpiInstanceId</a> - The ID of the instance.</li>
--   <li><a>cpiProductCode</a> - The product code. This must be a product
--   code that you own.</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 ID of the instance.
cpiInstanceId :: Lens' ConfirmProductInstance Text

-- | The product code. This must be a product code that you own.
cpiProductCode :: 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 Control.DeepSeq.NFData Network.AWS.EC2.ConfirmProductInstance.ConfirmProductInstanceResponse
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


-- | Cancels one or more Spot Instance requests. Spot Instances are
--   instances that Amazon EC2 starts on your behalf when the maximum price
--   that you specify exceeds the current Spot price. For more information,
--   see <a>Spot Instance Requests</a> in the <i>Amazon EC2 User Guide for
--   Linux Instances</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 Control.DeepSeq.NFData Network.AWS.EC2.CancelSpotInstanceRequests.CancelSpotInstanceRequestsResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CancelSpotFleetRequests.CancelSpotFleetRequestsResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CancelReservedInstancesListing.CancelReservedInstancesListingResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CancelImportTask.CancelImportTaskResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CancelExportTask.CancelExportTaskResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CancelConversionTask.CancelConversionTaskResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.CancelBundleTask.CancelBundleTaskResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.BundleInstance.BundleInstanceResponse
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


-- | 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>
--   
--   You can optionally specify a description for the security group rule.
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. If you specify all
--   ICMP/ICMPv6 types, you must specify all codes.</li>
--   <li><a>asgiIPPermissions</a> - One or more sets 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. You must
--   specify either the security group ID or the security group name in the
--   request. For security groups in a nondefault VPC, you must specify the
--   security group ID.</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. If you specify all
--   ICMP/ICMPv6 types, you must 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 ID 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. You must specify either the security group ID or the
--   security group name in the request.</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. If you specify all ICMP/ICMPv6
--   types, you must specify all codes.
asgiFromPort :: Lens' AuthorizeSecurityGroupIngress (Maybe Int)

-- | One or more sets 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. You must specify either the security
--   group ID or the security group name in the request. For security
--   groups in a nondefault VPC, you must specify the security group ID.
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. If you specify all ICMP/ICMPv6
--   types, you must 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 ID 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.
--   You must specify either the security group ID or the security group
--   name in the request.</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 Control.DeepSeq.NFData Network.AWS.EC2.AuthorizeSecurityGroupIngress.AuthorizeSecurityGroupIngressResponse
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


-- | <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. You can
--   optionally specify a description for the rule.
--   
--   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> - Not supported. Use a set of IP permissions
--   to specify the port.</li>
--   <li><a>asgeIPPermissions</a> - One or more sets of IP permissions. You
--   can't specify a destination security group and a CIDR IP address range
--   in the same set of permissions.</li>
--   <li><a>asgeIPProtocol</a> - Not supported. Use a set of IP permissions
--   to specify the protocol name or number.</li>
--   <li><a>asgeToPort</a> - Not supported. Use a set of IP permissions to
--   specify the port.</li>
--   <li><a>asgeCidrIP</a> - Not supported. Use a set of IP permissions to
--   specify the CIDR.</li>
--   <li><a>asgeSourceSecurityGroupOwnerId</a> - Not supported. Use a set
--   of IP permissions to specify a destination security group.</li>
--   <li><a>asgeSourceSecurityGroupName</a> - Not supported. Use a set of
--   IP permissions to specify a destination security group.</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

-- | Not supported. Use a set of IP permissions to specify the port.
asgeFromPort :: Lens' AuthorizeSecurityGroupEgress (Maybe Int)

-- | One or more sets of IP permissions. You can't specify a destination
--   security group and a CIDR IP address range in the same set of
--   permissions.
asgeIPPermissions :: Lens' AuthorizeSecurityGroupEgress [IPPermission]

-- | Not supported. Use a set of IP permissions to specify the protocol
--   name or number.
asgeIPProtocol :: Lens' AuthorizeSecurityGroupEgress (Maybe Text)

-- | Not supported. Use a set of IP permissions to specify the port.
asgeToPort :: Lens' AuthorizeSecurityGroupEgress (Maybe Int)

-- | Not supported. Use a set of IP permissions to specify the CIDR.
asgeCidrIP :: Lens' AuthorizeSecurityGroupEgress (Maybe Text)

-- | Not supported. Use a set of IP permissions to specify a destination
--   security group.
asgeSourceSecurityGroupOwnerId :: Lens' AuthorizeSecurityGroupEgress (Maybe Text)

-- | Not supported. Use a set of IP permissions to specify a destination
--   security group.
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 Control.DeepSeq.NFData Network.AWS.EC2.AuthorizeSecurityGroupEgress.AuthorizeSecurityGroupEgressResponse
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


-- | 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>avDevice</a> - The device name (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).</li>
--   <li><a>avInstanceId</a> - The ID of the instance.</li>
--   <li><a>avVolumeId</a> - The ID of the EBS volume. The volume and
--   instance must be within the same Availability Zone.</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 device name (for example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt>
--   ).
avDevice :: Lens' AttachVolume Text

-- | The ID of the instance.
avInstanceId :: Lens' AttachVolume Text

-- | The ID of the EBS volume. The volume and instance must be within the
--   same Availability Zone.
avVolumeId :: 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. You can attach one
--   virtual private gateway to one VPC at a time.
--   
--   For more information, see <a>AWS Managed VPN Connections</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>avgVPCId</a> - The ID of the VPC.</li>
--   <li><a>avgVPNGatewayId</a> - The ID of the virtual private
--   gateway.</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 VPC.
avgVPCId :: Lens' AttachVPNGateway Text

-- | The ID of the virtual private gateway.
avgVPNGatewayId :: 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 Control.DeepSeq.NFData Network.AWS.EC2.AttachVPNGateway.AttachVPNGatewayResponse
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


-- | 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>aniDeviceIndex</a> - The index of the device for the network
--   interface attachment.</li>
--   <li><a>aniInstanceId</a> - The ID of the instance.</li>
--   <li><a>aniNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   </ul>
attachNetworkInterface :: Int -> Text -> Text -> 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 index of the device for the network interface attachment.
aniDeviceIndex :: Lens' AttachNetworkInterface Int

-- | The ID of the instance.
aniInstanceId :: Lens' AttachNetworkInterface Text

-- | The ID of the network interface.
aniNetworkInterfaceId :: Lens' AttachNetworkInterface Text

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.AttachNetworkInterface.AttachNetworkInterfaceResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.AttachInternetGateway.AttachInternetGatewayResponse
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


-- | 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>aclvGroups</a> - The ID of one or more of the VPC's security
--   groups. You cannot specify security groups from a different VPC.</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>
--   </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 one or more of the VPC's security groups. You cannot specify
--   security groups from a different VPC.
aclvGroups :: Lens' AttachClassicLinkVPC [Text]

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

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.AttachClassicLinkVPC.AttachClassicLinkVPCResponse
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


-- | Associates a CIDR block with your VPC. You can associate a secondary
--   IPv4 CIDR block, or you can associate an Amazon-provided IPv6 CIDR
--   block. The IPv6 CIDR block size is fixed at /56.
--   
--   For more information about associating CIDR blocks with your VPC and
--   applicable restrictions, see <a>VPC and Subnet Sizing</a> in the
--   <i>Amazon Virtual Private Cloud User Guide</i> .
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>avcbCidrBlock</a> - An IPv4 CIDR block to associate with the
--   VPC.</li>
--   <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

-- | An IPv4 CIDR block to associate with the VPC.
avcbCidrBlock :: Lens' AssociateVPCCidrBlock (Maybe Text)

-- | 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>avcbrsCidrBlockAssociation</a> - Information about the IPv4
--   CIDR block association.</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 IPv4 CIDR block association.
avcbrsCidrBlockAssociation :: Lens' AssociateVPCCidrBlockResponse (Maybe VPCCidrBlockAssociation)

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.AssociateVPCCidrBlock.AssociateVPCCidrBlockResponse
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


-- | 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>ascbIPv6CidrBlock</a> - The IPv6 CIDR block for your subnet.
--   The subnet must have a /64 prefix length.</li>
--   <li><a>ascbSubnetId</a> - The ID of your subnet.</li>
--   </ul>
associateSubnetCidrBlock :: Text -> Text -> AssociateSubnetCidrBlock

-- | <i>See:</i> <a>associateSubnetCidrBlock</a> smart constructor.
data AssociateSubnetCidrBlock

-- | The IPv6 CIDR block for your subnet. The subnet must have a /64 prefix
--   length.
ascbIPv6CidrBlock :: Lens' AssociateSubnetCidrBlock Text

-- | The ID of your subnet.
ascbSubnetId :: 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 Control.DeepSeq.NFData Network.AWS.EC2.AssociateSubnetCidrBlock.AssociateSubnetCidrBlockResponse
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


-- | 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>artRouteTableId</a> - The ID of the route table.</li>
--   <li><a>artSubnetId</a> - The ID of the subnet.</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 route table.
artRouteTableId :: Lens' AssociateRouteTable Text

-- | The ID of the subnet.
artSubnetId :: 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 Control.DeepSeq.NFData Network.AWS.EC2.AssociateRouteTable.AssociateRouteTableResponse
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


-- | Associates an IAM instance profile with a running or stopped instance.
--   You cannot associate more than one IAM instance profile with an
--   instance.
module Network.AWS.EC2.AssociateIAMInstanceProfile

-- | Creates a value of <a>AssociateIAMInstanceProfile</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aiapIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>aiapInstanceId</a> - The ID of the instance.</li>
--   </ul>
associateIAMInstanceProfile :: IAMInstanceProfileSpecification -> Text -> AssociateIAMInstanceProfile

-- | <i>See:</i> <a>associateIAMInstanceProfile</a> smart constructor.
data AssociateIAMInstanceProfile

-- | The IAM instance profile.
aiapIAMInstanceProfile :: Lens' AssociateIAMInstanceProfile IAMInstanceProfileSpecification

-- | The ID of the instance.
aiapInstanceId :: Lens' AssociateIAMInstanceProfile Text

-- | Creates a value of <a>AssociateIAMInstanceProfileResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aiaprsIAMInstanceProfileAssociation</a> - Information about the
--   IAM instance profile association.</li>
--   <li><a>aiaprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
associateIAMInstanceProfileResponse :: Int -> AssociateIAMInstanceProfileResponse

-- | <i>See:</i> <a>associateIAMInstanceProfileResponse</a> smart
--   constructor.
data AssociateIAMInstanceProfileResponse

-- | Information about the IAM instance profile association.
aiaprsIAMInstanceProfileAssociation :: Lens' AssociateIAMInstanceProfileResponse (Maybe IAMInstanceProfileAssociation)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.AssociateDHCPOptions.AssociateDHCPOptionsResponse
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


-- | 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. If you associate an Elastic IP address with an instance that
--   has an existing Elastic IP address, the existing address is
--   disassociated from the instance, but remains allocated to your
--   account.</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. You cannot associate an Elastic IP
--   address with an instance or network interface that has an existing
--   Elastic IP address.</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 Control.DeepSeq.NFData Network.AWS.EC2.AssociateAddress.AssociateAddressResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.AssignPrivateIPAddresses.AssignPrivateIPAddressesResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.AssignIPv6Addresses.AssignIPv6AddressesResponse
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


-- | 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>ahAvailabilityZone</a> - The Availability Zone for the
--   Dedicated Hosts.</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>
--   </ul>
allocateHosts :: Text -> Text -> Int -> 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)

-- | The Availability Zone for the Dedicated Hosts.
ahAvailabilityZone :: Lens' AllocateHosts Text

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

-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.AllocateHosts.AllocateHostsResponse
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


-- | Allocates an Elastic IP address.
--   
--   An Elastic IP address is for use either in the EC2-Classic platform or
--   in a VPC. By default, you can allocate 5 Elastic IP addresses for
--   EC2-Classic per region and 5 Elastic IP addresses for EC2-VPC per
--   region.
--   
--   If you release an Elastic IP address for use in a VPC, you might be
--   able to recover it. To recover an Elastic IP address that you
--   released, specify it in the <tt>Address</tt> parameter. Note that you
--   cannot recover an Elastic IP address that you released after it is
--   allocated to another AWS account.
--   
--   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>aaAddress</a> - [EC2-VPC] The Elastic IP address to
--   recover.</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)

-- | <ul>
--   <li><i>EC2-VPC</i> The Elastic IP address to recover.</li>
--   </ul>
aaAddress :: Lens' AllocateAddress (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> .
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 Control.DeepSeq.NFData Network.AWS.EC2.AllocateAddress.AllocateAddressResponse
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


-- | 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
--   <tt>DescribeVpcPeeringConnections</tt> to view your outstanding VPC
--   peering connection requests.
--   
--   For an inter-region VPC peering connection request, you must accept
--   the VPC peering connection in the region of the accepter VPC.
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. You must specify this parameter in the request.</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. You must specify this parameter
--   in the request.
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 Control.DeepSeq.NFData Network.AWS.EC2.AcceptVPCPeeringConnection.AcceptVPCPeeringConnectionResponse
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


-- | Accepts one or more interface VPC endpoint connection requests to your
--   VPC endpoint service.
module Network.AWS.EC2.AcceptVPCEndpointConnections

-- | Creates a value of <a>AcceptVPCEndpointConnections</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avecDryRun</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>avecServiceId</a> - The ID of the endpoint service.</li>
--   <li><a>avecVPCEndpointIds</a> - The IDs of one or more interface VPC
--   endpoints.</li>
--   </ul>
acceptVPCEndpointConnections :: Text -> AcceptVPCEndpointConnections

-- | <i>See:</i> <a>acceptVPCEndpointConnections</a> smart constructor.
data AcceptVPCEndpointConnections

-- | Checks whether you have the required permissions for the action,
--   without actually making the request, and provides an error response.
--   If you have the required permissions, the error response is
--   <tt>DryRunOperation</tt> . Otherwise, it is
--   <tt>UnauthorizedOperation</tt> .
avecDryRun :: Lens' AcceptVPCEndpointConnections (Maybe Bool)

-- | The ID of the endpoint service.
avecServiceId :: Lens' AcceptVPCEndpointConnections Text

-- | The IDs of one or more interface VPC endpoints.
avecVPCEndpointIds :: Lens' AcceptVPCEndpointConnections [Text]

-- | Creates a value of <a>AcceptVPCEndpointConnectionsResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avecrsUnsuccessful</a> - Information about the interface
--   endpoints that were not accepted, if applicable.</li>
--   <li><a>avecrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
acceptVPCEndpointConnectionsResponse :: Int -> AcceptVPCEndpointConnectionsResponse

-- | <i>See:</i> <a>acceptVPCEndpointConnectionsResponse</a> smart
--   constructor.
data AcceptVPCEndpointConnectionsResponse

-- | Information about the interface endpoints that were not accepted, if
--   applicable.
avecrsUnsuccessful :: Lens' AcceptVPCEndpointConnectionsResponse [UnsuccessfulItem]

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


-- | 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 configuration of the target
--   Convertible Reserved Instance to exchange for your current Convertible
--   Reserved Instances.</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 another Convertible Reserved
--   Instance 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 configuration of the target Convertible Reserved Instance to
--   exchange for your current Convertible Reserved Instances.
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 another
--   Convertible Reserved Instance 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 Control.DeepSeq.NFData Network.AWS.EC2.AcceptReservedInstancesExchangeQuote.AcceptReservedInstancesExchangeQuoteResponse
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


-- | 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>uiaIPv6Addresses</a> - The IPv6 addresses to unassign from the
--   network interface.</li>
--   <li><a>uiaNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   </ul>
unassignIPv6Addresses :: Text -> UnassignIPv6Addresses

-- | <i>See:</i> <a>unassignIPv6Addresses</a> smart constructor.
data UnassignIPv6Addresses

-- | The IPv6 addresses to unassign from the network interface.
uiaIPv6Addresses :: Lens' UnassignIPv6Addresses [Text]

-- | The ID of the network interface.
uiaNetworkInterfaceId :: 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 Control.DeepSeq.NFData Network.AWS.EC2.UnassignIPv6Addresses.UnassignIPv6AddressesResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.UnassignPrivateIPAddresses.UnassignPrivateIPAddressesResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.EC2.UnmonitorInstances.UnmonitorInstancesResponse
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


-- | <ul>
--   <li><i>EC2-VPC only</i> Updates the description of an egress
--   (outbound) security group rule. You can replace an existing
--   description, or add a description to a rule that did not have one
--   previously.</li>
--   </ul>
--   
--   You specify the description as part of the IP permissions structure.
--   You can remove a description for a security group rule by omitting the
--   description parameter in the request.
module Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress

-- | Creates a value of <a>UpdateSecurityGroupRuleDescriptionsEgress</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usgrdeGroupId</a> - The ID of the security group. You must
--   specify either the security group ID or the security group name in the
--   request. For security groups in a nondefault VPC, you must specify the
--   security group ID.</li>
--   <li><a>usgrdeGroupName</a> - [Default VPC] The name of the security
--   group. You must specify either the security group ID or the security
--   group name in the request.</li>
--   <li><a>usgrdeDryRun</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>usgrdeIPPermissions</a> - The IP permissions for the security
--   group rule.</li>
--   </ul>
updateSecurityGroupRuleDescriptionsEgress :: UpdateSecurityGroupRuleDescriptionsEgress

-- | Contains the parameters for UpdateSecurityGroupRuleDescriptionsEgress.
--   
--   <i>See:</i> <a>updateSecurityGroupRuleDescriptionsEgress</a> smart
--   constructor.
data UpdateSecurityGroupRuleDescriptionsEgress

-- | The ID of the security group. You must specify either the security
--   group ID or the security group name in the request. For security
--   groups in a nondefault VPC, you must specify the security group ID.
usgrdeGroupId :: Lens' UpdateSecurityGroupRuleDescriptionsEgress (Maybe Text)

-- | <ul>
--   <li><i>Default VPC</i> The name of the security group. You must
--   specify either the security group ID or the security group name in the
--   request.</li>
--   </ul>
usgrdeGroupName :: Lens' UpdateSecurityGroupRuleDescriptionsEgress (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> .
usgrdeDryRun :: Lens' UpdateSecurityGroupRuleDescriptionsEgress (Maybe Bool)

-- | The IP permissions for the security group rule.
usgrdeIPPermissions :: Lens' UpdateSecurityGroupRuleDescriptionsEgress [IPPermission]

-- | Creates a value of
--   <a>UpdateSecurityGroupRuleDescriptionsEgressResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usgrdersReturn</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, returns an error.</li>
--   <li><a>usgrdersResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
updateSecurityGroupRuleDescriptionsEgressResponse :: Int -> UpdateSecurityGroupRuleDescriptionsEgressResponse

-- | Contains the output of UpdateSecurityGroupRuleDescriptionsEgress.
--   
--   <i>See:</i> <a>updateSecurityGroupRuleDescriptionsEgressResponse</a>
--   smart constructor.
data UpdateSecurityGroupRuleDescriptionsEgressResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, returns an
--   error.
usgrdersReturn :: Lens' UpdateSecurityGroupRuleDescriptionsEgressResponse (Maybe Bool)

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


-- | Updates the description of an ingress (inbound) security group rule.
--   You can replace an existing description, or add a description to a
--   rule that did not have one previously.
--   
--   You specify the description as part of the IP permissions structure.
--   You can remove a description for a security group rule by omitting the
--   description parameter in the request.
module Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress

-- | Creates a value of <a>UpdateSecurityGroupRuleDescriptionsIngress</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usgrdiGroupId</a> - The ID of the security group. You must
--   specify either the security group ID or the security group name in the
--   request. For security groups in a nondefault VPC, you must specify the
--   security group ID.</li>
--   <li><a>usgrdiGroupName</a> - [EC2-Classic, default VPC] The name of
--   the security group. You must specify either the security group ID or
--   the security group name in the request.</li>
--   <li><a>usgrdiDryRun</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>usgrdiIPPermissions</a> - The IP permissions for the security
--   group rule.</li>
--   </ul>
updateSecurityGroupRuleDescriptionsIngress :: UpdateSecurityGroupRuleDescriptionsIngress

-- | Contains the parameters for
--   UpdateSecurityGroupRuleDescriptionsIngress.
--   
--   <i>See:</i> <a>updateSecurityGroupRuleDescriptionsIngress</a> smart
--   constructor.
data UpdateSecurityGroupRuleDescriptionsIngress

-- | The ID of the security group. You must specify either the security
--   group ID or the security group name in the request. For security
--   groups in a nondefault VPC, you must specify the security group ID.
usgrdiGroupId :: Lens' UpdateSecurityGroupRuleDescriptionsIngress (Maybe Text)

-- | <ul>
--   <li><i>EC2-Classic, default VPC</i> The name of the security group.
--   You must specify either the security group ID or the security group
--   name in the request.</li>
--   </ul>
usgrdiGroupName :: Lens' UpdateSecurityGroupRuleDescriptionsIngress (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> .
usgrdiDryRun :: Lens' UpdateSecurityGroupRuleDescriptionsIngress (Maybe Bool)

-- | The IP permissions for the security group rule.
usgrdiIPPermissions :: Lens' UpdateSecurityGroupRuleDescriptionsIngress [IPPermission]

-- | Creates a value of
--   <a>UpdateSecurityGroupRuleDescriptionsIngressResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usgrdirsReturn</a> - Returns <tt>true</tt> if the request
--   succeeds; otherwise, returns an error.</li>
--   <li><a>usgrdirsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
updateSecurityGroupRuleDescriptionsIngressResponse :: Int -> UpdateSecurityGroupRuleDescriptionsIngressResponse

-- | Contains the output of UpdateSecurityGroupRuleDescriptionsIngress.
--   
--   <i>See:</i> <a>updateSecurityGroupRuleDescriptionsIngressResponse</a>
--   smart constructor.
data UpdateSecurityGroupRuleDescriptionsIngressResponse

-- | Returns <tt>true</tt> if the request succeeds; otherwise, returns an
--   error.
usgrdirsReturn :: Lens' UpdateSecurityGroupRuleDescriptionsIngressResponse (Maybe Bool)

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


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>DescribeVPCPeeringConnections</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
vpcPeeringConnectionDeleted :: Wait DescribeVPCPeeringConnections

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


-- | <b>Amazon Elastic Compute Cloud</b>
--   
--   Amazon Elastic Compute Cloud (Amazon EC2) provides resizable computing
--   capacity in the AWS Cloud. Using Amazon EC2 eliminates the 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>DescribeVPCPeeringConnections</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
vpcPeeringConnectionDeleted :: Wait DescribeVPCPeeringConnections

-- | 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
ASError' :: ActivityStatus
ASFulfilled :: ActivityStatus
ASPendingFulfillment :: ActivityStatus
ASPendingTermination :: 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
ASDiversified :: AllocationStrategy
ASLowestPrice :: 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
CBECFleetRequestIdDoesNotExist :: CancelBatchErrorCode
CBECFleetRequestIdMalformed :: CancelBatchErrorCode
CBECFleetRequestNotInCancellableState :: CancelBatchErrorCode
CBECUnexpectedError :: CancelBatchErrorCode
data CancelSpotInstanceRequestState
CSIRSActive :: CancelSpotInstanceRequestState
CSIRSCancelled :: CancelSpotInstanceRequestState
CSIRSClosed :: CancelSpotInstanceRequestState
CSIRSCompleted :: CancelSpotInstanceRequestState
CSIRSOpen :: CancelSpotInstanceRequestState
data ConnectionNotificationState
Disabled :: ConnectionNotificationState
Enabled :: ConnectionNotificationState
data ConnectionNotificationType
Topic :: ConnectionNotificationType
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 DefaultTargetCapacityType
DTCTOnDemand :: DefaultTargetCapacityType
DTCTSpot :: DefaultTargetCapacityType
data DeleteFleetErrorCode
DFECFleetIdDoesNotExist :: DeleteFleetErrorCode
DFECFleetIdMalformed :: DeleteFleetErrorCode
DFECFleetNotInDeletableState :: DeleteFleetErrorCode
DFECUnexpectedError :: DeleteFleetErrorCode
data DeviceType
EBS :: DeviceType
InstanceStore :: DeviceType
data DiskImageFormat
Raw :: DiskImageFormat
VHD :: DiskImageFormat
VMDK :: DiskImageFormat
data DomainType
DTStandard :: DomainType
DTVPC :: DomainType
data ElasticGpuState
Attached :: ElasticGpuState
data ElasticGpuStatus
EGSImpaired :: ElasticGpuStatus
EGSOK :: ElasticGpuStatus
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 FleetActivityStatus
Error' :: FleetActivityStatus
Fulfilled :: FleetActivityStatus
PendingFulfillment :: FleetActivityStatus
PendingTermination :: FleetActivityStatus
data FleetEventType
FETFleetChange :: FleetEventType
FETInstanceChange :: FleetEventType
FETServiceError :: FleetEventType
data FleetExcessCapacityTerminationPolicy
NoTermination :: FleetExcessCapacityTerminationPolicy
Termination :: FleetExcessCapacityTerminationPolicy
data FleetStateCode
FSCActive :: FleetStateCode
FSCDeleted :: FleetStateCode
FSCDeletedRunning :: FleetStateCode
FSCDeletedTerminating :: FleetStateCode
FSCFailed :: FleetStateCode
FSCModifying :: FleetStateCode
FSCSubmitted :: FleetStateCode
data FleetType
FTMaintain :: FleetType
FTRequest :: FleetType
data FlowLogsResourceType
FLRTNetworkInterface :: FlowLogsResourceType
FLRTSubnet :: FlowLogsResourceType
FLRTVPC :: FlowLogsResourceType
data FpgaImageAttributeName
FIANDescription :: FpgaImageAttributeName
FIANLoadPermission :: FpgaImageAttributeName
FIANName :: FpgaImageAttributeName
FIANProductCodes :: FpgaImageAttributeName
data FpgaImageStateCode
FISCAvailable :: FpgaImageStateCode
FISCFailed :: FpgaImageStateCode
FISCPending :: FpgaImageStateCode
FISCUnavailable :: FpgaImageStateCode
data GatewayType
IPsec_1 :: GatewayType
data HostTenancy
HTDedicated :: HostTenancy
HTHost :: HostTenancy
data HypervisorType
Ovm :: HypervisorType
Xen :: HypervisorType
data IAMInstanceProfileAssociationState
Associated :: IAMInstanceProfileAssociationState
Associating :: IAMInstanceProfileAssociationState
Disassociated :: IAMInstanceProfileAssociationState
Disassociating :: IAMInstanceProfileAssociationState
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 InstanceHealthStatus
Healthy :: InstanceHealthStatus
Unhealthy :: InstanceHealthStatus
data InstanceInterruptionBehavior
Hibernate :: InstanceInterruptionBehavior
Stop :: InstanceInterruptionBehavior
Terminate :: InstanceInterruptionBehavior
data InstanceLifecycleType
ILTScheduled :: InstanceLifecycleType
ILTSpot :: 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
C5_18XLarge :: InstanceType
C5_2XLarge :: InstanceType
C5_4XLarge :: InstanceType
C5_9XLarge :: InstanceType
C5_Large :: InstanceType
C5_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
G3_16XLarge :: InstanceType
G3_4XLarge :: InstanceType
G3_8XLarge :: InstanceType
H1_16XLarge :: InstanceType
H1_2XLarge :: InstanceType
H1_4XLarge :: InstanceType
H1_8XLarge :: InstanceType
HI1_4XLarge :: InstanceType
HS1_8XLarge :: InstanceType
I2_2XLarge :: InstanceType
I2_4XLarge :: InstanceType
I2_8XLarge :: InstanceType
I2_XLarge :: InstanceType
I3_16XLarge :: InstanceType
I3_2XLarge :: InstanceType
I3_4XLarge :: InstanceType
I3_8XLarge :: InstanceType
I3_Large :: InstanceType
I3_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
M5_12XLarge :: InstanceType
M5_24XLarge :: InstanceType
M5_2XLarge :: InstanceType
M5_4XLarge :: InstanceType
M5_Large :: InstanceType
M5_XLarge :: InstanceType
P2_16XLarge :: InstanceType
P2_8XLarge :: InstanceType
P2_XLarge :: InstanceType
P3_16XLarge :: InstanceType
P3_2XLarge :: InstanceType
P3_8XLarge :: InstanceType
R3_2XLarge :: InstanceType
R3_4XLarge :: InstanceType
R3_8XLarge :: InstanceType
R3_Large :: InstanceType
R3_XLarge :: InstanceType
R4_16XLarge :: InstanceType
R4_2XLarge :: InstanceType
R4_4XLarge :: InstanceType
R4_8XLarge :: InstanceType
R4_Large :: InstanceType
R4_XLarge :: InstanceType
T1_Micro :: InstanceType
T2_2XLarge :: InstanceType
T2_Large :: InstanceType
T2_Medium :: InstanceType
T2_Micro :: InstanceType
T2_Nano :: InstanceType
T2_Small :: InstanceType
T2_XLarge :: InstanceType
X1_16XLarge :: InstanceType
X1_32XLarge :: InstanceType
X1e_16XLarge :: InstanceType
X1e_2XLarge :: InstanceType
X1e_32XLarge :: InstanceType
X1e_4XLarge :: InstanceType
X1e_8XLarge :: InstanceType
X1e_XLarge :: InstanceType
data InterfacePermissionType
EIPAssociate :: InterfacePermissionType
InstanceAttach :: InterfacePermissionType
data LaunchTemplateErrorCode
LaunchTemplateIdDoesNotExist :: LaunchTemplateErrorCode
LaunchTemplateIdMalformed :: LaunchTemplateErrorCode
LaunchTemplateNameDoesNotExist :: LaunchTemplateErrorCode
LaunchTemplateNameMalformed :: LaunchTemplateErrorCode
LaunchTemplateVersionDoesNotExist :: LaunchTemplateErrorCode
UnexpectedError :: LaunchTemplateErrorCode
data ListingState
LAvailable :: ListingState
LCancelled :: ListingState
LPending :: ListingState
LSold :: ListingState
data ListingStatus
LSActive :: ListingStatus
LSCancelled :: ListingStatus
LSClosed :: ListingStatus
LSPending :: ListingStatus
data MarketType
Spot :: MarketType
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 NetworkInterfacePermissionStateCode
NIPSCGranted :: NetworkInterfacePermissionStateCode
NIPSCPending :: NetworkInterfacePermissionStateCode
NIPSCRevoked :: NetworkInterfacePermissionStateCode
NIPSCRevoking :: NetworkInterfacePermissionStateCode
data NetworkInterfaceStatus
NISAssociated :: NetworkInterfaceStatus
NISAttaching :: NetworkInterfaceStatus
NISAvailable :: NetworkInterfaceStatus
NISDetaching :: NetworkInterfaceStatus
NISInUse :: NetworkInterfaceStatus
data NetworkInterfaceType
NITInterface :: NetworkInterfaceType
NITNatGateway :: NetworkInterfaceType
data OfferingClassType
OCTConvertible :: OfferingClassType
OCTStandard :: 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
Spread :: PlacementStrategy
data PlatformValues
Windows :: PlatformValues
data PrincipalType
PTAccount :: PrincipalType
PTAll :: PrincipalType
PTOrganizationUnit :: PrincipalType
PTRole :: PrincipalType
PTService :: PrincipalType
PTUser :: PrincipalType
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 ResetFpgaImageAttributeName
LoadPermission :: ResetFpgaImageAttributeName
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 ServiceState
SerAvailable :: ServiceState
SerDeleted :: ServiceState
SerDeleting :: ServiceState
SerFailed :: ServiceState
SerPending :: ServiceState
data ServiceType
Gateway :: ServiceType
Interface :: ServiceType
data ShutdownBehavior
SBStop :: ShutdownBehavior
SBTerminate :: ShutdownBehavior
data SnapshotAttributeName
SANCreateVolumePermission :: SnapshotAttributeName
SANProductCodes :: SnapshotAttributeName
data SnapshotState
SSCompleted :: SnapshotState
SSError' :: SnapshotState
SSPending :: SnapshotState
data SpotAllocationStrategy
Diversified :: SpotAllocationStrategy
LowestPrice :: SpotAllocationStrategy
data SpotInstanceInterruptionBehavior
SIIBHibernate :: SpotInstanceInterruptionBehavior
SIIBStop :: SpotInstanceInterruptionBehavior
SIIBTerminate :: SpotInstanceInterruptionBehavior
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
SExpired :: State
SFailed :: State
SPending :: State
SPendingAcceptance :: State
SRejected :: State
data StatusName
Reachability :: StatusName
data StatusType
STFailed :: StatusType
STInitializing :: StatusType
STInsufficientData :: StatusType
STPassed :: StatusType
data SubnetCidrBlockStateCode
SCBSCAssociated :: SubnetCidrBlockStateCode
SCBSCAssociating :: SubnetCidrBlockStateCode
SCBSCDisassociated :: SubnetCidrBlockStateCode
SCBSCDisassociating :: SubnetCidrBlockStateCode
SCBSCFailed :: SubnetCidrBlockStateCode
SCBSCFailing :: 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 UnsuccessfulInstanceCreditSpecificationErrorCode
IncorrectInstanceState :: UnsuccessfulInstanceCreditSpecificationErrorCode
InstanceCreditSpecification_NotSupported :: UnsuccessfulInstanceCreditSpecificationErrorCode
InvalidInstanceId_Malformed :: UnsuccessfulInstanceCreditSpecificationErrorCode
InvalidInstanceId_NotFound :: UnsuccessfulInstanceCreditSpecificationErrorCode
data VPCAttributeName
EnableDNSHostnames :: VPCAttributeName
EnableDNSSupport :: VPCAttributeName
data VPCCidrBlockStateCode
VCBSCAssociated :: VPCCidrBlockStateCode
VCBSCAssociating :: VPCCidrBlockStateCode
VCBSCDisassociated :: VPCCidrBlockStateCode
VCBSCDisassociating :: VPCCidrBlockStateCode
VCBSCFailed :: VPCCidrBlockStateCode
VCBSCFailing :: VPCCidrBlockStateCode
data VPCEndpointType
VETGateway :: VPCEndpointType
VETInterface :: VPCEndpointType
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 VPCTenancy
VTDefault :: VPCTenancy
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 VolumeModificationState
Completed :: VolumeModificationState
Failed :: VolumeModificationState
Modifying :: VolumeModificationState
Optimizing :: VolumeModificationState
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
GP2 :: VolumeType
IO1 :: VolumeType
SC1 :: VolumeType
ST1 :: VolumeType
Standard :: 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>aiInstanceHealth</a> - The health status of the instance. If
--   the status of either the instance status check or the system status
--   check is <tt>impaired</tt> , the health status of the instance is
--   <tt>unhealthy</tt> . Otherwise, the health status is <tt>healthy</tt>
--   .</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 health status of the instance. If the status of either the
--   instance status check or the system status check is <tt>impaired</tt>
--   , the health status of the instance is <tt>unhealthy</tt> . Otherwise,
--   the health status is <tt>healthy</tt> .
aiInstanceHealth :: Lens' ActiveInstance (Maybe InstanceHealthStatus)

-- | 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>
--   <li><a>aTags</a> - Any tags assigned to 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)

-- | Any tags assigned to the Elastic IP address.
aTags :: Lens' Address [Tag]

-- | Describes a principal.
--   
--   <i>See:</i> <a>allowedPrincipal</a> smart constructor.
data AllowedPrincipal

-- | Creates a value of <a>AllowedPrincipal</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>apPrincipalType</a> - The type of principal.</li>
--   <li><a>apPrincipal</a> - The Amazon Resource Name (ARN) of the
--   principal.</li>
--   </ul>
allowedPrincipal :: AllowedPrincipal

-- | The type of principal.
apPrincipalType :: Lens' AllowedPrincipal (Maybe PrincipalType)

-- | The Amazon Resource Name (ARN) of the principal.
apPrincipal :: Lens' AllowedPrincipal (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. The value is
--   case-sensitive.</li>
--   </ul>
attributeValue :: AttributeValue

-- | The attribute value. 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 (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 (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)

-- | The CPU options for the instance.
--   
--   <i>See:</i> <a>cpuOptions</a> smart constructor.
data CPUOptions

-- | Creates a value of <a>CPUOptions</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coCoreCount</a> - The number of CPU cores for the
--   instance.</li>
--   <li><a>coThreadsPerCore</a> - The number of threads per CPU core.</li>
--   </ul>
cpuOptions :: CPUOptions

-- | The number of CPU cores for the instance.
coCoreCount :: Lens' CPUOptions (Maybe Int)

-- | The number of threads per CPU core.
coThreadsPerCore :: Lens' CPUOptions (Maybe Int)

-- | The CPU options for the instance. Both the core count and threads per
--   core must be specified in the request.
--   
--   <i>See:</i> <a>cpuOptionsRequest</a> smart constructor.
data CPUOptionsRequest

-- | Creates a value of <a>CPUOptionsRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>corCoreCount</a> - The number of CPU cores for the
--   instance.</li>
--   <li><a>corThreadsPerCore</a> - The number of threads per CPU core. To
--   disable Intel Hyper-Threading Technology for the instance, specify a
--   value of <tt>1</tt> . Otherwise, specify the default value of
--   <tt>2</tt> .</li>
--   </ul>
cpuOptionsRequest :: CPUOptionsRequest

-- | The number of CPU cores for the instance.
corCoreCount :: Lens' CPUOptionsRequest (Maybe Int)

-- | The number of threads per CPU core. To disable Intel Hyper-Threading
--   Technology for the instance, specify a value of <tt>1</tt> .
--   Otherwise, specify the default value of <tt>2</tt> .
corThreadsPerCore :: Lens' CPUOptionsRequest (Maybe Int)

-- | 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>csfreiError</a> - The error.</li>
--   <li><a>csfreiSpotFleetRequestId</a> - The ID of the Spot Fleet
--   request.</li>
--   </ul>
cancelSpotFleetRequestsErrorItem :: CancelSpotFleetRequestsError -> Text -> CancelSpotFleetRequestsErrorItem

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

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

-- | 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>csfrsiCurrentSpotFleetRequestState</a> - The current state of
--   the Spot Fleet request.</li>
--   <li><a>csfrsiPreviousSpotFleetRequestState</a> - The previous state of
--   the Spot Fleet request.</li>
--   <li><a>csfrsiSpotFleetRequestId</a> - The ID of the Spot Fleet
--   request.</li>
--   </ul>
cancelSpotFleetRequestsSuccessItem :: BatchState -> BatchState -> Text -> CancelSpotFleetRequestsSuccessItem

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

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

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

-- | 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 an IPv4 CIDR block.
--   
--   <i>See:</i> <a>cidrBlock</a> smart constructor.
data CidrBlock

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

-- | The IPv4 CIDR block.
cbCidrBlock :: Lens' CidrBlock (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 a Classic Load Balancer.
--   
--   <i>See:</i> <a>classicLoadBalancer</a> smart constructor.
data ClassicLoadBalancer

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

-- | The name of the load balancer.
clbName :: Lens' ClassicLoadBalancer Text

-- | Describes the Classic Load Balancers to attach to a Spot Fleet. Spot
--   Fleet registers the running Spot Instances with these Classic Load
--   Balancers.
--   
--   <i>See:</i> <a>classicLoadBalancersConfig</a> smart constructor.
data ClassicLoadBalancersConfig

-- | Creates a value of <a>ClassicLoadBalancersConfig</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clbcClassicLoadBalancers</a> - One or more Classic Load
--   Balancers.</li>
--   </ul>
classicLoadBalancersConfig :: NonEmpty ClassicLoadBalancer -> ClassicLoadBalancersConfig

-- | One or more Classic Load Balancers.
clbcClassicLoadBalancers :: Lens' ClassicLoadBalancersConfig (NonEmpty ClassicLoadBalancer)

-- | 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 connection notification for a VPC endpoint or VPC endpoint
--   service.
--   
--   <i>See:</i> <a>connectionNotification</a> smart constructor.
data ConnectionNotification

-- | Creates a value of <a>ConnectionNotification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cnConnectionNotificationState</a> - The state of the
--   notification.</li>
--   <li><a>cnConnectionNotificationType</a> - The type of
--   notification.</li>
--   <li><a>cnConnectionEvents</a> - The events for the notification. Valid
--   values are <tt>Accept</tt> , <tt>Connect</tt> , <tt>Delete</tt> , and
--   <tt>Reject</tt> .</li>
--   <li><a>cnServiceId</a> - The ID of the endpoint service.</li>
--   <li><a>cnVPCEndpointId</a> - The ID of the VPC endpoint.</li>
--   <li><a>cnConnectionNotificationId</a> - The ID of the
--   notification.</li>
--   <li><a>cnConnectionNotificationARN</a> - The ARN of the SNS topic for
--   the notification.</li>
--   </ul>
connectionNotification :: ConnectionNotification

-- | The state of the notification.
cnConnectionNotificationState :: Lens' ConnectionNotification (Maybe ConnectionNotificationState)

-- | The type of notification.
cnConnectionNotificationType :: Lens' ConnectionNotification (Maybe ConnectionNotificationType)

-- | The events for the notification. Valid values are <tt>Accept</tt> ,
--   <tt>Connect</tt> , <tt>Delete</tt> , and <tt>Reject</tt> .
cnConnectionEvents :: Lens' ConnectionNotification [Text]

-- | The ID of the endpoint service.
cnServiceId :: Lens' ConnectionNotification (Maybe Text)

-- | The ID of the VPC endpoint.
cnVPCEndpointId :: Lens' ConnectionNotification (Maybe Text)

-- | The ID of the notification.
cnConnectionNotificationId :: Lens' ConnectionNotification (Maybe Text)

-- | The ARN of the SNS topic for the notification.
cnConnectionNotificationARN :: Lens' ConnectionNotification (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>ctState</a> - The state of the conversion 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>ctConversionTaskId</a> - The ID of the conversion 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>
--   </ul>
conversionTask :: ConversionTask

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

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

-- | 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 ID of the conversion task.
ctConversionTaskId :: Lens' ConversionTask (Maybe Text)

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

-- | 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 the credit option for CPU usage of a T2 instance.
--   
--   <i>See:</i> <a>creditSpecification</a> smart constructor.
data CreditSpecification

-- | Creates a value of <a>CreditSpecification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csCPUCredits</a> - The credit option for CPU usage of a T2
--   instance.</li>
--   </ul>
creditSpecification :: CreditSpecification

-- | The credit option for CPU usage of a T2 instance.
csCPUCredits :: Lens' CreditSpecification (Maybe Text)

-- | The credit option for CPU usage of a T2 instance.
--   
--   <i>See:</i> <a>creditSpecificationRequest</a> smart constructor.
data CreditSpecificationRequest

-- | Creates a value of <a>CreditSpecificationRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csrCPUCredits</a> - The credit option for CPU usage of a T2
--   instance. Valid values are <tt>standard</tt> and <tt>unlimited</tt>
--   .</li>
--   </ul>
creditSpecificationRequest :: Text -> CreditSpecificationRequest

-- | The credit option for CPU usage of a T2 instance. Valid values are
--   <tt>standard</tt> and <tt>unlimited</tt> .
csrCPUCredits :: Lens' CreditSpecificationRequest Text

-- | 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 DNS entry.
--   
--   <i>See:</i> <a>dnsEntry</a> smart constructor.
data DNSEntry

-- | Creates a value of <a>DNSEntry</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deHostedZoneId</a> - The ID of the private hosted zone.</li>
--   <li><a>deDNSName</a> - The DNS name.</li>
--   </ul>
dnsEntry :: DNSEntry

-- | The ID of the private hosted zone.
deHostedZoneId :: Lens' DNSEntry (Maybe Text)

-- | The DNS name.
deDNSName :: Lens' DNSEntry (Maybe Text)

-- | Describes an EC2 Fleet error.
--   
--   <i>See:</i> <a>deleteFleetError</a> smart constructor.
data DeleteFleetError

-- | Creates a value of <a>DeleteFleetError</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfeCode</a> - The error code.</li>
--   <li><a>dfeMessage</a> - The description for the error code.</li>
--   </ul>
deleteFleetError :: DeleteFleetError

-- | The error code.
dfeCode :: Lens' DeleteFleetError (Maybe DeleteFleetErrorCode)

-- | The description for the error code.
dfeMessage :: Lens' DeleteFleetError (Maybe Text)

-- | Describes an EC2 Fleet that was not successfully deleted.
--   
--   <i>See:</i> <a>deleteFleetErrorItem</a> smart constructor.
data DeleteFleetErrorItem

-- | Creates a value of <a>DeleteFleetErrorItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfeiError</a> - The error.</li>
--   <li><a>dfeiFleetId</a> - The ID of the EC2 Fleet.</li>
--   </ul>
deleteFleetErrorItem :: DeleteFleetErrorItem

-- | The error.
dfeiError :: Lens' DeleteFleetErrorItem (Maybe DeleteFleetError)

-- | The ID of the EC2 Fleet.
dfeiFleetId :: Lens' DeleteFleetErrorItem (Maybe Text)

-- | Describes an EC2 Fleet that was successfully deleted.
--   
--   <i>See:</i> <a>deleteFleetSuccessItem</a> smart constructor.
data DeleteFleetSuccessItem

-- | Creates a value of <a>DeleteFleetSuccessItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfsiCurrentFleetState</a> - The current state of the EC2
--   Fleet.</li>
--   <li><a>dfsiPreviousFleetState</a> - The previous state of the EC2
--   Fleet.</li>
--   <li><a>dfsiFleetId</a> - The ID of the EC2 Fleet.</li>
--   </ul>
deleteFleetSuccessItem :: DeleteFleetSuccessItem

-- | The current state of the EC2 Fleet.
dfsiCurrentFleetState :: Lens' DeleteFleetSuccessItem (Maybe FleetStateCode)

-- | The previous state of the EC2 Fleet.
dfsiPreviousFleetState :: Lens' DeleteFleetSuccessItem (Maybe FleetStateCode)

-- | The ID of the EC2 Fleet.
dfsiFleetId :: Lens' DeleteFleetSuccessItem (Maybe Text)

-- | Describes a launch template version that could not be deleted.
--   
--   <i>See:</i> <a>deleteLaunchTemplateVersionsResponseErrorItem</a> smart
--   constructor.
data DeleteLaunchTemplateVersionsResponseErrorItem

-- | Creates a value of
--   <a>DeleteLaunchTemplateVersionsResponseErrorItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dltvreiLaunchTemplateName</a> - The name of the launch
--   template.</li>
--   <li><a>dltvreiLaunchTemplateId</a> - The ID of the launch
--   template.</li>
--   <li><a>dltvreiVersionNumber</a> - The version number of the launch
--   template.</li>
--   <li><a>dltvreiResponseError</a> - Information about the error.</li>
--   </ul>
deleteLaunchTemplateVersionsResponseErrorItem :: DeleteLaunchTemplateVersionsResponseErrorItem

-- | The name of the launch template.
dltvreiLaunchTemplateName :: Lens' DeleteLaunchTemplateVersionsResponseErrorItem (Maybe Text)

-- | The ID of the launch template.
dltvreiLaunchTemplateId :: Lens' DeleteLaunchTemplateVersionsResponseErrorItem (Maybe Text)

-- | The version number of the launch template.
dltvreiVersionNumber :: Lens' DeleteLaunchTemplateVersionsResponseErrorItem (Maybe Integer)

-- | Information about the error.
dltvreiResponseError :: Lens' DeleteLaunchTemplateVersionsResponseErrorItem (Maybe ResponseError)

-- | Describes a launch template version that was successfully deleted.
--   
--   <i>See:</i> <a>deleteLaunchTemplateVersionsResponseSuccessItem</a>
--   smart constructor.
data DeleteLaunchTemplateVersionsResponseSuccessItem

-- | Creates a value of
--   <a>DeleteLaunchTemplateVersionsResponseSuccessItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dltvrsiLaunchTemplateName</a> - The name of the launch
--   template.</li>
--   <li><a>dltvrsiLaunchTemplateId</a> - The ID of the launch
--   template.</li>
--   <li><a>dltvrsiVersionNumber</a> - The version number of the launch
--   template.</li>
--   </ul>
deleteLaunchTemplateVersionsResponseSuccessItem :: DeleteLaunchTemplateVersionsResponseSuccessItem

-- | The name of the launch template.
dltvrsiLaunchTemplateName :: Lens' DeleteLaunchTemplateVersionsResponseSuccessItem (Maybe Text)

-- | The ID of the launch template.
dltvrsiLaunchTemplateId :: Lens' DeleteLaunchTemplateVersionsResponseSuccessItem (Maybe Text)

-- | The version number of the launch template.
dltvrsiVersionNumber :: Lens' DeleteLaunchTemplateVersionsResponseSuccessItem (Maybe Integer)

-- | 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>dSize</a> - The size of the disk image, in GiB.</li>
--   <li><a>dChecksum</a> - The checksum computed for the disk image.</li>
--   <li><a>dFormat</a> - The disk image format.</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 :: DiskImageDescription

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

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

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

-- | 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 (Maybe 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>didBytes</a> - The size of the disk image, in GiB.</li>
--   <li><a>didFormat</a> - The disk image format.</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 :: Integer -> DiskImageFormat -> Text -> DiskImageDetail

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

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

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

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

-- | The volume identifier.
divdId :: Lens' DiskImageVolumeDescription (Maybe 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 volumes can only be attached to instances that
--   support Amazon EBS encryption. If you are creating a volume from a
--   snapshot, you can't specify an encryption value. This is because only
--   blank volumes can be encrypted on creation.</li>
--   <li><a>ebdKMSKeyId</a> - Identifier (key ID, key alias, ID ARN, or
--   alias ARN) for a user-managed CMK under which the EBS volume is
--   encrypted. Note: This parameter is only supported on
--   <tt>BlockDeviceMapping</tt> objects called by <a>RunInstances</a> ,
--   <a>RequestSpotFleet</a> , and <a>RequestSpotInstances</a> .</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 volumes can
--   only be attached to instances that support Amazon EBS encryption. If
--   you are creating a volume from a snapshot, you can't specify an
--   encryption value. This is because only blank volumes can be encrypted
--   on creation.
ebdEncrypted :: Lens' EBSBlockDevice (Maybe Bool)

-- | Identifier (key ID, key alias, ID ARN, or alias ARN) for a
--   user-managed CMK under which the EBS volume is encrypted. Note: This
--   parameter is only supported on <tt>BlockDeviceMapping</tt> objects
--   called by <a>RunInstances</a> , <a>RequestSpotFleet</a> , and
--   <a>RequestSpotInstances</a> .
ebdKMSKeyId :: Lens' EBSBlockDevice (Maybe Text)

-- | 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 the association between an instance and an Elastic GPU.
--   
--   <i>See:</i> <a>elasticGpuAssociation</a> smart constructor.
data ElasticGpuAssociation

-- | Creates a value of <a>ElasticGpuAssociation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>egaElasticGpuId</a> - The ID of the Elastic GPU.</li>
--   <li><a>egaElasticGpuAssociationId</a> - The ID of the
--   association.</li>
--   <li><a>egaElasticGpuAssociationTime</a> - The time the Elastic GPU was
--   associated with the instance.</li>
--   <li><a>egaElasticGpuAssociationState</a> - The state of the
--   association between the instance and the Elastic GPU.</li>
--   </ul>
elasticGpuAssociation :: ElasticGpuAssociation

-- | The ID of the Elastic GPU.
egaElasticGpuId :: Lens' ElasticGpuAssociation (Maybe Text)

-- | The ID of the association.
egaElasticGpuAssociationId :: Lens' ElasticGpuAssociation (Maybe Text)

-- | The time the Elastic GPU was associated with the instance.
egaElasticGpuAssociationTime :: Lens' ElasticGpuAssociation (Maybe Text)

-- | The state of the association between the instance and the Elastic GPU.
egaElasticGpuAssociationState :: Lens' ElasticGpuAssociation (Maybe Text)

-- | Describes the status of an Elastic GPU.
--   
--   <i>See:</i> <a>elasticGpuHealth</a> smart constructor.
data ElasticGpuHealth

-- | Creates a value of <a>ElasticGpuHealth</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eghStatus</a> - The health status.</li>
--   </ul>
elasticGpuHealth :: ElasticGpuHealth

-- | The health status.
eghStatus :: Lens' ElasticGpuHealth (Maybe ElasticGpuStatus)

-- | A specification for an Elastic GPU.
--   
--   <i>See:</i> <a>elasticGpuSpecification</a> smart constructor.
data ElasticGpuSpecification

-- | Creates a value of <a>ElasticGpuSpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>egsType</a> - The type of Elastic GPU.</li>
--   </ul>
elasticGpuSpecification :: Text -> ElasticGpuSpecification

-- | The type of Elastic GPU.
egsType :: Lens' ElasticGpuSpecification Text

-- | Describes an elastic GPU.
--   
--   <i>See:</i> <a>elasticGpuSpecificationResponse</a> smart constructor.
data ElasticGpuSpecificationResponse

-- | Creates a value of <a>ElasticGpuSpecificationResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eType</a> - The elastic GPU type.</li>
--   </ul>
elasticGpuSpecificationResponse :: ElasticGpuSpecificationResponse

-- | The elastic GPU type.
eType :: Lens' ElasticGpuSpecificationResponse (Maybe Text)

-- | Describes an Elastic GPU.
--   
--   <i>See:</i> <a>elasticGpus</a> smart constructor.
data ElasticGpus

-- | Creates a value of <a>ElasticGpus</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>egInstanceId</a> - The ID of the instance to which the Elastic
--   GPU is attached.</li>
--   <li><a>egElasticGpuType</a> - The type of Elastic GPU.</li>
--   <li><a>egElasticGpuId</a> - The ID of the Elastic GPU.</li>
--   <li><a>egElasticGpuState</a> - The state of the Elastic GPU.</li>
--   <li><a>egElasticGpuHealth</a> - The status of the Elastic GPU.</li>
--   <li><a>egAvailabilityZone</a> - The Availability Zone in the which the
--   Elastic GPU resides.</li>
--   </ul>
elasticGpus :: ElasticGpus

-- | The ID of the instance to which the Elastic GPU is attached.
egInstanceId :: Lens' ElasticGpus (Maybe Text)

-- | The type of Elastic GPU.
egElasticGpuType :: Lens' ElasticGpus (Maybe Text)

-- | The ID of the Elastic GPU.
egElasticGpuId :: Lens' ElasticGpus (Maybe Text)

-- | The state of the Elastic GPU.
egElasticGpuState :: Lens' ElasticGpus (Maybe ElasticGpuState)

-- | The status of the Elastic GPU.
egElasticGpuHealth :: Lens' ElasticGpus (Maybe ElasticGpuHealth)

-- | The Availability Zone in the which the Elastic GPU resides.
egAvailabilityZone :: Lens' ElasticGpus (Maybe Text)

-- | 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 does not
--   launch additional Spot Instances. 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
--   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 request was
--   fulfilled and a new instance was launched. * <tt>terminated</tt> - An
--   instance was terminated by the user. The following are the
--   <tt>Information</tt> events: * <tt>launchSpecUnusable</tt> - The price
--   in a launch specification is not valid because it is below the Spot
--   price or the Spot price is above the On-Demand price. *
--   <tt>fleetProgressHalted</tt> - The price in every launch specification
--   is not valid. A launch specification might become valid if the Spot
--   price changes.</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 does not
--   launch additional Spot Instances. 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
--   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 request was
--   fulfilled and a new instance was launched. * <tt>terminated</tt> - An
--   instance was terminated by the user. The following are the
--   <tt>Information</tt> events: * <tt>launchSpecUnusable</tt> - The price
--   in a launch specification is not valid because it is below the Spot
--   price or the Spot price is above the On-Demand price. *
--   <tt>fleetProgressHalted</tt> - The price in every launch specification
--   is not valid. A launch specification might become valid if the Spot
--   price changes.
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 from a describe operation. Filters can be used to
--   match a set of resources by specific criteria, such as tags,
--   attributes, or IDs. The filters supported by a describe operation are
--   documented with the describe operation. For example:
--   
--   <ul>
--   <li><tt>DescribeAvailabilityZones</tt></li>
--   <li><tt>DescribeImages</tt></li>
--   <li><tt>DescribeInstances</tt></li>
--   <li><tt>DescribeKeyPairs</tt></li>
--   <li><tt>DescribeSecurityGroups</tt></li>
--   <li><tt>DescribeSnapshots</tt></li>
--   <li><tt>DescribeSubnets</tt></li>
--   <li><tt>DescribeTags</tt></li>
--   <li><tt>DescribeVolumes</tt></li>
--   <li><tt>DescribeVpcs</tt></li>
--   </ul>
--   
--   <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 an EC2 Fleet.
--   
--   <i>See:</i> <a>fleetData</a> smart constructor.
data FleetData

-- | Creates a value of <a>FleetData</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fdClientToken</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>fdTargetCapacitySpecification</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. If the request
--   type is <tt>maintain</tt> , you can specify a target capacity of 0 and
--   add capacity later.</li>
--   <li><a>fdSpotOptions</a> - The configuration of Spot Instances in an
--   EC2 Fleet.</li>
--   <li><a>fdExcessCapacityTerminationPolicy</a> - Indicates whether
--   running instances should be terminated if the target capacity of the
--   EC2 Fleet is decreased below the current size of the EC2 Fleet.</li>
--   <li><a>fdFleetState</a> - The state of the EC2 Fleet.</li>
--   <li><a>fdLaunchTemplateConfigs</a> - The launch template and
--   overrides.</li>
--   <li><a>fdValidUntil</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 instance requests are
--   placed or able to fulfill the request. The default end date is 7 days
--   from the current date.</li>
--   <li><a>fdTerminateInstancesWithExpiration</a> - Indicates whether
--   running instances should be terminated when the EC2 Fleet
--   expires.</li>
--   <li><a>fdFulfilledCapacity</a> - The number of units fulfilled by this
--   request compared to the set target capacity.</li>
--   <li><a>fdType</a> - The type of request. Indicates whether the EC2
--   Fleet only <tt>requests</tt> the target capacity, or also attempts to
--   <tt>maintain</tt> it. If you request a certain target capacity, EC2
--   Fleet only places the required requests; it does not attempt to
--   replenish instances if capacity is diminished, and does not submit
--   requests in alternative capacity pools if capacity is unavailable. To
--   maintain a certain target capacity, EC2 Fleet places the required
--   requests to meet this target capacity. It also automatically
--   replenishes any interrupted Spot Instances. Default: <tt>maintain</tt>
--   .</li>
--   <li><a>fdValidFrom</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>fdReplaceUnhealthyInstances</a> - Indicates whether EC2 Fleet
--   should replace unhealthy instances.</li>
--   <li><a>fdFulfilledOnDemandCapacity</a> - The number of units fulfilled
--   by this request compared to the set target On-Demand capacity.</li>
--   <li><a>fdFleetId</a> - The ID of the EC2 Fleet.</li>
--   <li><a>fdCreateTime</a> - The creation date and time of the EC2
--   Fleet.</li>
--   <li><a>fdTags</a> - The tags for an EC2 Fleet resource.</li>
--   <li><a>fdActivityStatus</a> - The progress of the EC2 Fleet. If there
--   is an error, the status is <tt>error</tt> . After all requests are
--   placed, the status is <tt>pending_fulfillment</tt> . If the size of
--   the EC2 Fleet is equal to or greater than its target capacity, the
--   status is <tt>fulfilled</tt> . If the size of the EC2 Fleet is
--   decreased, the status is <tt>pending_termination</tt> while instances
--   are terminating.</li>
--   </ul>
fleetData :: FleetData

-- | 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
fdClientToken :: Lens' FleetData (Maybe 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.
--   If the request type is <tt>maintain</tt> , you can specify a target
--   capacity of 0 and add capacity later.
fdTargetCapacitySpecification :: Lens' FleetData (Maybe TargetCapacitySpecification)

-- | The configuration of Spot Instances in an EC2 Fleet.
fdSpotOptions :: Lens' FleetData (Maybe SpotOptions)

-- | Indicates whether running instances should be terminated if the target
--   capacity of the EC2 Fleet is decreased below the current size of the
--   EC2 Fleet.
fdExcessCapacityTerminationPolicy :: Lens' FleetData (Maybe FleetExcessCapacityTerminationPolicy)

-- | The state of the EC2 Fleet.
fdFleetState :: Lens' FleetData (Maybe FleetStateCode)

-- | The launch template and overrides.
fdLaunchTemplateConfigs :: Lens' FleetData [FleetLaunchTemplateConfig]

-- | 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 instance requests are placed or able to fulfill
--   the request. The default end date is 7 days from the current date.
fdValidUntil :: Lens' FleetData (Maybe UTCTime)

-- | Indicates whether running instances should be terminated when the EC2
--   Fleet expires.
fdTerminateInstancesWithExpiration :: Lens' FleetData (Maybe Bool)

-- | The number of units fulfilled by this request compared to the set
--   target capacity.
fdFulfilledCapacity :: Lens' FleetData (Maybe Double)

-- | The type of request. Indicates whether the EC2 Fleet only
--   <tt>requests</tt> the target capacity, or also attempts to
--   <tt>maintain</tt> it. If you request a certain target capacity, EC2
--   Fleet only places the required requests; it does not attempt to
--   replenish instances if capacity is diminished, and does not submit
--   requests in alternative capacity pools if capacity is unavailable. To
--   maintain a certain target capacity, EC2 Fleet places the required
--   requests to meet this target capacity. It also automatically
--   replenishes any interrupted Spot Instances. Default: <tt>maintain</tt>
--   .
fdType :: Lens' FleetData (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.
fdValidFrom :: Lens' FleetData (Maybe UTCTime)

-- | Indicates whether EC2 Fleet should replace unhealthy instances.
fdReplaceUnhealthyInstances :: Lens' FleetData (Maybe Bool)

-- | The number of units fulfilled by this request compared to the set
--   target On-Demand capacity.
fdFulfilledOnDemandCapacity :: Lens' FleetData (Maybe Double)

-- | The ID of the EC2 Fleet.
fdFleetId :: Lens' FleetData (Maybe Text)

-- | The creation date and time of the EC2 Fleet.
fdCreateTime :: Lens' FleetData (Maybe UTCTime)

-- | The tags for an EC2 Fleet resource.
fdTags :: Lens' FleetData [Tag]

-- | The progress of the EC2 Fleet. If there is an error, the status is
--   <tt>error</tt> . After all requests are placed, the status is
--   <tt>pending_fulfillment</tt> . If the size of the EC2 Fleet is equal
--   to or greater than its target capacity, the status is
--   <tt>fulfilled</tt> . If the size of the EC2 Fleet is decreased, the
--   status is <tt>pending_termination</tt> while instances are
--   terminating.
fdActivityStatus :: Lens' FleetData (Maybe FleetActivityStatus)

-- | Describes a launch template and overrides.
--   
--   <i>See:</i> <a>fleetLaunchTemplateConfig</a> smart constructor.
data FleetLaunchTemplateConfig

-- | Creates a value of <a>FleetLaunchTemplateConfig</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fltcOverrides</a> - Any parameters that you specify override
--   the same parameters in the launch template.</li>
--   <li><a>fltcLaunchTemplateSpecification</a> - The launch template.</li>
--   </ul>
fleetLaunchTemplateConfig :: FleetLaunchTemplateConfig

-- | Any parameters that you specify override the same parameters in the
--   launch template.
fltcOverrides :: Lens' FleetLaunchTemplateConfig [FleetLaunchTemplateOverrides]

-- | The launch template.
fltcLaunchTemplateSpecification :: Lens' FleetLaunchTemplateConfig (Maybe FleetLaunchTemplateSpecification)

-- | Describes a launch template and overrides.
--   
--   <i>See:</i> <a>fleetLaunchTemplateConfigRequest</a> smart constructor.
data FleetLaunchTemplateConfigRequest

-- | Creates a value of <a>FleetLaunchTemplateConfigRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fltcrOverrides</a> - Any parameters that you specify override
--   the same parameters in the launch template.</li>
--   <li><a>fltcrLaunchTemplateSpecification</a> - The launch template to
--   use. You must specify either the launch template ID or launch template
--   name in the request.</li>
--   </ul>
fleetLaunchTemplateConfigRequest :: FleetLaunchTemplateConfigRequest

-- | Any parameters that you specify override the same parameters in the
--   launch template.
fltcrOverrides :: Lens' FleetLaunchTemplateConfigRequest [FleetLaunchTemplateOverridesRequest]

-- | The launch template to use. You must specify either the launch
--   template ID or launch template name in the request.
fltcrLaunchTemplateSpecification :: Lens' FleetLaunchTemplateConfigRequest (Maybe FleetLaunchTemplateSpecificationRequest)

-- | Describes overrides for a launch template.
--   
--   <i>See:</i> <a>fleetLaunchTemplateOverrides</a> smart constructor.
data FleetLaunchTemplateOverrides

-- | Creates a value of <a>FleetLaunchTemplateOverrides</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fltoWeightedCapacity</a> - The number of units provided by the
--   specified instance type.</li>
--   <li><a>fltoSubnetId</a> - The ID of the subnet in which to launch the
--   instances.</li>
--   <li><a>fltoInstanceType</a> - The instance type.</li>
--   <li><a>fltoAvailabilityZone</a> - The Availability Zone in which to
--   launch the instances.</li>
--   <li><a>fltoMaxPrice</a> - The maximum price per unit hour that you are
--   willing to pay for a Spot Instance.</li>
--   </ul>
fleetLaunchTemplateOverrides :: FleetLaunchTemplateOverrides

-- | The number of units provided by the specified instance type.
fltoWeightedCapacity :: Lens' FleetLaunchTemplateOverrides (Maybe Double)

-- | The ID of the subnet in which to launch the instances.
fltoSubnetId :: Lens' FleetLaunchTemplateOverrides (Maybe Text)

-- | The instance type.
fltoInstanceType :: Lens' FleetLaunchTemplateOverrides (Maybe InstanceType)

-- | The Availability Zone in which to launch the instances.
fltoAvailabilityZone :: Lens' FleetLaunchTemplateOverrides (Maybe Text)

-- | The maximum price per unit hour that you are willing to pay for a Spot
--   Instance.
fltoMaxPrice :: Lens' FleetLaunchTemplateOverrides (Maybe Text)

-- | Describes overrides for a launch template.
--   
--   <i>See:</i> <a>fleetLaunchTemplateOverridesRequest</a> smart
--   constructor.
data FleetLaunchTemplateOverridesRequest

-- | Creates a value of <a>FleetLaunchTemplateOverridesRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fltorWeightedCapacity</a> - The number of units provided by the
--   specified instance type.</li>
--   <li><a>fltorSubnetId</a> - The ID of the subnet in which to launch the
--   instances.</li>
--   <li><a>fltorInstanceType</a> - The instance type.</li>
--   <li><a>fltorAvailabilityZone</a> - The Availability Zone in which to
--   launch the instances.</li>
--   <li><a>fltorMaxPrice</a> - The maximum price per unit hour that you
--   are willing to pay for a Spot Instance.</li>
--   </ul>
fleetLaunchTemplateOverridesRequest :: FleetLaunchTemplateOverridesRequest

-- | The number of units provided by the specified instance type.
fltorWeightedCapacity :: Lens' FleetLaunchTemplateOverridesRequest (Maybe Double)

-- | The ID of the subnet in which to launch the instances.
fltorSubnetId :: Lens' FleetLaunchTemplateOverridesRequest (Maybe Text)

-- | The instance type.
fltorInstanceType :: Lens' FleetLaunchTemplateOverridesRequest (Maybe InstanceType)

-- | The Availability Zone in which to launch the instances.
fltorAvailabilityZone :: Lens' FleetLaunchTemplateOverridesRequest (Maybe Text)

-- | The maximum price per unit hour that you are willing to pay for a Spot
--   Instance.
fltorMaxPrice :: Lens' FleetLaunchTemplateOverridesRequest (Maybe Text)

-- | Describes a launch template.
--   
--   <i>See:</i> <a>fleetLaunchTemplateSpecification</a> smart constructor.
data FleetLaunchTemplateSpecification

-- | Creates a value of <a>FleetLaunchTemplateSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fltsLaunchTemplateName</a> - The name of the launch template.
--   You must specify either a template name or a template ID.</li>
--   <li><a>fltsLaunchTemplateId</a> - The ID of the launch template. You
--   must specify either a template ID or a template name.</li>
--   <li><a>fltsVersion</a> - The version number. By default, the default
--   version of the launch template is used.</li>
--   </ul>
fleetLaunchTemplateSpecification :: FleetLaunchTemplateSpecification

-- | The name of the launch template. You must specify either a template
--   name or a template ID.
fltsLaunchTemplateName :: Lens' FleetLaunchTemplateSpecification (Maybe Text)

-- | The ID of the launch template. You must specify either a template ID
--   or a template name.
fltsLaunchTemplateId :: Lens' FleetLaunchTemplateSpecification (Maybe Text)

-- | The version number. By default, the default version of the launch
--   template is used.
fltsVersion :: Lens' FleetLaunchTemplateSpecification (Maybe Text)

-- | The launch template to use. You must specify either the launch
--   template ID or launch template name in the request.
--   
--   <i>See:</i> <a>fleetLaunchTemplateSpecificationRequest</a> smart
--   constructor.
data FleetLaunchTemplateSpecificationRequest

-- | Creates a value of <a>FleetLaunchTemplateSpecificationRequest</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fltsrLaunchTemplateName</a> - The name of the launch
--   template.</li>
--   <li><a>fltsrLaunchTemplateId</a> - The ID of the launch template.</li>
--   <li><a>fltsrVersion</a> - The version number of the launch
--   template.</li>
--   </ul>
fleetLaunchTemplateSpecificationRequest :: FleetLaunchTemplateSpecificationRequest

-- | The name of the launch template.
fltsrLaunchTemplateName :: Lens' FleetLaunchTemplateSpecificationRequest (Maybe Text)

-- | The ID of the launch template.
fltsrLaunchTemplateId :: Lens' FleetLaunchTemplateSpecificationRequest (Maybe Text)

-- | The version number of the launch template.
fltsrVersion :: Lens' FleetLaunchTemplateSpecificationRequest (Maybe 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 an Amazon FPGA image (AFI).
--   
--   <i>See:</i> <a>fpgaImage</a> smart constructor.
data FpgaImage

-- | Creates a value of <a>FpgaImage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fiShellVersion</a> - The version of the AWS Shell that was used
--   to create the bitstream.</li>
--   <li><a>fiPciId</a> - Information about the PCI bus.</li>
--   <li><a>fiState</a> - Information about the state of the AFI.</li>
--   <li><a>fiOwnerAlias</a> - The alias of the AFI owner. Possible values
--   include <tt>self</tt> , <tt>amazon</tt> , and <tt>aws-marketplace</tt>
--   .</li>
--   <li><a>fiFpgaImageId</a> - The FPGA image identifier (AFI ID).</li>
--   <li><a>fiOwnerId</a> - The AWS account ID of the AFI owner.</li>
--   <li><a>fiUpdateTime</a> - The time of the most recent update to the
--   AFI.</li>
--   <li><a>fiName</a> - The name of the AFI.</li>
--   <li><a>fiProductCodes</a> - The product codes for the AFI.</li>
--   <li><a>fiDescription</a> - The description of the AFI.</li>
--   <li><a>fiCreateTime</a> - The date and time the AFI was created.</li>
--   <li><a>fiTags</a> - Any tags assigned to the AFI.</li>
--   <li><a>fiPublic</a> - Indicates whether the AFI is public.</li>
--   <li><a>fiFpgaImageGlobalId</a> - The global FPGA image identifier
--   (AGFI ID).</li>
--   </ul>
fpgaImage :: FpgaImage

-- | The version of the AWS Shell that was used to create the bitstream.
fiShellVersion :: Lens' FpgaImage (Maybe Text)

-- | Information about the PCI bus.
fiPciId :: Lens' FpgaImage (Maybe PciId)

-- | Information about the state of the AFI.
fiState :: Lens' FpgaImage (Maybe FpgaImageState)

-- | The alias of the AFI owner. Possible values include <tt>self</tt> ,
--   <tt>amazon</tt> , and <tt>aws-marketplace</tt> .
fiOwnerAlias :: Lens' FpgaImage (Maybe Text)

-- | The FPGA image identifier (AFI ID).
fiFpgaImageId :: Lens' FpgaImage (Maybe Text)

-- | The AWS account ID of the AFI owner.
fiOwnerId :: Lens' FpgaImage (Maybe Text)

-- | The time of the most recent update to the AFI.
fiUpdateTime :: Lens' FpgaImage (Maybe UTCTime)

-- | The name of the AFI.
fiName :: Lens' FpgaImage (Maybe Text)

-- | The product codes for the AFI.
fiProductCodes :: Lens' FpgaImage [ProductCode]

-- | The description of the AFI.
fiDescription :: Lens' FpgaImage (Maybe Text)

-- | The date and time the AFI was created.
fiCreateTime :: Lens' FpgaImage (Maybe UTCTime)

-- | Any tags assigned to the AFI.
fiTags :: Lens' FpgaImage [Tag]

-- | Indicates whether the AFI is public.
fiPublic :: Lens' FpgaImage (Maybe Bool)

-- | The global FPGA image identifier (AGFI ID).
fiFpgaImageGlobalId :: Lens' FpgaImage (Maybe Text)

-- | Describes an Amazon FPGA image (AFI) attribute.
--   
--   <i>See:</i> <a>fpgaImageAttribute</a> smart constructor.
data FpgaImageAttribute

-- | Creates a value of <a>FpgaImageAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fiaFpgaImageId</a> - The ID of the AFI.</li>
--   <li><a>fiaName</a> - The name of the AFI.</li>
--   <li><a>fiaProductCodes</a> - One or more product codes.</li>
--   <li><a>fiaDescription</a> - The description of the AFI.</li>
--   <li><a>fiaLoadPermissions</a> - One or more load permissions.</li>
--   </ul>
fpgaImageAttribute :: FpgaImageAttribute

-- | The ID of the AFI.
fiaFpgaImageId :: Lens' FpgaImageAttribute (Maybe Text)

-- | The name of the AFI.
fiaName :: Lens' FpgaImageAttribute (Maybe Text)

-- | One or more product codes.
fiaProductCodes :: Lens' FpgaImageAttribute [ProductCode]

-- | The description of the AFI.
fiaDescription :: Lens' FpgaImageAttribute (Maybe Text)

-- | One or more load permissions.
fiaLoadPermissions :: Lens' FpgaImageAttribute [LoadPermission]

-- | Describes the state of the bitstream generation process for an Amazon
--   FPGA image (AFI).
--   
--   <i>See:</i> <a>fpgaImageState</a> smart constructor.
data FpgaImageState

-- | Creates a value of <a>FpgaImageState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fisCode</a> - The state. The following are the possible values:
--   * <tt>pending</tt> - AFI bitstream generation is in progress. *
--   <tt>available</tt> - The AFI is available for use. * <tt>failed</tt> -
--   AFI bitstream generation failed. * <tt>unavailable</tt> - The AFI is
--   no longer available for use.</li>
--   <li><a>fisMessage</a> - If the state is <tt>failed</tt> , this is the
--   error message.</li>
--   </ul>
fpgaImageState :: FpgaImageState

-- | The state. The following are the possible values: * <tt>pending</tt> -
--   AFI bitstream generation is in progress. * <tt>available</tt> - The
--   AFI is available for use. * <tt>failed</tt> - AFI bitstream generation
--   failed. * <tt>unavailable</tt> - The AFI is no longer available for
--   use.
fisCode :: Lens' FpgaImageState (Maybe FpgaImageStateCode)

-- | If the state is <tt>failed</tt> , this is the error message.
fisMessage :: Lens' FpgaImageState (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>hrEventInformation</a> - Information about the event.</li>
--   <li><a>hrEventType</a> - The event type. * <tt>error</tt> - An error
--   with the Spot Fleet request. * <tt>fleetRequestChange</tt> - A change
--   in the status or configuration of the Spot Fleet request. *
--   <tt>instanceChange</tt> - An instance was launched or terminated. *
--   <tt>Information</tt> - An informational event.</li>
--   <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>
--   </ul>
historyRecord :: EventInformation -> EventType -> UTCTime -> HistoryRecord

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

-- | The event type. * <tt>error</tt> - An error with the Spot Fleet
--   request. * <tt>fleetRequestChange</tt> - A change in the status or
--   configuration of the Spot Fleet request. * <tt>instanceChange</tt> -
--   An instance was launched or terminated. * <tt>Information</tt> - An
--   informational event.
hrEventType :: Lens' HistoryRecord EventType

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

-- | Describes an event in the history of the EC2 Fleet.
--   
--   <i>See:</i> <a>historyRecordEntry</a> smart constructor.
data HistoryRecordEntry

-- | Creates a value of <a>HistoryRecordEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hreEventType</a> - The event type.</li>
--   <li><a>hreEventInformation</a> - Information about the event.</li>
--   <li><a>hreTimestamp</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>
--   </ul>
historyRecordEntry :: HistoryRecordEntry

-- | The event type.
hreEventType :: Lens' HistoryRecordEntry (Maybe FleetEventType)

-- | Information about the event.
hreEventInformation :: Lens' HistoryRecordEntry (Maybe EventInformation)

-- | 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).
hreTimestamp :: Lens' HistoryRecordEntry (Maybe UTCTime)

-- | 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>hReleaseTime</a> - The time that the Dedicated Host was
--   released.</li>
--   <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>hAllocationTime</a> - The time that the Dedicated Host was
--   allocated.</li>
--   <li><a>hAutoPlacement</a> - Whether auto-placement is on or off.</li>
--   </ul>
host :: Host

-- | The time that the Dedicated Host was released.
hReleaseTime :: Lens' Host (Maybe UTCTime)

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

-- | The time that the Dedicated Host was allocated.
hAllocationTime :: Lens' Host (Maybe UTCTime)

-- | 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 association between an IAM instance profile and an
--   instance.
--   
--   <i>See:</i> <a>iamInstanceProfileAssociation</a> smart constructor.
data IAMInstanceProfileAssociation

-- | Creates a value of <a>IAMInstanceProfileAssociation</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iapaAssociationId</a> - The ID of the association.</li>
--   <li><a>iapaInstanceId</a> - The ID of the instance.</li>
--   <li><a>iapaState</a> - The state of the association.</li>
--   <li><a>iapaIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>iapaTimestamp</a> - The time the IAM instance profile was
--   associated with the instance.</li>
--   </ul>
iamInstanceProfileAssociation :: IAMInstanceProfileAssociation

-- | The ID of the association.
iapaAssociationId :: Lens' IAMInstanceProfileAssociation (Maybe Text)

-- | The ID of the instance.
iapaInstanceId :: Lens' IAMInstanceProfileAssociation (Maybe Text)

-- | The state of the association.
iapaState :: Lens' IAMInstanceProfileAssociation (Maybe IAMInstanceProfileAssociationState)

-- | The IAM instance profile.
iapaIAMInstanceProfile :: Lens' IAMInstanceProfileAssociation (Maybe IAMInstanceProfile)

-- | The time the IAM instance profile was associated with the instance.
iapaTimestamp :: Lens' IAMInstanceProfileAssociation (Maybe UTCTime)

-- | 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 set of permissions for 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. If you specify all ICMP/ICMPv6
--   types, you must specify all codes.</li>
--   <li><a>ipUserIdGroupPairs</a> - One or more security group and AWS
--   account ID pairs.</li>
--   <li><a>ipPrefixListIds</a> - (EC2-VPC only; 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. If you specify
--   all ICMP/ICMPv6 types, you must specify all codes.</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. If you specify all ICMP/ICMPv6 types, you must
--   specify all codes.
ipFromPort :: Lens' IPPermission (Maybe Int)

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

-- | (EC2-VPC only; 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. If you specify all
--   ICMP/ICMPv6 types, you must specify all codes.
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>iprDescription</a> - A description for the security group rule
--   that references this IPv4 address range. Constraints: Up to 255
--   characters in length. Allowed characters are a-z, A-Z, 0-9, spaces,
--   and ._-:/()#,@[]+=;{}!$*</li>
--   <li><a>iprCidrIP</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 length.</li>
--   </ul>
ipRange :: Text -> IPRange

-- | A description for the security group rule that references this IPv4
--   address range. Constraints: Up to 255 characters in length. Allowed
--   characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*
iprDescription :: Lens' IPRange (Maybe Text)

-- | 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 length.
iprCidrIP :: 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 length.</li>
--   <li><a>irDescription</a> - A description for the security group rule
--   that references this IPv6 address range. Constraints: Up to 255
--   characters in length. Allowed characters are a-z, A-Z, 0-9, spaces,
--   and ._-:/()#,@[]+=;{}!$*</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 length.
irCidrIPv6 :: Lens' IPv6Range (Maybe Text)

-- | A description for the security group rule that references this IPv6
--   address range. Constraints: Up to 255 characters in length. Allowed
--   characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*
irDescription :: 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 volume
--   (for example, <tt><i>dev</i>sda1</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 volume (for example,
--   <tt><i>dev</i>sda1</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>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>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 Base64-encoded user data to make
--   available to the instance.</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 Base64-encoded user data to make available to the instance.
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>iitdVolumes</a> - One or more volumes.</li>
--   <li><a>iitdDescription</a> - A description of the task.</li>
--   </ul>
importInstanceTaskDetails :: ImportInstanceTaskDetails

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

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

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

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

-- | 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>iivdiAvailabilityZone</a> - The Availability Zone where the
--   resulting instance will reside.</li>
--   <li><a>iivdiBytesConverted</a> - The number of bytes converted so
--   far.</li>
--   <li><a>iivdiImage</a> - The image.</li>
--   <li><a>iivdiStatus</a> - The status of the import of this particular
--   disk image.</li>
--   <li><a>iivdiVolume</a> - The volume.</li>
--   </ul>
importInstanceVolumeDetailItem :: Text -> Integer -> DiskImageDescription -> Text -> DiskImageVolumeDescription -> 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 Availability Zone where the resulting instance will reside.
iivdiAvailabilityZone :: Lens' ImportInstanceVolumeDetailItem Text

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

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

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

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

-- | 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>ivtdBytesConverted</a> - The number of bytes converted so
--   far.</li>
--   <li><a>ivtdImage</a> - The image.</li>
--   <li><a>ivtdVolume</a> - The volume.</li>
--   <li><a>ivtdAvailabilityZone</a> - The Availability Zone where the
--   resulting volume will reside.</li>
--   <li><a>ivtdDescription</a> - The description you provided when
--   starting the import volume task.</li>
--   </ul>
importVolumeTaskDetails :: ImportVolumeTaskDetails

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

-- | The image.
ivtdImage :: Lens' ImportVolumeTaskDetails (Maybe DiskImageDescription)

-- | The volume.
ivtdVolume :: Lens' ImportVolumeTaskDetails (Maybe DiskImageVolumeDescription)

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

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

-- | 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 that checking is enabled, and <tt>false</tt> means
--   that 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>insElasticGpuAssociations</a> - The Elastic GPU associated with
--   the instance.</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>insCPUOptions</a> - The CPU options for the instance.</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 device name of the root device
--   volume (for example, <tt><i>dev</i>sda1</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 Amazon 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 resolves 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 that checking is enabled,
--   and <tt>false</tt> means that 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)

-- | The Elastic GPU associated with the instance.
insElasticGpuAssociations :: Lens' Instance [ElasticGpuAssociation]

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

-- | The CPU options for the instance.
insCPUOptions :: Lens' Instance (Maybe CPUOptions)

-- | <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 device name of the root device volume (for example,
--   <tt><i>dev</i>sda1</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 Amazon 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 resolves
--   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 (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 (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 (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 (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 the credit option for CPU usage of a T2 instance.
--   
--   <i>See:</i> <a>instanceCreditSpecification</a> smart constructor.
data InstanceCreditSpecification

-- | Creates a value of <a>InstanceCreditSpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icsInstanceId</a> - The ID of the instance.</li>
--   <li><a>icsCPUCredits</a> - The credit option for CPU usage of the
--   instance. Valid values are <tt>standard</tt> and <tt>unlimited</tt>
--   .</li>
--   </ul>
instanceCreditSpecification :: InstanceCreditSpecification

-- | The ID of the instance.
icsInstanceId :: Lens' InstanceCreditSpecification (Maybe Text)

-- | The credit option for CPU usage of the instance. Valid values are
--   <tt>standard</tt> and <tt>unlimited</tt> .
icsCPUCredits :: Lens' InstanceCreditSpecification (Maybe Text)

-- | Describes the credit option for CPU usage of a T2 instance.
--   
--   <i>See:</i> <a>instanceCreditSpecificationRequest</a> smart
--   constructor.
data InstanceCreditSpecificationRequest

-- | Creates a value of <a>InstanceCreditSpecificationRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icsrInstanceId</a> - The ID of the instance.</li>
--   <li><a>icsrCPUCredits</a> - The credit option for CPU usage of the
--   instance. Valid values are <tt>standard</tt> and <tt>unlimited</tt>
--   .</li>
--   </ul>
instanceCreditSpecificationRequest :: InstanceCreditSpecificationRequest

-- | The ID of the instance.
icsrInstanceId :: Lens' InstanceCreditSpecificationRequest (Maybe Text)

-- | The credit option for CPU usage of the instance. Valid values are
--   <tt>standard</tt> and <tt>unlimited</tt> .
icsrCPUCredits :: Lens' InstanceCreditSpecificationRequest (Maybe Text)

-- | 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 an IPv6 address.
--   
--   <i>See:</i> <a>instanceIPv6AddressRequest</a> smart constructor.
data InstanceIPv6AddressRequest

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

-- | The IPv6 address.
iiarIPv6Address :: Lens' InstanceIPv6AddressRequest (Maybe Text)

-- | Describes the market (purchasing) option for the instances.
--   
--   <i>See:</i> <a>instanceMarketOptionsRequest</a> smart constructor.
data InstanceMarketOptionsRequest

-- | Creates a value of <a>InstanceMarketOptionsRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>imorMarketType</a> - The market type.</li>
--   <li><a>imorSpotOptions</a> - The options for Spot Instances.</li>
--   </ul>
instanceMarketOptionsRequest :: InstanceMarketOptionsRequest

-- | The market type.
imorMarketType :: Lens' InstanceMarketOptionsRequest (Maybe MarketType)

-- | The options for Spot Instances.
imorSpotOptions :: Lens' InstanceMarketOptionsRequest (Maybe SpotMarketOptions)

-- | 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. For an
--   Internet gateway, the state is <tt>available</tt> when attached to a
--   VPC; otherwise, this value is not returned.</li>
--   <li><a>igaVPCId</a> - The ID of the VPC.</li>
--   </ul>
internetGatewayAttachment :: AttachmentStatus -> Text -> InternetGatewayAttachment

-- | The current state of the attachment. For an Internet gateway, the
--   state is <tt>available</tt> when attached to a VPC; otherwise, this
--   value is not returned.
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>lGroup</a> - The name of the group.</li>
--   <li><a>lUserId</a> - The AWS account ID.</li>
--   </ul>
launchPermission :: LaunchPermission

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

-- | The AWS account ID.
lUserId :: 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>lRemove</a> - The AWS account ID to remove from the list of
--   launch permissions for the AMI.</li>
--   <li><a>lAdd</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.
lRemove :: Lens' LaunchPermissionModifications [LaunchPermission]

-- | The AWS account ID to add to the list of launch permissions for the
--   AMI.
lAdd :: 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 Base64-encoded user data for the
--   instance.</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.</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 Base64-encoded user data for the instance.
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.
lsBlockDeviceMappings :: Lens' LaunchSpecification [BlockDeviceMapping]

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

-- | Describes a launch template.
--   
--   <i>See:</i> <a>launchTemplate</a> smart constructor.
data LaunchTemplate

-- | Creates a value of <a>LaunchTemplate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltLaunchTemplateName</a> - The name of the launch
--   template.</li>
--   <li><a>ltLatestVersionNumber</a> - The version number of the latest
--   version of the launch template.</li>
--   <li><a>ltLaunchTemplateId</a> - The ID of the launch template.</li>
--   <li><a>ltCreatedBy</a> - The principal that created the launch
--   template.</li>
--   <li><a>ltDefaultVersionNumber</a> - The version number of the default
--   version of the launch template.</li>
--   <li><a>ltCreateTime</a> - The time launch template was created.</li>
--   <li><a>ltTags</a> - The tags for the launch template.</li>
--   </ul>
launchTemplate :: LaunchTemplate

-- | The name of the launch template.
ltLaunchTemplateName :: Lens' LaunchTemplate (Maybe Text)

-- | The version number of the latest version of the launch template.
ltLatestVersionNumber :: Lens' LaunchTemplate (Maybe Integer)

-- | The ID of the launch template.
ltLaunchTemplateId :: Lens' LaunchTemplate (Maybe Text)

-- | The principal that created the launch template.
ltCreatedBy :: Lens' LaunchTemplate (Maybe Text)

-- | The version number of the default version of the launch template.
ltDefaultVersionNumber :: Lens' LaunchTemplate (Maybe Integer)

-- | The time launch template was created.
ltCreateTime :: Lens' LaunchTemplate (Maybe UTCTime)

-- | The tags for the launch template.
ltTags :: Lens' LaunchTemplate [Tag]

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

-- | Creates a value of <a>LaunchTemplateBlockDeviceMapping</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltbdmVirtualName</a> - The virtual device name
--   (ephemeralN).</li>
--   <li><a>ltbdmNoDevice</a> - Suppresses the specified device included in
--   the block device mapping of the AMI.</li>
--   <li><a>ltbdmEBS</a> - Information about the block device for an EBS
--   volume.</li>
--   <li><a>ltbdmDeviceName</a> - The device name.</li>
--   </ul>
launchTemplateBlockDeviceMapping :: LaunchTemplateBlockDeviceMapping

-- | The virtual device name (ephemeralN).
ltbdmVirtualName :: Lens' LaunchTemplateBlockDeviceMapping (Maybe Text)

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

-- | Information about the block device for an EBS volume.
ltbdmEBS :: Lens' LaunchTemplateBlockDeviceMapping (Maybe LaunchTemplateEBSBlockDevice)

-- | The device name.
ltbdmDeviceName :: Lens' LaunchTemplateBlockDeviceMapping (Maybe Text)

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

-- | Creates a value of <a>LaunchTemplateBlockDeviceMappingRequest</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltbdmrVirtualName</a> - The virtual device name (ephemeralN).
--   Instance store volumes are numbered starting from 0. An instance type
--   with 2 available instance store volumes can specify mappings for
--   ephemeral0 and ephemeral1. The number of available instance store
--   volumes depends on the instance type. After you connect to the
--   instance, you must mount the volume.</li>
--   <li><a>ltbdmrNoDevice</a> - Suppresses the specified device included
--   in the block device mapping of the AMI.</li>
--   <li><a>ltbdmrEBS</a> - Parameters used to automatically set up EBS
--   volumes when the instance is launched.</li>
--   <li><a>ltbdmrDeviceName</a> - The device name (for example,
--   <i>dev</i>sdh or xvdh).</li>
--   </ul>
launchTemplateBlockDeviceMappingRequest :: LaunchTemplateBlockDeviceMappingRequest

-- | The virtual device name (ephemeralN). Instance store volumes are
--   numbered starting from 0. An instance type with 2 available instance
--   store volumes can specify mappings for ephemeral0 and ephemeral1. The
--   number of available instance store volumes depends on the instance
--   type. After you connect to the instance, you must mount the volume.
ltbdmrVirtualName :: Lens' LaunchTemplateBlockDeviceMappingRequest (Maybe Text)

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

-- | Parameters used to automatically set up EBS volumes when the instance
--   is launched.
ltbdmrEBS :: Lens' LaunchTemplateBlockDeviceMappingRequest (Maybe LaunchTemplateEBSBlockDeviceRequest)

-- | The device name (for example, <i>dev</i>sdh or xvdh).
ltbdmrDeviceName :: Lens' LaunchTemplateBlockDeviceMappingRequest (Maybe Text)

-- | Describes a launch template and overrides.
--   
--   <i>See:</i> <a>launchTemplateConfig</a> smart constructor.
data LaunchTemplateConfig

-- | Creates a value of <a>LaunchTemplateConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltcOverrides</a> - Any parameters that you specify override the
--   same parameters in the launch template.</li>
--   <li><a>ltcLaunchTemplateSpecification</a> - The launch template.</li>
--   </ul>
launchTemplateConfig :: LaunchTemplateConfig

-- | Any parameters that you specify override the same parameters in the
--   launch template.
ltcOverrides :: Lens' LaunchTemplateConfig [LaunchTemplateOverrides]

-- | The launch template.
ltcLaunchTemplateSpecification :: Lens' LaunchTemplateConfig (Maybe FleetLaunchTemplateSpecification)

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

-- | Creates a value of <a>LaunchTemplateEBSBlockDevice</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltebdDeleteOnTermination</a> - Indicates whether the EBS volume
--   is deleted on instance termination.</li>
--   <li><a>ltebdVolumeSize</a> - The size of the volume, in GiB.</li>
--   <li><a>ltebdIOPS</a> - The number of I/O operations per second (IOPS)
--   that the volume supports.</li>
--   <li><a>ltebdEncrypted</a> - Indicates whether the EBS volume is
--   encrypted.</li>
--   <li><a>ltebdKMSKeyId</a> - The ARN of the AWS Key Management Service
--   (AWS KMS) CMK used for encryption.</li>
--   <li><a>ltebdVolumeType</a> - The volume type.</li>
--   <li><a>ltebdSnapshotId</a> - The ID of the snapshot.</li>
--   </ul>
launchTemplateEBSBlockDevice :: LaunchTemplateEBSBlockDevice

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

-- | The size of the volume, in GiB.
ltebdVolumeSize :: Lens' LaunchTemplateEBSBlockDevice (Maybe Int)

-- | The number of I/O operations per second (IOPS) that the volume
--   supports.
ltebdIOPS :: Lens' LaunchTemplateEBSBlockDevice (Maybe Int)

-- | Indicates whether the EBS volume is encrypted.
ltebdEncrypted :: Lens' LaunchTemplateEBSBlockDevice (Maybe Bool)

-- | The ARN of the AWS Key Management Service (AWS KMS) CMK used for
--   encryption.
ltebdKMSKeyId :: Lens' LaunchTemplateEBSBlockDevice (Maybe Text)

-- | The volume type.
ltebdVolumeType :: Lens' LaunchTemplateEBSBlockDevice (Maybe VolumeType)

-- | The ID of the snapshot.
ltebdSnapshotId :: Lens' LaunchTemplateEBSBlockDevice (Maybe Text)

-- | The parameters for a block device for an EBS volume.
--   
--   <i>See:</i> <a>launchTemplateEBSBlockDeviceRequest</a> smart
--   constructor.
data LaunchTemplateEBSBlockDeviceRequest

-- | Creates a value of <a>LaunchTemplateEBSBlockDeviceRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltebdrDeleteOnTermination</a> - Indicates whether the EBS
--   volume is deleted on instance termination.</li>
--   <li><a>ltebdrVolumeSize</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>ltebdrIOPS</a> - The number of I<i>O operations per second
--   (IOPS) that the volume supports. For io1, this represents the number
--   of IOPS that are provisioned for the volume. For gp2, 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/O credits, and
--   bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute
--   Cloud User Guide. Condition: This parameter is required for requests
--   to create io1 volumes; it is not used in requests to create gp2, st1,
--   sc1, or standard volumes.</li>
--   <li><a>ltebdrEncrypted</a> - Indicates whether the EBS volume is
--   encrypted. Encrypted volumes can only be attached to instances that
--   support Amazon EBS encryption. If you are creating a volume from a
--   snapshot, you can't specify an encryption value.</li>
--   <li><a>ltebdrKMSKeyId</a> - The ARN of the AWS Key Management Service
--   (AWS KMS) CMK used for encryption.</li>
--   <li><a>ltebdrVolumeType</a> - The volume type.</li>
--   <li><a>ltebdrSnapshotId</a> - The ID of the snapshot.</li>
--   </ul>
launchTemplateEBSBlockDeviceRequest :: LaunchTemplateEBSBlockDeviceRequest

-- | Indicates whether the EBS volume is deleted on instance termination.
ltebdrDeleteOnTermination :: Lens' LaunchTemplateEBSBlockDeviceRequest (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.
ltebdrVolumeSize :: Lens' LaunchTemplateEBSBlockDeviceRequest (Maybe Int)

-- | The number of I<i>O operations per second (IOPS) that the volume
--   supports. For io1, this represents the number of IOPS that are
--   provisioned for the volume. For gp2, 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/O credits, and bursting, see
--   Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User
--   Guide. Condition: This parameter is required for requests to create
--   io1 volumes; it is not used in requests to create gp2, st1, sc1, or
--   standard volumes.
ltebdrIOPS :: Lens' LaunchTemplateEBSBlockDeviceRequest (Maybe Int)

-- | Indicates whether the EBS volume is encrypted. Encrypted volumes can
--   only be attached to instances that support Amazon EBS encryption. If
--   you are creating a volume from a snapshot, you can't specify an
--   encryption value.
ltebdrEncrypted :: Lens' LaunchTemplateEBSBlockDeviceRequest (Maybe Bool)

-- | The ARN of the AWS Key Management Service (AWS KMS) CMK used for
--   encryption.
ltebdrKMSKeyId :: Lens' LaunchTemplateEBSBlockDeviceRequest (Maybe Text)

-- | The volume type.
ltebdrVolumeType :: Lens' LaunchTemplateEBSBlockDeviceRequest (Maybe VolumeType)

-- | The ID of the snapshot.
ltebdrSnapshotId :: Lens' LaunchTemplateEBSBlockDeviceRequest (Maybe Text)

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

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

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

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

-- | An IAM instance profile.
--   
--   <i>See:</i>
--   <a>launchTemplateIAMInstanceProfileSpecificationRequest</a> smart
--   constructor.
data LaunchTemplateIAMInstanceProfileSpecificationRequest

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

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

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

-- | The market (purchasing) option for the instances.
--   
--   <i>See:</i> <a>launchTemplateInstanceMarketOptions</a> smart
--   constructor.
data LaunchTemplateInstanceMarketOptions

-- | Creates a value of <a>LaunchTemplateInstanceMarketOptions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltimoMarketType</a> - The market type.</li>
--   <li><a>ltimoSpotOptions</a> - The options for Spot Instances.</li>
--   </ul>
launchTemplateInstanceMarketOptions :: LaunchTemplateInstanceMarketOptions

-- | The market type.
ltimoMarketType :: Lens' LaunchTemplateInstanceMarketOptions (Maybe MarketType)

-- | The options for Spot Instances.
ltimoSpotOptions :: Lens' LaunchTemplateInstanceMarketOptions (Maybe LaunchTemplateSpotMarketOptions)

-- | The market (purchasing) option for the instances.
--   
--   <i>See:</i> <a>launchTemplateInstanceMarketOptionsRequest</a> smart
--   constructor.
data LaunchTemplateInstanceMarketOptionsRequest

-- | Creates a value of <a>LaunchTemplateInstanceMarketOptionsRequest</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltimorMarketType</a> - The market type.</li>
--   <li><a>ltimorSpotOptions</a> - The options for Spot Instances.</li>
--   </ul>
launchTemplateInstanceMarketOptionsRequest :: LaunchTemplateInstanceMarketOptionsRequest

-- | The market type.
ltimorMarketType :: Lens' LaunchTemplateInstanceMarketOptionsRequest (Maybe MarketType)

-- | The options for Spot Instances.
ltimorSpotOptions :: Lens' LaunchTemplateInstanceMarketOptionsRequest (Maybe LaunchTemplateSpotMarketOptionsRequest)

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

-- | Creates a value of
--   <a>LaunchTemplateInstanceNetworkInterfaceSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltinisGroups</a> - The IDs of one or more security groups.</li>
--   <li><a>ltinisPrivateIPAddresses</a> - One or more private IPv4
--   addresses.</li>
--   <li><a>ltinisDeleteOnTermination</a> - Indicates whether the network
--   interface is deleted when the instance is terminated.</li>
--   <li><a>ltinisAssociatePublicIPAddress</a> - Indicates whether to
--   associate a public IPv4 address with eth0 for a new network
--   interface.</li>
--   <li><a>ltinisNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>ltinisSubnetId</a> - The ID of the subnet for the network
--   interface.</li>
--   <li><a>ltinisIPv6AddressCount</a> - The number of IPv6 addresses for
--   the network interface.</li>
--   <li><a>ltinisPrivateIPAddress</a> - The primary private IPv4 address
--   of the network interface.</li>
--   <li><a>ltinisSecondaryPrivateIPAddressCount</a> - The number of
--   secondary private IPv4 addresses for the network interface.</li>
--   <li><a>ltinisDescription</a> - A description for the network
--   interface.</li>
--   <li><a>ltinisDeviceIndex</a> - The device index for the network
--   interface attachment.</li>
--   <li><a>ltinisIPv6Addresses</a> - The IPv6 addresses for the network
--   interface.</li>
--   </ul>
launchTemplateInstanceNetworkInterfaceSpecification :: LaunchTemplateInstanceNetworkInterfaceSpecification

-- | The IDs of one or more security groups.
ltinisGroups :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification [Text]

-- | One or more private IPv4 addresses.
ltinisPrivateIPAddresses :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification [PrivateIPAddressSpecification]

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

-- | Indicates whether to associate a public IPv4 address with eth0 for a
--   new network interface.
ltinisAssociatePublicIPAddress :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Bool)

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

-- | The ID of the subnet for the network interface.
ltinisSubnetId :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Text)

-- | The number of IPv6 addresses for the network interface.
ltinisIPv6AddressCount :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Int)

-- | The primary private IPv4 address of the network interface.
ltinisPrivateIPAddress :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Text)

-- | The number of secondary private IPv4 addresses for the network
--   interface.
ltinisSecondaryPrivateIPAddressCount :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Int)

-- | A description for the network interface.
ltinisDescription :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Text)

-- | The device index for the network interface attachment.
ltinisDeviceIndex :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification (Maybe Int)

-- | The IPv6 addresses for the network interface.
ltinisIPv6Addresses :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecification [InstanceIPv6Address]

-- | The parameters for a network interface.
--   
--   <i>See:</i>
--   <a>launchTemplateInstanceNetworkInterfaceSpecificationRequest</a>
--   smart constructor.
data LaunchTemplateInstanceNetworkInterfaceSpecificationRequest

-- | Creates a value of
--   <a>LaunchTemplateInstanceNetworkInterfaceSpecificationRequest</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltinisrGroups</a> - The IDs of one or more security
--   groups.</li>
--   <li><a>ltinisrPrivateIPAddresses</a> - One or more private IPv4
--   addresses.</li>
--   <li><a>ltinisrDeleteOnTermination</a> - Indicates whether the network
--   interface is deleted when the instance is terminated.</li>
--   <li><a>ltinisrAssociatePublicIPAddress</a> - Associates a public IPv4
--   address with eth0 for a new network interface.</li>
--   <li><a>ltinisrNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>ltinisrSubnetId</a> - The ID of the subnet for the network
--   interface.</li>
--   <li><a>ltinisrIPv6AddressCount</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.</li>
--   <li><a>ltinisrPrivateIPAddress</a> - The primary private IPv4 address
--   of the network interface.</li>
--   <li><a>ltinisrSecondaryPrivateIPAddressCount</a> - The number of
--   secondary private IPv4 addresses to assign to a network
--   interface.</li>
--   <li><a>ltinisrDescription</a> - A description for the network
--   interface.</li>
--   <li><a>ltinisrDeviceIndex</a> - The device index for the network
--   interface attachment.</li>
--   <li><a>ltinisrIPv6Addresses</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>
--   </ul>
launchTemplateInstanceNetworkInterfaceSpecificationRequest :: LaunchTemplateInstanceNetworkInterfaceSpecificationRequest

-- | The IDs of one or more security groups.
ltinisrGroups :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest [Text]

-- | One or more private IPv4 addresses.
ltinisrPrivateIPAddresses :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest [PrivateIPAddressSpecification]

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

-- | Associates a public IPv4 address with eth0 for a new network
--   interface.
ltinisrAssociatePublicIPAddress :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Bool)

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

-- | The ID of the subnet for the network interface.
ltinisrSubnetId :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Text)

-- | 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.
ltinisrIPv6AddressCount :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Int)

-- | The primary private IPv4 address of the network interface.
ltinisrPrivateIPAddress :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Text)

-- | The number of secondary private IPv4 addresses to assign to a network
--   interface.
ltinisrSecondaryPrivateIPAddressCount :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Int)

-- | A description for the network interface.
ltinisrDescription :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Text)

-- | The device index for the network interface attachment.
ltinisrDeviceIndex :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest (Maybe Int)

-- | 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.
ltinisrIPv6Addresses :: Lens' LaunchTemplateInstanceNetworkInterfaceSpecificationRequest [InstanceIPv6AddressRequest]

-- | Describes overrides for a launch template.
--   
--   <i>See:</i> <a>launchTemplateOverrides</a> smart constructor.
data LaunchTemplateOverrides

-- | Creates a value of <a>LaunchTemplateOverrides</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltoSpotPrice</a> - The maximum price per unit hour that you are
--   willing to pay for a Spot Instance.</li>
--   <li><a>ltoWeightedCapacity</a> - The number of units provided by the
--   specified instance type.</li>
--   <li><a>ltoSubnetId</a> - The ID of the subnet in which to launch the
--   instances.</li>
--   <li><a>ltoInstanceType</a> - The instance type.</li>
--   <li><a>ltoAvailabilityZone</a> - The Availability Zone in which to
--   launch the instances.</li>
--   </ul>
launchTemplateOverrides :: LaunchTemplateOverrides

-- | The maximum price per unit hour that you are willing to pay for a Spot
--   Instance.
ltoSpotPrice :: Lens' LaunchTemplateOverrides (Maybe Text)

-- | The number of units provided by the specified instance type.
ltoWeightedCapacity :: Lens' LaunchTemplateOverrides (Maybe Double)

-- | The ID of the subnet in which to launch the instances.
ltoSubnetId :: Lens' LaunchTemplateOverrides (Maybe Text)

-- | The instance type.
ltoInstanceType :: Lens' LaunchTemplateOverrides (Maybe InstanceType)

-- | The Availability Zone in which to launch the instances.
ltoAvailabilityZone :: Lens' LaunchTemplateOverrides (Maybe Text)

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

-- | Creates a value of <a>LaunchTemplatePlacement</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltpAffinity</a> - The affinity setting for the instance on the
--   Dedicated Host.</li>
--   <li><a>ltpHostId</a> - The ID of the Dedicated Host for the
--   instance.</li>
--   <li><a>ltpSpreadDomain</a> - Reserved for future use.</li>
--   <li><a>ltpAvailabilityZone</a> - The Availability Zone of the
--   instance.</li>
--   <li><a>ltpTenancy</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.</li>
--   <li><a>ltpGroupName</a> - The name of the placement group for the
--   instance.</li>
--   </ul>
launchTemplatePlacement :: LaunchTemplatePlacement

-- | The affinity setting for the instance on the Dedicated Host.
ltpAffinity :: Lens' LaunchTemplatePlacement (Maybe Text)

-- | The ID of the Dedicated Host for the instance.
ltpHostId :: Lens' LaunchTemplatePlacement (Maybe Text)

-- | Reserved for future use.
ltpSpreadDomain :: Lens' LaunchTemplatePlacement (Maybe Text)

-- | The Availability Zone of the instance.
ltpAvailabilityZone :: Lens' LaunchTemplatePlacement (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.
ltpTenancy :: Lens' LaunchTemplatePlacement (Maybe Tenancy)

-- | The name of the placement group for the instance.
ltpGroupName :: Lens' LaunchTemplatePlacement (Maybe Text)

-- | The placement for the instance.
--   
--   <i>See:</i> <a>launchTemplatePlacementRequest</a> smart constructor.
data LaunchTemplatePlacementRequest

-- | Creates a value of <a>LaunchTemplatePlacementRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltprAffinity</a> - The affinity setting for an instance on a
--   Dedicated Host.</li>
--   <li><a>ltprHostId</a> - The ID of the Dedicated Host for the
--   instance.</li>
--   <li><a>ltprSpreadDomain</a> - Reserved for future use.</li>
--   <li><a>ltprAvailabilityZone</a> - The Availability Zone for the
--   instance.</li>
--   <li><a>ltprTenancy</a> - The tenancy of the instance (if the instance
--   is running in a VPC). An instance with a tenancy of dedicated runs on
--   single-tenant hardware.</li>
--   <li><a>ltprGroupName</a> - The name of the placement group for the
--   instance.</li>
--   </ul>
launchTemplatePlacementRequest :: LaunchTemplatePlacementRequest

-- | The affinity setting for an instance on a Dedicated Host.
ltprAffinity :: Lens' LaunchTemplatePlacementRequest (Maybe Text)

-- | The ID of the Dedicated Host for the instance.
ltprHostId :: Lens' LaunchTemplatePlacementRequest (Maybe Text)

-- | Reserved for future use.
ltprSpreadDomain :: Lens' LaunchTemplatePlacementRequest (Maybe Text)

-- | The Availability Zone for the instance.
ltprAvailabilityZone :: Lens' LaunchTemplatePlacementRequest (Maybe Text)

-- | The tenancy of the instance (if the instance is running in a VPC). An
--   instance with a tenancy of dedicated runs on single-tenant hardware.
ltprTenancy :: Lens' LaunchTemplatePlacementRequest (Maybe Tenancy)

-- | The name of the placement group for the instance.
ltprGroupName :: Lens' LaunchTemplatePlacementRequest (Maybe Text)

-- | The launch template to use. You must specify either the launch
--   template ID or launch template name in the request, but not both.
--   
--   <i>See:</i> <a>launchTemplateSpecification</a> smart constructor.
data LaunchTemplateSpecification

-- | Creates a value of <a>LaunchTemplateSpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltsLaunchTemplateName</a> - The name of the launch
--   template.</li>
--   <li><a>ltsLaunchTemplateId</a> - The ID of the launch template.</li>
--   <li><a>ltsVersion</a> - The version number of the launch template.
--   Default: The default version for the launch template.</li>
--   </ul>
launchTemplateSpecification :: LaunchTemplateSpecification

-- | The name of the launch template.
ltsLaunchTemplateName :: Lens' LaunchTemplateSpecification (Maybe Text)

-- | The ID of the launch template.
ltsLaunchTemplateId :: Lens' LaunchTemplateSpecification (Maybe Text)

-- | The version number of the launch template. Default: The default
--   version for the launch template.
ltsVersion :: Lens' LaunchTemplateSpecification (Maybe Text)

-- | The options for Spot Instances.
--   
--   <i>See:</i> <a>launchTemplateSpotMarketOptions</a> smart constructor.
data LaunchTemplateSpotMarketOptions

-- | Creates a value of <a>LaunchTemplateSpotMarketOptions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltsmoBlockDurationMinutes</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).</li>
--   <li><a>ltsmoInstanceInterruptionBehavior</a> - The behavior when a
--   Spot Instance is interrupted.</li>
--   <li><a>ltsmoValidUntil</a> - The end date of the request. For 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.</li>
--   <li><a>ltsmoSpotInstanceType</a> - The Spot Instance request
--   type.</li>
--   <li><a>ltsmoMaxPrice</a> - The maximum hourly price you're willing to
--   pay for the Spot Instances.</li>
--   </ul>
launchTemplateSpotMarketOptions :: LaunchTemplateSpotMarketOptions

-- | 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).
ltsmoBlockDurationMinutes :: Lens' LaunchTemplateSpotMarketOptions (Maybe Int)

-- | The behavior when a Spot Instance is interrupted.
ltsmoInstanceInterruptionBehavior :: Lens' LaunchTemplateSpotMarketOptions (Maybe InstanceInterruptionBehavior)

-- | The end date of the request. For 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.
ltsmoValidUntil :: Lens' LaunchTemplateSpotMarketOptions (Maybe UTCTime)

-- | The Spot Instance request type.
ltsmoSpotInstanceType :: Lens' LaunchTemplateSpotMarketOptions (Maybe SpotInstanceType)

-- | The maximum hourly price you're willing to pay for the Spot Instances.
ltsmoMaxPrice :: Lens' LaunchTemplateSpotMarketOptions (Maybe Text)

-- | The options for Spot Instances.
--   
--   <i>See:</i> <a>launchTemplateSpotMarketOptionsRequest</a> smart
--   constructor.
data LaunchTemplateSpotMarketOptionsRequest

-- | Creates a value of <a>LaunchTemplateSpotMarketOptionsRequest</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltsmorBlockDurationMinutes</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).</li>
--   <li><a>ltsmorInstanceInterruptionBehavior</a> - The behavior when a
--   Spot Instance is interrupted. The default is <tt>terminate</tt> .</li>
--   <li><a>ltsmorValidUntil</a> - The end date of the request. For 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. The default end date is 7 days from the
--   current date.</li>
--   <li><a>ltsmorSpotInstanceType</a> - The Spot Instance request
--   type.</li>
--   <li><a>ltsmorMaxPrice</a> - The maximum hourly price you're willing to
--   pay for the Spot Instances.</li>
--   </ul>
launchTemplateSpotMarketOptionsRequest :: LaunchTemplateSpotMarketOptionsRequest

-- | 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).
ltsmorBlockDurationMinutes :: Lens' LaunchTemplateSpotMarketOptionsRequest (Maybe Int)

-- | The behavior when a Spot Instance is interrupted. The default is
--   <tt>terminate</tt> .
ltsmorInstanceInterruptionBehavior :: Lens' LaunchTemplateSpotMarketOptionsRequest (Maybe InstanceInterruptionBehavior)

-- | The end date of the request. For 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. The default end
--   date is 7 days from the current date.
ltsmorValidUntil :: Lens' LaunchTemplateSpotMarketOptionsRequest (Maybe UTCTime)

-- | The Spot Instance request type.
ltsmorSpotInstanceType :: Lens' LaunchTemplateSpotMarketOptionsRequest (Maybe SpotInstanceType)

-- | The maximum hourly price you're willing to pay for the Spot Instances.
ltsmorMaxPrice :: Lens' LaunchTemplateSpotMarketOptionsRequest (Maybe Text)

-- | The tag specification for the launch template.
--   
--   <i>See:</i> <a>launchTemplateTagSpecification</a> smart constructor.
data LaunchTemplateTagSpecification

-- | Creates a value of <a>LaunchTemplateTagSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lttsResourceType</a> - The type of resource.</li>
--   <li><a>lttsTags</a> - The tags for the resource.</li>
--   </ul>
launchTemplateTagSpecification :: LaunchTemplateTagSpecification

-- | The type of resource.
lttsResourceType :: Lens' LaunchTemplateTagSpecification (Maybe ResourceType)

-- | The tags for the resource.
lttsTags :: Lens' LaunchTemplateTagSpecification [Tag]

-- | The tags specification for the launch template.
--   
--   <i>See:</i> <a>launchTemplateTagSpecificationRequest</a> smart
--   constructor.
data LaunchTemplateTagSpecificationRequest

-- | Creates a value of <a>LaunchTemplateTagSpecificationRequest</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lttsrResourceType</a> - The type of resource to tag. Currently,
--   the resource types that support tagging on creation are
--   <tt>instance</tt> and <tt>volume</tt> .</li>
--   <li><a>lttsrTags</a> - The tags to apply to the resource.</li>
--   </ul>
launchTemplateTagSpecificationRequest :: LaunchTemplateTagSpecificationRequest

-- | The type of resource to tag. Currently, the resource types that
--   support tagging on creation are <tt>instance</tt> and <tt>volume</tt>
--   .
lttsrResourceType :: Lens' LaunchTemplateTagSpecificationRequest (Maybe ResourceType)

-- | The tags to apply to the resource.
lttsrTags :: Lens' LaunchTemplateTagSpecificationRequest [Tag]

-- | Describes a launch template version.
--   
--   <i>See:</i> <a>launchTemplateVersion</a> smart constructor.
data LaunchTemplateVersion

-- | Creates a value of <a>LaunchTemplateVersion</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltvLaunchTemplateName</a> - The name of the launch
--   template.</li>
--   <li><a>ltvLaunchTemplateId</a> - The ID of the launch template.</li>
--   <li><a>ltvCreatedBy</a> - The principal that created the version.</li>
--   <li><a>ltvDefaultVersion</a> - Indicates whether the version is the
--   default version.</li>
--   <li><a>ltvVersionNumber</a> - The version number.</li>
--   <li><a>ltvVersionDescription</a> - The description for the
--   version.</li>
--   <li><a>ltvLaunchTemplateData</a> - Information about the launch
--   template.</li>
--   <li><a>ltvCreateTime</a> - The time the version was created.</li>
--   </ul>
launchTemplateVersion :: LaunchTemplateVersion

-- | The name of the launch template.
ltvLaunchTemplateName :: Lens' LaunchTemplateVersion (Maybe Text)

-- | The ID of the launch template.
ltvLaunchTemplateId :: Lens' LaunchTemplateVersion (Maybe Text)

-- | The principal that created the version.
ltvCreatedBy :: Lens' LaunchTemplateVersion (Maybe Text)

-- | Indicates whether the version is the default version.
ltvDefaultVersion :: Lens' LaunchTemplateVersion (Maybe Bool)

-- | The version number.
ltvVersionNumber :: Lens' LaunchTemplateVersion (Maybe Integer)

-- | The description for the version.
ltvVersionDescription :: Lens' LaunchTemplateVersion (Maybe Text)

-- | Information about the launch template.
ltvLaunchTemplateData :: Lens' LaunchTemplateVersion (Maybe ResponseLaunchTemplateData)

-- | The time the version was created.
ltvCreateTime :: Lens' LaunchTemplateVersion (Maybe UTCTime)

-- | Describes the monitoring for the instance.
--   
--   <i>See:</i> <a>launchTemplatesMonitoring</a> smart constructor.
data LaunchTemplatesMonitoring

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

-- | Indicates whether detailed monitoring is enabled. Otherwise, basic
--   monitoring is enabled.
ltmEnabled :: Lens' LaunchTemplatesMonitoring (Maybe Bool)

-- | Describes the monitoring for the instance.
--   
--   <i>See:</i> <a>launchTemplatesMonitoringRequest</a> smart constructor.
data LaunchTemplatesMonitoringRequest

-- | Creates a value of <a>LaunchTemplatesMonitoringRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltmrEnabled</a> - Specify <tt>true</tt> to enable detailed
--   monitoring. Otherwise, basic monitoring is enabled.</li>
--   </ul>
launchTemplatesMonitoringRequest :: LaunchTemplatesMonitoringRequest

-- | Specify <tt>true</tt> to enable detailed monitoring. Otherwise, basic
--   monitoring is enabled.
ltmrEnabled :: Lens' LaunchTemplatesMonitoringRequest (Maybe Bool)

-- | Describes the Classic Load Balancers and target groups to attach to a
--   Spot Fleet request.
--   
--   <i>See:</i> <a>loadBalancersConfig</a> smart constructor.
data LoadBalancersConfig

-- | Creates a value of <a>LoadBalancersConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbcClassicLoadBalancersConfig</a> - The Classic Load
--   Balancers.</li>
--   <li><a>lbcTargetGroupsConfig</a> - The target groups.</li>
--   </ul>
loadBalancersConfig :: LoadBalancersConfig

-- | The Classic Load Balancers.
lbcClassicLoadBalancersConfig :: Lens' LoadBalancersConfig (Maybe ClassicLoadBalancersConfig)

-- | The target groups.
lbcTargetGroupsConfig :: Lens' LoadBalancersConfig (Maybe TargetGroupsConfig)

-- | Describes a load permission.
--   
--   <i>See:</i> <a>loadPermission</a> smart constructor.
data LoadPermission

-- | Creates a value of <a>LoadPermission</a> 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>
loadPermission :: LoadPermission

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

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

-- | Describes modifications to the load permissions of an Amazon FPGA
--   image (AFI).
--   
--   <i>See:</i> <a>loadPermissionModifications</a> smart constructor.
data LoadPermissionModifications

-- | Creates a value of <a>LoadPermissionModifications</a> 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 load permissions to remove.</li>
--   <li><a>lpmAdd</a> - The load permissions to add.</li>
--   </ul>
loadPermissionModifications :: LoadPermissionModifications

-- | The load permissions to remove.
lpmRemove :: Lens' LoadPermissionModifications [LoadPermissionRequest]

-- | The load permissions to add.
lpmAdd :: Lens' LoadPermissionModifications [LoadPermissionRequest]

-- | Describes a load permission.
--   
--   <i>See:</i> <a>loadPermissionRequest</a> smart constructor.
data LoadPermissionRequest

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

-- | The name of the group.
lprGroup :: Lens' LoadPermissionRequest (Maybe PermissionGroup)

-- | The AWS account ID.
lprUserId :: Lens' LoadPermissionRequest (Maybe Text)

-- | 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>
--   <li><a>ngTags</a> - The tags for the NAT gateway.</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)

-- | The tags for the NAT gateway.
ngTags :: Lens' NatGateway [Tag]

-- | 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 a permission for a network interface.
--   
--   <i>See:</i> <a>networkInterfacePermission</a> smart constructor.
data NetworkInterfacePermission

-- | Creates a value of <a>NetworkInterfacePermission</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nipPermissionState</a> - Information about the state of the
--   permission.</li>
--   <li><a>nipNetworkInterfacePermissionId</a> - The ID of the network
--   interface permission.</li>
--   <li><a>nipNetworkInterfaceId</a> - The ID of the network
--   interface.</li>
--   <li><a>nipAWSAccountId</a> - The AWS account ID.</li>
--   <li><a>nipAWSService</a> - The AWS service.</li>
--   <li><a>nipPermission</a> - The type of permission.</li>
--   </ul>
networkInterfacePermission :: NetworkInterfacePermission

-- | Information about the state of the permission.
nipPermissionState :: Lens' NetworkInterfacePermission (Maybe NetworkInterfacePermissionState)

-- | The ID of the network interface permission.
nipNetworkInterfacePermissionId :: Lens' NetworkInterfacePermission (Maybe Text)

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

-- | The AWS account ID.
nipAWSAccountId :: Lens' NetworkInterfacePermission (Maybe Text)

-- | The AWS service.
nipAWSService :: Lens' NetworkInterfacePermission (Maybe Text)

-- | The type of permission.
nipPermission :: Lens' NetworkInterfacePermission (Maybe InterfacePermissionType)

-- | Describes the state of a network interface permission.
--   
--   <i>See:</i> <a>networkInterfacePermissionState</a> smart constructor.
data NetworkInterfacePermissionState

-- | Creates a value of <a>NetworkInterfacePermissionState</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nipsState</a> - The state of the permission.</li>
--   <li><a>nipsStatusMessage</a> - A status message, if applicable.</li>
--   </ul>
networkInterfacePermissionState :: NetworkInterfacePermissionState

-- | The state of the permission.
nipsState :: Lens' NetworkInterfacePermissionState (Maybe NetworkInterfacePermissionStateCode)

-- | A status message, if applicable.
nipsStatusMessage :: Lens' NetworkInterfacePermissionState (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 data that identifies an Amazon FPGA image (AFI) on the
--   PCI bus.
--   
--   <i>See:</i> <a>pciId</a> smart constructor.
data PciId

-- | Creates a value of <a>PciId</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>piSubsystemId</a> - The ID of the subsystem.</li>
--   <li><a>piDeviceId</a> - The ID of the device.</li>
--   <li><a>piSubsystemVendorId</a> - The ID of the vendor for the
--   subsystem.</li>
--   <li><a>piVendorId</a> - The ID of the vendor.</li>
--   </ul>
pciId :: PciId

-- | The ID of the subsystem.
piSubsystemId :: Lens' PciId (Maybe Text)

-- | The ID of the device.
piDeviceId :: Lens' PciId (Maybe Text)

-- | The ID of the vendor for the subsystem.
piSubsystemVendorId :: Lens' PciId (Maybe Text)

-- | The ID of the vendor.
piVendorId :: Lens' PciId (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, the public
--   DNS hostnames of instances in the specified VPC resolve 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, the public DNS hostnames of instances in the specified VPC
--   resolve 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 Dedicated Host on which the
--   instance resides. This parameter is not supported for the
--   <tt>ImportInstance</tt> command.</li>
--   <li><a>pSpreadDomain</a> - Reserved for future use.</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 Dedicated Host on which the instance resides. This
--   parameter is not supported for the <tt>ImportInstance</tt> command.
pHostId :: Lens' Placement (Maybe Text)

-- | Reserved for future use.
pSpreadDomain :: 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)

-- | <ul>
--   <li><i>EC2-VPC only</i> The ID of the prefix.</li>
--   </ul>
--   
--   <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>
--   <li><a>pliDescription</a> - A description for the security group rule
--   that references this prefix list ID. Constraints: Up to 255 characters
--   in length. Allowed characters are a-z, A-Z, 0-9, spaces, and
--   ._-:/()#,@[]+=;{}!$*</li>
--   </ul>
prefixListId :: PrefixListId

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

-- | A description for the security group rule that references this prefix
--   list ID. Constraints: Up to 255 characters in length. Allowed
--   characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*
pliDescription :: 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)

-- | PrincipalIdFormat description
--   
--   <i>See:</i> <a>principalIdFormat</a> smart constructor.
data PrincipalIdFormat

-- | Creates a value of <a>PrincipalIdFormat</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pifARN</a> - PrincipalIdFormatARN description</li>
--   <li><a>pifStatuses</a> - PrincipalIdFormatStatuses description</li>
--   </ul>
principalIdFormat :: PrincipalIdFormat

-- | PrincipalIdFormatARN description
pifARN :: Lens' PrincipalIdFormat (Maybe Text)

-- | PrincipalIdFormatStatuses description
pifStatuses :: Lens' PrincipalIdFormat [IdFormat]

-- | 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>prInstanceCount</a> - The number of instances.</li>
--   <li><a>prPurchaseToken</a> - The purchase token.</li>
--   </ul>
purchaseRequest :: Int -> Text -> PurchaseRequest

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

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

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

-- | The information to include in the launch template.
--   
--   <i>See:</i> <a>requestLaunchTemplateData</a> smart constructor.
data RequestLaunchTemplateData

-- | Creates a value of <a>RequestLaunchTemplateData</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rltdSecurityGroupIds</a> - One or more security group IDs. You
--   can create a security group using <tt>CreateSecurityGroup</tt> . You
--   cannot specify both a security group ID and security name in the same
--   request.</li>
--   <li><a>rltdSecurityGroups</a> - [EC2-Classic, default VPC] One or more
--   security group names. For a nondefault VPC, you must use security
--   group IDs instead. You cannot specify both a security group ID and
--   security name in the same request.</li>
--   <li><a>rltdInstanceMarketOptions</a> - The market (purchasing) option
--   for the instances.</li>
--   <li><a>rltdDisableAPITermination</a> - If set to <tt>true</tt> , you
--   can't terminate the instance using the Amazon EC2 console, CLI, or
--   API. To change this attribute to <tt>false</tt> after launch, use
--   <tt>ModifyInstanceAttribute</tt> .</li>
--   <li><a>rltdKeyName</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>rltdNetworkInterfaces</a> - One or more network
--   interfaces.</li>
--   <li><a>rltdRamDiskId</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>User Provided Kernels</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .</li>
--   <li><a>rltdKernelId</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>User Provided Kernels</a> in the <i>Amazon
--   Elastic Compute Cloud User Guide</i> .</li>
--   <li><a>rltdElasticGpuSpecifications</a> - An elastic GPU to associate
--   with the instance.</li>
--   <li><a>rltdInstanceType</a> - The instance type. For more information,
--   see <a>Instance Types</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>rltdEBSOptimized</a> - Indicates whether the instance is
--   optimized for Amazon EBS I<i>O. This optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal Amazon 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>rltdUserData</a> - The Base64-encoded 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).</li>
--   <li><a>rltdMonitoring</a> - The monitoring for the instance.</li>
--   <li><a>rltdTagSpecifications</a> - The tags to apply to the resources
--   during launch. You can tag instances and volumes. The specified tags
--   are applied to all instances or volumes that are created during
--   launch.</li>
--   <li><a>rltdIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>rltdImageId</a> - The ID of the AMI, which you can get by using
--   <tt>DescribeImages</tt> .</li>
--   <li><a>rltdInstanceInitiatedShutdownBehavior</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>rltdCreditSpecification</a> - The credit option for CPU usage
--   of the instance. Valid for T2 instances only.</li>
--   <li><a>rltdBlockDeviceMappings</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>rltdPlacement</a> - The placement for the instance.</li>
--   </ul>
requestLaunchTemplateData :: RequestLaunchTemplateData

-- | One or more security group IDs. You can create a security group using
--   <tt>CreateSecurityGroup</tt> . You cannot specify both a security
--   group ID and security name in the same request.
rltdSecurityGroupIds :: Lens' RequestLaunchTemplateData [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. You
--   cannot specify both a security group ID and security name in the same
--   request.</li>
--   </ul>
rltdSecurityGroups :: Lens' RequestLaunchTemplateData [Text]

-- | The market (purchasing) option for the instances.
rltdInstanceMarketOptions :: Lens' RequestLaunchTemplateData (Maybe LaunchTemplateInstanceMarketOptionsRequest)

-- | If set to <tt>true</tt> , you can't terminate the instance using the
--   Amazon EC2 console, CLI, or API. To change this attribute to
--   <tt>false</tt> after launch, use <tt>ModifyInstanceAttribute</tt> .
rltdDisableAPITermination :: Lens' RequestLaunchTemplateData (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.
rltdKeyName :: Lens' RequestLaunchTemplateData (Maybe Text)

-- | One or more network interfaces.
rltdNetworkInterfaces :: Lens' RequestLaunchTemplateData [LaunchTemplateInstanceNetworkInterfaceSpecificationRequest]

-- | 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>User Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
rltdRamDiskId :: Lens' RequestLaunchTemplateData (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>User Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .
rltdKernelId :: Lens' RequestLaunchTemplateData (Maybe Text)

-- | An elastic GPU to associate with the instance.
rltdElasticGpuSpecifications :: Lens' RequestLaunchTemplateData [ElasticGpuSpecification]

-- | The instance type. For more information, see <a>Instance Types</a> in
--   the <i>Amazon Elastic Compute Cloud User Guide</i> .
rltdInstanceType :: Lens' RequestLaunchTemplateData (Maybe InstanceType)

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

-- | The Base64-encoded 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).
rltdUserData :: Lens' RequestLaunchTemplateData (Maybe Text)

-- | The monitoring for the instance.
rltdMonitoring :: Lens' RequestLaunchTemplateData (Maybe LaunchTemplatesMonitoringRequest)

-- | The tags to apply to the resources during launch. You can tag
--   instances and volumes. The specified tags are applied to all instances
--   or volumes that are created during launch.
rltdTagSpecifications :: Lens' RequestLaunchTemplateData [LaunchTemplateTagSpecificationRequest]

-- | The IAM instance profile.
rltdIAMInstanceProfile :: Lens' RequestLaunchTemplateData (Maybe LaunchTemplateIAMInstanceProfileSpecificationRequest)

-- | The ID of the AMI, which you can get by using <tt>DescribeImages</tt>
--   .
rltdImageId :: Lens' RequestLaunchTemplateData (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>
rltdInstanceInitiatedShutdownBehavior :: Lens' RequestLaunchTemplateData (Maybe ShutdownBehavior)

-- | The credit option for CPU usage of the instance. Valid for T2
--   instances only.
rltdCreditSpecification :: Lens' RequestLaunchTemplateData (Maybe CreditSpecificationRequest)

-- | 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.
rltdBlockDeviceMappings :: Lens' RequestLaunchTemplateData [LaunchTemplateBlockDeviceMappingRequest]

-- | The placement for the instance.
rltdPlacement :: Lens' RequestLaunchTemplateData (Maybe LaunchTemplatePlacementRequest)

-- | 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> - One or more security group IDs.</li>
--   <li><a>rslsSecurityGroups</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>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 Base64-encoded user data for the
--   instance.</li>
--   <li><a>rslsMonitoring</a> - Indicates whether basic or detailed
--   monitoring is enabled for the instance. Default: Disabled</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. You can't specify both a snapshot ID and an encryption value.
--   This is because only blank volumes can be encrypted on creation. If a
--   snapshot is the basis for a volume, it is not blank and its encryption
--   status is used for the volume encryption status.</li>
--   <li><a>rslsPlacement</a> - The placement information for the
--   instance.</li>
--   </ul>
requestSpotLaunchSpecification :: RequestSpotLaunchSpecification

-- | One or more security group IDs.
rslsSecurityGroupIds :: Lens' RequestSpotLaunchSpecification [Text]

-- | 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.
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 Base64-encoded user data for the instance.
rslsUserData :: Lens' RequestSpotLaunchSpecification (Maybe Text)

-- | Indicates whether basic or detailed monitoring is enabled for the
--   instance. Default: Disabled
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. You can't specify both a
--   snapshot ID and an encryption value. This is because only blank
--   volumes can be encrypted on creation. If a snapshot is the basis for a
--   volume, it is not blank and its encryption status is used for the
--   volume encryption status.
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 the error that's returned when you cannot delete a launch
--   template version.
--   
--   <i>See:</i> <a>responseError</a> smart constructor.
data ResponseError

-- | Creates a value of <a>ResponseError</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>reCode</a> - The error code.</li>
--   <li><a>reMessage</a> - The error message, if applicable.</li>
--   </ul>
responseError :: ResponseError

-- | The error code.
reCode :: Lens' ResponseError (Maybe LaunchTemplateErrorCode)

-- | The error message, if applicable.
reMessage :: Lens' ResponseError (Maybe Text)

-- | The information for a launch template.
--   
--   <i>See:</i> <a>responseLaunchTemplateData</a> smart constructor.
data ResponseLaunchTemplateData

-- | Creates a value of <a>ResponseLaunchTemplateData</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rSecurityGroupIds</a> - The security group IDs.</li>
--   <li><a>rSecurityGroups</a> - The security group names.</li>
--   <li><a>rInstanceMarketOptions</a> - The market (purchasing) option for
--   the instances.</li>
--   <li><a>rDisableAPITermination</a> - If set to <tt>true</tt> ,
--   indicates that the instance cannot be terminated using the Amazon EC2
--   console, command line tool, or API.</li>
--   <li><a>rKeyName</a> - The name of the key pair.</li>
--   <li><a>rNetworkInterfaces</a> - The network interfaces.</li>
--   <li><a>rRamDiskId</a> - The ID of the RAM disk, if applicable.</li>
--   <li><a>rKernelId</a> - The ID of the kernel, if applicable.</li>
--   <li><a>rElasticGpuSpecifications</a> - The elastic GPU
--   specification.</li>
--   <li><a>rInstanceType</a> - The instance type.</li>
--   <li><a>rEBSOptimized</a> - Indicates whether the instance is optimized
--   for Amazon EBS I/O.</li>
--   <li><a>rUserData</a> - The user data for the instance.</li>
--   <li><a>rMonitoring</a> - The monitoring for the instance.</li>
--   <li><a>rTagSpecifications</a> - The tags.</li>
--   <li><a>rIAMInstanceProfile</a> - The IAM instance profile.</li>
--   <li><a>rImageId</a> - The ID of the AMI that was used to launch the
--   instance.</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).</li>
--   <li><a>rCreditSpecification</a> - The credit option for CPU usage of
--   the instance.</li>
--   <li><a>rBlockDeviceMappings</a> - The block device mappings.</li>
--   <li><a>rPlacement</a> - The placement of the instance.</li>
--   </ul>
responseLaunchTemplateData :: ResponseLaunchTemplateData

-- | The security group IDs.
rSecurityGroupIds :: Lens' ResponseLaunchTemplateData [Text]

-- | The security group names.
rSecurityGroups :: Lens' ResponseLaunchTemplateData [Text]

-- | The market (purchasing) option for the instances.
rInstanceMarketOptions :: Lens' ResponseLaunchTemplateData (Maybe LaunchTemplateInstanceMarketOptions)

-- | If set to <tt>true</tt> , indicates that the instance cannot be
--   terminated using the Amazon EC2 console, command line tool, or API.
rDisableAPITermination :: Lens' ResponseLaunchTemplateData (Maybe Bool)

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

-- | The network interfaces.
rNetworkInterfaces :: Lens' ResponseLaunchTemplateData [LaunchTemplateInstanceNetworkInterfaceSpecification]

-- | The ID of the RAM disk, if applicable.
rRamDiskId :: Lens' ResponseLaunchTemplateData (Maybe Text)

-- | The ID of the kernel, if applicable.
rKernelId :: Lens' ResponseLaunchTemplateData (Maybe Text)

-- | The elastic GPU specification.
rElasticGpuSpecifications :: Lens' ResponseLaunchTemplateData [ElasticGpuSpecificationResponse]

-- | The instance type.
rInstanceType :: Lens' ResponseLaunchTemplateData (Maybe InstanceType)

-- | Indicates whether the instance is optimized for Amazon EBS I/O.
rEBSOptimized :: Lens' ResponseLaunchTemplateData (Maybe Bool)

-- | The user data for the instance.
rUserData :: Lens' ResponseLaunchTemplateData (Maybe Text)

-- | The monitoring for the instance.
rMonitoring :: Lens' ResponseLaunchTemplateData (Maybe LaunchTemplatesMonitoring)

-- | The tags.
rTagSpecifications :: Lens' ResponseLaunchTemplateData [LaunchTemplateTagSpecification]

-- | The IAM instance profile.
rIAMInstanceProfile :: Lens' ResponseLaunchTemplateData (Maybe LaunchTemplateIAMInstanceProfileSpecification)

-- | The ID of the AMI that was used to launch the instance.
rImageId :: Lens' ResponseLaunchTemplateData (Maybe Text)

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

-- | The credit option for CPU usage of the instance.
rCreditSpecification :: Lens' ResponseLaunchTemplateData (Maybe CreditSpecification)

-- | The block device mappings.
rBlockDeviceMappings :: Lens' ResponseLaunchTemplateData [LaunchTemplateBlockDeviceMapping]

-- | The placement of the instance.
rPlacement :: Lens' ResponseLaunchTemplateData (Maybe LaunchTemplatePlacement)

-- | 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 (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 (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 security group.
--   
--   <i>See:</i> <a>securityGroupIdentifier</a> smart constructor.
data SecurityGroupIdentifier

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

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

-- | The name of the security group.
sgiGroupName :: Lens' SecurityGroupIdentifier (Maybe 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 a service configuration for a VPC endpoint service.
--   
--   <i>See:</i> <a>serviceConfiguration</a> smart constructor.
data ServiceConfiguration

-- | Creates a value of <a>ServiceConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scNetworkLoadBalancerARNs</a> - The Amazon Resource Names
--   (ARNs) of the Network Load Balancers for the service.</li>
--   <li><a>scBaseEndpointDNSNames</a> - The DNS names for the
--   service.</li>
--   <li><a>scAvailabilityZones</a> - In the Availability Zones in which
--   the service is available.</li>
--   <li><a>scServiceName</a> - The name of the service.</li>
--   <li><a>scServiceState</a> - The service state.</li>
--   <li><a>scServiceType</a> - The type of service.</li>
--   <li><a>scAcceptanceRequired</a> - Indicates whether requests from
--   other AWS accounts to create an endpoint to the service must first be
--   accepted.</li>
--   <li><a>scServiceId</a> - The ID of the service.</li>
--   <li><a>scPrivateDNSName</a> - The private DNS name for the
--   service.</li>
--   </ul>
serviceConfiguration :: ServiceConfiguration

-- | The Amazon Resource Names (ARNs) of the Network Load Balancers for the
--   service.
scNetworkLoadBalancerARNs :: Lens' ServiceConfiguration [Text]

-- | The DNS names for the service.
scBaseEndpointDNSNames :: Lens' ServiceConfiguration [Text]

-- | In the Availability Zones in which the service is available.
scAvailabilityZones :: Lens' ServiceConfiguration [Text]

-- | The name of the service.
scServiceName :: Lens' ServiceConfiguration (Maybe Text)

-- | The service state.
scServiceState :: Lens' ServiceConfiguration (Maybe ServiceState)

-- | The type of service.
scServiceType :: Lens' ServiceConfiguration [ServiceTypeDetail]

-- | Indicates whether requests from other AWS accounts to create an
--   endpoint to the service must first be accepted.
scAcceptanceRequired :: Lens' ServiceConfiguration (Maybe Bool)

-- | The ID of the service.
scServiceId :: Lens' ServiceConfiguration (Maybe Text)

-- | The private DNS name for the service.
scPrivateDNSName :: Lens' ServiceConfiguration (Maybe Text)

-- | Describes a VPC endpoint service.
--   
--   <i>See:</i> <a>serviceDetail</a> smart constructor.
data ServiceDetail

-- | Creates a value of <a>ServiceDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdVPCEndpointPolicySupported</a> - Indicates whether the
--   service supports endpoint policies.</li>
--   <li><a>sdBaseEndpointDNSNames</a> - The DNS names for the
--   service.</li>
--   <li><a>sdOwner</a> - The AWS account ID of the service owner.</li>
--   <li><a>sdAvailabilityZones</a> - The Availability Zones in which the
--   service is available.</li>
--   <li><a>sdServiceName</a> - The Amazon Resource Name (ARN) of the
--   service.</li>
--   <li><a>sdServiceType</a> - The type of service.</li>
--   <li><a>sdAcceptanceRequired</a> - Indicates whether VPC endpoint
--   connection requests to the service must be accepted by the service
--   owner.</li>
--   <li><a>sdPrivateDNSName</a> - The private DNS name for the
--   service.</li>
--   </ul>
serviceDetail :: ServiceDetail

-- | Indicates whether the service supports endpoint policies.
sdVPCEndpointPolicySupported :: Lens' ServiceDetail (Maybe Bool)

-- | The DNS names for the service.
sdBaseEndpointDNSNames :: Lens' ServiceDetail [Text]

-- | The AWS account ID of the service owner.
sdOwner :: Lens' ServiceDetail (Maybe Text)

-- | The Availability Zones in which the service is available.
sdAvailabilityZones :: Lens' ServiceDetail [Text]

-- | The Amazon Resource Name (ARN) of the service.
sdServiceName :: Lens' ServiceDetail (Maybe Text)

-- | The type of service.
sdServiceType :: Lens' ServiceDetail [ServiceTypeDetail]

-- | Indicates whether VPC endpoint connection requests to the service must
--   be accepted by the service owner.
sdAcceptanceRequired :: Lens' ServiceDetail (Maybe Bool)

-- | The private DNS name for the service.
sdPrivateDNSName :: Lens' ServiceDetail (Maybe Text)

-- | Describes the type of service for a VPC endpoint.
--   
--   <i>See:</i> <a>serviceTypeDetail</a> smart constructor.
data ServiceTypeDetail

-- | Creates a value of <a>ServiceTypeDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stdServiceType</a> - The type of service.</li>
--   </ul>
serviceTypeDetail :: ServiceTypeDetail

-- | The type of service.
stdServiceType :: Lens' ServiceTypeDetail (Maybe ServiceType)

-- | 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>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>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 maximum price per unit hour that you
--   are willing to pay for a Spot Instance. If this value is not
--   specified, the default is the Spot price specified for the fleet. To
--   determine the Spot price per unit hour, divide the Spot 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.</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 Base64-encoded user data to make
--   available to the instances.</li>
--   <li><a>sflsMonitoring</a> - Enable or disable monitoring for the
--   instances.</li>
--   <li><a>sflsTagSpecifications</a> - The tags to apply during
--   creation.</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. You can't specify both a snapshot ID and an encryption value.
--   This is because only blank volumes can be encrypted on creation. If a
--   snapshot is the basis for a volume, it is not blank and its encryption
--   status is used for the volume encryption status.</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 maximum price per unit hour that you are willing to pay for a Spot
--   Instance. If this value is not specified, the default is the Spot
--   price specified for the fleet. To determine the Spot price per unit
--   hour, divide the Spot 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.
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 Base64-encoded user data to make available to the instances.
sflsUserData :: Lens' SpotFleetLaunchSpecification (Maybe Text)

-- | Enable or disable monitoring for the instances.
sflsMonitoring :: Lens' SpotFleetLaunchSpecification (Maybe SpotFleetMonitoring)

-- | The tags to apply during creation.
sflsTagSpecifications :: Lens' SpotFleetLaunchSpecification [SpotFleetTagSpecification]

-- | 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. You can't specify both a
--   snapshot ID and an encryption value. This is because only blank
--   volumes can be encrypted on creation. If a snapshot is the basis for a
--   volume, it is not blank and its encryption status is used for the
--   volume encryption status.
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 requests 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>sfrcCreateTime</a> - The creation date and time of the
--   request.</li>
--   <li><a>sfrcSpotFleetRequestConfig</a> - The configuration of the Spot
--   Fleet request.</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>
--   </ul>
spotFleetRequestConfig :: UTCTime -> SpotFleetRequestConfigData -> Text -> BatchState -> SpotFleetRequestConfig

-- | The progress of the Spot Fleet request. If there is an error, the
--   status is <tt>error</tt> . After all requests 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 creation date and time of the request.
sfrcCreateTime :: Lens' SpotFleetRequestConfig UTCTime

-- | The configuration of the Spot Fleet request.
sfrcSpotFleetRequestConfig :: Lens' SpotFleetRequestConfig SpotFleetRequestConfigData

-- | The ID of the Spot Fleet request.
sfrcSpotFleetRequestId :: Lens' SpotFleetRequestConfig Text

-- | The state of the Spot Fleet request.
sfrcSpotFleetRequestState :: Lens' SpotFleetRequestConfig BatchState

-- | 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 that
--   you provide to ensure the idempotency of your listings. This helps to
--   avoid duplicate listings. For more information, see <a>Ensuring
--   Idempotency</a> .</li>
--   <li><a>sfrcdInstanceInterruptionBehavior</a> - The behavior when a
--   Spot Instance is interrupted. The default is <tt>terminate</tt> .</li>
--   <li><a>sfrcdSpotPrice</a> - The maximum price per unit hour that you
--   are willing to pay for a Spot Instance. The default is the On-Demand
--   price.</li>
--   <li><a>sfrcdLoadBalancersConfig</a> - One or more Classic Load
--   Balancers and target groups to attach to the Spot Fleet request. Spot
--   Fleet registers the running Spot Instances with the specified Classic
--   Load Balancers and target groups. With Network Load Balancers, Spot
--   Fleet cannot register instances that have the following instance
--   types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3,
--   and T1.</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>sfrcdOnDemandTargetCapacity</a> - The number of On-Demand 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. If the request
--   type is <tt>maintain</tt> , you can specify a target capacity of 0 and
--   add capacity later.</li>
--   <li><a>sfrcdLaunchTemplateConfigs</a> - The launch template and
--   overrides.</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 able to fulfill the request. The default end date is 7
--   days from the current date.</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 Spot
--   Fleet only requests the target capacity or also attempts to maintain
--   it. When this value is <tt>request</tt> , the Spot Fleet only places
--   the required requests. It does not attempt to replenish Spot Instances
--   if capacity is diminished, nor does it submit requests in alternative
--   Spot pools if capacity is not available. To maintain a certain target
--   capacity, the Spot Fleet places the required requests to meet capacity
--   and automatically replenishes 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>sfrcdReplaceUnhealthyInstances</a> - Indicates whether Spot
--   Fleet should replace unhealthy instances.</li>
--   <li><a>sfrcdLaunchSpecifications</a> - The launch specifications for
--   the Spot Fleet request.</li>
--   <li><a>sfrcdOnDemandFulfilledCapacity</a> - The number of On-Demand
--   units fulfilled by this request compared to the set target On-Demand
--   capacity.</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>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>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. If the request type is
--   <tt>maintain</tt> , you can specify a target capacity of 0 and add
--   capacity later.</li>
--   </ul>
spotFleetRequestConfigData :: Text -> Int -> SpotFleetRequestConfigData

-- | A unique, case-sensitive identifier that you provide to ensure the
--   idempotency of your listings. This helps to avoid duplicate listings.
--   For more information, see <a>Ensuring Idempotency</a> .
sfrcdClientToken :: Lens' SpotFleetRequestConfigData (Maybe Text)

-- | The behavior when a Spot Instance is interrupted. The default is
--   <tt>terminate</tt> .
sfrcdInstanceInterruptionBehavior :: Lens' SpotFleetRequestConfigData (Maybe InstanceInterruptionBehavior)

-- | The maximum price per unit hour that you are willing to pay for a Spot
--   Instance. The default is the On-Demand price.
sfrcdSpotPrice :: Lens' SpotFleetRequestConfigData (Maybe Text)

-- | One or more Classic Load Balancers and target groups to attach to the
--   Spot Fleet request. Spot Fleet registers the running Spot Instances
--   with the specified Classic Load Balancers and target groups. With
--   Network Load Balancers, Spot Fleet cannot register instances that have
--   the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1,
--   G2, HI1, HS1, M1, M2, M3, and T1.
sfrcdLoadBalancersConfig :: Lens' SpotFleetRequestConfigData (Maybe LoadBalancersConfig)

-- | 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 number of On-Demand 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. If the request type is <tt>maintain</tt> , you can specify a
--   target capacity of 0 and add capacity later.
sfrcdOnDemandTargetCapacity :: Lens' SpotFleetRequestConfigData (Maybe Int)

-- | The launch template and overrides.
sfrcdLaunchTemplateConfigs :: Lens' SpotFleetRequestConfigData [LaunchTemplateConfig]

-- | 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 able to
--   fulfill the request. The default end date is 7 days from the current
--   date.
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 Spot Fleet only requests
--   the target capacity or also attempts to maintain it. When this value
--   is <tt>request</tt> , the Spot Fleet only places the required
--   requests. It does not attempt to replenish Spot Instances if capacity
--   is diminished, nor does it submit requests in alternative Spot pools
--   if capacity is not available. To maintain a certain target capacity,
--   the Spot Fleet places the required requests to meet capacity and
--   automatically replenishes 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 whether Spot Fleet should replace unhealthy instances.
sfrcdReplaceUnhealthyInstances :: Lens' SpotFleetRequestConfigData (Maybe Bool)

-- | The launch specifications for the Spot Fleet request.
sfrcdLaunchSpecifications :: Lens' SpotFleetRequestConfigData [SpotFleetLaunchSpecification]

-- | The number of On-Demand units fulfilled by this request compared to
--   the set target On-Demand capacity.
sfrcdOnDemandFulfilledCapacity :: Lens' SpotFleetRequestConfigData (Maybe Double)

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

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

-- | 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.
--   If the request type is <tt>maintain</tt> , you can specify a target
--   capacity of 0 and add capacity later.
sfrcdTargetCapacity :: Lens' SpotFleetRequestConfigData Int

-- | The tags for a Spot Fleet resource.
--   
--   <i>See:</i> <a>spotFleetTagSpecification</a> smart constructor.
data SpotFleetTagSpecification

-- | Creates a value of <a>SpotFleetTagSpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sftsResourceType</a> - The type of resource. Currently, the
--   only resource type that is supported is <tt>instance</tt> .</li>
--   <li><a>sftsTags</a> - The tags.</li>
--   </ul>
spotFleetTagSpecification :: SpotFleetTagSpecification

-- | The type of resource. Currently, the only resource type that is
--   supported is <tt>instance</tt> .
sftsResourceType :: Lens' SpotFleetTagSpecification (Maybe ResourceType)

-- | The tags.
sftsTags :: Lens' SpotFleetTagSpecification [Tag]

-- | 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
--   status information helps track your Spot Instance requests. For more
--   information, see <a>Spot Status</a> in the <i>Amazon EC2 User Guide
--   for Linux Instances</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>sirInstanceInterruptionBehavior</a> - The behavior when a Spot
--   Instance is interrupted.</li>
--   <li><a>sirProductDescription</a> - The product description associated
--   with the Spot Instance.</li>
--   <li><a>sirSpotPrice</a> - The maximum price per hour that you are
--   willing to pay for a Spot Instance.</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 request 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. The default end date is 7 days from
--   the current date.</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 status information helps
--   track your Spot Instance requests. For more information, see <a>Spot
--   Status</a> in the <i>Amazon EC2 User Guide for Linux Instances</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 behavior when a Spot Instance is interrupted.
sirInstanceInterruptionBehavior :: Lens' SpotInstanceRequest (Maybe InstanceInterruptionBehavior)

-- | The product description associated with the Spot Instance.
sirProductDescription :: Lens' SpotInstanceRequest (Maybe RIProductDescription)

-- | The maximum price per hour that you are willing to pay for a Spot
--   Instance.
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 request 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. The default end date is 7 days from the current date.
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 Status Codes</a> in the <i>Amazon EC2 User Guide for Linux
--   Instances</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 Status
--   Codes</a> in the <i>Amazon EC2 User Guide for Linux Instances</i> .
sisCode :: Lens' SpotInstanceStatus (Maybe Text)

-- | The description for the status code.
sisMessage :: Lens' SpotInstanceStatus (Maybe Text)

-- | The options for Spot Instances.
--   
--   <i>See:</i> <a>spotMarketOptions</a> smart constructor.
data SpotMarketOptions

-- | Creates a value of <a>SpotMarketOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>smoBlockDurationMinutes</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).</li>
--   <li><a>smoInstanceInterruptionBehavior</a> - The behavior when a Spot
--   Instance is interrupted. The default is <tt>terminate</tt> .</li>
--   <li><a>smoValidUntil</a> - The end date of the request. For 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. The default end date is 7 days from the current
--   date.</li>
--   <li><a>smoSpotInstanceType</a> - The Spot Instance request type.</li>
--   <li><a>smoMaxPrice</a> - The maximum hourly price you're willing to
--   pay for the Spot Instances. The default is the On-Demand price.</li>
--   </ul>
spotMarketOptions :: SpotMarketOptions

-- | 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).
smoBlockDurationMinutes :: Lens' SpotMarketOptions (Maybe Int)

-- | The behavior when a Spot Instance is interrupted. The default is
--   <tt>terminate</tt> .
smoInstanceInterruptionBehavior :: Lens' SpotMarketOptions (Maybe InstanceInterruptionBehavior)

-- | The end date of the request. For 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. The default end
--   date is 7 days from the current date.
smoValidUntil :: Lens' SpotMarketOptions (Maybe UTCTime)

-- | The Spot Instance request type.
smoSpotInstanceType :: Lens' SpotMarketOptions (Maybe SpotInstanceType)

-- | The maximum hourly price you're willing to pay for the Spot Instances.
--   The default is the On-Demand price.
smoMaxPrice :: Lens' SpotMarketOptions (Maybe Text)

-- | Describes the configuration of Spot Instances in an EC2 Fleet.
--   
--   <i>See:</i> <a>spotOptions</a> smart constructor.
data SpotOptions

-- | Creates a value of <a>SpotOptions</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>soInstanceInterruptionBehavior</a> - The behavior when a Spot
--   Instance is interrupted. The default is <tt>terminate</tt> .</li>
--   <li><a>soAllocationStrategy</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>
--   </ul>
spotOptions :: SpotOptions

-- | The behavior when a Spot Instance is interrupted. The default is
--   <tt>terminate</tt> .
soInstanceInterruptionBehavior :: Lens' SpotOptions (Maybe SpotInstanceInterruptionBehavior)

-- | Indicates how to allocate the target capacity across the Spot pools
--   specified by the Spot Fleet request. The default is
--   <tt>lowestPrice</tt> .
soAllocationStrategy :: Lens' SpotOptions (Maybe SpotAllocationStrategy)

-- | Describes the configuration of Spot Instances in an EC2 Fleet request.
--   
--   <i>See:</i> <a>spotOptionsRequest</a> smart constructor.
data SpotOptionsRequest

-- | Creates a value of <a>SpotOptionsRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sorInstanceInterruptionBehavior</a> - The behavior when a Spot
--   Instance is interrupted. The default is <tt>terminate</tt> .</li>
--   <li><a>sorAllocationStrategy</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>
--   </ul>
spotOptionsRequest :: SpotOptionsRequest

-- | The behavior when a Spot Instance is interrupted. The default is
--   <tt>terminate</tt> .
sorInstanceInterruptionBehavior :: Lens' SpotOptionsRequest (Maybe SpotInstanceInterruptionBehavior)

-- | Indicates how to allocate the target capacity across the Spot pools
--   specified by the Spot Fleet request. The default is
--   <tt>lowestPrice</tt> .
sorAllocationStrategy :: Lens' SpotOptionsRequest (Maybe SpotAllocationStrategy)

-- | 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>spTenancy</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 Spot Instances.</li>
--   <li><a>spGroupName</a> - The name of the placement group.</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 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 Spot
--   Instances.
spTenancy :: Lens' SpotPlacement (Maybe Tenancy)

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

-- | Describes the maximum price per hour that you are willing to pay for a
--   Spot Instance.
--   
--   <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 per hour that you are
--   willing to pay for a Spot Instance.</li>
--   <li><a>sInstanceType</a> - The instance type.</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 per hour that you are willing to pay for a Spot
--   Instance.
sSpotPrice :: Lens' SpotPrice (Maybe Text)

-- | The instance type.
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.InsufficientInstanceCapacity</tt> : There was insufficient
--   instance capacity to satisfy the launch request. *
--   <tt>Server.InternalError</tt> : An internal error occurred during
--   instance launch, resulting in termination. *
--   <tt>Server.ScheduledStop</tt> : The instance was stopped due to a
--   scheduled retirement. * <tt>Server.SpotInstanceTermination</tt> : A
--   Spot Instance was terminated due to an increase in the Spot price. *
--   <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.InstanceTerminated</tt> : The instance was
--   terminated or rebooted during AMI creation. *
--   <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.InsufficientInstanceCapacity</tt> : There was insufficient
--   instance capacity to satisfy the launch request. *
--   <tt>Server.InternalError</tt> : An internal error occurred during
--   instance launch, resulting in termination. *
--   <tt>Server.ScheduledStop</tt> : The instance was stopped due to a
--   scheduled retirement. * <tt>Server.SpotInstanceTermination</tt> : A
--   Spot Instance was terminated due to an increase in the Spot price. *
--   <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.InstanceTerminated</tt> : The instance was
--   terminated or rebooted during AMI creation. *
--   <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 storage location in Amazon S3.
--   
--   <i>See:</i> <a>storageLocation</a> smart constructor.
data StorageLocation

-- | Creates a value of <a>StorageLocation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slBucket</a> - The name of the S3 bucket.</li>
--   <li><a>slKey</a> - The key.</li>
--   </ul>
storageLocation :: StorageLocation

-- | The name of the S3 bucket.
slBucket :: Lens' StorageLocation (Maybe Text)

-- | The key.
slKey :: Lens' StorageLocation (Maybe Text)

-- | 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 the T2 instance whose credit option for CPU usage was
--   successfully modified.
--   
--   <i>See:</i> <a>successfulInstanceCreditSpecificationItem</a> smart
--   constructor.
data SuccessfulInstanceCreditSpecificationItem

-- | Creates a value of <a>SuccessfulInstanceCreditSpecificationItem</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sicsiInstanceId</a> - The ID of the instance.</li>
--   </ul>
successfulInstanceCreditSpecificationItem :: SuccessfulInstanceCreditSpecificationItem

-- | The ID of the instance.
sicsiInstanceId :: Lens' SuccessfulInstanceCreditSpecificationItem (Maybe Text)

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

-- | The tags to apply to a resource when the resource is being created.
--   
--   <i>See:</i> <a>tagSpecification</a> smart constructor.
data TagSpecification

-- | Creates a value of <a>TagSpecification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tsResourceType</a> - The type of resource to tag. Currently,
--   the resource types that support tagging on creation are
--   <tt>instance</tt> and <tt>volume</tt> .</li>
--   <li><a>tsTags</a> - The tags to apply to the resource.</li>
--   </ul>
tagSpecification :: TagSpecification

-- | The type of resource to tag. Currently, the resource types that
--   support tagging on creation are <tt>instance</tt> and <tt>volume</tt>
--   .
tsResourceType :: Lens' TagSpecification (Maybe ResourceType)

-- | The tags to apply to the resource.
tsTags :: Lens' TagSpecification [Tag]

-- | 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.
--   If the request type is <tt>maintain</tt> , you can specify a target
--   capacity of 0 and add capacity later.
--   
--   <i>See:</i> <a>targetCapacitySpecification</a> smart constructor.
data TargetCapacitySpecification

-- | Creates a value of <a>TargetCapacitySpecification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcsOnDemandTargetCapacity</a> - The number of On-Demand units
--   to request.</li>
--   <li><a>tcsDefaultTargetCapacityType</a> - The default
--   <tt>TotalTargetCapacity</tt> , which is either <tt>Spot</tt> or
--   <tt>On-Demand</tt> .</li>
--   <li><a>tcsTotalTargetCapacity</a> - The number of units to request,
--   filled using <tt>DefaultTargetCapacityType</tt> .</li>
--   <li><a>tcsSpotTargetCapacity</a> - The maximum number of Spot units to
--   launch.</li>
--   </ul>
targetCapacitySpecification :: TargetCapacitySpecification

-- | The number of On-Demand units to request.
tcsOnDemandTargetCapacity :: Lens' TargetCapacitySpecification (Maybe Int)

-- | The default <tt>TotalTargetCapacity</tt> , which is either
--   <tt>Spot</tt> or <tt>On-Demand</tt> .
tcsDefaultTargetCapacityType :: Lens' TargetCapacitySpecification (Maybe DefaultTargetCapacityType)

-- | The number of units to request, filled using
--   <tt>DefaultTargetCapacityType</tt> .
tcsTotalTargetCapacity :: Lens' TargetCapacitySpecification (Maybe Int)

-- | The maximum number of Spot units to launch.
tcsSpotTargetCapacity :: Lens' TargetCapacitySpecification (Maybe Int)

-- | 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.
--   If the request type is <tt>maintain</tt> , you can specify a target
--   capacity of 0 and add capacity later.
--   
--   <i>See:</i> <a>targetCapacitySpecificationRequest</a> smart
--   constructor.
data TargetCapacitySpecificationRequest

-- | Creates a value of <a>TargetCapacitySpecificationRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcsrOnDemandTargetCapacity</a> - The number of On-Demand units
--   to request.</li>
--   <li><a>tcsrDefaultTargetCapacityType</a> - The default
--   <tt>TotalTargetCapacity</tt> , which is either <tt>Spot</tt> or
--   <tt>On-Demand</tt> .</li>
--   <li><a>tcsrSpotTargetCapacity</a> - The number of Spot units to
--   request.</li>
--   <li><a>tcsrTotalTargetCapacity</a> - The number of units to request,
--   filled using <tt>DefaultTargetCapacityType</tt> .</li>
--   </ul>
targetCapacitySpecificationRequest :: Int -> TargetCapacitySpecificationRequest

-- | The number of On-Demand units to request.
tcsrOnDemandTargetCapacity :: Lens' TargetCapacitySpecificationRequest (Maybe Int)

-- | The default <tt>TotalTargetCapacity</tt> , which is either
--   <tt>Spot</tt> or <tt>On-Demand</tt> .
tcsrDefaultTargetCapacityType :: Lens' TargetCapacitySpecificationRequest (Maybe DefaultTargetCapacityType)

-- | The number of Spot units to request.
tcsrSpotTargetCapacity :: Lens' TargetCapacitySpecificationRequest (Maybe Int)

-- | The number of units to request, filled using
--   <tt>DefaultTargetCapacityType</tt> .
tcsrTotalTargetCapacity :: Lens' TargetCapacitySpecificationRequest Int

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

-- | Describes a load balancer target group.
--   
--   <i>See:</i> <a>targetGroup</a> smart constructor.
data TargetGroup

-- | Creates a value of <a>TargetGroup</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tgARN</a> - The Amazon Resource Name (ARN) of the target
--   group.</li>
--   </ul>
targetGroup :: Text -> TargetGroup

-- | The Amazon Resource Name (ARN) of the target group.
tgARN :: Lens' TargetGroup Text

-- | Describes the target groups to attach to a Spot Fleet. Spot Fleet
--   registers the running Spot Instances with these target groups.
--   
--   <i>See:</i> <a>targetGroupsConfig</a> smart constructor.
data TargetGroupsConfig

-- | Creates a value of <a>TargetGroupsConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tgcTargetGroups</a> - One or more target groups.</li>
--   </ul>
targetGroupsConfig :: NonEmpty TargetGroup -> TargetGroupsConfig

-- | One or more target groups.
tgcTargetGroups :: Lens' TargetGroupsConfig (NonEmpty TargetGroup)

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

-- | Describes the T2 instance whose credit option for CPU usage was not
--   modified.
--   
--   <i>See:</i> <a>unsuccessfulInstanceCreditSpecificationItem</a> smart
--   constructor.
data UnsuccessfulInstanceCreditSpecificationItem

-- | Creates a value of <a>UnsuccessfulInstanceCreditSpecificationItem</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uicsiInstanceId</a> - The ID of the instance.</li>
--   <li><a>uicsiError</a> - The applicable error for the T2 instance whose
--   credit option for CPU usage was not modified.</li>
--   </ul>
unsuccessfulInstanceCreditSpecificationItem :: UnsuccessfulInstanceCreditSpecificationItem

-- | The ID of the instance.
uicsiInstanceId :: Lens' UnsuccessfulInstanceCreditSpecificationItem (Maybe Text)

-- | The applicable error for the T2 instance whose credit option for CPU
--   usage was not modified.
uicsiError :: Lens' UnsuccessfulInstanceCreditSpecificationItem (Maybe UnsuccessfulInstanceCreditSpecificationItemError)

-- | Information about the error for the T2 instance whose credit option
--   for CPU usage was not modified.
--   
--   <i>See:</i> <a>unsuccessfulInstanceCreditSpecificationItemError</a>
--   smart constructor.
data UnsuccessfulInstanceCreditSpecificationItemError

-- | Creates a value of
--   <a>UnsuccessfulInstanceCreditSpecificationItemError</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uicsieCode</a> - The error code.</li>
--   <li><a>uicsieMessage</a> - The applicable error message.</li>
--   </ul>
unsuccessfulInstanceCreditSpecificationItemError :: UnsuccessfulInstanceCreditSpecificationItemError

-- | The error code.
uicsieCode :: Lens' UnsuccessfulInstanceCreditSpecificationItemError (Maybe UnsuccessfulInstanceCreditSpecificationErrorCode)

-- | The applicable error message.
uicsieMessage :: Lens' UnsuccessfulInstanceCreditSpecificationItemError (Maybe Text)

-- | 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 in the response. If the referenced security
--   group is deleted, this value is not 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. For a referenced security group in another VPC,
--   this value is not returned if the referenced security group is
--   deleted.</li>
--   <li><a>uigpDescription</a> - A description for the security group rule
--   that references this user ID group pair. Constraints: Up to 255
--   characters in length. Allowed characters are a-z, A-Z, 0-9, spaces,
--   and ._-:/()#,@[]+=;{}!$*</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 in
--   the response. If the referenced security group is deleted, this value
--   is not 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. For a referenced
--   security group in another VPC, this value is not returned if the
--   referenced security group is deleted.
uigpGroupName :: Lens' UserIdGroupPair (Maybe Text)

-- | A description for the security group rule that references this user ID
--   group pair. Constraints: Up to 255 characters in length. Allowed
--   characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*
uigpDescription :: 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>vpcCidrBlockAssociationSet</a> - Information about the IPv4
--   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 primary 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]

-- | Information about the IPv4 CIDR blocks associated with the VPC.
vpcCidrBlockAssociationSet :: Lens' VPC [VPCCidrBlockAssociation]

-- | Any tags assigned to the VPC.
vpcTags :: Lens' VPC [Tag]

-- | Indicates whether the VPC is the default VPC.
vpcIsDefault :: Lens' VPC (Maybe Bool)

-- | The primary 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 an IPv4 CIDR block associated with a VPC.
--   
--   <i>See:</i> <a>vpcCidrBlockAssociation</a> smart constructor.
data VPCCidrBlockAssociation

-- | Creates a value of <a>VPCCidrBlockAssociation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcbaAssociationId</a> - The association ID for the IPv4 CIDR
--   block.</li>
--   <li><a>vcbaCidrBlockState</a> - Information about the state of the
--   CIDR block.</li>
--   <li><a>vcbaCidrBlock</a> - The IPv4 CIDR block.</li>
--   </ul>
vpcCidrBlockAssociation :: VPCCidrBlockAssociation

-- | The association ID for the IPv4 CIDR block.
vcbaAssociationId :: Lens' VPCCidrBlockAssociation (Maybe Text)

-- | Information about the state of the CIDR block.
vcbaCidrBlockState :: Lens' VPCCidrBlockAssociation (Maybe VPCCidrBlockState)

-- | The IPv4 CIDR block.
vcbaCidrBlock :: Lens' VPCCidrBlockAssociation (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>veGroups</a> - (Interface endpoint) Information about the
--   security groups associated with the network interface.</li>
--   <li><a>veState</a> - The state of the VPC endpoint.</li>
--   <li><a>vePolicyDocument</a> - The policy document associated with the
--   endpoint, if applicable.</li>
--   <li><a>veSubnetIds</a> - (Interface endpoint) One or more subnets in
--   which the endpoint is located.</li>
--   <li><a>veNetworkInterfaceIds</a> - (Interface endpoint) One or more
--   network interfaces for the endpoint.</li>
--   <li><a>veVPCId</a> - The ID of the VPC to which the endpoint is
--   associated.</li>
--   <li><a>veDNSEntries</a> - (Interface endpoint) The DNS entries for the
--   endpoint.</li>
--   <li><a>veVPCEndpointType</a> - The type of endpoint.</li>
--   <li><a>vePrivateDNSEnabled</a> - (Interface endpoint) Indicates
--   whether the VPC is associated with a private hosted zone.</li>
--   <li><a>veCreationTimestamp</a> - The date and time the VPC endpoint
--   was created.</li>
--   <li><a>veServiceName</a> - The name of the service to which the
--   endpoint is associated.</li>
--   <li><a>veVPCEndpointId</a> - The ID of the VPC endpoint.</li>
--   <li><a>veRouteTableIds</a> - (Gateway endpoint) One or more route
--   tables associated with the endpoint.</li>
--   </ul>
vpcEndpoint :: VPCEndpoint

-- | (Interface endpoint) Information about the security groups associated
--   with the network interface.
veGroups :: Lens' VPCEndpoint [SecurityGroupIdentifier]

-- | The state of the VPC endpoint.
veState :: Lens' VPCEndpoint (Maybe State)

-- | The policy document associated with the endpoint, if applicable.
vePolicyDocument :: Lens' VPCEndpoint (Maybe Text)

-- | (Interface endpoint) One or more subnets in which the endpoint is
--   located.
veSubnetIds :: Lens' VPCEndpoint [Text]

-- | (Interface endpoint) One or more network interfaces for the endpoint.
veNetworkInterfaceIds :: Lens' VPCEndpoint [Text]

-- | The ID of the VPC to which the endpoint is associated.
veVPCId :: Lens' VPCEndpoint (Maybe Text)

-- | (Interface endpoint) The DNS entries for the endpoint.
veDNSEntries :: Lens' VPCEndpoint [DNSEntry]

-- | The type of endpoint.
veVPCEndpointType :: Lens' VPCEndpoint (Maybe VPCEndpointType)

-- | (Interface endpoint) Indicates whether the VPC is associated with a
--   private hosted zone.
vePrivateDNSEnabled :: Lens' VPCEndpoint (Maybe Bool)

-- | The date and time the VPC endpoint was created.
veCreationTimestamp :: Lens' VPCEndpoint (Maybe UTCTime)

-- | The name of the service to which the endpoint is associated.
veServiceName :: Lens' VPCEndpoint (Maybe Text)

-- | The ID of the VPC endpoint.
veVPCEndpointId :: Lens' VPCEndpoint (Maybe Text)

-- | (Gateway endpoint) One or more route tables associated with the
--   endpoint.
veRouteTableIds :: Lens' VPCEndpoint [Text]

-- | Describes a VPC endpoint connection to a service.
--   
--   <i>See:</i> <a>vpcEndpointConnection</a> smart constructor.
data VPCEndpointConnection

-- | Creates a value of <a>VPCEndpointConnection</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vecVPCEndpointOwner</a> - The AWS account ID of the owner of
--   the VPC endpoint.</li>
--   <li><a>vecVPCEndpointState</a> - The state of the VPC endpoint.</li>
--   <li><a>vecCreationTimestamp</a> - The date and time the VPC endpoint
--   was created.</li>
--   <li><a>vecServiceId</a> - The ID of the service to which the endpoint
--   is connected.</li>
--   <li><a>vecVPCEndpointId</a> - The ID of the VPC endpoint.</li>
--   </ul>
vpcEndpointConnection :: VPCEndpointConnection

-- | The AWS account ID of the owner of the VPC endpoint.
vecVPCEndpointOwner :: Lens' VPCEndpointConnection (Maybe Text)

-- | The state of the VPC endpoint.
vecVPCEndpointState :: Lens' VPCEndpointConnection (Maybe State)

-- | The date and time the VPC endpoint was created.
vecCreationTimestamp :: Lens' VPCEndpointConnection (Maybe UTCTime)

-- | The ID of the service to which the endpoint is connected.
vecServiceId :: Lens' VPCEndpointConnection (Maybe Text)

-- | The ID of the VPC endpoint.
vecVPCEndpointId :: Lens' VPCEndpointConnection (Maybe 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 only returned when describing an active VPC
--   peering connection.</li>
--   <li><a>vpcpcRequesterVPCInfo</a> - Information about the requester
--   VPC. CIDR block information is only returned when describing an active
--   VPC peering connection.</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 only
--   returned when describing an active VPC peering connection.
vpcpcAccepterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)

-- | Information about the requester VPC. CIDR block information is only
--   returned when describing an active VPC peering connection.
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>vpcviCidrBlockSet</a> - Information about the IPv4 CIDR blocks
--   for the VPC.</li>
--   <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>vpcviRegion</a> - The region in which the VPC is located.</li>
--   <li><a>vpcviIPv6CidrBlockSet</a> - The IPv6 CIDR block for the
--   VPC.</li>
--   </ul>
vpcPeeringConnectionVPCInfo :: VPCPeeringConnectionVPCInfo

-- | Information about the IPv4 CIDR blocks for the VPC.
vpcviCidrBlockSet :: Lens' VPCPeeringConnectionVPCInfo [CidrBlock]

-- | 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 region in which the VPC is located.
vpcviRegion :: 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>vcCategory</a> - The category of the VPN connection. A value of
--   <tt>VPN</tt> indicates an AWS VPN connection. A value of
--   <tt>VPN-Classic</tt> indicates an AWS Classic VPN connection. For more
--   information, see <a>AWS Managed VPN Categories</a> in the <i>Amazon
--   Virtual Private Cloud User Guide</i> .</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 category of the VPN connection. A value of <tt>VPN</tt> indicates
--   an AWS VPN connection. A value of <tt>VPN-Classic</tt> indicates an
--   AWS Classic VPN connection. For more information, see <a>AWS Managed
--   VPN Categories</a> in the <i>Amazon Virtual Private Cloud User
--   Guide</i> .
vcCategory :: 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>vcosTunnelOptions</a> - The tunnel options for the VPN
--   connection.</li>
--   <li><a>vcosStaticRoutesOnly</a> - Indicate whether the VPN connection
--   uses static routes only. If you are creating a VPN connection for a
--   device that does not support BGP, you must specify <tt>true</tt> . Use
--   <tt>CreateVpnConnectionRoute</tt> to create a static route. Default:
--   <tt>false</tt></li>
--   </ul>
vpnConnectionOptionsSpecification :: VPNConnectionOptionsSpecification

-- | The tunnel options for the VPN connection.
vcosTunnelOptions :: Lens' VPNConnectionOptionsSpecification [VPNTunnelOptionsSpecification]

-- | Indicate whether the VPN connection uses static routes only. If you
--   are creating a VPN connection for a device that does not support BGP,
--   you must specify <tt>true</tt> . Use <tt>CreateVpnConnectionRoute</tt>
--   to create a static route. Default: <tt>false</tt>
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>vgAmazonSideASN</a> - The private Autonomous System Number
--   (ASN) for the Amazon side of a BGP session.</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 private Autonomous System Number (ASN) for the Amazon side of a
--   BGP session.
vgAmazonSideASN :: Lens' VPNGateway (Maybe Integer)

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

-- | The tunnel options for a VPN connection.
--   
--   <i>See:</i> <a>vpnTunnelOptionsSpecification</a> smart constructor.
data VPNTunnelOptionsSpecification

-- | Creates a value of <a>VPNTunnelOptionsSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vtosTunnelInsideCidr</a> - The range of inside IP addresses for
--   the tunnel. Any specified CIDR blocks must be unique across all VPN
--   connections that use the same virtual private gateway. Constraints: A
--   size <i>30 CIDR block from the @169.254.0.0</i>16<tt> range. The
--   following CIDR blocks are reserved and cannot be used: *
--   </tt>169.254.0.0<i>30<tt> * </tt>169.254.1.0</i>30<tt> *
--   </tt>169.254.2.0<i>30<tt> * </tt>169.254.3.0</i>30<tt> *
--   </tt>169.254.4.0<i>30<tt> * </tt>169.254.5.0</i>30<tt> *
--   </tt>169.254.169.252/30@</li>
--   <li><a>vtosPreSharedKey</a> - The pre-shared key (PSK) to establish
--   initial authentication between the virtual private gateway and
--   customer gateway. Constraints: Allowed characters are alphanumeric
--   characters and ._. Must be between 8 and 64 characters in length and
--   cannot start with zero (0).</li>
--   </ul>
vpnTunnelOptionsSpecification :: VPNTunnelOptionsSpecification

-- | The range of inside IP addresses for the tunnel. Any specified CIDR
--   blocks must be unique across all VPN connections that use the same
--   virtual private gateway. Constraints: A size <i>30 CIDR block from the
--   @169.254.0.0</i>16<tt> range. The following CIDR blocks are reserved
--   and cannot be used: * </tt>169.254.0.0<i>30<tt> *
--   </tt>169.254.1.0</i>30<tt> * </tt>169.254.2.0<i>30<tt> *
--   </tt>169.254.3.0</i>30<tt> * </tt>169.254.4.0<i>30<tt> *
--   </tt>169.254.5.0</i>30<tt> * </tt>169.254.169.252/30@
vtosTunnelInsideCidr :: Lens' VPNTunnelOptionsSpecification (Maybe Text)

-- | The pre-shared key (PSK) to establish initial authentication between
--   the virtual private gateway and customer gateway. Constraints: Allowed
--   characters are alphanumeric characters and ._. Must be between 8 and
--   64 characters in length and cannot start with zero (0).
vtosPreSharedKey :: Lens' VPNTunnelOptionsSpecification (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-32000 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-32000 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 the modification status of an EBS volume.
--   
--   If the volume has never been modified, some element values will be
--   null.
--   
--   <i>See:</i> <a>volumeModification</a> smart constructor.
data VolumeModification

-- | Creates a value of <a>VolumeModification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vmProgress</a> - Modification progress from 0 to 100%.</li>
--   <li><a>vmStartTime</a> - Modification start time</li>
--   <li><a>vmModificationState</a> - Current state of modification.
--   Modification state is null for unmodified volumes.</li>
--   <li><a>vmTargetVolumeType</a> - Target EBS volume type of the volume
--   being modified.</li>
--   <li><a>vmOriginalVolumeType</a> - Original EBS volume type of the
--   volume being modified.</li>
--   <li><a>vmTargetSize</a> - Target size of the volume being
--   modified.</li>
--   <li><a>vmTargetIOPS</a> - Target IOPS rate of the volume being
--   modified.</li>
--   <li><a>vmOriginalSize</a> - Original size of the volume being
--   modified.</li>
--   <li><a>vmOriginalIOPS</a> - Original IOPS rate of the volume being
--   modified.</li>
--   <li><a>vmStatusMessage</a> - Generic status message on modification
--   progress or failure.</li>
--   <li><a>vmEndTime</a> - Modification completion or failure time.</li>
--   <li><a>vmVolumeId</a> - ID of the volume being modified.</li>
--   </ul>
volumeModification :: VolumeModification

-- | Modification progress from 0 to 100%.
vmProgress :: Lens' VolumeModification (Maybe Integer)

-- | Modification start time
vmStartTime :: Lens' VolumeModification (Maybe UTCTime)

-- | Current state of modification. Modification state is null for
--   unmodified volumes.
vmModificationState :: Lens' VolumeModification (Maybe VolumeModificationState)

-- | Target EBS volume type of the volume being modified.
vmTargetVolumeType :: Lens' VolumeModification (Maybe VolumeType)

-- | Original EBS volume type of the volume being modified.
vmOriginalVolumeType :: Lens' VolumeModification (Maybe VolumeType)

-- | Target size of the volume being modified.
vmTargetSize :: Lens' VolumeModification (Maybe Int)

-- | Target IOPS rate of the volume being modified.
vmTargetIOPS :: Lens' VolumeModification (Maybe Int)

-- | Original size of the volume being modified.
vmOriginalSize :: Lens' VolumeModification (Maybe Int)

-- | Original IOPS rate of the volume being modified.
vmOriginalIOPS :: Lens' VolumeModification (Maybe Int)

-- | Generic status message on modification progress or failure.
vmStatusMessage :: Lens' VolumeModification (Maybe Text)

-- | Modification completion or failure time.
vmEndTime :: Lens' VolumeModification (Maybe UTCTime)

-- | ID of the volume being modified.
vmVolumeId :: Lens' VolumeModification (Maybe Text)

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